@ziggs-ai/agent-sdk 0.1.12 → 0.2.1

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 (218) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +41 -2
  3. package/dist/AgentHost.d.ts +201 -0
  4. package/dist/AgentHost.js +652 -0
  5. package/dist/adapters/AnthropicAdapter.d.ts +39 -0
  6. package/dist/adapters/AnthropicAdapter.js +200 -0
  7. package/dist/adapters/McpAdapter.d.ts +199 -0
  8. package/dist/adapters/McpAdapter.js +468 -0
  9. package/dist/adapters/OpenAIAdapter.d.ts +26 -0
  10. package/dist/adapters/OpenAIAdapter.js +158 -0
  11. package/dist/adapters/index.js +2 -0
  12. package/dist/agent/Agent.d.ts +78 -0
  13. package/dist/agent/Agent.js +58 -0
  14. package/dist/agent/ClaudeSdkAgent.d.ts +38 -0
  15. package/dist/agent/ClaudeSdkAgent.js +322 -0
  16. package/dist/agent/claudeCognition.d.ts +67 -0
  17. package/dist/agent/claudeCognition.js +103 -0
  18. package/dist/agent/claudeSdkProtocol.d.ts +11 -0
  19. package/dist/agent/claudeSdkTools.d.ts +19 -0
  20. package/dist/agent/claudeSdkTools.js +57 -0
  21. package/dist/agent/hostedAgentConnection.d.ts +15 -0
  22. package/dist/agent/hostedAgentConnection.js +29 -0
  23. package/dist/agent/toolManagerToSdkMcp.d.ts +12 -0
  24. package/dist/agent/toolManagerToSdkMcp.js +123 -0
  25. package/dist/brain/index.d.ts +50 -0
  26. package/dist/brain/index.js +45 -0
  27. package/dist/cognition/validateContext.d.ts +11 -0
  28. package/dist/cognition/validateContext.js +117 -0
  29. package/dist/context/applyEffects.d.ts +2 -0
  30. package/dist/context/applyEffects.js +89 -0
  31. package/dist/context/batch.d.ts +2 -0
  32. package/dist/context/batch.js +18 -0
  33. package/dist/context/classifyEnvelope.d.ts +1 -0
  34. package/dist/context/classifyEnvelope.js +58 -0
  35. package/dist/context/routingLabels.d.ts +4 -0
  36. package/dist/context/routingLabels.js +48 -0
  37. package/dist/defineAgent.d.ts +14 -0
  38. package/dist/defineAgent.js +68 -0
  39. package/dist/formatters/AgreementFormatter.d.ts +18 -0
  40. package/dist/formatters/AgreementFormatter.js +130 -0
  41. package/dist/formatters/HistoryFormatter.d.ts +26 -0
  42. package/dist/formatters/HistoryFormatter.js +173 -0
  43. package/dist/formatters/index.js +2 -0
  44. package/{src/index.ts → dist/index.d.ts} +7 -53
  45. package/dist/index.js +66 -0
  46. package/dist/ingress/normalizeIncoming.d.ts +65 -0
  47. package/dist/ingress/normalizeIncoming.js +88 -0
  48. package/dist/memory/MemoryStore.d.ts +55 -0
  49. package/dist/memory/MemoryStore.js +78 -0
  50. package/dist/pricing/fleetDefaults.d.ts +46 -0
  51. package/dist/pricing/fleetDefaults.js +168 -0
  52. package/dist/pricing/fleetEvalFree.d.ts +7 -0
  53. package/dist/pricing/fleetEvalFree.js +24 -0
  54. package/dist/pricing/fleetFreeTierA.gen.d.ts +6 -0
  55. package/{src/pricing/fleetFreeTierA.gen.ts → dist/pricing/fleetFreeTierA.gen.js} +5 -6
  56. package/dist/pricing/fleetTierByAgentId.gen.d.ts +7 -0
  57. package/dist/pricing/fleetTierByAgentId.gen.js +768 -0
  58. package/dist/runtime/AgentMachine.d.ts +143 -0
  59. package/dist/runtime/AgentMachine.js +400 -0
  60. package/dist/runtime/PromptBuilder.d.ts +96 -0
  61. package/dist/runtime/PromptBuilder.js +439 -0
  62. package/{src/runtime/bootstrapCtx.ts → dist/runtime/bootstrapCtx.d.ts} +1 -22
  63. package/dist/runtime/bootstrapCtx.js +37 -0
  64. package/dist/runtime/buildOutcome.d.ts +68 -0
  65. package/dist/runtime/buildOutcome.js +464 -0
  66. package/dist/runtime/defaults.d.ts +54 -0
  67. package/dist/runtime/defaults.js +47 -0
  68. package/dist/runtime/deriveRespondsToProposals.d.ts +9 -0
  69. package/dist/runtime/deriveRespondsToProposals.js +38 -0
  70. package/dist/runtime/kickoff.d.ts +15 -0
  71. package/dist/runtime/kickoff.js +112 -0
  72. package/dist/runtime/runMechanical.d.ts +25 -0
  73. package/dist/runtime/runMechanical.js +74 -0
  74. package/dist/runtime/runTurn.d.ts +63 -0
  75. package/dist/runtime/runTurn.js +800 -0
  76. package/dist/runtime/validateWorkflow.d.ts +17 -0
  77. package/dist/runtime/validateWorkflow.js +209 -0
  78. package/dist/server/ConnectionPool.d.ts +68 -0
  79. package/dist/server/ConnectionPool.js +166 -0
  80. package/dist/server/EventQueue.d.ts +33 -0
  81. package/dist/server/EventQueue.js +98 -0
  82. package/dist/server/InboxCatchUp.d.ts +24 -0
  83. package/dist/server/InboxCatchUp.js +214 -0
  84. package/dist/server/OutboxBuffer.d.ts +33 -0
  85. package/dist/server/OutboxBuffer.js +68 -0
  86. package/dist/server/SeenMessages.d.ts +13 -0
  87. package/dist/server/SeenMessages.js +31 -0
  88. package/dist/server/StateTimers.d.ts +34 -0
  89. package/dist/server/StateTimers.js +70 -0
  90. package/dist/server/ZiggsEffectHandler.d.ts +79 -0
  91. package/dist/server/ZiggsEffectHandler.js +319 -0
  92. package/dist/server/agreements/AgreementService.d.ts +50 -0
  93. package/dist/server/agreements/AgreementService.js +85 -0
  94. package/dist/server/createHealthServer.d.ts +7 -0
  95. package/dist/server/createHealthServer.js +75 -0
  96. package/dist/server/proactive/ProactiveTrigger.d.ts +33 -0
  97. package/dist/server/proactive/ProactiveTrigger.js +71 -0
  98. package/dist/server/runLauncher.d.ts +28 -0
  99. package/dist/server/runLauncher.js +93 -0
  100. package/dist/server/tasks/TaskService.d.ts +25 -0
  101. package/dist/server/tasks/TaskService.js +103 -0
  102. package/dist/server/tasks/index.js +1 -0
  103. package/dist/server/telemetryIngest.d.ts +24 -0
  104. package/dist/server/telemetryIngest.js +62 -0
  105. package/dist/server/tools/index.d.ts +24 -0
  106. package/{src/server/tools/index.ts → dist/server/tools/index.js} +4 -24
  107. package/dist/server/tools/tier1/protocolRunner.d.ts +39 -0
  108. package/dist/server/tools/tier1/protocolRunner.js +288 -0
  109. package/dist/server/tools/tier1/protocolTools.d.ts +12 -0
  110. package/dist/server/tools/tier1/protocolTools.js +37 -0
  111. package/dist/server/tools/tier2/connectionTools.d.ts +4 -0
  112. package/dist/server/tools/tier2/connectionTools.js +63 -0
  113. package/dist/server/tools/tier2/contextTools.d.ts +4 -0
  114. package/dist/server/tools/tier2/contextTools.js +46 -0
  115. package/dist/server/tools/tier2/discoveryTools.d.ts +4 -0
  116. package/dist/server/tools/tier2/discoveryTools.js +25 -0
  117. package/dist/server/tools/tier2/marketplaceTools.d.ts +3 -0
  118. package/dist/server/tools/tier2/marketplaceTools.js +22 -0
  119. package/dist/server/tools/tier2/paymentTools.d.ts +12 -0
  120. package/dist/server/tools/tier2/paymentTools.js +165 -0
  121. package/dist/server/ziggsconnect/ZiggsConnectClient.d.ts +35 -0
  122. package/dist/server/ziggsconnect/ZiggsConnectClient.js +95 -0
  123. package/dist/server/ziggscontext/ZiggsContextClient.d.ts +53 -0
  124. package/dist/server/ziggscontext/ZiggsContextClient.js +124 -0
  125. package/dist/server/ziggspay/ZiggsPayClient.d.ts +82 -0
  126. package/dist/server/ziggspay/ZiggsPayClient.js +203 -0
  127. package/dist/shared/ids.d.ts +1 -0
  128. package/dist/shared/ids.js +3 -0
  129. package/dist/shared/runtimeLog.d.ts +18 -0
  130. package/dist/shared/runtimeLog.js +68 -0
  131. package/dist/shared/types.d.ts +22 -0
  132. package/dist/shared/types.js +23 -0
  133. package/dist/tasks/protocolRegistry.d.ts +16 -0
  134. package/dist/tasks/protocolRegistry.js +20 -0
  135. package/dist/tools/ToolManager.d.ts +12 -0
  136. package/dist/tools/ToolManager.js +74 -0
  137. package/dist/tools/ToolProvider.d.ts +6 -0
  138. package/dist/tools/ToolProvider.js +21 -0
  139. package/dist/tools/defineTool.d.ts +27 -0
  140. package/dist/tools/defineTool.js +62 -0
  141. package/{src/tools/index.ts → dist/tools/index.d.ts} +0 -1
  142. package/dist/tools/index.js +6 -0
  143. package/dist/tools/recordReport.d.ts +41 -0
  144. package/dist/tools/recordReport.js +30 -0
  145. package/dist/types.d.ts +466 -0
  146. package/dist/types.js +7 -0
  147. package/dist/utils/jsonExtractor.d.ts +2 -0
  148. package/dist/utils/jsonExtractor.js +111 -0
  149. package/package.json +14 -6
  150. package/src/AgentHost.ts +0 -814
  151. package/src/adapters/AnthropicAdapter.ts +0 -238
  152. package/src/adapters/McpAdapter.ts +0 -678
  153. package/src/adapters/OpenAIAdapter.ts +0 -194
  154. package/src/agent/Agent.ts +0 -112
  155. package/src/agent/ClaudeSdkAgent.ts +0 -401
  156. package/src/agent/claudeCognition.ts +0 -139
  157. package/src/agent/claudeSdkTools.ts +0 -81
  158. package/src/agent/hostedAgentConnection.ts +0 -41
  159. package/src/agent/toolManagerToSdkMcp.ts +0 -136
  160. package/src/cognition/validateContext.ts +0 -95
  161. package/src/context/applyEffects.ts +0 -80
  162. package/src/context/batch.ts +0 -19
  163. package/src/context/classifyEnvelope.ts +0 -38
  164. package/src/context/routingLabels.ts +0 -46
  165. package/src/defineAgent.ts +0 -77
  166. package/src/formatters/AgreementFormatter.ts +0 -111
  167. package/src/formatters/HistoryFormatter.ts +0 -172
  168. package/src/ingress/normalizeIncoming.ts +0 -162
  169. package/src/memory/MemoryStore.ts +0 -104
  170. package/src/pricing/fleetDefaults.ts +0 -225
  171. package/src/pricing/fleetEvalFree.ts +0 -24
  172. package/src/pricing/fleetTierByAgentId.gen.ts +0 -775
  173. package/src/runtime/AgentMachine.ts +0 -484
  174. package/src/runtime/PromptBuilder.ts +0 -522
  175. package/src/runtime/buildOutcome.ts +0 -563
  176. package/src/runtime/defaults.ts +0 -86
  177. package/src/runtime/deriveRespondsToProposals.ts +0 -35
  178. package/src/runtime/kickoff.ts +0 -117
  179. package/src/runtime/runMechanical.ts +0 -106
  180. package/src/runtime/runTurn.ts +0 -870
  181. package/src/runtime/validateWorkflow.ts +0 -221
  182. package/src/server/ConnectionPool.ts +0 -206
  183. package/src/server/EventQueue.ts +0 -133
  184. package/src/server/InboxCatchUp.ts +0 -291
  185. package/src/server/OutboxBuffer.ts +0 -90
  186. package/src/server/SeenMessages.ts +0 -27
  187. package/src/server/StateTimers.ts +0 -85
  188. package/src/server/ZiggsEffectHandler.ts +0 -427
  189. package/src/server/agreements/AgreementService.ts +0 -118
  190. package/src/server/createHealthServer.ts +0 -85
  191. package/src/server/proactive/ProactiveTrigger.ts +0 -83
  192. package/src/server/runLauncher.ts +0 -146
  193. package/src/server/tasks/TaskService.ts +0 -111
  194. package/src/server/telemetryIngest.ts +0 -91
  195. package/src/server/tools/tier1/protocolRunner.ts +0 -353
  196. package/src/server/tools/tier1/protocolTools.ts +0 -114
  197. package/src/server/tools/tier2/connectionTools.ts +0 -75
  198. package/src/server/tools/tier2/contextTools.ts +0 -63
  199. package/src/server/tools/tier2/discoveryTools.ts +0 -34
  200. package/src/server/tools/tier2/marketplaceTools.ts +0 -27
  201. package/src/server/tools/tier2/paymentTools.ts +0 -170
  202. package/src/server/ziggsconnect/ZiggsConnectClient.ts +0 -126
  203. package/src/server/ziggscontext/ZiggsContextClient.ts +0 -129
  204. package/src/server/ziggspay/ZiggsPayClient.ts +0 -193
  205. package/src/shared/ids.ts +0 -3
  206. package/src/shared/runtimeLog.ts +0 -72
  207. package/src/shared/types.ts +0 -29
  208. package/src/tasks/protocolRegistry.ts +0 -25
  209. package/src/tools/ToolManager.ts +0 -95
  210. package/src/tools/ToolProvider.ts +0 -19
  211. package/src/tools/defineTool.ts +0 -90
  212. package/src/tools/recordReport.ts +0 -82
  213. package/src/types.ts +0 -483
  214. package/src/utils/jsonExtractor.ts +0 -100
  215. /package/{src/adapters/index.ts → dist/adapters/index.d.ts} +0 -0
  216. /package/{src/agent/claudeSdkProtocol.ts → dist/agent/claudeSdkProtocol.js} +0 -0
  217. /package/{src/formatters/index.ts → dist/formatters/index.d.ts} +0 -0
  218. /package/{src/server/tasks/index.ts → dist/server/tasks/index.d.ts} +0 -0
@@ -0,0 +1,58 @@
1
+ import { CONTEXT_RESET } from './applyEffects.js';
2
+ import { getBatchEvents, isTaskResultRelevantToAgent } from './batch.js';
3
+ function isTaskAssignment(result, ownAgentId) {
4
+ const parties = result['agreement']?.['parties'] ?? {};
5
+ const isProvider = result['providerIsYou'] || parties['provider'] === ownAgentId;
6
+ return !!(isProvider && (result['state'] === 'active' || result['state'] === 'in-progress'));
7
+ }
8
+ export function classifyIncomingEvent(rawEvent, ownAgentId) {
9
+ const flags = { ...CONTEXT_RESET };
10
+ if (!rawEvent)
11
+ return flags;
12
+ for (const ev of getBatchEvents(rawEvent)) {
13
+ if (!ev)
14
+ continue;
15
+ const e = ev;
16
+ if (e['type'] !== 'task_result') {
17
+ flags['incomingMessage'] = true;
18
+ continue;
19
+ }
20
+ const result = e['result'] || {};
21
+ if (ownAgentId && !isTaskResultRelevantToAgent(result, ownAgentId) && e['receiverId'] !== ownAgentId)
22
+ continue;
23
+ const state = result['state'];
24
+ const ag = result['agreement'];
25
+ const parties = ag?.['parties'] || {};
26
+ const proposalStatus = ag?.['proposal']?.['status'];
27
+ if (state === 'active' && proposalStatus === 'approved' && ownAgentId && parties['creator'] === ownAgentId) {
28
+ flags['approval'] = true;
29
+ flags['taskAssignment'] = result;
30
+ continue;
31
+ }
32
+ if (isTaskAssignment(result, ownAgentId)) {
33
+ flags['taskAssignment'] = result;
34
+ flags['approval'] = true;
35
+ continue;
36
+ }
37
+ if (proposalStatus === 'approved' || (state === 'active' && proposalStatus === 'pending')) {
38
+ flags['approval'] = true;
39
+ flags['taskAssignment'] = result;
40
+ continue;
41
+ }
42
+ if (proposalStatus === 'rejected' || state === 'cancelled') {
43
+ flags['rejection'] = true;
44
+ continue;
45
+ }
46
+ if (state === 'completed') {
47
+ flags['subtaskResult'] = result;
48
+ continue;
49
+ }
50
+ if (state === 'failed') {
51
+ flags['subtaskResult'] = result;
52
+ flags['subtaskFailed'] = true;
53
+ continue;
54
+ }
55
+ flags['subtaskResult'] = result;
56
+ }
57
+ return flags;
58
+ }
@@ -0,0 +1,4 @@
1
+ export declare function unwrapBatchEvent(event: unknown): unknown;
2
+ export declare function classifyWorkflowEvent(event: unknown, ownAgentId?: string | null): string;
3
+ export declare function findTaskResult(output: Record<string, unknown> | null | undefined): unknown;
4
+ export declare function findIncomingTaskResult(incomingEvent: unknown): unknown;
@@ -0,0 +1,48 @@
1
+ import { isProtocolToolName } from '../tasks/protocolRegistry.js';
2
+ import { getBatchEvents, isTaskResultRelevantToAgent } from './batch.js';
3
+ export function unwrapBatchEvent(event) {
4
+ const e = event;
5
+ if (e?.['type'] === 'batch' && Array.isArray(e['events']) && e['events'][0])
6
+ return e['events'][0];
7
+ return event;
8
+ }
9
+ export function classifyWorkflowEvent(event, ownAgentId = null) {
10
+ const events = getBatchEvents(event);
11
+ if (events.length === 0)
12
+ return 'message';
13
+ let sawTaskResult = false, sawOwnTaskResult = false;
14
+ for (const ev of events) {
15
+ const e = ev;
16
+ if (e?.['type'] !== 'task_result')
17
+ continue;
18
+ sawTaskResult = true;
19
+ const result = e['result'] || {};
20
+ if (!isTaskResultRelevantToAgent(result, ownAgentId))
21
+ continue;
22
+ sawOwnTaskResult = true;
23
+ const state = result['state'];
24
+ const ag = result['agreement'];
25
+ const parties = ag?.['parties'] || {};
26
+ const proposalStatus = ag?.['proposal'] ? ag['proposal']['status'] : undefined;
27
+ const isProvider = result['providerIsYou'] || parties['provider'] === ownAgentId;
28
+ if (isProvider && (state === 'active' || state === 'in-progress'))
29
+ return 'task_assignment';
30
+ if (proposalStatus === 'approved' || (state === 'active' && proposalStatus === 'pending'))
31
+ return 'task_approved';
32
+ if (proposalStatus === 'rejected' || state === 'cancelled')
33
+ return 'task_rejected';
34
+ }
35
+ if (sawOwnTaskResult || sawTaskResult)
36
+ return 'task_update';
37
+ return 'message';
38
+ }
39
+ export function findTaskResult(output) {
40
+ const events = output?.['emittedEvents'] ?? [];
41
+ return events.find(e => {
42
+ const ev = e;
43
+ return ev['type'] === 'task_result' || (ev['type'] === 'tool_result' && isProtocolToolName(ev['tool']));
44
+ }) ?? null;
45
+ }
46
+ export function findIncomingTaskResult(incomingEvent) {
47
+ return getBatchEvents(incomingEvent).find(e => e?.['type'] === 'task_result') ?? null;
48
+ }
@@ -0,0 +1,14 @@
1
+ import type { AgentConfig, DefineAgentInput } from './types.js';
2
+ /**
3
+ * Validates the workflow synchronously, resolves merged tools and model, and
4
+ * returns a frozen AgentConfig. Never mutates the input. `wait` defaults remain
5
+ * the author's visible spread of `thinkingDefaults`. ONE default is injected (as
6
+ * new objects): the agreement-kickoff state `kickingOff` plus a last-position
7
+ * transition into it, appended to every state that does not already handle a
8
+ * proposer-side proposal-resolved/approve outcome (runtime/kickoff.ts). The
9
+ * state name 'kickingOff' is reserved; defining it throws.
10
+ *
11
+ * Validation throws WorkflowValidationError on hard problems and logs warnings
12
+ * on soft ones (e.g. missing wait fallthrough).
13
+ */
14
+ export declare function defineAgent(input: DefineAgentInput): AgentConfig;
@@ -0,0 +1,68 @@
1
+ import { validateWorkflow } from './runtime/validateWorkflow.js';
2
+ import { injectKickoffDefault } from './runtime/kickoff.js';
3
+ import { deriveRespondsToProposals } from './runtime/deriveRespondsToProposals.js';
4
+ import { runtimeLog } from './shared/runtimeLog.js';
5
+ import { DEFAULT_MODEL } from './AgentHost.js';
6
+ /**
7
+ * Validates the workflow synchronously, resolves merged tools and model, and
8
+ * returns a frozen AgentConfig. Never mutates the input. `wait` defaults remain
9
+ * the author's visible spread of `thinkingDefaults`. ONE default is injected (as
10
+ * new objects): the agreement-kickoff state `kickingOff` plus a last-position
11
+ * transition into it, appended to every state that does not already handle a
12
+ * proposer-side proposal-resolved/approve outcome (runtime/kickoff.ts). The
13
+ * state name 'kickingOff' is reserved; defining it throws.
14
+ *
15
+ * Validation throws WorkflowValidationError on hard problems and logs warnings
16
+ * on soft ones (e.g. missing wait fallthrough).
17
+ */
18
+ export function defineAgent(input) {
19
+ if (!input?.agentId)
20
+ throw new Error('[defineAgent] agentId is required');
21
+ if (!input?.description)
22
+ throw new Error('[defineAgent] description is required');
23
+ if (!input?.states)
24
+ throw new Error('[defineAgent] states is required');
25
+ if (!input?.initial)
26
+ throw new Error('[defineAgent] initial state is required');
27
+ // Agreement-kickoff default (see runtime/kickoff.ts): injected BEFORE
28
+ // validation so the injected state/transitions are validated too.
29
+ const workflow = injectKickoffDefault({
30
+ id: input.agentId,
31
+ description: input.description,
32
+ initial: input.initial,
33
+ states: input.states,
34
+ });
35
+ const { warnings } = validateWorkflow(workflow);
36
+ for (const w of warnings)
37
+ runtimeLog.warn('defineAgent', w);
38
+ const tools = [
39
+ ...(Array.isArray(input.tools) ? input.tools : []),
40
+ ...(Array.isArray(input.services?.tools) ? input.services.tools : []),
41
+ ];
42
+ // Model resolution, most-specific-first: a per-agent pin, then the
43
+ // fleet-wide `LLM_MODEL` lever, then the single `DEFAULT_MODEL` fallback (the
44
+ // ONE place the default lives — see AgentHost). The id also picks the provider
45
+ // (claude-* → Anthropic). No agent hardcodes its own fallback.
46
+ const model = input.services?.llm?.model ||
47
+ process.env.LLM_MODEL ||
48
+ DEFAULT_MODEL;
49
+ // Strip the structural fields we already consumed; pass through everything
50
+ // else (operatorKey, taskTools, custom keys consumed by AgentHost).
51
+ const { agentId, description, specialization, services: _services, initial: _initial, states: _states, tools: _tools, operatorKey, taskTools, ...rest } = input;
52
+ const config = {
53
+ openaiKey: process.env.OPENAI_API_KEY,
54
+ anthropicKey: process.env.ANTHROPIC_API_KEY,
55
+ ...(operatorKey ? { operatorKey } : {}),
56
+ agentId,
57
+ description,
58
+ ...(specialization ? { specialization } : {}),
59
+ tools,
60
+ model,
61
+ workflow,
62
+ respondsToProposals: input.respondsToProposals ?? deriveRespondsToProposals(workflow),
63
+ ...(input.services ? { services: input.services } : {}),
64
+ ...(taskTools !== undefined ? { taskTools } : {}),
65
+ ...rest,
66
+ };
67
+ return Object.freeze(config);
68
+ }
@@ -0,0 +1,18 @@
1
+ interface AgreementFormatterOptions {
2
+ shortIds?: boolean;
3
+ indentSize?: number;
4
+ }
5
+ type AnyObj = Record<string, unknown>;
6
+ export declare class AgreementFormatter {
7
+ private shortIds;
8
+ private indentSize;
9
+ constructor(options?: AgreementFormatterOptions);
10
+ format(agreements: AnyObj[] | null | undefined): string;
11
+ formatAgreement(ag: AnyObj, indent?: string): string;
12
+ _renderTaskExecution(task: AnyObj, indent?: string): string;
13
+ _labelParty(id: string | null | undefined, isYou: boolean | undefined): string;
14
+ shortId(id: string | null | undefined): string;
15
+ private _indent;
16
+ }
17
+ export declare const agreementFormatter: AgreementFormatter;
18
+ export {};
@@ -0,0 +1,130 @@
1
+ export class AgreementFormatter {
2
+ shortIds;
3
+ indentSize;
4
+ constructor(options = {}) {
5
+ this.shortIds = options.shortIds ?? false;
6
+ this.indentSize = options.indentSize ?? 2;
7
+ }
8
+ format(agreements) {
9
+ if (!agreements?.length)
10
+ return 'No active agreements.';
11
+ const pending = agreements.filter(a => a['proposal']?.['status'] === 'pending' && a['proposedToIsYou']);
12
+ const standing = agreements.filter(a => !a['task']);
13
+ const active = agreements.filter(a => a['task'] && !(a['proposal']?.['status'] === 'pending' && a['proposedToIsYou']));
14
+ const sections = [];
15
+ if (pending.length > 0) {
16
+ sections.push('Pending Proposals (awaiting your response):');
17
+ for (const ag of pending)
18
+ sections.push(this.formatAgreement(ag, this._indent(1)));
19
+ }
20
+ if (active.length > 0) {
21
+ if (sections.length > 0)
22
+ sections.push('');
23
+ sections.push('Active Agreements:');
24
+ for (const ag of active)
25
+ sections.push(this.formatAgreement(ag, this._indent(1)));
26
+ }
27
+ if (standing.length > 0) {
28
+ if (sections.length > 0)
29
+ sections.push('');
30
+ sections.push('Standing Agreements (no execution running):');
31
+ for (const ag of standing)
32
+ sections.push(this.formatAgreement(ag, this._indent(1)));
33
+ }
34
+ return sections.join('\n');
35
+ }
36
+ formatAgreement(ag, indent = '') {
37
+ const status = (ag['status'] || 'unknown').toUpperCase();
38
+ const agId = this.shortId(ag['agreementId']);
39
+ const parties = ag['parties'] || {};
40
+ const lines = [
41
+ `${indent}[${status}] Agreement ${agId}`,
42
+ `${indent} Creator: ${this._labelParty(parties['creator'], ag['creatorIsYou'])}`,
43
+ `${indent} Provider: ${this._labelParty(parties['provider'], ag['providerIsYou'])}`,
44
+ `${indent} Payer: ${this._labelParty(parties['payer'], ag['payerIsYou'])}`,
45
+ ];
46
+ if (parties['proposedTo'])
47
+ lines.push(`${indent} Proposed to: ${this._labelParty(parties['proposedTo'], ag['proposedToIsYou'])}`);
48
+ const proposal = ag['proposal'];
49
+ if (proposal?.['status'])
50
+ lines.push(`${indent} Proposal: ${proposal['status']}${proposal['respondedBy'] ? ` (by ${proposal['respondedBy']})` : ''}`);
51
+ const money = ag['money'];
52
+ if (typeof money?.['price'] === 'number' && money['price'] > 0) {
53
+ const parts = [`${money['price']} cents`];
54
+ if (money['paymentStatus'] && money['paymentStatus'] !== 'none')
55
+ parts.push(money['paymentStatus']);
56
+ lines.push(`${indent} Money: ${parts.join(', ')}`);
57
+ }
58
+ const terms = ag['terms'];
59
+ if (terms) {
60
+ const tparts = [];
61
+ if (terms['lifecycle'] && terms['lifecycle'] !== 'open')
62
+ tparts.push(`lifecycle: ${terms['lifecycle']}`);
63
+ if (terms['maxExecutions'] != null)
64
+ tparts.push(`maxExecutions: ${terms['maxExecutions']}`);
65
+ if (terms['expiresAt'])
66
+ tparts.push(`expiresAt: ${terms['expiresAt']}`);
67
+ if (terms['description'])
68
+ tparts.push(`"${terms['description']}"`);
69
+ if (tparts.length > 0)
70
+ lines.push(`${indent} Terms: ${tparts.join(', ')}`);
71
+ }
72
+ if (ag['task']) {
73
+ lines.push('');
74
+ lines.push(`${indent} Execution:`);
75
+ lines.push(this._renderTaskExecution(ag['task'], indent + ' '));
76
+ }
77
+ else
78
+ lines.push(`${indent} Execution: (none yet)`);
79
+ return lines.join('\n');
80
+ }
81
+ _renderTaskExecution(task, indent = '') {
82
+ const state = (task['state'] || 'unknown').toUpperCase();
83
+ const id = this.shortId(task['taskId']);
84
+ const lines = [`${indent}[${state}] ${task['description'] || 'No description'}`, `${indent} Task ID: ${id}`];
85
+ if (task['parentTaskId'])
86
+ lines.push(`${indent} Parent task: ${task['parentTaskId']}`);
87
+ if (task['result'] && (task['state'] === 'completed' || task['state'] === 'failed')) {
88
+ const r = String(task['result']);
89
+ lines.push(`${indent} Result: ${r.length > 100 ? r.slice(0, 100) + '...' : r}`);
90
+ }
91
+ const plan = task['plan'];
92
+ const steps = plan?.['steps'];
93
+ if (steps?.length) {
94
+ const sorted = [...steps].sort((a, b) => a['order'] - b['order']);
95
+ const done = sorted.filter(s => s['status'] === 'completed').length;
96
+ lines.push(`${indent} Plan (${done}/${sorted.length} done):`);
97
+ for (const step of sorted) {
98
+ const icon = { pending: '○', in_progress: '●', completed: '✓', skipped: '–' }[step['status']] || '?';
99
+ const note = step['status'] === 'completed' && step['result'] ? ` → ${String(step['result']).slice(0, 60)}${String(step['result']).length > 60 ? '...' : ''}` : '';
100
+ lines.push(`${indent} ${step['order']}. [${icon}] ${step['description'] || step['stepId']}${note}`);
101
+ }
102
+ }
103
+ const subtasks = task['subtasks'];
104
+ if (subtasks?.length) {
105
+ lines.push(`${indent} Subtasks (${subtasks.length}):`);
106
+ for (const st of subtasks) {
107
+ const sstate = (st['state'] || 'unknown').toUpperCase();
108
+ const sid = this.shortId(st['taskId']);
109
+ lines.push(`${indent} [${sstate}] ${st['description'] || sid} (${sid}, provider: ${st['providerIsYou'] ? 'You' : (st['provider'] ?? 'unassigned')})`);
110
+ }
111
+ }
112
+ return lines.join('\n');
113
+ }
114
+ _labelParty(id, isYou) {
115
+ if (!id)
116
+ return 'N/A';
117
+ return isYou ? `You (${id})` : id;
118
+ }
119
+ shortId(id) {
120
+ if (!id)
121
+ return '?';
122
+ if (!this.shortIds)
123
+ return id;
124
+ return id.length > 20 ? id.slice(0, 20) + '...' : id;
125
+ }
126
+ _indent(level) {
127
+ return ' '.repeat(level * this.indentSize);
128
+ }
129
+ }
130
+ export const agreementFormatter = new AgreementFormatter();
@@ -0,0 +1,26 @@
1
+ type AnyObj = Record<string, unknown>;
2
+ interface HistoryFormatterOptions {
3
+ showTimestamps?: boolean;
4
+ shortIds?: boolean;
5
+ }
6
+ export declare class HistoryFormatter {
7
+ private showTimestamps;
8
+ private shortIds;
9
+ constructor(options?: HistoryFormatterOptions);
10
+ format(history: AnyObj[] | null | undefined, agentId: string, options?: {
11
+ mode?: string;
12
+ }): string;
13
+ formatEntry(entry: AnyObj, agentId: string, labelTypes?: boolean): string;
14
+ formatMessage(entry: AnyObj, agentId: string, timePrefix: string): string;
15
+ formatTaskHistory(entry: AnyObj, agentId: string, timePrefix: string): string;
16
+ formatArtifact(entry: AnyObj, _agentId: string, timePrefix: string): string;
17
+ formatParticipant(participant: AnyObj | null | undefined, agentId: string): string;
18
+ formatOwner(task: AnyObj, agentId: string): string;
19
+ formatExecutor(task: AnyObj, agentId: string): string;
20
+ shortId(id: string | null | undefined): string;
21
+ formatTime(timestamp: string | null | undefined): string;
22
+ formatArgs(args: AnyObj | null | undefined): string;
23
+ private safeParseJSON;
24
+ }
25
+ export declare const historyFormatter: HistoryFormatter;
26
+ export {};
@@ -0,0 +1,173 @@
1
+ export class HistoryFormatter {
2
+ showTimestamps;
3
+ shortIds;
4
+ constructor(options = {}) {
5
+ this.showTimestamps = options.showTimestamps ?? true;
6
+ this.shortIds = options.shortIds ?? false;
7
+ }
8
+ format(history, agentId, options = {}) {
9
+ if (!history?.length)
10
+ return 'No previous activity.';
11
+ const labelTypes = options.mode === 'mission';
12
+ const sorted = [...history].sort((a, b) => {
13
+ const tA = a['timestamp'] ? new Date(a['timestamp']).getTime() : 0;
14
+ const tB = b['timestamp'] ? new Date(b['timestamp']).getTime() : 0;
15
+ return tA - tB;
16
+ });
17
+ return sorted.map(entry => this.formatEntry(entry, agentId, labelTypes)).join('\n');
18
+ }
19
+ formatEntry(entry, agentId, labelTypes = false) {
20
+ const timestamp = this.showTimestamps ? this.formatTime(entry['timestamp']) : '';
21
+ const timePrefix = timestamp ? `[${timestamp}] ` : '';
22
+ const entryType = entry['entryType'];
23
+ if (entryType === 'message' || !entryType) {
24
+ const label = labelTypes ? '[CHAT] ' : '';
25
+ return `${label}${this.formatMessage(entry, agentId, timePrefix)}`;
26
+ }
27
+ if (entryType === 'task_history') {
28
+ const label = labelTypes ? '[TASK] ' : '';
29
+ return `${label}${this.formatTaskHistory(entry, agentId, timePrefix)}`;
30
+ }
31
+ if (entryType === 'artifact') {
32
+ const line = this.formatArtifact(entry, agentId, timePrefix);
33
+ if (labelTypes) {
34
+ if (entry['content_type'] === 'thought')
35
+ return `[THOUGHT] ${line}`;
36
+ const text = entry['text'] || '';
37
+ const json = text.replace(/^operation_(?:started|completed|error):/, '');
38
+ const data = json ? this.safeParseJSON(json) : null;
39
+ const label = (data?.['type'] === 'tool' || text.includes('operation_error')) ? '[TOOL] ' : '[TASK] ';
40
+ return `${label}${line}`;
41
+ }
42
+ return line;
43
+ }
44
+ return `${timePrefix}${entry['text'] || 'Unknown entry'}`;
45
+ }
46
+ formatMessage(entry, agentId, timePrefix) {
47
+ const from = this.formatParticipant(entry['sender'], agentId);
48
+ const to = entry['receiver'] ? ` → ${this.formatParticipant(entry['receiver'], agentId)}` : '';
49
+ return `${timePrefix}${from}${to}: ${entry['text'] || ''}`;
50
+ }
51
+ formatTaskHistory(entry, agentId, timePrefix) {
52
+ const service = entry['service'];
53
+ const task = service?.['task'];
54
+ if (!task)
55
+ return `${timePrefix}Update`;
56
+ const changeType = service?.['changeType'];
57
+ const taskId = this.shortId(task['taskId']);
58
+ const agreementId = task['agreementId'] ? this.shortId(task['agreementId']) : null;
59
+ const desc = task['description'] || 'No description';
60
+ const ids = agreementId ? `agreement=${agreementId} task=${taskId}` : `task=${taskId}`;
61
+ switch (changeType) {
62
+ case 'created': {
63
+ const ag = task['agreement'];
64
+ const parties = ag?.['parties'] || {};
65
+ return `${timePrefix}Task created under agreement: "${desc}" (${ids})\n Owner: ${this.formatOwner(task, agentId)}\n Executor: ${this.formatExecutor(task, agentId)}\n Proposed to: ${parties['proposedTo'] || 'N/A'}`;
66
+ }
67
+ case 'state_changed': {
68
+ const prev = service?.['previousState']?.['state'] || '?';
69
+ const next = service?.['newState']?.['state'] || '?';
70
+ return `${timePrefix}Task "${desc}" (${ids}): ${prev} → ${next}`;
71
+ }
72
+ case 'proposal_responded': {
73
+ const action = service?.['metadata']?.['action'];
74
+ return `${timePrefix}Proposal ${action ?? 'responded'} for "${desc}" (${ids})`;
75
+ }
76
+ case 'processing_changed': {
77
+ const processing = service?.['newState']?.['processing'];
78
+ return `${timePrefix}Task "${desc}" (${ids}): processing ${processing ? 'started' : 'stopped'}`;
79
+ }
80
+ default:
81
+ return `${timePrefix}${changeType}: "${desc}" (${ids})`;
82
+ }
83
+ }
84
+ formatArtifact(entry, _agentId, timePrefix) {
85
+ const text = entry['text'] || '';
86
+ if (entry['content_type'] === 'thought')
87
+ return `${timePrefix}Thought: ${text}`;
88
+ if (text.startsWith('operation_started:')) {
89
+ const data = this.safeParseJSON(text.replace('operation_started:', ''));
90
+ if (data?.['type'] === 'tool')
91
+ return `${timePrefix}Tool starting: ${data['tool']}(${this.formatArgs(data['args'])})`;
92
+ if (data?.['type'] === 'task')
93
+ return `${timePrefix}Task operation: ${data['operation']}`;
94
+ return `${timePrefix}Operation started: ${data?.['type'] || 'unknown'}`;
95
+ }
96
+ if (text.startsWith('operation_completed:')) {
97
+ const data = this.safeParseJSON(text.replace('operation_completed:', ''));
98
+ if (data?.['type'] === 'tool')
99
+ return `${timePrefix}Tool completed: ${data['tool']}`;
100
+ if (data?.['type'] === 'task')
101
+ return `${timePrefix}Task operation completed: ${data['operation']}`;
102
+ return `${timePrefix}Operation completed: ${data?.['type'] || 'unknown'}`;
103
+ }
104
+ if (text.startsWith('operation_error:')) {
105
+ const data = this.safeParseJSON(text.replace('operation_error:', ''));
106
+ return `${timePrefix}ERROR: ${data?.['error'] || 'Unknown error'}`;
107
+ }
108
+ return `${timePrefix}${text}`;
109
+ }
110
+ formatParticipant(participant, agentId) {
111
+ if (!participant)
112
+ return 'unknown';
113
+ // Message.sender is stored as {agentId, underAgreementId} (no `id`, no
114
+ // `type`) while Message.receiver is {id, type} — two different shapes on
115
+ // the same document (see backend Message schema). Without this fallback,
116
+ // every sender renders as "unknown (unknown)" and self-sent history rows
117
+ // never match `id === agentId`, so the agent can't recognize its own
118
+ // past messages in <history>.
119
+ const id = participant['id'] || participant['agentId'] || 'unknown';
120
+ if (participant['type'] === 'system')
121
+ return 'System';
122
+ if (id === agentId)
123
+ return 'You';
124
+ return `${id} (${participant['type'] || 'unknown'})`;
125
+ }
126
+ formatOwner(task, agentId) {
127
+ const ag = task['agreement'];
128
+ const creatorId = ag?.['parties']?.['creator'] ?? task['agentId'];
129
+ return creatorId === agentId ? 'You' : String(creatorId ?? 'N/A');
130
+ }
131
+ formatExecutor(task, agentId) {
132
+ const ag = task['agreement'];
133
+ const providerId = ag?.['parties']?.['provider'] ?? task['executorId'];
134
+ return providerId === agentId ? 'You' : String(providerId ?? 'N/A');
135
+ }
136
+ shortId(id) {
137
+ if (!id)
138
+ return '?';
139
+ if (!this.shortIds)
140
+ return id;
141
+ const parts = id.split('_');
142
+ if (parts.length >= 3)
143
+ return `task_...${parts[parts.length - 1]}`;
144
+ return id.length > 20 ? id.slice(0, 20) + '...' : id;
145
+ }
146
+ formatTime(timestamp) {
147
+ if (!timestamp)
148
+ return '??:??';
149
+ const date = new Date(timestamp);
150
+ if (isNaN(date.getTime()))
151
+ return '??:??';
152
+ return date.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false, timeZone: 'UTC' });
153
+ }
154
+ formatArgs(args) {
155
+ if (!args || typeof args !== 'object')
156
+ return '';
157
+ const entries = Object.entries(args);
158
+ if (entries.length === 0)
159
+ return '';
160
+ if (entries.length <= 3)
161
+ return entries.map(([k, v]) => `${k}=${JSON.stringify(v)}`).join(', ');
162
+ return JSON.stringify(args);
163
+ }
164
+ safeParseJSON(str) {
165
+ try {
166
+ return JSON.parse(str);
167
+ }
168
+ catch {
169
+ return null;
170
+ }
171
+ }
172
+ }
173
+ export const historyFormatter = new HistoryFormatter();
@@ -0,0 +1,2 @@
1
+ export { HistoryFormatter, historyFormatter } from './HistoryFormatter.js';
2
+ export { AgreementFormatter, agreementFormatter } from './AgreementFormatter.js';
@@ -7,7 +7,6 @@
7
7
  * • Visible defaults — thinkingDefaults({ initial }) spread by author
8
8
  * • Validation at load — defineAgent throws on hard problems, warns on soft
9
9
  */
10
-
11
10
  export { defineAgent } from './defineAgent.js';
12
11
  export { createMcpAgent, resolveZiggsGatewayTarget, wrapGatewayFetch, ZiggsGatewayError } from './adapters/McpAdapter.js';
13
12
  export type { CreateMcpAgentOptions, McpAgentHandle, McpTransportConfig } from './adapters/McpAdapter.js';
@@ -15,6 +14,8 @@ export { AgentHost, createAgent, createAgentPool, DEFAULT_MODEL } from './AgentH
15
14
  export { Agent } from './agent/Agent.js';
16
15
  export { ClaudeSdkAgent } from './agent/ClaudeSdkAgent.js';
17
16
  export type { CognitionKind } from './agent/ClaudeSdkAgent.js';
17
+ export { ziggsBrain, claudeBrain, isBrainSelection, isClaudeCognition } from './brain/index.js';
18
+ export type { Brain, BrainSelection, ZiggsBrainConfig, ClaudeBrainConfig, } from './brain/index.js';
18
19
  export type { TickInput, TickOutput, AgentOptions } from './agent/Agent.js';
19
20
  export type { SessionResolver, AgentHostOptions } from './AgentHost.js';
20
21
  export { createZiggsEffectHandler } from './server/ZiggsEffectHandler.js';
@@ -24,8 +25,6 @@ export { StateTimers } from './server/StateTimers.js';
24
25
  export type { StateTimeoutEvent } from './server/StateTimers.js';
25
26
  export { OutboxBuffer } from './server/OutboxBuffer.js';
26
27
  export { normalizeIncomingEvent } from './ingress/normalizeIncoming.js';
27
-
28
- // Runtime primitives
29
28
  export { AgentMachine, type TransitionEvent } from './runtime/AgentMachine.js';
30
29
  export { runTurn } from './runtime/runTurn.js';
31
30
  export { runMechanical } from './runtime/runMechanical.js';
@@ -33,30 +32,10 @@ export { PromptBuilder } from './runtime/PromptBuilder.js';
33
32
  export { thinkingDefaults, defineThinkingState, defineMechanicalState, DEFAULT_WAIT_PROMPT } from './runtime/defaults.js';
34
33
  export { KICKOFF_STATE, injectKickoffDefault, buildKickoffState } from './runtime/kickoff.js';
35
34
  export { validateWorkflow, WorkflowValidationError } from './runtime/validateWorkflow.js';
36
- export {
37
- deriveRespondsToProposals,
38
- statesRespondToProposals,
39
- } from './runtime/deriveRespondsToProposals.js';
35
+ export { deriveRespondsToProposals, statesRespondToProposals, } from './runtime/deriveRespondsToProposals.js';
40
36
  export { outcomeFromEvent, outcomeFromActionResult, applyOutcomeToCtx } from './runtime/buildOutcome.js';
41
-
42
- // Types
43
- export type {
44
- Outcome, OutcomeKind,
45
- Ctx, Identity, HistoryEntry, ToolResultEntry,
46
- Workflow, State, ParkedState, ThinkingState, MechanicalState,
47
- Action, Transition, PromptDef, ActionPrompt, Produces, ProducesFn,
48
- AgreementRef, TaskRef, ProposalRef,
49
- AgentConfig, DefineAgentInput, ServicesConfig,
50
- // Effects — Agent↔Server boundary
51
- Effect, EffectKind, EffectResult, EffectResultMap, EffectHandler,
52
- LlmMessage, LlmToolCall, LlmToolSchema, LlmResponse,
53
- ContextSnapshot, ReadContextOpts, ToolCallResult, RecordedEntry,
54
- } from './types.js';
55
-
37
+ export type { Outcome, OutcomeKind, Ctx, Identity, HistoryEntry, ToolResultEntry, 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, ReadContextOpts, ToolCallResult, RecordedEntry, } from './types.js';
56
38
  export { default } from './AgentHost.js';
57
-
58
- // ── Supporting modules ──────────────────────────────────────────────────────
59
-
60
39
  export { validateContext, ContextWarning } from './cognition/validateContext.js';
61
40
  export { runLauncher } from './server/runLauncher.js';
62
41
  export { ConnectionPool } from './server/ConnectionPool.js';
@@ -75,25 +54,8 @@ export { ProactiveTrigger } from './server/proactive/ProactiveTrigger.js';
75
54
  export { ZiggsPayClient, createZiggsPayClient } from './server/ziggspay/ZiggsPayClient.js';
76
55
  export { ZiggsConnectClient, createZiggsConnectClient } from './server/ziggsconnect/ZiggsConnectClient.js';
77
56
  export { ZiggsContextClient } from './server/ziggscontext/ZiggsContextClient.js';
78
- export type {
79
- ZiggsContextClientOptions,
80
- ContextReachDescriptor,
81
- DelegateContextGrantParams,
82
- } from './server/ziggscontext/ZiggsContextClient.js';
83
- // All agent tool bundles live under server/tools/ (tier1 = protocol grammar,
84
- // tier2 = opt-in HTTP capability bundles). Single home: server/tools/index.ts.
85
- export {
86
- // Tier 1 — protocol grammar (framework-managed via taskTools).
87
- PROTOCOL_TOOLS, agreementProposeTool, agreementSubcontractTool,
88
- agreementRespondTool, agreementCounterProposalTool, agreementCheckProposalTool,
89
- taskSpawnTool, taskUpdateTool, taskUpdatePlanStepTool,
90
- dispatchProtocolOp,
91
- // Tier 2 — opt-in capability bundles (spread into `tools:`).
92
- PAYMENT_TOOLS, paymentBalanceTool, paymentTransferTool, paymentHoldTool, paymentReleaseTool, paymentResolveWalletTool,
93
- CONNECTION_TOOLS, connectionProxyTool, connectionListGrantsTool,
94
- DISCOVERY_TOOLS, agentSearchTool, agentGetTool,
95
- MARKETPLACE_TOOLS, marketplaceViewTool,
96
- } from './server/tools/index.js';
57
+ export type { ZiggsContextClientOptions, ContextReachDescriptor, DelegateContextGrantParams, } from './server/ziggscontext/ZiggsContextClient.js';
58
+ export { PROTOCOL_TOOLS, agreementProposeTool, agreementSubcontractTool, agreementRespondTool, agreementCounterProposalTool, agreementCheckProposalTool, taskSpawnTool, taskUpdateTool, taskUpdatePlanStepTool, dispatchProtocolOp, PAYMENT_TOOLS, paymentBalanceTool, paymentTransferTool, paymentHoldTool, paymentReleaseTool, paymentResolveWalletTool, CONNECTION_TOOLS, connectionProxyTool, connectionListGrantsTool, DISCOVERY_TOOLS, agentSearchTool, agentGetTool, MARKETPLACE_TOOLS, marketplaceViewTool, } from './server/tools/index.js';
97
59
  export { PROTOCOL_TOOL_NAMES, PROTOCOL_TOOL_TO_OPERATION, mapProtocolToolToOperation, isProtocolToolName } from './tasks/protocolRegistry.js';
98
60
  export { InMemoryStore, FileMemoryStore } from './memory/MemoryStore.js';
99
61
  export type { MemoryStore } from './memory/MemoryStore.js';
@@ -102,15 +64,7 @@ export { classifyIncomingEvent } from './context/classifyEnvelope.js';
102
64
  export { buildContextUpdates, CONTEXT_RESET } from './context/applyEffects.js';
103
65
  export { getBatchEvents, isTaskResultRelevantToAgent } from './context/batch.js';
104
66
  export { classifyWorkflowEvent, findTaskResult, unwrapBatchEvent, findIncomingTaskResult } from './context/routingLabels.js';
105
- export {
106
- WebSocketClient,
107
- MessagesClient,
108
- ArtifactsClient,
109
- AgentSearchClient,
110
- getBackendUrl,
111
- getWebSocketUrl,
112
- } from '@ziggs-ai/api-client';
113
-
67
+ export { WebSocketClient, MessagesClient, ArtifactsClient, AgentSearchClient, getBackendUrl, getWebSocketUrl, } from '@ziggs-ai/api-client';
114
68
  export { runInboxCatchUp } from './server/InboxCatchUp.js';
115
69
  export type { InboxCatchUpDeps, InboxCatchUpResult } from './server/InboxCatchUp.js';
116
70
  export { SeenMessages } from './server/SeenMessages.js';