{"version":3,"sources":["../../src/integrations/index.ts"],"names":[],"mappings":";;;AAoDO,SAAS,sBAAA,CACd,MAAA,EACA,SAAA,EACA,KAAA,EACA,OAAA,EACO;AACP,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,IAAS,EAAC;AAC9B,EAAA,MAAM,eACJ,KAAA,CAAM,MAAA,GAAS,CAAA,GAAI,CAAC,EAAE,IAAA,EAAM,OAAA,CAAQ,UAAA,IAAc,SAAA,EAAW,SAAS,CAAC,GAAG,KAAK,CAAA,EAAG,IAAI,EAAC;AACzF,EAAA,OAAO,OAAO,KAAA,CAAM;AAAA,IAClB,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,YAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAI,MAAM,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,EAAU,KAAA,CAAM,QAAA,EAAS,GAAI,EAAC;AAAA,IACnE,GAAI,QAAQ,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,EAAU,OAAA,CAAQ,QAAA,EAAS,GAAI,EAAC;AAAA,IACvE,GAAI,QAAQ,SAAA,KAAc,MAAA,GAAY,EAAE,SAAA,EAAW,OAAA,CAAQ,SAAA,EAAU,GAAI;AAAC,GAC3E,CAAA;AACH;AAOO,SAAS,mBAAA,CACd,MAAA,EACA,KAAA,EACA,OAAA,EACO;AACP,EAAA,OAAO,sBAAA,CAAuB,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO,OAAO,CAAA;AAChE;AAGO,SAAS,mBAAA,CACd,MAAA,EACA,KAAA,EACA,OAAA,EACO;AACP,EAAA,OAAO,sBAAA,CAAuB,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO,OAAO,CAAA;AAChE;AAGO,SAAS,sBAAA,CACd,MAAA,EACA,KAAA,EACA,OAAA,EACO;AACP,EAAA,OAAO,sBAAA,CAAuB,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,OAAO,CAAA;AACnE;AAiBO,SAAS,aAAA,CAAc,QAAgB,OAAA,EAAkC;AAC9E,EAAA,MAAM,2BAAmC,IAAI,GAAA,CAAe,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAC9F,EAAA,OAAO,MAAA,CAAO,EAAA,CAAG,CAAC,KAAA,KAA0B;AAC1C,IAAA,IAAI,MAAM,OAAA,KAAY,MAAA,IAAa,SAAS,GAAA,CAAI,KAAA,CAAM,IAAiB,CAAA,EAAG;AACxE,MAAA,OAAA,CAAQ,MAAA,CAAO,MAAM,OAAO,CAAA;AAAA,IAC9B;AAAA,EACF,CAAC,CAAA;AACH;AAuBO,SAAS,aAAA,CAAc,QAAgB,OAAA,EAAkC;AAC9E,EAAA,OAAO,MAAA,CAAO,EAAA,CAAG,CAAC,KAAA,KAA0B;AAC1C,IAAA,IAAI,KAAA,CAAM,YAAY,MAAA,EAAW;AAC/B,MAAA;AAAA,IACF;AACA,IAAA,OAAA,CAAQ,MAAA,CAAO;AAAA,MACb,SAAS,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAM,OAAA,EAAQ;AAAA,MAC9C,SAAA,EAAW,WAAA;AAAA,MACX,QAAQ,KAAA,CAAM,IAAA;AAAA,MACd,UAAA,EAAY,SAAA;AAAA,MACZ,UAAA,EAAY,EAAE,MAAA,EAAQ,QAAA,EAAU,OAAO,UAAA;AAAW,KACnD,CAAA;AAAA,EACH,CAAC,CAAA;AACH;AAgBO,SAAS,kBAAA,CAAmB,QAAgB,UAAA,EAAwC;AACzF,EAAA,OAAO,MAAA,CAAO,EAAA,CAAG,CAAC,KAAA,KAA0B;AAC1C,IAAA,UAAA,CAAW,OAAA,CAAQ;AAAA,MACjB,IAAA,EAAM,CAAA,OAAA,EAAU,KAAA,CAAM,IAAI,CAAA,CAAA;AAAA,MAC1B,GAAI,MAAM,OAAA,KAAY,MAAA,GAAY,EAAE,OAAA,EAAS,KAAA,CAAM,OAAA,EAAQ,GAAI,EAAC;AAAA,MAChE,IAAI,KAAA,CAAM;AAAA,KACX,CAAA;AAAA,EACH,CAAC,CAAA;AACH","file":"index.cjs","sourcesContent":["/**\n * Framework and sibling integrations for Krikos.\n *\n * Two kinds of integration live here, both purely structural: Krikos imports nothing from any\n * framework or sibling package, it matches the minimal shape it needs and the host supplies a\n * real object.\n *\n * 1. Framework registration. Register an agent built on Hermes Agent, Mastra, the Vercel AI SDK,\n *    LangChain, or anything else, as an identity in the registry, mapping its tools to declared\n *    capabilities so the same fleet inventory spans every framework.\n * 2. Sibling bridges. Forward Krikos lifecycle events to the rest of the @takk stack: revoke an\n *    agent's API keys in @takk/keymesh on revocation, record its lifecycle as bi-temporal facts\n *    in @takk/gaptime, or surface lifecycle signals to @takk/behavioralai, @takk/modelchain,\n *    @takk/noeticos, and @takk/racs.\n *\n * @packageDocumentation\n */\n\nimport type { Agent, AuditKind, Capability, Issuer, Krikos, TelemetryEvent } from '../types.js';\n\n/** Minimal structural shape of a framework agent that can be registered. */\nexport interface FrameworkAgentLike {\n  /** The agent's name. */\n  readonly name: string;\n  /** Optional tool names the agent exposes, each mapped to a capability action. */\n  readonly tools?: readonly string[];\n  /** Optional metadata. */\n  readonly metadata?: Readonly<Record<string, string>>;\n}\n\n/** Options for registering a framework agent. */\nexport interface RegisterOptions {\n  /** The issuing principal. */\n  readonly issuer: Issuer;\n  /** The capability name under which the agent's tools are granted. Defaults to the framework. */\n  readonly capability?: string;\n  /** Whether to issue the agent directly active. Defaults to false (provisioned). */\n  readonly activate?: boolean;\n  /** Optional expiration instant (epoch ms) or null. */\n  readonly expiresAt?: number | null;\n}\n\n/**\n * Registers a framework agent as a Krikos identity, deriving one capability whose actions are the\n * agent's tool names. The single primitive behind the Hermes, Mastra, and LangChain helpers.\n *\n * @param krikos - The registry to issue into.\n * @param framework - The framework tag, for example `hermes`.\n * @param agent - The structural framework agent.\n * @param options - Issuer and registration options.\n * @returns The issued {@link Agent}.\n */\nexport function registerFrameworkAgent(\n  krikos: Krikos,\n  framework: string,\n  agent: FrameworkAgentLike,\n  options: RegisterOptions,\n): Agent {\n  const tools = agent.tools ?? [];\n  const capabilities: Capability[] =\n    tools.length > 0 ? [{ name: options.capability ?? framework, actions: [...tools] }] : [];\n  return krikos.issue({\n    name: agent.name,\n    issuer: options.issuer,\n    capabilities,\n    framework,\n    ...(agent.metadata !== undefined ? { metadata: agent.metadata } : {}),\n    ...(options.activate !== undefined ? { activate: options.activate } : {}),\n    ...(options.expiresAt !== undefined ? { expiresAt: options.expiresAt } : {}),\n  });\n}\n\n/**\n * Registers a Hermes Agent instance as a Krikos identity. Hermes Agent is single-tenant by\n * design, so an enterprise running many Hermes instances uses Krikos as the control plane that\n * inventories and governs them.\n */\nexport function registerHermesAgent(\n  krikos: Krikos,\n  agent: FrameworkAgentLike,\n  options: RegisterOptions,\n): Agent {\n  return registerFrameworkAgent(krikos, 'hermes', agent, options);\n}\n\n/** Registers a Mastra agent as a Krikos identity. */\nexport function registerMastraAgent(\n  krikos: Krikos,\n  agent: FrameworkAgentLike,\n  options: RegisterOptions,\n): Agent {\n  return registerFrameworkAgent(krikos, 'mastra', agent, options);\n}\n\n/** Registers a LangChain agent as a Krikos identity. */\nexport function registerLangChainAgent(\n  krikos: Krikos,\n  agent: FrameworkAgentLike,\n  options: RegisterOptions,\n): Agent {\n  return registerFrameworkAgent(krikos, 'langchain', agent, options);\n}\n\n/** Structural shape of a credential manager such as @takk/keymesh. */\nexport interface KeymeshLike {\n  /** Revokes all credentials associated with the agent. */\n  revoke(agentId: string): unknown;\n}\n\n/**\n * Bridges revocation: when an agent is revoked or expired in Krikos, revoke its credentials in a\n * keymesh-like manager, so a retired identity cannot keep using live API keys. Returns an\n * unsubscribe function.\n *\n * @param krikos - The registry to observe.\n * @param keymesh - The structural credential manager.\n * @returns An unsubscribe function.\n */\nexport function keymeshBridge(krikos: Krikos, keymesh: KeymeshLike): () => void {\n  const terminal: ReadonlySet<AuditKind> = new Set<AuditKind>(['agent.revoked', 'agent.expired']);\n  return krikos.on((event: TelemetryEvent) => {\n    if (event.agentId !== undefined && terminal.has(event.kind as AuditKind)) {\n      keymesh.revoke(event.agentId);\n    }\n  });\n}\n\n/** Structural shape of a bi-temporal memory such as @takk/gaptime. */\nexport interface GaptimeLike {\n  /** Asserts one fact; the shape is intentionally loose to match the sibling without importing it. */\n  assert(input: {\n    subject: { type: string; name: string };\n    predicate: string;\n    object: string;\n    objectKind?: 'literal';\n    provenance: { source: string; actor?: string };\n  }): unknown;\n}\n\n/**\n * Bridges lifecycle to memory: record each Krikos lifecycle event as a bi-temporal fact in a\n * gaptime-like store, so \"what could this agent do, and when\" becomes a time-travellable record.\n * Returns an unsubscribe function.\n *\n * @param krikos - The registry to observe.\n * @param gaptime - The structural bi-temporal store.\n * @returns An unsubscribe function.\n */\nexport function gaptimeBridge(krikos: Krikos, gaptime: GaptimeLike): () => void {\n  return krikos.on((event: TelemetryEvent) => {\n    if (event.agentId === undefined) {\n      return;\n    }\n    gaptime.assert({\n      subject: { type: 'agent', name: event.agentId },\n      predicate: 'lifecycle',\n      object: event.kind,\n      objectKind: 'literal',\n      provenance: { source: 'krikos', actor: 'registry' },\n    });\n  });\n}\n\n/** Structural shape of a behavioral observer such as @takk/behavioralai. */\nexport interface BehavioralLike {\n  /** Observes one event; the shape is loose to match the sibling without importing it. */\n  observe(event: { kind: string; subject?: string; at: number }): unknown;\n}\n\n/**\n * Bridges lifecycle to behavioral observation: forward each Krikos event to a behavioralai-like\n * observer, so identity churn becomes a behavioral signal. Returns an unsubscribe function.\n *\n * @param krikos - The registry to observe.\n * @param behavioral - The structural behavioral observer.\n * @returns An unsubscribe function.\n */\nexport function behavioralaiBridge(krikos: Krikos, behavioral: BehavioralLike): () => void {\n  return krikos.on((event: TelemetryEvent) => {\n    behavioral.observe({\n      kind: `krikos.${event.kind}`,\n      ...(event.agentId !== undefined ? { subject: event.agentId } : {}),\n      at: event.at,\n    });\n  });\n}\n"]}