@ziggs-ai/agent-sdk 0.16.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +110 -88
  3. package/dist/{AgentHost.d.ts → Agent.d.ts} +50 -27
  4. package/dist/{AgentHost.js → Agent.js} +135 -129
  5. package/dist/adapters/AnthropicAdapter.d.ts +1 -1
  6. package/dist/adapters/AnthropicAdapter.js +1 -1
  7. package/dist/{agent/ClaudeSdkAgent.d.ts → brain/ClaudeBrain.d.ts} +23 -11
  8. package/dist/{agent/ClaudeSdkAgent.js → brain/ClaudeBrain.js} +99 -99
  9. package/dist/{agent/Agent.d.ts → brain/ZiggsBrain.d.ts} +23 -20
  10. package/dist/{agent/Agent.js → brain/ZiggsBrain.js} +12 -11
  11. package/dist/{agent → brain}/claudeCognition.d.ts +1 -1
  12. package/dist/{agent → brain}/claudeCognition.js +1 -1
  13. package/dist/{agent → brain}/claudeSdkProtocol.d.ts +1 -1
  14. package/dist/{agent → brain}/claudeSdkProtocol.js +1 -1
  15. package/dist/{agent → brain}/claudeSdkTools.d.ts +1 -1
  16. package/dist/{agent → brain}/claudeSdkTools.js +5 -14
  17. package/dist/{agent → brain}/hostedAgentConnection.d.ts +1 -1
  18. package/dist/{agent → brain}/hostedAgentConnection.js +3 -3
  19. package/dist/brain/index.d.ts +6 -6
  20. package/dist/brain/index.js +2 -2
  21. package/dist/brain/onBehalfAgreement.d.ts +51 -0
  22. package/dist/brain/onBehalfAgreement.js +99 -0
  23. package/dist/{agent → brain}/toolManagerToSdkMcp.js +10 -1
  24. package/dist/defineAgent.js +4 -4
  25. package/dist/formatters/HistoryFormatter.js +2 -1
  26. package/dist/index.d.ts +30 -31
  27. package/dist/index.js +24 -25
  28. package/dist/{adapters/McpAdapter.d.ts → mcp/createMcpAgent.d.ts} +16 -15
  29. package/dist/{adapters/McpAdapter.js → mcp/createMcpAgent.js} +82 -46
  30. package/dist/memory/MemoryStore.d.ts +18 -1
  31. package/dist/memory/MemoryStore.js +43 -0
  32. package/dist/{server → platform}/ConnectionPool.d.ts +9 -3
  33. package/dist/{server → platform}/ConnectionPool.js +16 -4
  34. package/dist/{server → platform}/EventQueue.d.ts +1 -1
  35. package/dist/{server → platform}/StateTimers.d.ts +1 -1
  36. package/dist/{server → platform}/StateTimers.js +1 -1
  37. package/dist/{server → platform}/ZiggsEffectHandler.d.ts +4 -4
  38. package/dist/{server → platform}/ZiggsEffectHandler.js +2 -2
  39. package/dist/{server → platform}/inboxLoop.d.ts +34 -1
  40. package/dist/{server → platform}/inboxLoop.js +122 -14
  41. package/dist/{server → platform}/polls/PollKind.d.ts +4 -7
  42. package/dist/{server → platform}/polls/PollKind.js +3 -6
  43. package/dist/{server → platform}/polls/PollRunner.d.ts +5 -6
  44. package/dist/{server → platform}/polls/PollRunner.js +24 -12
  45. package/dist/platform/polls/declaredPollRunner.d.ts +4 -0
  46. package/dist/platform/polls/declaredPollRunner.js +29 -0
  47. package/dist/{server → platform}/tools/tier2/mcpConnectionTools.js +32 -18
  48. package/dist/runtime/bootstrapCtx.d.ts +1 -1
  49. package/dist/runtime/bootstrapCtx.js +1 -1
  50. package/dist/runtime/buildOutcome.js +1 -1
  51. package/dist/runtime/runTurn.d.ts +1 -1
  52. package/dist/runtime/runTurn.js +18 -18
  53. package/dist/runtime/validateWorkflow.js +1 -1
  54. package/dist/skills/parseSkill.d.ts +7 -2
  55. package/dist/skills/parseSkill.js +22 -5
  56. package/dist/skills/skillReadReference.d.ts +6 -0
  57. package/dist/skills/skillReadReference.js +27 -0
  58. package/dist/tools/needs.js +2 -2
  59. package/dist/tools/toolCreds.d.ts +1 -1
  60. package/dist/tools/toolCreds.js +1 -1
  61. package/dist/types.d.ts +3 -3
  62. package/package.json +2 -2
  63. package/dist/server/createHealthServer.d.ts +0 -7
  64. package/dist/server/createHealthServer.js +0 -75
  65. package/dist/server/runLauncher.d.ts +0 -22
  66. package/dist/server/runLauncher.js +0 -160
  67. /package/dist/{agent → brain}/toolManagerToSdkMcp.d.ts +0 -0
  68. /package/dist/{server → platform}/EventQueue.js +0 -0
  69. /package/dist/{server → platform}/OutboxBuffer.d.ts +0 -0
  70. /package/dist/{server → platform}/OutboxBuffer.js +0 -0
  71. /package/dist/{server → platform}/SeenMessages.d.ts +0 -0
  72. /package/dist/{server → platform}/SeenMessages.js +0 -0
  73. /package/dist/{server → platform}/agreements/AgreementService.d.ts +0 -0
  74. /package/dist/{server → platform}/agreements/AgreementService.js +0 -0
  75. /package/dist/{server → platform}/proactive/ProactiveTrigger.d.ts +0 -0
  76. /package/dist/{server → platform}/proactive/ProactiveTrigger.js +0 -0
  77. /package/dist/{server → platform}/requestMatch.d.ts +0 -0
  78. /package/dist/{server → platform}/requestMatch.js +0 -0
  79. /package/dist/{server → platform}/tasks/TaskService.d.ts +0 -0
  80. /package/dist/{server → platform}/tasks/TaskService.js +0 -0
  81. /package/dist/{server → platform}/tasks/index.d.ts +0 -0
  82. /package/dist/{server → platform}/tasks/index.js +0 -0
  83. /package/dist/{server → platform}/telemetryIngest.d.ts +0 -0
  84. /package/dist/{server → platform}/telemetryIngest.js +0 -0
  85. /package/dist/{server → platform}/tools/index.d.ts +0 -0
  86. /package/dist/{server → platform}/tools/index.js +0 -0
  87. /package/dist/{server → platform}/tools/tier1/protocolRunner.d.ts +0 -0
  88. /package/dist/{server → platform}/tools/tier1/protocolRunner.js +0 -0
  89. /package/dist/{server → platform}/tools/tier1/protocolTools.d.ts +0 -0
  90. /package/dist/{server → platform}/tools/tier1/protocolTools.js +0 -0
  91. /package/dist/{server → platform}/tools/tier2/artifactTools.d.ts +0 -0
  92. /package/dist/{server → platform}/tools/tier2/artifactTools.js +0 -0
  93. /package/dist/{server → platform}/tools/tier2/chatTools.d.ts +0 -0
  94. /package/dist/{server → platform}/tools/tier2/chatTools.js +0 -0
  95. /package/dist/{server → platform}/tools/tier2/connectionTools.d.ts +0 -0
  96. /package/dist/{server → platform}/tools/tier2/connectionTools.js +0 -0
  97. /package/dist/{server → platform}/tools/tier2/contextTools.d.ts +0 -0
  98. /package/dist/{server → platform}/tools/tier2/contextTools.js +0 -0
  99. /package/dist/{server → platform}/tools/tier2/discoveryTools.d.ts +0 -0
  100. /package/dist/{server → platform}/tools/tier2/discoveryTools.js +0 -0
  101. /package/dist/{server → platform}/tools/tier2/grantsTools.d.ts +0 -0
  102. /package/dist/{server → platform}/tools/tier2/grantsTools.js +0 -0
  103. /package/dist/{server → platform}/tools/tier2/introductionTools.d.ts +0 -0
  104. /package/dist/{server → platform}/tools/tier2/introductionTools.js +0 -0
  105. /package/dist/{server → platform}/tools/tier2/linkTools.d.ts +0 -0
  106. /package/dist/{server → platform}/tools/tier2/linkTools.js +0 -0
  107. /package/dist/{server → platform}/tools/tier2/marketplaceTools.d.ts +0 -0
  108. /package/dist/{server → platform}/tools/tier2/marketplaceTools.js +0 -0
  109. /package/dist/{server → platform}/tools/tier2/mcpConnectionTools.d.ts +0 -0
  110. /package/dist/{server → platform}/tools/tier2/paymentTools.d.ts +0 -0
  111. /package/dist/{server → platform}/tools/tier2/paymentTools.js +0 -0
  112. /package/dist/{server → platform}/tools/tier2/taskTools.d.ts +0 -0
  113. /package/dist/{server → platform}/tools/tier2/taskTools.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import { type ToolDefinition } from '../tools/defineTool.js';
2
- import { listTasksTool } from '../server/tools/tier2/taskTools.js';
2
+ import { listTasksTool } from '../platform/tools/tier2/taskTools.js';
3
3
  import type { EffectHandler, DeliveryWriteKeys } from '../types.js';
4
4
  export interface ClaudeSdkToolContext extends Record<string, unknown> {
5
5
  operatorKey: string;
@@ -1,10 +1,11 @@
1
+ import { isAgreementId, agreementLaneId, isRoomPresentationRef as isRoomParticipantRef } from '@ziggs-ai/api-client';
1
2
  import { randomUUID } from 'node:crypto';
2
3
  import { credsFromToolContext } from '../tools/toolCreds.js';
3
4
  import { sendChatMessage } from '@ziggs-ai/api-client';
4
5
  import { defineTool } from '../tools/defineTool.js';
5
- import { listGrantsTool } from '../server/tools/tier2/grantsTools.js';
6
- import { listTasksTool } from '../server/tools/tier2/taskTools.js';
7
- import { CHAT_TOOLS } from '../server/tools/tier2/chatTools.js';
6
+ import { listGrantsTool } from '../platform/tools/tier2/grantsTools.js';
7
+ import { listTasksTool } from '../platform/tools/tier2/taskTools.js';
8
+ import { CHAT_TOOLS } from '../platform/tools/tier2/chatTools.js';
8
9
  // default message-history cap. An uncapped snapshot returns the whole
9
10
  // chat — in a delegation chat that accumulates notification rows, every wake's
10
11
  // snapshot ballooned (observed 35–47k input tokens/wake, ~205k/run). 12 recent
@@ -42,7 +43,7 @@ function firstFilled(...candidates) {
42
43
  * between a wasted turn and an answer.
43
44
  */
44
45
  function asChatLane(id) {
45
- return id?.startsWith('agr_') ? `agrn-${id}` : id;
46
+ return isAgreementId(id) ? agreementLaneId(id) : id;
46
47
  }
47
48
  // Named distinctly from ziggs-mcp's per-type `ziggs_context_read`: this is the
48
49
  // one-shot aggregate snapshot (grant-fenced server-side), not a cursored read.
@@ -67,16 +68,6 @@ export const contextSnapshotTool = defineTool('context_snapshot', {
67
68
  },
68
69
  });
69
70
  }, { description: 'Read the chat snapshot: the NEWEST maxMessages of history (chronological order), plus agreements, agents, and users for a session.' });
70
- /**
71
- * A room participant reference (`rpb_*`) — the persona layer's masked address.
72
- *
73
- * It names one subject INSIDE ONE ROOM and is minted per room, so it is an
74
- * address there and nowhere else. Kept as a local prefix test rather than an
75
- * import: the SDK talks to the backend over HTTP and shares no code with it.
76
- */
77
- function isRoomParticipantRef(id) {
78
- return typeof id === 'string' && id.startsWith('rpb_');
79
- }
80
71
  export const chatSendTool = defineTool('chat_send', {
81
72
  chatId: { type: 'string', description: 'Omit this to send in the chat you were woken in — that is the usual case. Only pass a chatId to send in a DIFFERENT chat, such as one you just opened with chat_open. When chatId is set it wins over `to`.' },
82
73
  to: { type: 'string', description: 'User or agent id of someone you already have a conversation with. Sends in that pair room. Does not open contact — first contact still needs chat_open. Ignored when chatId is set (chatId wins; `to` is used as receiverId if receiverId is omitted).' },
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Hosted fleet agents connect via api-client (AgentHost), never inbound ziggs-mcp.
2
+ * Hosted fleet agents connect via api-client (Agent), never inbound ziggs-mcp.
3
3
  * @see
4
4
  */
5
5
  export type McpServerSpec = {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Hosted fleet agents connect via api-client (AgentHost), never inbound ziggs-mcp.
2
+ * Hosted fleet agents connect via api-client (Agent), never inbound ziggs-mcp.
3
3
  * @see
4
4
  */
5
5
  export function looksLikeInboundZiggsMcp(command, args = []) {
@@ -19,11 +19,11 @@ export function assertHostedAgentZiggsTools(mcpServers) {
19
19
  const spec = raw;
20
20
  if (spec.type === 'stdio') {
21
21
  throw new Error(`Hosted Ziggs agents must not use stdio MCP (server "${name}"). ` +
22
- 'Connect via api-client / AgentHost in-process tools.');
22
+ 'Connect via api-client / Agent in-process tools.');
23
23
  }
24
24
  if (looksLikeInboundZiggsMcp(String(spec.command ?? ''), spec.args ?? [])) {
25
25
  throw new Error(`Hosted Ziggs agents must not spawn ziggs-mcp (inbound MCP server "${name}"). ` +
26
- 'Use AgentHost + in-process tools.');
26
+ 'Use Agent + in-process tools.');
27
27
  }
28
28
  }
29
29
  }
@@ -1,13 +1,13 @@
1
- import type { TickInput, TickOutput } from '../agent/Agent.js';
1
+ import type { TickInput, TickOutput } from './ZiggsBrain.js';
2
2
  /**
3
3
  * Public brain contract — how an agent decides on each wake.
4
- * {@link Agent} (Ziggs workflow/FSM) and {@link ClaudeSdkAgent} both implement this.
4
+ * {@link ZiggsBrain} (Ziggs workflow/FSM) and {@link ClaudeBrain} both implement this.
5
5
  */
6
6
  export interface Brain {
7
7
  readonly kind: 'ziggs' | 'claude';
8
8
  tick(input: TickInput): Promise<TickOutput>;
9
9
  }
10
- /** Config carried by {@link ziggsBrain} — workflow stays on the host. */
10
+ /** Config carried by {@link ziggsBrain} — workflow is declared on the agent. */
11
11
  export interface ZiggsBrainConfig {
12
12
  /** Model id — `claude-*` routes to Anthropic, else OpenAI. */
13
13
  model?: string;
@@ -18,7 +18,7 @@ export interface ZiggsBrainConfig {
18
18
  export interface ClaudeBrainConfig {
19
19
  anthropicKey?: string;
20
20
  model?: string;
21
- /** Max agentic turns per Claude SDK wake. Host default applies when omitted. */
21
+ /** Max agentic turns per Claude SDK wake. Agent default applies when omitted. */
22
22
  maxTurns?: number;
23
23
  /** Persona line injected into the Claude system prompt. */
24
24
  specialization?: string | null;
@@ -35,8 +35,8 @@ export declare function ziggsBrain(config?: ZiggsBrainConfig): BrainSelection;
35
35
  /** Pick the Claude Agent SDK brain (autonomous query() loop). */
36
36
  export declare function claudeBrain(config?: ClaudeBrainConfig): BrainSelection;
37
37
  export declare function isBrainSelection(value: unknown): value is BrainSelection;
38
- /** Map public `brain` + legacy `cognition` into normalized host options. */
39
- export declare function applyBrainToHostOptions<T extends {
38
+ /** Map public `brain` + legacy `cognition` into normalized agent options. */
39
+ export declare function applyBrainToAgentOptions<T extends {
40
40
  brain?: BrainSelection;
41
41
  cognition?: 'fsm' | 'claude-sdk';
42
42
  model?: string;
@@ -14,8 +14,8 @@ export function isBrainSelection(value) {
14
14
  const kind = value.kind;
15
15
  return kind === 'ziggs' || kind === 'claude';
16
16
  }
17
- /** Map public `brain` + legacy `cognition` into normalized host options. */
18
- export function applyBrainToHostOptions(options) {
17
+ /** Map public `brain` + legacy `cognition` into normalized agent options. */
18
+ export function applyBrainToAgentOptions(options) {
19
19
  const brain = options.brain;
20
20
  if (!brain) {
21
21
  return { ...options, cognition: options.cognition ?? 'fsm' };
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Which agreement a wake may act under for on-behalf / mandate.
3
+ *
4
+ * A wake binds to the contract where this agent is the **provider**, never to a
5
+ * sub it pays for. Worker-result events name the sub; using that id made the
6
+ * next purchase stamp the operator as payer.
7
+ *
8
+ * Pure: no lineage walk. Candidates the wire already named are kept only when
9
+ * context shows the agent on the provider side (or the row is unknown). A known
10
+ * payer-only row is skipped. Fallback is still "exactly one active provider hire".
11
+ */
12
+ export type OnBehalfParties = {
13
+ provider?: {
14
+ actor?: string | null;
15
+ } | null;
16
+ payer?: {
17
+ actor?: string | null;
18
+ principal?: string | null;
19
+ } | null;
20
+ };
21
+ export type OnBehalfAgreementRow = {
22
+ agreementId?: unknown;
23
+ id?: unknown;
24
+ _id?: unknown;
25
+ status?: unknown;
26
+ providerId?: unknown;
27
+ providerAgentId?: unknown;
28
+ executorId?: unknown;
29
+ parties?: OnBehalfParties | null;
30
+ };
31
+ export type RawOnBehalfEvent = {
32
+ agreementId?: unknown;
33
+ result?: {
34
+ agreementId?: unknown;
35
+ } | null;
36
+ };
37
+ /** Is this agent on the provider side of the row? */
38
+ export declare function agentProvidesOn(row: OnBehalfAgreementRow, agentId: string): boolean;
39
+ /** Is this agent standing on the paying side (actor), not as provider? */
40
+ export declare function agentPaysOn(row: OnBehalfAgreementRow, agentId: string): boolean;
41
+ /**
42
+ * May this wire-named agreement be used as on-behalf for `agentId`?
43
+ * - provider on the row → yes
44
+ * - payer-only on the row → no
45
+ * - row missing from context → yes (unknown; do not invent a parent)
46
+ */
47
+ export declare function mayBindOnBehalf(agreementId: string, agentId: string | null | undefined, rows: OnBehalfAgreementRow[]): boolean;
48
+ /**
49
+ * Resolve the agreement id this wake should declare for on-behalf / mandate.
50
+ */
51
+ export declare function resolveOnBehalfAgreementId(rawEvent: RawOnBehalfEvent | undefined, contextAgreements: OnBehalfAgreementRow[] | null | undefined, agentId: string | null | undefined, sessionId: string | null | undefined): string | undefined;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Which agreement a wake may act under for on-behalf / mandate.
3
+ *
4
+ * A wake binds to the contract where this agent is the **provider**, never to a
5
+ * sub it pays for. Worker-result events name the sub; using that id made the
6
+ * next purchase stamp the operator as payer.
7
+ *
8
+ * Pure: no lineage walk. Candidates the wire already named are kept only when
9
+ * context shows the agent on the provider side (or the row is unknown). A known
10
+ * payer-only row is skipped. Fallback is still "exactly one active provider hire".
11
+ */
12
+ function asId(v) {
13
+ return typeof v === 'string' && v ? v : undefined;
14
+ }
15
+ function rowId(a) {
16
+ return asId(a.agreementId) ?? asId(a.id) ?? asId(a._id);
17
+ }
18
+ function isTerminalStatus(status) {
19
+ const s = status != null ? String(status).toLowerCase() : '';
20
+ return s === 'cancelled' || s === 'refunded' || s === 'fulfilled';
21
+ }
22
+ function isActiveStatus(status) {
23
+ const s = status != null ? String(status).toLowerCase() : '';
24
+ return s === 'active' || s === 'approved' || s === '';
25
+ }
26
+ /** Is this agent on the provider side of the row? */
27
+ export function agentProvidesOn(row, agentId) {
28
+ const provider = row.parties?.provider;
29
+ const providerIds = [
30
+ provider?.actor,
31
+ row.providerId,
32
+ row.providerAgentId,
33
+ row.executorId,
34
+ ];
35
+ return providerIds.some((x) => x === agentId);
36
+ }
37
+ /** Is this agent standing on the paying side (actor), not as provider? */
38
+ export function agentPaysOn(row, agentId) {
39
+ if (agentProvidesOn(row, agentId))
40
+ return false;
41
+ return row.parties?.payer?.actor === agentId;
42
+ }
43
+ function findRow(agreementId, rows) {
44
+ return rows.find((a) => rowId(a) === agreementId);
45
+ }
46
+ /**
47
+ * May this wire-named agreement be used as on-behalf for `agentId`?
48
+ * - provider on the row → yes
49
+ * - payer-only on the row → no
50
+ * - row missing from context → yes (unknown; do not invent a parent)
51
+ */
52
+ export function mayBindOnBehalf(agreementId, agentId, rows) {
53
+ if (!agentId)
54
+ return true;
55
+ const row = findRow(agreementId, rows);
56
+ if (!row)
57
+ return true;
58
+ if (agentProvidesOn(row, agentId))
59
+ return true;
60
+ if (agentPaysOn(row, agentId))
61
+ return false;
62
+ return true;
63
+ }
64
+ function singleActiveProviderHire(rows, agentId) {
65
+ const provides = rows.filter((a) => {
66
+ if (!agentProvidesOn(a, agentId))
67
+ return false;
68
+ if (isTerminalStatus(a.status))
69
+ return false;
70
+ return isActiveStatus(a.status);
71
+ });
72
+ if (provides.length !== 1)
73
+ return undefined;
74
+ return rowId(provides[0]);
75
+ }
76
+ /**
77
+ * Resolve the agreement id this wake should declare for on-behalf / mandate.
78
+ */
79
+ export function resolveOnBehalfAgreementId(rawEvent, contextAgreements, agentId, sessionId) {
80
+ const rows = Array.isArray(contextAgreements) ? contextAgreements : [];
81
+ const candidates = [];
82
+ const fromResult = asId(rawEvent?.result?.agreementId);
83
+ if (fromResult)
84
+ candidates.push(fromResult);
85
+ const fromEvent = asId(rawEvent?.agreementId);
86
+ if (fromEvent && fromEvent !== fromResult)
87
+ candidates.push(fromEvent);
88
+ if (typeof sessionId === 'string' && sessionId.startsWith('agr_')) {
89
+ if (!candidates.includes(sessionId))
90
+ candidates.push(sessionId);
91
+ }
92
+ for (const id of candidates) {
93
+ if (!agentId || mayBindOnBehalf(id, agentId, rows))
94
+ return id;
95
+ }
96
+ if (agentId)
97
+ return singleActiveProviderHire(rows, agentId);
98
+ return undefined;
99
+ }
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { createSdkMcpServer } from '@anthropic-ai/claude-agent-sdk';
3
+ import { withDeclaredMandate } from '../runtime/mandateDeclaration.js';
3
4
  function jsonTypeToZod(field) {
4
5
  const t = field['type'];
5
6
  if (t === 'string') {
@@ -102,9 +103,17 @@ export function buildSdkToolDefs(toolDefs, getContext) {
102
103
  handler: async (args) => {
103
104
  try {
104
105
  const ctx = getContext();
105
- const payload = args._ != null && Object.keys(args).length === 1
106
+ const payloadRaw = args._ != null && Object.keys(args).length === 1
106
107
  ? args._
107
108
  : args;
109
+ const payload = withDeclaredMandate(payloadRaw ?? {}, name, {
110
+ getTool: (toolName) => {
111
+ const found = toolDefs.find((d) => String(d.schema.function['name'] ?? '') === toolName);
112
+ return found ? { schema: found.schema } : undefined;
113
+ },
114
+ }, typeof ctx.onBehalfOfAgreementId === 'string'
115
+ ? ctx.onBehalfOfAgreementId
116
+ : null);
108
117
  const eff = ctx.eff;
109
118
  if (!eff)
110
119
  return toCallToolError(`tool "${name}": missing eff in tool context`);
@@ -2,7 +2,7 @@ import { validateWorkflow } from './runtime/validateWorkflow.js';
2
2
  import { injectKickoffDefault } from './runtime/kickoff.js';
3
3
  import { injectTaskIntakeDefault } from './runtime/taskIntake.js';
4
4
  import { runtimeLog } from './shared/runtimeLog.js';
5
- import { DEFAULT_MODEL } from './AgentHost.js';
5
+ import { DEFAULT_MODEL } from './Agent.js';
6
6
  import { normalizeNeeds, toolsForNeeds } from './tools/needs.js';
7
7
  import { toolName } from './tools/defineTool.js';
8
8
  /**
@@ -76,13 +76,13 @@ export function defineAgent(input) {
76
76
  }
77
77
  // Model resolution, most-specific-first: a per-agent pin, then the
78
78
  // fleet-wide `LLM_MODEL` lever, then the single `DEFAULT_MODEL` fallback (the
79
- // ONE place the default lives — see AgentHost). The id also picks the provider
79
+ // ONE place the default lives — see Agent). The id also picks the provider
80
80
  // (claude-* → Anthropic). No agent hardcodes its own fallback.
81
81
  const model = input.services?.llm?.model ||
82
82
  process.env.LLM_MODEL ||
83
83
  DEFAULT_MODEL;
84
84
  // Strip the structural fields we already consumed; pass through everything
85
- // else (operatorKey, taskTools, custom keys consumed by AgentHost).
85
+ // else (operatorKey, taskTools, custom keys consumed by Agent).
86
86
  const { agentId, description, specialization, services: _services, initial: _initial, states: _states, tools: _tools, operatorKey, taskTools, ...rest } = input;
87
87
  const config = {
88
88
  openaiKey: process.env.OPENAI_API_KEY,
@@ -102,7 +102,7 @@ export function defineAgent(input) {
102
102
  ...(input.services ? { services: input.services } : {}),
103
103
  ...(taskTools !== undefined ? { taskTools } : {}),
104
104
  ...rest,
105
- // After `rest`, so the config carries the NORMALIZED needs — AgentHost
105
+ // After `rest`, so the config carries the NORMALIZED needs — Agent
106
106
  // enforces these at task start and should not have to re-parse the raw field.
107
107
  ...(needs.length ? { needs } : {}),
108
108
  };
@@ -1,3 +1,4 @@
1
+ import { isOpaquePresentationRef } from '@ziggs-ai/api-client';
1
2
  import { partySideIds } from '@ziggs-ai/api-client';
2
3
  export class HistoryFormatter {
3
4
  showTimestamps;
@@ -136,7 +137,7 @@ export class HistoryFormatter {
136
137
  : null);
137
138
  if (faceName)
138
139
  return `${faceName} (${id})`;
139
- if (id.startsWith('rpb_') || id.startsWith('psn_')) {
140
+ if (isOpaquePresentationRef(id)) {
140
141
  return `${id} (presentation)`;
141
142
  }
142
143
  return `${id} (${participant['type'] || 'unknown'})`;
package/dist/index.d.ts CHANGED
@@ -8,28 +8,29 @@
8
8
  * • Validation at load — defineAgent throws on hard problems, warns on soft
9
9
  */
10
10
  export { defineAgent } from './defineAgent.js';
11
- export { createMcpAgent, resolveZiggsGatewayTarget, wrapGatewayFetch, ZiggsGatewayError } from './adapters/McpAdapter.js';
12
- export type { CreateMcpAgentOptions, McpAgentHandle, McpTransportConfig } from './adapters/McpAdapter.js';
13
- export { parseSkill, skillHash, skillRolePrompt, splitFrontmatter, SkillValidationError, SKILL_MAX_CHARS, } from './skills/parseSkill.js';
11
+ export { createMcpAgent, resolveZiggsGatewayTarget, wrapGatewayFetch, ZiggsGatewayError } from './mcp/createMcpAgent.js';
12
+ export type { CreateMcpAgentOptions, McpAgentHandle, McpTransportConfig } from './mcp/createMcpAgent.js';
13
+ export { parseSkill, skillHash, skillRolePrompt, skillReferenceName, skillReferenceOneLine, splitFrontmatter, SkillValidationError, SKILL_MAX_CHARS, } from './skills/parseSkill.js';
14
14
  export type { ParsedSkill, SkillFile, SkillReference } from './skills/parseSkill.js';
15
15
  export { loadSkill, readSkillFiles, assertSkillHash } from './skills/loadSkill.js';
16
- export { AgentHost, createAgent, createAgentPool, DEFAULT_MODEL } from './AgentHost.js';
17
- export { Agent } from './agent/Agent.js';
18
- export { ClaudeSdkAgent } from './agent/ClaudeSdkAgent.js';
19
- export type { CognitionKind } from './agent/ClaudeSdkAgent.js';
20
- export { CLAUDE_SDK_PROTOCOL } from './agent/claudeSdkProtocol.js';
21
- export { buildClaudeEventPrompt, summarizeContext } from './agent/claudeCognition.js';
16
+ export { skillReadReferenceTool } from './skills/skillReadReference.js';
17
+ export { Agent, createAgent, createAgentPool, DEFAULT_MODEL } from './Agent.js';
18
+ export { ZiggsBrain } from './brain/ZiggsBrain.js';
19
+ export { ClaudeBrain } from './brain/ClaudeBrain.js';
20
+ export type { CognitionKind, ClaudeBrainOptions } from './brain/ClaudeBrain.js';
21
+ export { CLAUDE_SDK_PROTOCOL } from './brain/claudeSdkProtocol.js';
22
+ export { buildClaudeEventPrompt, summarizeContext } from './brain/claudeCognition.js';
22
23
  export { ziggsBrain, claudeBrain, isBrainSelection, isClaudeCognition } from './brain/index.js';
23
24
  export type { Brain, BrainSelection, ZiggsBrainConfig, ClaudeBrainConfig, } from './brain/index.js';
24
- export type { TickInput, TickOutput, AgentOptions } from './agent/Agent.js';
25
- export type { SessionResolver, AgentHostOptions, WakeRecord } from './AgentHost.js';
26
- export { createZiggsEffectHandler } from './server/ZiggsEffectHandler.js';
27
- export type { ZiggsEffectDeps } from './server/ZiggsEffectHandler.js';
28
- export { EventQueue } from './server/EventQueue.js';
29
- export type { EventQueueBusyLane, WaitForIdleResult } from './server/EventQueue.js';
30
- export { StateTimers } from './server/StateTimers.js';
31
- export type { StateTimeoutEvent } from './server/StateTimers.js';
32
- export { OutboxBuffer } from './server/OutboxBuffer.js';
25
+ export type { TickInput, TickOutput, ZiggsBrainOptions } from './brain/ZiggsBrain.js';
26
+ export type { SessionResolver, AgentOptions, WakeRecord } from './Agent.js';
27
+ export { createZiggsEffectHandler } from './platform/ZiggsEffectHandler.js';
28
+ export type { ZiggsEffectDeps } from './platform/ZiggsEffectHandler.js';
29
+ export { EventQueue } from './platform/EventQueue.js';
30
+ export type { EventQueueBusyLane, WaitForIdleResult } from './platform/EventQueue.js';
31
+ export { StateTimers } from './platform/StateTimers.js';
32
+ export type { StateTimeoutEvent } from './platform/StateTimers.js';
33
+ export { OutboxBuffer } from './platform/OutboxBuffer.js';
33
34
  export { normalizeIncomingEvent } from './ingress/normalizeIncoming.js';
34
35
  export { AgentMachine, type TransitionEvent } from './runtime/AgentMachine.js';
35
36
  export { runTurn } from './runtime/runTurn.js';
@@ -42,14 +43,12 @@ export { outcomeFromEvent, outcomeFromActionResult, applyOutcomeToCtx } from './
42
43
  export { LANE_BOOK_KEY, allCollectedResults, allDelegatedAgreementIds, allPendingSubtasks, } from './runtime/taskBookkeeping.js';
43
44
  export { createDeliveryWriteKeys } from './runtime/deliveryWriteKeys.js';
44
45
  export type { Outcome, OutcomeKind, Ctx, Identity, HistoryEntry, ToolResultEntry, PendingSubtask, CollectedSubtaskResult, TaskBookkeeping, Workflow, State, ParkedState, ThinkingState, MechanicalState, Action, Transition, PromptDef, ActionPrompt, Produces, ProducesFn, AgreementRef, TaskRef, ProposalRef, AgentConfig, DefineAgentInput, ServicesConfig, Effect, EffectKind, EffectResult, EffectResultMap, EffectHandler, LlmMessage, LlmToolCall, LlmToolSchema, LlmResponse, ContextSnapshot, SnapshotParticipant, ReadContextOpts, ToolCallResult, RecordedEntry, DeliveryWriteKeys, } from './types.js';
45
- export { default } from './AgentHost.js';
46
+ export { default } from './Agent.js';
46
47
  export { validateContext, ContextWarning } from './cognition/validateContext.js';
47
- export { runLauncher } from './server/runLauncher.js';
48
- export { ConnectionPool } from './server/ConnectionPool.js';
48
+ export { ConnectionPool } from './platform/ConnectionPool.js';
49
49
  export { decodeOperatorKeyClaims, boundKeyFleetWarning } from './shared/operatorKeyClaims.js';
50
- export { createHealthServer } from './server/createHealthServer.js';
51
- export { TaskService } from './server/tasks/TaskService.js';
52
- export { AgreementService } from './server/agreements/AgreementService.js';
50
+ export { TaskService } from './platform/tasks/TaskService.js';
51
+ export { AgreementService } from './platform/agreements/AgreementService.js';
53
52
  export { ToolManager } from './tools/ToolManager.js';
54
53
  export { ToolProvider } from './tools/ToolProvider.js';
55
54
  export { defineTool } from './tools/defineTool.js';
@@ -61,21 +60,21 @@ export type { AgentNeed, ConnectionNeed } from './tools/needs.js';
61
60
  export { OpenAIAdapter } from './adapters/OpenAIAdapter.js';
62
61
  export { extractJSON, safeParseJSON } from './utils/jsonExtractor.js';
63
62
  export { HistoryFormatter, historyFormatter, AgreementFormatter, agreementFormatter } from './formatters/index.js';
64
- export { ProactiveTrigger } from './server/proactive/ProactiveTrigger.js';
65
- export { PollRegistry, declaredPolls, type PollBinding, type PollContext, type PollKind, type PollResult, } from './server/polls/PollKind.js';
66
- export { PollRunner, type PollRunnerOptions, type WakeTarget } from './server/polls/PollRunner.js';
67
- export { PROTOCOL_TOOLS, agreementProposeTool, agreementSubcontractTool, agreementRespondTool, agreementClaimTool, agreementCounterTool, agreementGetTool, agreementRevokeTool, agreementFulfillTool, taskCreateTool, taskSetResultTool, taskUpdatePlanStepTool, dispatchProtocolOp, PAYMENT_TOOLS, paymentBalanceTool, CONNECTION_TOOLS, connectionProxyTool, connectionListGrantsTool, requestConnectionTool, MCP_CONNECTION_TOOLS, mcpToolCallTool, mcpToolsListTool, DISCOVERY_TOOLS, agentSearchTool, agentGetTool, MARKETPLACE_TOOLS, marketplaceViewTool, CONTEXT_TOOLS, contextReadTool, contextDelegateTool, contextExpandReachTool, contextDiscoverGrantableTool, GRANTS_TOOLS, listGrantsTool, LINK_TOOLS, linkProposeTool, linkListTool, INTRODUCTION_TOOLS, introductionMintTool, introductionRedeemTool, introductionListTool, introductionRevokeTool, ARTIFACT_TOOLS, recordArtifactTool, CHAT_TOOLS, openConversationTool, } from './server/tools/index.js';
68
- export { CLAUDE_SDK_TOOLS } from './agent/claudeSdkTools.js';
63
+ export { ProactiveTrigger } from './platform/proactive/ProactiveTrigger.js';
64
+ export { PollRegistry, declaredPolls, type PollBinding, type PollContext, type PollKind, type PollResult, } from './platform/polls/PollKind.js';
65
+ export { PollRunner, type PollRunnerOptions, type WakeTarget } from './platform/polls/PollRunner.js';
66
+ export { PROTOCOL_TOOLS, agreementProposeTool, agreementSubcontractTool, agreementRespondTool, agreementClaimTool, agreementCounterTool, agreementGetTool, agreementRevokeTool, agreementFulfillTool, taskCreateTool, taskSetResultTool, taskUpdatePlanStepTool, dispatchProtocolOp, PAYMENT_TOOLS, paymentBalanceTool, CONNECTION_TOOLS, connectionProxyTool, connectionListGrantsTool, requestConnectionTool, MCP_CONNECTION_TOOLS, mcpToolCallTool, mcpToolsListTool, DISCOVERY_TOOLS, agentSearchTool, agentGetTool, MARKETPLACE_TOOLS, marketplaceViewTool, CONTEXT_TOOLS, contextReadTool, contextDelegateTool, contextExpandReachTool, contextDiscoverGrantableTool, GRANTS_TOOLS, listGrantsTool, LINK_TOOLS, linkProposeTool, linkListTool, INTRODUCTION_TOOLS, introductionMintTool, introductionRedeemTool, introductionListTool, introductionRevokeTool, ARTIFACT_TOOLS, recordArtifactTool, CHAT_TOOLS, openConversationTool, } from './platform/tools/index.js';
67
+ export { CLAUDE_SDK_TOOLS } from './brain/claudeSdkTools.js';
69
68
  export { PROTOCOL_TOOL_NAMES, PROTOCOL_TOOL_TO_OPERATION, mapProtocolToolToOperation, isProtocolToolName } from './tasks/protocolRegistry.js';
70
69
  export { InMemoryStore, FileMemoryStore } from './memory/MemoryStore.js';
71
70
  export type { MemoryStore } from './memory/MemoryStore.js';
72
- export type { SessionStore } from './AgentHost.js';
71
+ export type { SessionStore } from './Agent.js';
73
72
  export { classifyIncomingEvent } from './context/classifyEnvelope.js';
74
73
  export { buildContextUpdates, CONTEXT_RESET } from './context/applyEffects.js';
75
74
  export { getBatchEvents, isTaskResultRelevantToAgent } from './context/batch.js';
76
75
  export { classifyWorkflowEvent, findTaskResult, unwrapBatchEvent, findIncomingTaskResult } from './context/routingLabels.js';
77
76
  export { MessagesClient, ArtifactsClient, AgentSearchClient, getBackendUrl, configureApiClient, } from '@ziggs-ai/api-client';
78
77
  export type { ApiClientConfig } from '@ziggs-ai/api-client';
79
- export { SeenMessages } from './server/SeenMessages.js';
78
+ export { SeenMessages } from './platform/SeenMessages.js';
80
79
  export { runtimeLog, resetRuntimeLogLevelCache } from './shared/runtimeLog.js';
81
80
  export type { RuntimeLogLevel } from './shared/runtimeLog.js';
package/dist/index.js CHANGED
@@ -8,28 +8,29 @@
8
8
  * • Validation at load — defineAgent throws on hard problems, warns on soft
9
9
  */
10
10
  export { defineAgent } from './defineAgent.js';
11
- export { createMcpAgent, resolveZiggsGatewayTarget, wrapGatewayFetch, ZiggsGatewayError } from './adapters/McpAdapter.js';
11
+ export { createMcpAgent, resolveZiggsGatewayTarget, wrapGatewayFetch, ZiggsGatewayError } from './mcp/createMcpAgent.js';
12
12
  // Skills: packaged instructions (SKILL.md + optional references/*.md) that
13
13
  // become an agent's systemPrompt. Parse-validate-pin is the whole machinery;
14
14
  // wiring one into an agent is a spread into claudeSdkAgentBase/createMcpAgent.
15
15
  // Prompt-baked — never the SDK's native skill loader.
16
- export { parseSkill, skillHash, skillRolePrompt, splitFrontmatter, SkillValidationError, SKILL_MAX_CHARS, } from './skills/parseSkill.js';
16
+ export { parseSkill, skillHash, skillRolePrompt, skillReferenceName, skillReferenceOneLine, splitFrontmatter, SkillValidationError, SKILL_MAX_CHARS, } from './skills/parseSkill.js';
17
17
  export { loadSkill, readSkillFiles, assertSkillHash } from './skills/loadSkill.js';
18
- export { AgentHost, createAgent, createAgentPool, DEFAULT_MODEL } from './AgentHost.js';
19
- export { Agent } from './agent/Agent.js';
20
- export { ClaudeSdkAgent } from './agent/ClaudeSdkAgent.js';
18
+ export { skillReadReferenceTool } from './skills/skillReadReference.js';
19
+ export { Agent, createAgent, createAgentPool, DEFAULT_MODEL } from './Agent.js';
20
+ export { ZiggsBrain } from './brain/ZiggsBrain.js';
21
+ export { ClaudeBrain } from './brain/ClaudeBrain.js';
21
22
  // The exact strings a Claude-brain wake sends: the shared protocol block, the
22
23
  // role-independent event prompt, and the one-line context digest. Exported so a
23
24
  // caller can answer "what does this agent actually put in front of the model,
24
25
  // and what does it cost?" without re-deriving it — a second copy of the prompt
25
26
  // is a second answer to that question, and only one of them would be true.
26
- export { CLAUDE_SDK_PROTOCOL } from './agent/claudeSdkProtocol.js';
27
- export { buildClaudeEventPrompt, summarizeContext } from './agent/claudeCognition.js';
27
+ export { CLAUDE_SDK_PROTOCOL } from './brain/claudeSdkProtocol.js';
28
+ export { buildClaudeEventPrompt, summarizeContext } from './brain/claudeCognition.js';
28
29
  export { ziggsBrain, claudeBrain, isBrainSelection, isClaudeCognition } from './brain/index.js';
29
- export { createZiggsEffectHandler } from './server/ZiggsEffectHandler.js';
30
- export { EventQueue } from './server/EventQueue.js';
31
- export { StateTimers } from './server/StateTimers.js';
32
- export { OutboxBuffer } from './server/OutboxBuffer.js';
30
+ export { createZiggsEffectHandler } from './platform/ZiggsEffectHandler.js';
31
+ export { EventQueue } from './platform/EventQueue.js';
32
+ export { StateTimers } from './platform/StateTimers.js';
33
+ export { OutboxBuffer } from './platform/OutboxBuffer.js';
33
34
  export { normalizeIncomingEvent } from './ingress/normalizeIncoming.js';
34
35
  // Runtime primitives
35
36
  export { AgentMachine } from './runtime/AgentMachine.js';
@@ -42,15 +43,13 @@ export { validateWorkflow, WorkflowValidationError } from './runtime/validateWor
42
43
  export { outcomeFromEvent, outcomeFromActionResult, applyOutcomeToCtx } from './runtime/buildOutcome.js';
43
44
  export { LANE_BOOK_KEY, allCollectedResults, allDelegatedAgreementIds, allPendingSubtasks, } from './runtime/taskBookkeeping.js';
44
45
  export { createDeliveryWriteKeys } from './runtime/deliveryWriteKeys.js';
45
- export { default } from './AgentHost.js';
46
+ export { default } from './Agent.js';
46
47
  // ── Supporting modules ──────────────────────────────────────────────────────
47
48
  export { validateContext, ContextWarning } from './cognition/validateContext.js';
48
- export { runLauncher } from './server/runLauncher.js';
49
- export { ConnectionPool } from './server/ConnectionPool.js';
49
+ export { ConnectionPool } from './platform/ConnectionPool.js';
50
50
  export { decodeOperatorKeyClaims, boundKeyFleetWarning } from './shared/operatorKeyClaims.js';
51
- export { createHealthServer } from './server/createHealthServer.js';
52
- export { TaskService } from './server/tasks/TaskService.js';
53
- export { AgreementService } from './server/agreements/AgreementService.js';
51
+ export { TaskService } from './platform/tasks/TaskService.js';
52
+ export { AgreementService } from './platform/agreements/AgreementService.js';
54
53
  export { ToolManager } from './tools/ToolManager.js';
55
54
  export { ToolProvider } from './tools/ToolProvider.js';
56
55
  export { defineTool } from './tools/defineTool.js';
@@ -62,25 +61,25 @@ export { MCP_PROVIDER, describeNeed, normalizeNeeds, toolsForNeed, toolsForNeeds
62
61
  export { OpenAIAdapter } from './adapters/OpenAIAdapter.js';
63
62
  export { extractJSON, safeParseJSON } from './utils/jsonExtractor.js';
64
63
  export { HistoryFormatter, historyFormatter, AgreementFormatter, agreementFormatter } from './formatters/index.js';
65
- export { ProactiveTrigger } from './server/proactive/ProactiveTrigger.js';
66
- export { PollRegistry, declaredPolls, } from './server/polls/PollKind.js';
67
- export { PollRunner } from './server/polls/PollRunner.js';
64
+ export { ProactiveTrigger } from './platform/proactive/ProactiveTrigger.js';
65
+ export { PollRegistry, declaredPolls, } from './platform/polls/PollKind.js';
66
+ export { PollRunner } from './platform/polls/PollRunner.js';
68
67
  // the hand-rolled ZiggsPayClient / ZiggsConnectClient were deleted;
69
68
  // payment and connection tools now use @ziggs-ai/api-client's PaymentsClient /
70
69
  // ConnectionsClient, the same clients ziggs-mcp uses.
71
70
  // the hand-rolled ZiggsContextClient was deleted; context tools now
72
71
  // use the same @ziggs-ai/api-client clients as ziggs-mcp (GrantsClient /
73
72
  // ContextGrantsClient / ContextReadClient). Grant/reach types live there.
74
- // All agent tool bundles live under server/tools/ (tier1 = protocol grammar,
75
- // tier2 = opt-in HTTP capability bundles). Single home: server/tools/index.ts.
73
+ // All agent tool bundles live under platform/tools/ (tier1 = protocol grammar,
74
+ // tier2 = opt-in HTTP capability bundles). Single home: platform/tools/index.ts.
76
75
  export {
77
76
  // Tier 1 — protocol grammar (framework-managed via taskTools).
78
77
  PROTOCOL_TOOLS, agreementProposeTool, agreementSubcontractTool, agreementRespondTool, agreementClaimTool, agreementCounterTool, agreementGetTool, agreementRevokeTool, agreementFulfillTool, taskCreateTool, taskSetResultTool, taskUpdatePlanStepTool, dispatchProtocolOp,
79
78
  // Tier 2 — opt-in capability bundles (spread into `tools:`).
80
- PAYMENT_TOOLS, paymentBalanceTool, CONNECTION_TOOLS, connectionProxyTool, connectionListGrantsTool, requestConnectionTool, MCP_CONNECTION_TOOLS, mcpToolCallTool, mcpToolsListTool, DISCOVERY_TOOLS, agentSearchTool, agentGetTool, MARKETPLACE_TOOLS, marketplaceViewTool, CONTEXT_TOOLS, contextReadTool, contextDelegateTool, contextExpandReachTool, contextDiscoverGrantableTool, GRANTS_TOOLS, listGrantsTool, LINK_TOOLS, linkProposeTool, linkListTool, INTRODUCTION_TOOLS, introductionMintTool, introductionRedeemTool, introductionListTool, introductionRevokeTool, ARTIFACT_TOOLS, recordArtifactTool, CHAT_TOOLS, openConversationTool, } from './server/tools/index.js';
79
+ PAYMENT_TOOLS, paymentBalanceTool, CONNECTION_TOOLS, connectionProxyTool, connectionListGrantsTool, requestConnectionTool, MCP_CONNECTION_TOOLS, mcpToolCallTool, mcpToolsListTool, DISCOVERY_TOOLS, agentSearchTool, agentGetTool, MARKETPLACE_TOOLS, marketplaceViewTool, CONTEXT_TOOLS, contextReadTool, contextDelegateTool, contextExpandReachTool, contextDiscoverGrantableTool, GRANTS_TOOLS, listGrantsTool, LINK_TOOLS, linkProposeTool, linkListTool, INTRODUCTION_TOOLS, introductionMintTool, introductionRedeemTool, introductionListTool, introductionRevokeTool, ARTIFACT_TOOLS, recordArtifactTool, CHAT_TOOLS, openConversationTool, } from './platform/tools/index.js';
81
80
  // The always-on toolset for the hosted Claude cognition (parity guard
82
81
  // reads this as part of the real SDK registry).
83
- export { CLAUDE_SDK_TOOLS } from './agent/claudeSdkTools.js';
82
+ export { CLAUDE_SDK_TOOLS } from './brain/claudeSdkTools.js';
84
83
  export { PROTOCOL_TOOL_NAMES, PROTOCOL_TOOL_TO_OPERATION, mapProtocolToolToOperation, isProtocolToolName } from './tasks/protocolRegistry.js';
85
84
  export { InMemoryStore, FileMemoryStore } from './memory/MemoryStore.js';
86
85
  export { classifyIncomingEvent } from './context/classifyEnvelope.js';
@@ -91,5 +90,5 @@ export { MessagesClient, ArtifactsClient, AgentSearchClient, getBackendUrl,
91
90
  // self-hosted / non-default backend: consumers of agent-sdk alone
92
91
  // must be able to point the shared HTTP client without a direct api-client dep.
93
92
  configureApiClient, } from '@ziggs-ai/api-client';
94
- export { SeenMessages } from './server/SeenMessages.js';
93
+ export { SeenMessages } from './platform/SeenMessages.js';
95
94
  export { runtimeLog, resetRuntimeLogLevelCache } from './shared/runtimeLog.js';