{
  "arp": "0",
  "generated_from": "src/lib/developers/reference.ts",
  "tools": [
    {
      "name": "ask_ark",
      "title": "Ask the ARK",
      "description": "Ask the connected ARK a question and get a retrieval-augmented answer in the creator’s voice. Billable to the ARK owner.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "description": "The question or prompt for the ARK."
          }
        },
        "required": [
          "question"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ark_profile",
      "title": "Get ARK profile",
      "description": "Get the connected ARK’s public profile: name, tagline, mastery level, primary domain, and how many shareable insights it has.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search_ark_topics",
      "title": "Search ARK topics",
      "description": "Discover what the ARK knows: its topic coverage over shareable insights (no private/vault content is returned). Optionally filter by a substring.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Optional substring to filter topics."
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ark_schema",
      "title": "Get the ARK Record Protocol schema",
      "description": "The published ARK Record Protocol v0: the record and scope JSON Schemas, the facets and kinds, authorship, trust tiers, privacy and error codes. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_ark_records",
      "title": "List ARK records",
      "description": "A page of the connected ARK's records as protocol envelopes, within this credential's privacy ceiling (vault content is never returned). Needs the read:records scope. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "object",
            "description": "Optional. Narrows the records (it can never widen what the credential may read). Keys: facets, kinds, domains, topics, authorship, privacy, record_refs, status (lists), trust_min (T0 to T4), since, until (dates), provenance {owner_sources, documents, sessions, integrations, grants, credential_kinds}. Record format: https://www.arkz.ai/protocol/v0/record.schema.json"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Page size, 1 to 100 (default 50)."
          },
          "after": {
            "type": "string",
            "description": "The next_after value of the previous page."
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ark_record",
      "title": "Get one ARK record",
      "description": "One record of the connected ARK as a protocol envelope, with its lineage. Needs the read:records scope. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
      "inputSchema": {
        "type": "object",
        "properties": {
          "record": {
            "type": "string",
            "description": "The record id (rec_<uuid>) or its ref."
          }
        },
        "required": [
          "record"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ark_provenance",
      "title": "Get ARK provenance",
      "description": "Where the connected ARK's readable records came from, with counts: owner sources, documents, sessions, integrations, grants, credential kinds, trust tiers and authorship. Never a record's text. Needs the read:records scope. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "propose_ark_record",
      "title": "Propose one ARK record",
      "description": "Proposes one record to the connected ARK as a protocol envelope (arp \"0\", ark, facet, kind, authorship, content, provenance.content_sha256). Nothing is spent and nothing enters the ARK until its owner accepts it; trust_tier and id are assigned by ARKZ and ignored. Answers {proposal_id, status, lane}, {status: \"duplicate\", duplicate_of}. Needs the write:proposals scope. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
      "inputSchema": {
        "type": "object",
        "properties": {
          "envelope": {
            "type": "object",
            "description": "One ARK Record v0 envelope. provenance.content_sha256 is the lower-case hex SHA-256 of the canonical content and is recomputed by ARKZ. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
            "required": [
              "arp",
              "ark",
              "facet",
              "kind",
              "authorship",
              "content",
              "provenance"
            ]
          }
        },
        "required": [
          "envelope"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "propose_ark_records",
      "title": "Propose ARK records in a batch",
      "description": "Proposes up to 100 records to the connected ARK in one call, one result per envelope in order; one refused item never stops the rest. Nothing is spent until the owner accepts. Needs the write:proposals scope. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
      "inputSchema": {
        "type": "object",
        "properties": {
          "envelopes": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "description": "One ARK Record v0 envelope. provenance.content_sha256 is the lower-case hex SHA-256 of the canonical content and is recomputed by ARKZ. Record format: https://www.arkz.ai/protocol/v0/record.schema.json",
              "required": [
                "arp",
                "ark",
                "facet",
                "kind",
                "authorship",
                "content",
                "provenance"
              ]
            },
            "description": "1 to 100 envelopes."
          }
        },
        "required": [
          "envelopes"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_ark_proposal_status",
      "title": "Check your proposals",
      "description": "The status of proposals THIS credential wrote (a source key sees its grant's), status only: proposal_id, status (proposed, held, accepted, rejected, expired; not_found for an id that is not yours), created_at, decided_at. Send proposal_ids (1 to 100) or list newest first with since, limit and the previous page's next as after. Never content, a reason or a charge; one ledger row, no quota, free. Needs the write:proposals scope. Record format: https://www.arkz.ai/protocol/v0/record.schema.json. Documentation: https://www.arkz.ai/developers",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposal_ids": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "1 to 100 proposal ids; the answer keeps their order."
          },
          "since": {
            "type": "string",
            "format": "date-time",
            "description": "Listing only: proposals created at or after this time."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Listing only: page size, 1 to 100 (default 50)."
          },
          "after": {
            "type": "string",
            "maxLength": 200,
            "description": "Listing only: the next value of the previous page."
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    }
  ]
}
