Skip to content

Pack manifest

@kindgi/specs/pack.schema.json, schema version 1.1.0.

An installable vertical application. Bundles agents, tools, guardrails, memory schemas, capability declarations, and UI metadata — all as data. Installation is 'load this manifest into tenant config'. Pack tools reach the runtime over MCP (mcpEndpoint), as a handler artifact (codeArtifactRef), or as a declarative spec; pack code runs outside the runtime server process, in a separate process or container.

  • manifestVersion ("1.0", required): Version of the pack manifest schema itself. Bumped on breaking manifest changes.
  • id (string, required): Globally unique pack id (dotted lowercase, e.g. 'com.acme.support').
  • version (string, required)
  • name (string, required)
  • description (string)
  • author (object)
    • name (string)
    • url (string (uri))
    • email (string (email))
  • homepage (string (uri))
  • license (string)
  • requiresOsVersion (string): Semver range of Kindgi runtime versions this pack is compatible with (e.g. '>=1.0.0 <2.0.0').
  • agents (array of AgentDecl): Agents this pack contributes. Each is a full agent definition (declarative).
  • flows (array of FlowDecl): Task flows this pack contributes (references to flow documents).
  • tools (array of ToolDecl): Tools this pack contributes. Tools that run pack code point at it through an mcpEndpoint (the pack's MCP server) or a codeArtifactRef (a handler artifact); declarative tools carry a spec.
  • guardrails (array of GuardrailDecl)
  • memorySchemas (array of MemorySchemaDecl): Fact type schemas this pack defines. Registered so the memory layer knows how to validate writes.
  • capabilities (array of CapabilityDecl): Capability declarations named by this pack (referenced by pack agents).
  • ui (UiMetadata): Optional metadata for how Kindgi UIs display this pack (icon, category, tags, external app URL).
  • requiredNeeds (array of string): Context slots this pack requires the tenant to have configured (e.g. 'model:vision-capable', 'blob', 'compliance-provider'). Install fails if any is unmet.
  • permissions (array of string): Permissions this pack asks the admin to grant on install (e.g. 'memory:write:facts', 'blob:write', 'events:emit'). Enforced by the tenant policy engine.
  • signature (PackSignature)
  • id (string, required)
  • name (string)
  • description (string)
  • instructions (string, required): System prompt / instructions for the agent.
  • capabilities (string or https://kindgi.com/schemas/v1/capability.schema.json, required): Reference to a capability declaration by id, or an inline capability declaration.
  • tools (array of https://kindgi.com/schemas/v1/agent.schema.json#/$defs/ToolRef): Tools this agent is allowed to call, as { id, version } references — the same ToolRef shape as agent.schema.json. Schema-version 1.1.0 replaced the bare-string tool ids of 1.0.0.
  • memory (map of any): Memory binding configuration (which fact types the agent reads/writes, retrieval hints).
  • guardrails (array of string): Guardrail ids that apply to this agent.
  • exitConditions (object)
    • maxTurns (integer)
    • maxToolCalls (integer)
    • maxDurationMs (integer)
  • path (string, required): Relative path (within the pack bundle) to a JSON file conforming to flow.schema.json.

Type: object or https://kindgi.com/schemas/v1/tool.schema.json

Type: object or https://kindgi.com/schemas/v1/guardrail.schema.json

  • factType (string, required): Fact type identifier this schema governs.
  • schema (object, required): JSON Schema (Draft 2020-12) for the fact content.
  • retrieve ("semantic" | "recency" | "exact" | "flow" | "none"): Default retrieval hint for facts of this type.
  • id (string, required)
  • declaration (https://kindgi.com/schemas/v1/capability.schema.json, required)
  • icon (string)
  • category (string)
  • tags (array of string)
  • externalAppUrl (string (uri)): URL of the pack's own user-facing UI (separate app consuming the Kindgi client SDK). A pack's own drafting UI, for example, lives here — not embedded in Kindgi's own UI.
  • algorithm ("ed25519", required)
  • keyId (string, required)
  • value (string, required)
  • signedAt (string (date-time), required)