@animalabs/agent-framework 0.26.1 → 0.27.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 (276) hide show
  1. package/README.md +57 -7
  2. package/dist/src/agent.d.ts +263 -22
  3. package/dist/src/agent.d.ts.map +1 -1
  4. package/dist/src/agent.js +531 -54
  5. package/dist/src/agent.js.map +1 -1
  6. package/dist/src/api/server.d.ts.map +1 -1
  7. package/dist/src/api/server.js +1 -2
  8. package/dist/src/api/server.js.map +1 -1
  9. package/dist/src/auto-continue.d.ts +33 -0
  10. package/dist/src/auto-continue.d.ts.map +1 -0
  11. package/dist/src/auto-continue.js +35 -0
  12. package/dist/src/auto-continue.js.map +1 -0
  13. package/dist/src/code-execution/isolate/scripts.d.ts +11 -0
  14. package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
  15. package/dist/src/code-execution/isolate/scripts.js +5 -1
  16. package/dist/src/code-execution/isolate/scripts.js.map +1 -1
  17. package/dist/src/framework.d.ts +829 -156
  18. package/dist/src/framework.d.ts.map +1 -1
  19. package/dist/src/framework.js +3906 -1008
  20. package/dist/src/framework.js.map +1 -1
  21. package/dist/src/gate/event-gate.d.ts +309 -46
  22. package/dist/src/gate/event-gate.d.ts.map +1 -1
  23. package/dist/src/gate/event-gate.js +2117 -395
  24. package/dist/src/gate/event-gate.js.map +1 -1
  25. package/dist/src/gate/index.d.ts +2 -2
  26. package/dist/src/gate/index.d.ts.map +1 -1
  27. package/dist/src/gate/index.js +1 -1
  28. package/dist/src/gate/index.js.map +1 -1
  29. package/dist/src/gate/recipe-reconcile.d.ts +103 -0
  30. package/dist/src/gate/recipe-reconcile.d.ts.map +1 -0
  31. package/dist/src/gate/recipe-reconcile.js +325 -0
  32. package/dist/src/gate/recipe-reconcile.js.map +1 -0
  33. package/dist/src/gate/types.d.ts +68 -8
  34. package/dist/src/gate/types.d.ts.map +1 -1
  35. package/dist/src/index.d.ts +6 -4
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +5 -2
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/mcpl/channel-registry.d.ts +433 -113
  40. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  41. package/dist/src/mcpl/channel-registry.js +1152 -434
  42. package/dist/src/mcpl/channel-registry.js.map +1 -1
  43. package/dist/src/mcpl/conversation-router.d.ts +16 -8
  44. package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
  45. package/dist/src/mcpl/conversation-router.js +29 -15
  46. package/dist/src/mcpl/conversation-router.js.map +1 -1
  47. package/dist/src/mcpl/convert-block.d.ts.map +1 -1
  48. package/dist/src/mcpl/convert-block.js +14 -2
  49. package/dist/src/mcpl/convert-block.js.map +1 -1
  50. package/dist/src/mcpl/hook-orchestrator.d.ts +7 -1
  51. package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
  52. package/dist/src/mcpl/hook-orchestrator.js +32 -7
  53. package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
  54. package/dist/src/mcpl/index.d.ts +5 -1
  55. package/dist/src/mcpl/index.d.ts.map +1 -1
  56. package/dist/src/mcpl/index.js +4 -0
  57. package/dist/src/mcpl/index.js.map +1 -1
  58. package/dist/src/mcpl/inference-router.d.ts +14 -2
  59. package/dist/src/mcpl/inference-router.d.ts.map +1 -1
  60. package/dist/src/mcpl/inference-router.js +73 -28
  61. package/dist/src/mcpl/inference-router.js.map +1 -1
  62. package/dist/src/mcpl/prose-grammar.d.ts +4 -0
  63. package/dist/src/mcpl/prose-grammar.d.ts.map +1 -1
  64. package/dist/src/mcpl/prose-grammar.js +6 -0
  65. package/dist/src/mcpl/prose-grammar.js.map +1 -1
  66. package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
  67. package/dist/src/mcpl/protocol-family.js +3 -0
  68. package/dist/src/mcpl/protocol-family.js.map +1 -1
  69. package/dist/src/mcpl/push-coalescer.d.ts +20 -2
  70. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
  71. package/dist/src/mcpl/push-coalescer.js +33 -11
  72. package/dist/src/mcpl/push-coalescer.js.map +1 -1
  73. package/dist/src/mcpl/reference-fetcher.d.ts +63 -42
  74. package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
  75. package/dist/src/mcpl/reference-fetcher.js +177 -145
  76. package/dist/src/mcpl/reference-fetcher.js.map +1 -1
  77. package/dist/src/mcpl/references.d.ts +380 -46
  78. package/dist/src/mcpl/references.d.ts.map +1 -1
  79. package/dist/src/mcpl/references.js +737 -78
  80. package/dist/src/mcpl/references.js.map +1 -1
  81. package/dist/src/mcpl/server-connection.d.ts +82 -3
  82. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  83. package/dist/src/mcpl/server-connection.js +132 -7
  84. package/dist/src/mcpl/server-connection.js.map +1 -1
  85. package/dist/src/mcpl/tool-lifecycle.d.ts +11 -0
  86. package/dist/src/mcpl/tool-lifecycle.d.ts.map +1 -1
  87. package/dist/src/mcpl/tool-lifecycle.js +21 -0
  88. package/dist/src/mcpl/tool-lifecycle.js.map +1 -1
  89. package/dist/src/mcpl/tool-presence.d.ts +259 -0
  90. package/dist/src/mcpl/tool-presence.d.ts.map +1 -0
  91. package/dist/src/mcpl/tool-presence.js +628 -0
  92. package/dist/src/mcpl/tool-presence.js.map +1 -0
  93. package/dist/src/mcpl/tool-result-normalize.d.ts +9 -3
  94. package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -1
  95. package/dist/src/mcpl/tool-result-normalize.js +14 -6
  96. package/dist/src/mcpl/tool-result-normalize.js.map +1 -1
  97. package/dist/src/mcpl/tool-signature.d.ts +39 -0
  98. package/dist/src/mcpl/tool-signature.d.ts.map +1 -0
  99. package/dist/src/mcpl/tool-signature.js +292 -0
  100. package/dist/src/mcpl/tool-signature.js.map +1 -0
  101. package/dist/src/mcpl/toolset-host.d.ts +200 -0
  102. package/dist/src/mcpl/toolset-host.d.ts.map +1 -0
  103. package/dist/src/mcpl/toolset-host.js +621 -0
  104. package/dist/src/mcpl/toolset-host.js.map +1 -0
  105. package/dist/src/mcpl/toolsets-module.d.ts +80 -0
  106. package/dist/src/mcpl/toolsets-module.d.ts.map +1 -0
  107. package/dist/src/mcpl/toolsets-module.js +431 -0
  108. package/dist/src/mcpl/toolsets-module.js.map +1 -0
  109. package/dist/src/mcpl/transport.d.ts +2 -2
  110. package/dist/src/mcpl/transport.d.ts.map +1 -1
  111. package/dist/src/mcpl/transport.js +3 -2
  112. package/dist/src/mcpl/transport.js.map +1 -1
  113. package/dist/src/mcpl/types.d.ts +21 -1
  114. package/dist/src/mcpl/types.d.ts.map +1 -1
  115. package/dist/src/mcpl/types.js.map +1 -1
  116. package/dist/src/mcpl/visible-content.d.ts +7 -9
  117. package/dist/src/mcpl/visible-content.d.ts.map +1 -1
  118. package/dist/src/mcpl/visible-content.js +21 -9
  119. package/dist/src/mcpl/visible-content.js.map +1 -1
  120. package/dist/src/module-registry.d.ts +23 -8
  121. package/dist/src/module-registry.d.ts.map +1 -1
  122. package/dist/src/module-registry.js +68 -15
  123. package/dist/src/module-registry.js.map +1 -1
  124. package/dist/src/modules/discord/index.js +1 -1
  125. package/dist/src/modules/discord/index.js.map +1 -1
  126. package/dist/src/modules/history/index.d.ts +2 -1
  127. package/dist/src/modules/history/index.d.ts.map +1 -1
  128. package/dist/src/modules/history/index.js +51 -17
  129. package/dist/src/modules/history/index.js.map +1 -1
  130. package/dist/src/modules/history/semantic.d.ts +108 -6
  131. package/dist/src/modules/history/semantic.d.ts.map +1 -1
  132. package/dist/src/modules/history/semantic.js +273 -57
  133. package/dist/src/modules/history/semantic.js.map +1 -1
  134. package/dist/src/modules/workspace/direct-write.d.ts +181 -0
  135. package/dist/src/modules/workspace/direct-write.d.ts.map +1 -0
  136. package/dist/src/modules/workspace/direct-write.js +384 -0
  137. package/dist/src/modules/workspace/direct-write.js.map +1 -0
  138. package/dist/src/modules/workspace/edit-text.d.ts +26 -12
  139. package/dist/src/modules/workspace/edit-text.d.ts.map +1 -1
  140. package/dist/src/modules/workspace/edit-text.js +58 -28
  141. package/dist/src/modules/workspace/edit-text.js.map +1 -1
  142. package/dist/src/modules/workspace/effects.d.ts +10 -0
  143. package/dist/src/modules/workspace/effects.d.ts.map +1 -1
  144. package/dist/src/modules/workspace/effects.js +1 -1
  145. package/dist/src/modules/workspace/effects.js.map +1 -1
  146. package/dist/src/modules/workspace/index.d.ts +246 -27
  147. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  148. package/dist/src/modules/workspace/index.js +1216 -236
  149. package/dist/src/modules/workspace/index.js.map +1 -1
  150. package/dist/src/modules/workspace/read-page.d.ts +41 -0
  151. package/dist/src/modules/workspace/read-page.d.ts.map +1 -0
  152. package/dist/src/modules/workspace/read-page.js +213 -0
  153. package/dist/src/modules/workspace/read-page.js.map +1 -0
  154. package/dist/src/modules/workspace/result-text.d.ts +67 -0
  155. package/dist/src/modules/workspace/result-text.d.ts.map +1 -0
  156. package/dist/src/modules/workspace/result-text.js +94 -0
  157. package/dist/src/modules/workspace/result-text.js.map +1 -0
  158. package/dist/src/modules/workspace/text.d.ts +29 -12
  159. package/dist/src/modules/workspace/text.d.ts.map +1 -1
  160. package/dist/src/modules/workspace/text.js +35 -33
  161. package/dist/src/modules/workspace/text.js.map +1 -1
  162. package/dist/src/modules/workspace/types.d.ts +41 -17
  163. package/dist/src/modules/workspace/types.d.ts.map +1 -1
  164. package/dist/src/modules/workspace/types.js.map +1 -1
  165. package/dist/src/sent-rows.d.ts +59 -0
  166. package/dist/src/sent-rows.d.ts.map +1 -0
  167. package/dist/src/sent-rows.js +145 -0
  168. package/dist/src/sent-rows.js.map +1 -0
  169. package/dist/src/silent-heartbeat.d.ts +17 -10
  170. package/dist/src/silent-heartbeat.d.ts.map +1 -1
  171. package/dist/src/silent-heartbeat.js.map +1 -1
  172. package/dist/src/stable-hash.d.ts +3 -0
  173. package/dist/src/stable-hash.d.ts.map +1 -0
  174. package/dist/src/stable-hash.js +15 -0
  175. package/dist/src/stable-hash.js.map +1 -0
  176. package/dist/src/stored-injections.d.ts +99 -0
  177. package/dist/src/stored-injections.d.ts.map +1 -0
  178. package/dist/src/stored-injections.js +106 -0
  179. package/dist/src/stored-injections.js.map +1 -0
  180. package/dist/src/text-as-stored.d.ts +4 -3
  181. package/dist/src/text-as-stored.d.ts.map +1 -1
  182. package/dist/src/text-as-stored.js +4 -3
  183. package/dist/src/text-as-stored.js.map +1 -1
  184. package/dist/src/thinking-drops.d.ts +81 -0
  185. package/dist/src/thinking-drops.d.ts.map +1 -0
  186. package/dist/src/thinking-drops.js +103 -0
  187. package/dist/src/thinking-drops.js.map +1 -0
  188. package/dist/src/tool-image-ledger.d.ts +9 -8
  189. package/dist/src/tool-image-ledger.d.ts.map +1 -1
  190. package/dist/src/tool-image-ledger.js +9 -8
  191. package/dist/src/tool-image-ledger.js.map +1 -1
  192. package/dist/src/tool-presentation.d.ts.map +1 -1
  193. package/dist/src/tool-presentation.js +3 -1
  194. package/dist/src/tool-presentation.js.map +1 -1
  195. package/dist/src/tool-result-guard.d.ts +4 -2
  196. package/dist/src/tool-result-guard.d.ts.map +1 -1
  197. package/dist/src/tool-result-guard.js +21 -6
  198. package/dist/src/tool-result-guard.js.map +1 -1
  199. package/dist/src/tool-result-history.d.ts +186 -21
  200. package/dist/src/tool-result-history.d.ts.map +1 -1
  201. package/dist/src/tool-result-history.js +428 -89
  202. package/dist/src/tool-result-history.js.map +1 -1
  203. package/dist/src/tune-out/coordinator.d.ts +17 -9
  204. package/dist/src/tune-out/coordinator.d.ts.map +1 -1
  205. package/dist/src/tune-out/coordinator.js +84 -37
  206. package/dist/src/tune-out/coordinator.js.map +1 -1
  207. package/dist/src/types/agent.d.ts +186 -7
  208. package/dist/src/types/agent.d.ts.map +1 -1
  209. package/dist/src/types/events.d.ts +19 -2
  210. package/dist/src/types/events.d.ts.map +1 -1
  211. package/dist/src/types/framework.d.ts +24 -3
  212. package/dist/src/types/framework.d.ts.map +1 -1
  213. package/dist/src/types/module.d.ts +90 -7
  214. package/dist/src/types/module.d.ts.map +1 -1
  215. package/dist/src/types/trace.d.ts +57 -2
  216. package/dist/src/types/trace.d.ts.map +1 -1
  217. package/package.json +4 -3
  218. package/src/agent.ts +593 -60
  219. package/src/api/server.ts +1 -2
  220. package/src/auto-continue.ts +42 -0
  221. package/src/code-execution/isolate/scripts.ts +11 -3
  222. package/src/framework.ts +4004 -1026
  223. package/src/gate/event-gate.ts +2315 -389
  224. package/src/gate/index.ts +2 -1
  225. package/src/gate/recipe-reconcile.ts +355 -0
  226. package/src/gate/types.ts +70 -8
  227. package/src/index.ts +7 -4
  228. package/src/mcpl/channel-registry.ts +1220 -467
  229. package/src/mcpl/conversation-router.ts +34 -16
  230. package/src/mcpl/convert-block.ts +14 -1
  231. package/src/mcpl/hook-orchestrator.ts +33 -6
  232. package/src/mcpl/index.ts +6 -1
  233. package/src/mcpl/inference-router.ts +79 -34
  234. package/src/mcpl/prose-grammar.ts +7 -0
  235. package/src/mcpl/protocol-family.ts +2 -0
  236. package/src/mcpl/push-coalescer.ts +51 -13
  237. package/src/mcpl/reference-fetcher.ts +201 -162
  238. package/src/mcpl/references.ts +852 -78
  239. package/src/mcpl/server-connection.ts +145 -7
  240. package/src/mcpl/tool-lifecycle.ts +21 -0
  241. package/src/mcpl/tool-presence.ts +650 -0
  242. package/src/mcpl/tool-result-normalize.ts +18 -6
  243. package/src/mcpl/tool-signature.ts +285 -0
  244. package/src/mcpl/toolset-host.ts +637 -0
  245. package/src/mcpl/toolsets-module.ts +451 -0
  246. package/src/mcpl/transport.ts +3 -2
  247. package/src/mcpl/types.ts +22 -1
  248. package/src/mcpl/visible-content.ts +22 -9
  249. package/src/module-registry.ts +77 -24
  250. package/src/modules/discord/index.ts +1 -1
  251. package/src/modules/history/index.ts +48 -18
  252. package/src/modules/history/semantic.ts +308 -54
  253. package/src/modules/workspace/direct-write.ts +425 -0
  254. package/src/modules/workspace/edit-text.ts +82 -35
  255. package/src/modules/workspace/effects.ts +1 -1
  256. package/src/modules/workspace/index.ts +1274 -241
  257. package/src/modules/workspace/read-page.ts +222 -0
  258. package/src/modules/workspace/result-text.ts +119 -0
  259. package/src/modules/workspace/text.ts +58 -32
  260. package/src/modules/workspace/types.ts +41 -17
  261. package/src/sent-rows.ts +162 -0
  262. package/src/silent-heartbeat.ts +17 -10
  263. package/src/stable-hash.ts +14 -0
  264. package/src/stored-injections.ts +131 -0
  265. package/src/text-as-stored.ts +4 -3
  266. package/src/thinking-drops.ts +141 -0
  267. package/src/tool-image-ledger.ts +9 -8
  268. package/src/tool-presentation.ts +3 -1
  269. package/src/tool-result-guard.ts +19 -6
  270. package/src/tool-result-history.ts +488 -88
  271. package/src/tune-out/coordinator.ts +80 -37
  272. package/src/types/agent.ts +189 -7
  273. package/src/types/events.ts +19 -2
  274. package/src/types/framework.ts +21 -3
  275. package/src/types/module.ts +86 -7
  276. package/src/types/trace.ts +58 -2
@@ -0,0 +1,200 @@
1
+ /**
2
+ * MCPL RFC-014, host side: per server, the controller that feeds the
3
+ * server's tool presence (tool-presence.ts) from what its connection reads,
4
+ * sends toolsets/open, close and list, recovers from a lost rev, and renders
5
+ * what changed; and the hub that holds every server's controller for the
6
+ * meta-tools (toolsets-module.ts) and for reminders.
7
+ *
8
+ * Hint changes apply as their message is read (RFC §6.1): the connection's
9
+ * read tap hands the controller every result of a hinted request (awaited or
10
+ * not), every push/event and every tools/hints, of the current transport,
11
+ * synchronously and in arrival order, before anything routes the message.
12
+ * What a message's changes did to the model's view is kept by the object
13
+ * that carried them (`readChanges`), so whoever later handles that object
14
+ * (the tool result, the push, the meta-tool) renders it next to the content.
15
+ *
16
+ * Reminders (RFC §8.3): after each compile built to send, the hub reads
17
+ * which open toolsets' markers (`[server/toolset:instance]`) the request
18
+ * carried. A marker an agent has had in view, gone from a later request
19
+ * (compressed, or out of the window), makes a reminder due for that agent,
20
+ * which the toolsets module gathers at its next start as a stored
21
+ * `afterUser` injection.
22
+ */
23
+ import type { McplServerConnection } from './server-connection.js';
24
+ import type { McplServerConfig } from './types.js';
25
+ import { ToolPresence, type ChangeSet, type MetaToolNames } from './tool-presence.js';
26
+ /** The meta-tools' module, whose tools are `toolsets--open` and so on. */
27
+ export declare const TOOLSETS_MODULE = "toolsets";
28
+ export declare const META_TOOL_NAMES: MetaToolNames;
29
+ /** How long an open, close or call is waited for. A late result still applies when it's read. */
30
+ export declare const TOOLSET_REQUEST_TIMEOUT_MS = 60000;
31
+ export interface ToolsetHostDeps {
32
+ /** A standalone notice into the conversation: a tools/hints change, a late
33
+ * result's, a reconnect's adoption, a recovery's. `invite`: it suggests an
34
+ * open. The host applies its usual rules for events. */
35
+ notify(serverId: string, text: string, opts: {
36
+ invite: boolean;
37
+ }): void;
38
+ /** The operator's log. */
39
+ log(line: string): void;
40
+ /** How a static tool is named in the tool list (`prefix--tool`). */
41
+ listedName(serverId: string, tool: string): string;
42
+ }
43
+ /** One server's RFC-014 state and traffic. Lives as long as the server's
44
+ * configuration, across reconnects and restarts (its `ended` ids and what
45
+ * the model was shown carry over). */
46
+ export declare class ToolsetController {
47
+ readonly serverId: string;
48
+ private config;
49
+ private readonly deps;
50
+ readonly presence: ToolPresence;
51
+ private connection;
52
+ /** The transport epoch the presence's revs belong to. */
53
+ private epoch;
54
+ /** What applying a message's hints changed, by the object that carried them. */
55
+ private readonly readChanges;
56
+ /** Results whose change no one has rendered yet (tellUnlessClaimed). */
57
+ private readonly unclaimed;
58
+ /** eventIds of pushes read on this transport (bounded): a repeat's hints are ignored (RFC §6.1). */
59
+ private seenEvents;
60
+ /** A paged tools/list being read. */
61
+ private listPages;
62
+ /** Lists this controller asked for itself, whose change it delivers. */
63
+ private ownLists;
64
+ /** What lists read while one of its own was out changed, for it to tell. */
65
+ private ownListChange;
66
+ private recoveryTimer;
67
+ private recovering;
68
+ private recoverAgain;
69
+ constructor(serverId: string, config: McplServerConfig, deps: ToolsetHostDeps);
70
+ private log;
71
+ /** A restart can bring a new configuration under the same id. */
72
+ setConfig(config: McplServerConfig): void;
73
+ /** Tap this connection (a connect or a restart's new one). */
74
+ attach(connection: McplServerConnection): void;
75
+ /** The server's connection is gone for good (disconnected, removed). */
76
+ detach(connection: McplServerConnection): void;
77
+ /** Whether the meta-tools speak for this server now. */
78
+ get presents(): boolean;
79
+ /** The live connection, for a request. */
80
+ private live;
81
+ /**
82
+ * A new transport: revs start over (RFC §6.1), and its advertisement says
83
+ * whether hints are in effect. Read from the connection, which holds the
84
+ * advertisement before its transport can deliver anything.
85
+ */
86
+ private sync;
87
+ private onRead;
88
+ private readResult;
89
+ /**
90
+ * The one apply path (RFC §6.1) for a HintChanges from any carrier, as its
91
+ * message is read. Revs are consecutive: anything but the last + 1 means a
92
+ * message was lost or misordered, and the host recovers.
93
+ */
94
+ private applyHints;
95
+ /** tools/list, as read: definitions and presence as of its `mcpl/rev`, which takes no rev of its own (RFC §4.1). */
96
+ private readToolList;
97
+ /** toolsets/list, as read: a full statement of dynamic-tool state under its own rev (RFC §5.3, §6.1). */
98
+ private readToolsetList;
99
+ /** A change with nothing else to ride on, told as a notice. */
100
+ private deliver;
101
+ /**
102
+ * A dynamic tool called by its namespaced name, as if it were listed (a
103
+ * model imitating an earlier call, a module): refused, so every call into
104
+ * a toolset goes through act, which knows its instance and gates closed
105
+ * groups (RFC §5.4, §5.5). Null for any other tool.
106
+ */
107
+ dynamicCallRefusal(tool: string, calledAs: string): string | null;
108
+ /**
109
+ * An awaited result's change is told by whoever renders that result, when
110
+ * the result goes to the agent: the model's own call of a tool (its tool
111
+ * result), a meta-tool. One no one renders by the time the awaiting code has
112
+ * run (the next macrotask), such as the result of a call the framework makes
113
+ * itself (a reaction, a send, an accounted side effect), is told as a notice
114
+ * instead, as a standalone tools/hints is (RFC §6.1: every change reaches the
115
+ * agent once).
116
+ */
117
+ private tellUnlessClaimed;
118
+ /** What applying `carrier`'s hints changed (a tool result, a push's params),
119
+ * rendered, for its handler to show with it; '' for nothing. Taking it
120
+ * means it's told there, not as a notice. */
121
+ changeText(carrier: unknown): string;
122
+ /** The change a carrier's hints made, or an empty one; taken as changeText's is. */
123
+ changeOf(carrier: unknown): ChangeSet;
124
+ private scheduleRecovery;
125
+ /**
126
+ * Recovering: re-read tools/list (presence, declared definitions), then
127
+ * toolsets/list (dynamic-tool state in full), so every tool the statement
128
+ * names is already known; each applies where it's read. What changed is
129
+ * told. (stdio and WebSocket deliver in order, so no early rev is held.)
130
+ */
131
+ private recover;
132
+ private ownToolList;
133
+ private ownToolsetList;
134
+ /**
135
+ * After every (re)connect, once its policy has settled (RFC §5.3): tools/list
136
+ * then toolsets/list, the truth. What the server reports open is adopted
137
+ * (a game kept across the reconnect); what the host believed open and it
138
+ * doesn't report is closed, never re-opened here, since opening can start a
139
+ * new game. What ended meanwhile is told, each `ended` id once.
140
+ */
141
+ connected(connection: McplServerConnection): Promise<void>;
142
+ /**
143
+ * Re-read what the server holds open (titles, visibility) without telling
144
+ * it: for look, which restates everything anyway. Returns notes for what
145
+ * the server no longer holds.
146
+ */
147
+ refreshOpen(): Promise<string[]>;
148
+ /** toolsets/open (RFC §5.2). The server's refusal rejects. */
149
+ open(toolset: string, instance: string | undefined, options: Record<string, unknown> | undefined): Promise<{
150
+ key: string;
151
+ title?: string;
152
+ content: unknown[];
153
+ change: ChangeSet;
154
+ adopted: boolean;
155
+ }>;
156
+ /** toolsets/close (RFC §5.2). */
157
+ close(toolset: string, instance: string | undefined): Promise<{
158
+ content: unknown[];
159
+ change: ChangeSet;
160
+ }>;
161
+ /** Open or close an undeclared group (RFC §5.4): the host's own act; the server isn't told. */
162
+ setGroupOpen(group: string, open: boolean): ChangeSet;
163
+ /**
164
+ * A manifest re-fetch (RFC §5.1): the `toolsets` domain's declarations, as
165
+ * the server sent them. A toolset removed ends its instances; a server
166
+ * that withdraws toolHints is hint-less from then on. What changed is told.
167
+ */
168
+ manifestChanged(declarations: Record<string, unknown> | null): void;
169
+ /** Apply pending static↔dynamic moves (RFC §4.2) at a tool-list boundary, and say where they went. */
170
+ applyMoves(): string[];
171
+ }
172
+ /** Every server's controller, for the meta-tools and reminders. */
173
+ export declare class ToolsetHub {
174
+ private readonly deps;
175
+ private readonly controllers;
176
+ /** Per agent: the markers it has had in view (seen), and whether a reminder is due. */
177
+ private readonly seen;
178
+ private readonly due;
179
+ constructor(deps: ToolsetHostDeps);
180
+ /** The controller for a server, made at its first connect. */
181
+ controllerFor(config: McplServerConfig): ToolsetController;
182
+ get(serverId: string): ToolsetController | undefined;
183
+ /** A server's configuration went (removed): forget its controller. */
184
+ forget(serverId: string): void;
185
+ all(): ToolsetController[];
186
+ /** The servers the meta-tools speak for now. */
187
+ presenting(): ToolsetController[];
188
+ /** Every open key's marker, across servers. */
189
+ private openMarkers;
190
+ /**
191
+ * A compile built to send for `agentName` (RFC §8.3): which open toolsets'
192
+ * announcements the request carries. One the agent has had in view and the
193
+ * request no longer carries (compressed, or out of the window) makes a
194
+ * reminder due.
195
+ */
196
+ observeCompile(agentName: string, messages: readonly unknown[]): void;
197
+ /** The reminder due for `agentName`, or null when none is. */
198
+ reminderFor(agentName: string): string | null;
199
+ }
200
+ //# sourceMappingURL=toolset-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolset-host.d.ts","sourceRoot":"","sources":["../../../src/mcpl/toolset-host.ts"],"names":[],"mappings":"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"}