# Pack manifest

> An installable vertical application.

`@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](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#agentdecl)): Agents this pack contributes. Each is a full agent definition (declarative).

- `flows` (array of [FlowDecl](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#flowdecl)): Task flows this pack contributes (references to flow documents).

- `tools` (array of [ToolDecl](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#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](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#guardraildecl))

- `memorySchemas` (array of [MemorySchemaDecl](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#memoryschemadecl)): Fact type schemas this pack defines. Registered so the memory layer knows how to validate writes.

- `capabilities` (array of [CapabilityDecl](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#capabilitydecl)): Capability declarations named by this pack (referenced by pack agents).

- `ui` ([UiMetadata](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#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](https://docs.kindgi.com/v0.1.9/reference/schemas/pack.md#packsignature))

## Definitions

### AgentDecl

- `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)

### FlowDecl

- `path` (string, required): Relative path (within the pack bundle) to a JSON file conforming to flow\.schema.json.

### ToolDecl

One of:

- an object
  - `path` (string, required): Relative path to a JSON file conforming to tool.schema.json.
- `https://kindgi.com/schemas/v1/tool.schema.json`

### GuardrailDecl

One of:

- an object
  - `path` (string, required)
- `https://kindgi.com/schemas/v1/guardrail.schema.json`

### MemorySchemaDecl

- `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.

### CapabilityDecl

- `id` (string, required)
- `declaration` (`https://kindgi.com/schemas/v1/capability.schema.json`, required)

### UiMetadata

- `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.

### PackSignature

- `algorithm` (`"ed25519"`, required)
- `keyId` (string, required)
- `value` (string, required)
- `signedAt` (string (date-time), required)
