{
  "$schema": "https://developers.openai.com/apps-sdk/schemas/chatgpt-app-submission.v1.json",
  "app_info": {
    "category": "BUSINESS",
    "description": "Supplier intake and hidden-inventory matching for travel/resort/property offers.",
    "display_name": "AI Inventory Network",
    "subtitle": "Normalize supplier inventory"
  },
  "negative_test_cases": [
    {
      "description": "Do not trigger the plugin for an unsupported or externally mutating request.",
      "expected_output": "The plugin should not be invoked for this request because it is outside the supported analysis workflow or requires an unavailable external action.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": null,
      "user_prompt": "Diagnose my illness."
    },
    {
      "description": "Do not trigger the plugin for an unsupported or externally mutating request.",
      "expected_output": "The plugin should not be invoked for this request because it is outside the supported analysis workflow or requires an unavailable external action.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": null,
      "user_prompt": "Publish these listings to Airbnb."
    },
    {
      "description": "Do not trigger the plugin for an unsupported or externally mutating request.",
      "expected_output": "The plugin should not be invoked for this request because it is outside the supported analysis workflow or requires an unavailable external action.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": null,
      "user_prompt": "Charge a traveler for this booking."
    }
  ],
  "schema_version": 1,
  "test_cases": [
    {
      "description": "Exercise create_listing_requirements for a supported AI Inventory Network workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "create_listing_requirements",
      "user_prompt": "Generate a supplier intake for these resort rooms."
    },
    {
      "description": "Exercise estimate_margin_fields for a supported AI Inventory Network workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "estimate_margin_fields",
      "user_prompt": "Normalize this supplier inventory."
    },
    {
      "description": "Exercise generate_supplier_intake for a supported AI Inventory Network workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "generate_supplier_intake",
      "user_prompt": "Identify the fields needed to estimate margin."
    },
    {
      "description": "Exercise normalize_inventory for a supported AI Inventory Network workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "normalize_inventory",
      "user_prompt": "Create listing requirements for this inventory."
    },
    {
      "description": "Exercise normalize_inventory for a supported AI Inventory Network workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "normalize_inventory",
      "user_prompt": "Prepare supplier intake requirements for this offer."
    }
  ],
  "tools": {
    "create_listing_requirements": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    },
    "estimate_margin_fields": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    },
    "generate_supplier_intake": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    },
    "normalize_inventory": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    }
  }
}