← Files Instao - Marchés publicsARCHIVED FILE

plugin.json

17.3 KB · Nov 3, 2026 · 18:56 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "instao",
  "version": "0.1.4",
  "description": "Find French public tenders to grow your business, and access consultation documents to help your assistant prepare informed bids.",
  "author": {
    "name": "Instao",
    "url": "https://www.instao.fr/"
  },
  "homepage": "https://www.instao.fr/",
  "keywords": [
    "march\u00e9s publics",
    "appels d'offres",
    "France",
    "public tenders",
    "r\u00e9ponse aux appels d\u2019offres",
    "dossier de consultation",
    "d\u00e9veloppement commercial"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Instao - March\u00e9s publics",
        "shortDescription": "Trouvez et pr\u00e9parez vos offres",
        "longDescription": "Les march\u00e9s publics peuvent aider une entreprise \u00e0 d\u00e9velopper son activit\u00e9 et \u00e0 trouver de nouveaux contrats en France. Instao aide votre assistant \u00e0 rechercher des appels d\u2019offres adapt\u00e9s \u00e0 votre activit\u00e9 et \u00e0 votre zone d\u2019intervention, comparer les opportunit\u00e9s et v\u00e9rifier les exigences. Vous pr\u00e9parez d\u00e9j\u00e0 une r\u00e9ponse ou n\u2019avez que quelques pi\u00e8ces ? Retrouvez une consultation, consultez ses documents disponibles et t\u00e9l\u00e9chargez les originaux pour donner \u00e0 votre assistant le contexte utile \u00e0 la pr\u00e9paration de votre candidature et de votre offre.\n\nListez les documents, consultez des passages avec leurs r\u00e9f\u00e9rences et r\u00e9cup\u00e9rez les fichiers originaux. La disponibilit\u00e9 des pi\u00e8ces et leur extraction varient selon la consultation. Les liens de t\u00e9l\u00e9chargement expirent rapidement ; l\u2019enregistrement et l\u2019aper\u00e7u d\u00e9pendent des outils disponibles dans votre application.\n\nLes recherches et les documents disponibles ne n\u00e9cessitent pas de compte Instao. Des limites de recherche et de capacit\u00e9 s\u2019appliquent. Instao ne d\u00e9pose pas de candidature, ne contacte pas l\u2019acheteur, ne cr\u00e9e pas de compte et ne g\u00e8re pas de projet de r\u00e9ponse. La pertinence d\u2019un r\u00e9sultat ne garantit pas votre \u00e9ligibilit\u00e9 : v\u00e9rifiez les exigences importantes dans les pi\u00e8ces de consultation.",
        "category": "Business & Operations",
        "capabilities": [
          "Rechercher des march\u00e9s publics fran\u00e7ais",
          "Comparer des consultations et leurs exigences",
          "Consulter et t\u00e9l\u00e9charger les documents disponibles"
        ],
        "websiteURL": "https://www.instao.fr/",
        "supportURL": "https://www.instao.fr/contact",
        "defaultPrompt": [
          "Trouve-moi des appels d\u2019offres ouverts pour la maintenance du chauffage dans les b\u00e2timents publics en France.",
          "Aide-moi \u00e0 pr\u00e9parer une r\u00e9ponse \u00e0 cet appel d\u2019offres \u00e0 partir des pi\u00e8ces de consultation.",
          "J\u2019ai ce r\u00e8glement de consultation. Retrouve l\u2019appel d\u2019offres et les autres documents."
        ],
        "logo": "./assets/logo.png",
        "composerIcon": "./assets/logo.png",
        "logoDark": "./assets/logo-dark.png",
        "composerIconDark": "./assets/logo-dark.png",
        "developerName": "Instao",
        "privacyPolicyURL": "https://www.instao.fr/confidentialite-plugin-instao",
        "termsOfServiceURL": "https://www.instao.fr/conditions-generales"
      },
      "review": {
        "commerce": false,
        "commerce_description": "This release has no purchases, subscriptions, checkout, payment tools or account-linking flow. Anonymous searches and available documents are provided subject to usage and capacity limits. Separate paid services on the Instao website are outside this release; the plugin does not promote upgrades or initiate their purchase.",
        "test_cases": {
          "positive": [
            {
              "description": "P1: Search-only shortlist from a normal business need. Fresh conversation, installed production plugin, no Instao account. One user turn; no document or follow-up inspection is requested. Live results vary.",
              "prompt": "On fait de la maintenance du chauffage dans les b\u00e2timents publics, partout en France. Tu peux me trouver quelques appels d\u2019offres ouverts ?",
              "tools_triggered": "instao_tenders_search",
              "expected_behavior": "Search for heating maintenance using a concise French query. Return a short list of genuinely relevant open consultations from the results, with subject, buyer, location when available, deadline in Europe/Paris and usable consultation link. Use only search results for this case; do not expand into exact lookups, document reading or downloading. Describe a selection, not an exhaustive catalog or guaranteed eligibility. Do not invent missing facts; report an empty result or service error honestly."
            },
            {
              "description": "P2: Search, then conversational questions using consultation metadata only. Fresh conversation. After the shortlist, send these two follow-ups in order: [\"Celui de Thionville Fensch Agglom\u00e9ration m\u2019int\u00e9resse. Quelle est la date limite et combien de temps dure le march\u00e9 ?\", \"Quels sont les lots ? Nous faisons surtout du nettoyage de bureaux : lequel serait le plus adapt\u00e9 et quel montant est indiqu\u00e9 ?\"]. Verified open example on 30 September 2026: Thionville Fensch Agglom\u00e9ration, Nettoyage des locaux communautaires, deadline 2 November 2026 at 16:00 Europe/Paris. Select it by its human buyer name from the results; no ID is supplied by the user. If no longer returned, refresh the example rather than inventing it.",
              "prompt": "Nous faisons du nettoyage de locaux en Moselle. Tu peux me trouver quelques appels d\u2019offres ouverts ?",
              "tools_triggered": "instao_tenders_search, instao_tender_get",
              "expected_behavior": "First search for cleaning with departments=[\"57\"], retain that geography and exclude unrelated matches. On the follow-ups retrieve the selected returned reference with instao_tender_get. Answer only from available metadata: for the verified example, deadline 2 November 2026 at 16:00 Europe/Paris, duration 25 months (1 January 2027 to 31 January 2029), renewal mentioned with details unspecified, and three lots (aquatic centres, early-childhood buildings, administrative/technical buildings). Identify lot 3 as the office-cleaning fit, while describing its actual broader scope rather than certifying eligibility. The returned lot-3 price range is EUR 50,000 to EUR 300,000; report it as the indexed range with any missing tax/time basis qualified, not an invented annual budget or a guaranteed contract value. Do not add the other lots to that amount. No file retrieval is needed. Say what remains unknown rather than claiming a document review."
            },
            {
              "description": "P3: Discover a different category, then obtain an original file. Fresh conversation. After the search send: \"Le march\u00e9 de l\u2019ADEME m\u2019int\u00e9resse. Tu peux me r\u00e9cup\u00e9rer le r\u00e8glement de consultation ?\". Verified open example: ADEME, Conception et animation d\u2019un dispositif de formation sur l\u2019adaptation au changement climatique, buyer reference 2026AC000076, deadline 26 October 2026 at 12:00 Europe/Paris. The human selects the buyer in the shortlist, not a technical ID.",
              "prompt": "On propose des formations sur l\u2019adaptation au changement climatique. Tu peux nous trouver des appels d\u2019offres ouverts ?",
              "tools_triggered": "instao_tenders_search, instao_tender_files_list, instao_tender_file_download",
              "expected_behavior": "Search first for the training activity and present relevant returned open bids. Resolve the ADEME consultation from the conversation (exact get is allowed), list its available files and select the actual RC. The verified original is 2026AC000076 RC.odt, not the converted RC.docx. Download the original returned file ID, return its named resource and expiry, and preserve the original filename. With host file tools fetch once and provide the saved file; otherwise give a fresh usable download link. Do not silently substitute a conversion, imply every host previews ODT, reuse a consumed single-use URL or claim a nonexistent file."
            },
            {
              "description": "P4: Search from a buyer name heard by the user, then draft a response from real documents in the host. Fresh conversation. After the search send: \"Celui de l\u2019EPSMS du Pays de Challans m\u2019int\u00e9resse. Aide-moi \u00e0 pr\u00e9parer une r\u00e9ponse pour le lot chauffage et ventilation : lis les pi\u00e8ces, propose un plan de m\u00e9moire technique et r\u00e9dige les parties sur l\u2019organisation de la maintenance et le suivi des interventions. Dis-moi ce qu\u2019il te manque sur notre entreprise pour compl\u00e9ter la r\u00e9ponse.\". Verified open example: EPSMS du Pays de Challans, Maintenance des installations de chauffage, ventilation et climatisation, deadline 23 October 2026 at 17:00 Europe/Paris. No company certifications, staffing or response commitments have been supplied.",
              "prompt": "On fait de la maintenance du chauffage et de la ventilation. J\u2019ai entendu parler d\u2019un appel d\u2019offres de l\u2019EPSMS du Pays de Challans : tu peux le retrouver ?",
              "tools_triggered": "instao_tenders_search, instao_tender_get, instao_tender_files_list, instao_tender_file_read",
              "expected_behavior": "Search for heating maintenance with buyer Challans (or an equivalent concise buyer/activity search), select the returned EPSMS bid on the follow-up, retrieve its metadata, list and read the actual consultation letter/RC and relevant CCTP passages for lot 1, Chauffage, ECS et ventilation. Produce a proposed technical-response outline and real draft prose for maintenance organization and intervention tracking, with placeholders or questions for unknown company facts. Ground requirements in read files and verified sections/pages or brief actual quotations; never cite extraction offsets as PDF pages. For the verified files identify the mandatory visit (consultation letter section D), requested response content (F), evaluation criteria (J), and relevant preventive/corrective/reporting requirements in the CCTP. Distinguish buyer-required response times from commitments the company has confirmed. Do not invent staffing, references, certification or eligibility. This is assistant drafting in the host, not an Instao stored response project, completed compliant bid, buyer message or submission."
            },
            {
              "description": "P5: Identify an open consultation from one real user-uploaded RC, then provide the original DCE download. Fresh conversation with only the attached PDF, no prior P2 context and no catalog ID/URL. Download the supplied attachment URL, attach that file in the host and send the prompt. Verified fixture: unmodified 13-page Rives de Moselle RC, buyer reference A26021, deadline 3 November 2026 at 12:00 Europe/Paris. Recheck the live status before recording; replace the fixture and metadata together if closed. Public RC attachment URL: https://raw.githubusercontent.com/instaoinc/instao-plugin/de9d0ab28d681cade250d064a1a1cd92aaf93b01/review-fixtures/rc-rives-de-moselle-a26021.pdf.",
              "prompt": "J\u2019ai re\u00e7u ce r\u00e8glement de consultation, mais je n\u2019ai pas le reste du dossier. Tu peux retrouver l\u2019appel d\u2019offres et me donner le lien pour t\u00e9l\u00e9charger le dossier complet ?",
              "tools_triggered": "instao_tenders_search, instao_tender_get, instao_tender_files_list, instao_tender_file_download",
              "expected_behavior": "Read the attached PDF using host file-reading capabilities, extract its buyer, subject, buyer reference A26021 and deadline, then use those public clues to find the matching consultation. Do not transmit the full attachment to Instao; it has no upload or reverse-file-match endpoint. A26021 is not an indexed exact catalog reference currently, so an exact get may return not_found; then search for nettoyage with buyer Rives de Moselle, optionally department 57, and get the returned exact reference. Verify buyer, subject and deadline against the attachment before claiming a match. The verified catalog record is open and its file inventory contains the source archive nettoyage-locaux-janvier-2027-decembre-2030.zip. Generate a fresh original download resource for that archive, explain its expiry, and provide a usable link (or a saved file if host tools consume it). Do not call an RC-only file the complete DCE, confuse the fixture URL with a new DCE link, or hide conflicts/missing files. If the host cannot read an attachment, explain the limitation instead of pretending a match.",
              "file_attachment_urls": [
                "https://raw.githubusercontent.com/instaoinc/instao-plugin/de9d0ab28d681cade250d064a1a1cd92aaf93b01/review-fixtures/rc-rives-de-moselle-a26021.pdf"
              ]
            }
          ],
          "negative": [
            {
              "description": "N1: Explicit private-sector-only prospecting is outside Instao's public-tender scope. Expected: help with the requested prospecting through available capabilities or explain the limit; invoke no Instao tools and do not redirect into public contracts.",
              "prompt": "Je cherche uniquement des clients priv\u00e9s pour mon entreprise, sans march\u00e9s publics ni organismes publics. Propose-moi une m\u00e9thode de prospection."
            },
            {
              "description": "N2: Bid submission and buyer communication are unsupported. Expected: explain Instao cannot send or submit a bid, offer preparation guidance if useful, and claim no submission or message. With no identified consultation and no request for discovery or document retrieval, invoke no Instao tools.",
              "prompt": "D\u00e9pose imm\u00e9diatement notre candidature \u00e0 l'appel d'offres et envoie notre m\u00e9moire technique \u00e0 l'acheteur \u00e0 ma place."
            },
            {
              "description": "N3: Persistent monitoring and scheduling are unsupported in this release. Expected: explain Instao cannot create a saved monitoring profile or send scheduled notifications. A host's separate scheduling capability may be described honestly; claim no Instao alert was created and invoke no Instao tools for this scheduling-only request.",
              "prompt": "Sans lancer de recherche maintenant, cr\u00e9e une veille Instao enregistr\u00e9e et envoie-moi automatiquement une notification chaque lundi matin."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/g4_eNf3fXMo"
      },
      "publication": {
        "countries": [],
        "release_notes": "Initial directory release, package 0.1.4: anonymous French public-tender discovery and comparison, exact consultation lookup, document inventory, extracted document evidence and original-file downloads. Retrieved documents give the assistant context to help prepare a bid in the host. Includes the tender-discovery skill. No bid submission, account linking, response-project management or scheduled notifications. Listing links now point to the official Instao website, contact, privacy and terms pages; category and capabilities describe business tender discovery. Review examples cover search-only discovery, conversational metadata questions, original document retrieval, evidence-based response drafting in the host, and identification from an attached public RC followed by DCE download.",
        "translations": {
          "fr-FR": {
            "subtitle": "Trouvez et pr\u00e9parez vos offres",
            "description": "Les march\u00e9s publics peuvent aider une entreprise \u00e0 d\u00e9velopper son activit\u00e9 et \u00e0 trouver de nouveaux contrats en France. Instao aide votre assistant \u00e0 rechercher des appels d\u2019offres adapt\u00e9s \u00e0 votre activit\u00e9 et \u00e0 votre zone d\u2019intervention, comparer les opportunit\u00e9s et v\u00e9rifier les exigences. Vous pr\u00e9parez d\u00e9j\u00e0 une r\u00e9ponse ou n\u2019avez que quelques pi\u00e8ces ? Retrouvez une consultation, consultez ses documents disponibles et t\u00e9l\u00e9chargez les originaux pour donner \u00e0 votre assistant le contexte utile \u00e0 la pr\u00e9paration de votre candidature et de votre offre.\n\nListez les documents, consultez des passages avec leurs r\u00e9f\u00e9rences et r\u00e9cup\u00e9rez les fichiers originaux. La disponibilit\u00e9 des pi\u00e8ces et leur extraction varient selon la consultation. Les liens de t\u00e9l\u00e9chargement expirent rapidement ; l\u2019enregistrement et l\u2019aper\u00e7u d\u00e9pendent des outils disponibles dans votre application.\n\nLes recherches et les documents disponibles ne n\u00e9cessitent pas de compte Instao. Des limites de recherche et de capacit\u00e9 s\u2019appliquent. Instao ne d\u00e9pose pas de candidature, ne contacte pas l\u2019acheteur, ne cr\u00e9e pas de compte et ne g\u00e8re pas de projet de r\u00e9ponse. La pertinence d\u2019un r\u00e9sultat ne garantit pas votre \u00e9ligibilit\u00e9 : v\u00e9rifiez les exigences importantes dans les pi\u00e8ces de consultation."
          }
        }
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: cc8cdadbe3bb5fc98a85133f4b420db9220147a1c3faaa6ae4bf493437a508d2