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 anmcpEndpoint(the pack's MCP server) or acodeArtifactRef(a handler artifact); declarative tools carry aspec.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)
Definitions
Section titled “Definitions”AgentDecl
Section titled “AgentDecl”id(string, required)name(string)description(string)instructions(string, required): System prompt / instructions for the agent.capabilities(string orhttps://kindgi.com/schemas/v1/capability.schema.json, required): Reference to a capability declaration by id, or an inline capability declaration.tools(array ofhttps://kindgi.com/schemas/v1/agent.schema.json#/$defs/ToolRef): Tools this agent is allowed to call, as{ id, version }references — the sameToolRefshape asagent.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
Section titled “FlowDecl”path(string, required): Relative path (within the pack bundle) to a JSON file conforming to flow.schema.json.
ToolDecl
Section titled “ToolDecl”Type: object or https://kindgi.com/schemas/v1/tool.schema.json
GuardrailDecl
Section titled “GuardrailDecl”Type: object or https://kindgi.com/schemas/v1/guardrail.schema.json
MemorySchemaDecl
Section titled “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
Section titled “CapabilityDecl”id(string, required)declaration(https://kindgi.com/schemas/v1/capability.schema.json, required)
UiMetadata
Section titled “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
Section titled “PackSignature”algorithm("ed25519", required)keyId(string, required)value(string, required)signedAt(string (date-time), required)