@jangts/agent-core 0.1.1 → 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 (558) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +55 -0
  3. package/NOTICE +6 -0
  4. package/README.md +8 -0
  5. package/development/docs/README.en.md +70 -0
  6. package/development/docs/README.md +1 -1
  7. package/development/docs/acceptance.en.md +34 -0
  8. package/development/docs/agent-development.en.md +42 -0
  9. package/development/docs/api/README.en.md +62 -0
  10. package/development/docs/api/advanced-agents.en.md +135 -0
  11. package/development/docs/api/context-processing.en.md +110 -0
  12. package/development/docs/api/core.en.md +274 -0
  13. package/development/docs/api/examples.en.md +118 -0
  14. package/development/docs/api/kits.en.md +183 -0
  15. package/development/docs/api/knowledge-answering.en.md +166 -0
  16. package/development/docs/api/mock.en.md +186 -0
  17. package/development/docs/api/observability.en.md +166 -0
  18. package/development/docs/api/reference.en.md +2235 -0
  19. package/development/docs/api/reference.md +1907 -1874
  20. package/development/docs/api/support.en.md +252 -0
  21. package/development/docs/api/support.md +27 -0
  22. package/development/docs/api/types.en.md +181 -0
  23. package/development/docs/api/workflow.en.md +188 -0
  24. package/development/docs/basic-usage.en.md +78 -0
  25. package/development/docs/create-app.en.md +76 -0
  26. package/development/docs/examples/offline-agent.en.md +273 -0
  27. package/development/docs/examples.en.md +36 -0
  28. package/development/docs/flows/knowledge-maintenance.en.md +38 -0
  29. package/development/docs/getting-started.en.md +71 -0
  30. package/development/docs/knowledge.en.md +89 -0
  31. package/development/docs/maintenance.en.md +62 -0
  32. package/development/docs/materials.en.md +38 -0
  33. package/development/docs/mechanisms.en.md +227 -0
  34. package/development/docs/memory-and-learning.en.md +42 -0
  35. package/development/docs/operations.en.md +51 -0
  36. package/development/docs/records.en.md +63 -0
  37. package/development/docs/registration.en.md +63 -0
  38. package/development/skills/agent-core-app/scripts/create-app.mjs +286 -70
  39. package/development/skills/agent-core-app/scripts/lib/knowledge.mjs +77 -16
  40. package/development/skills/agent-core-app/scripts/lib/source.mjs +30 -2
  41. package/development/skills/agent-core-app/scripts/plan.mjs +46 -12
  42. package/development/skills/agent-core-app/scripts/prepare-source.mjs +61 -10
  43. package/development/skills/agent-core-app/scripts/resources.mjs +62 -17
  44. package/development/skills/agent-core-app/scripts/validate-knowledge.mjs +18 -1
  45. package/development/skills/agent-core-app/templates/catalog.json +36 -22
  46. package/dist/cjs/capabilities/index.js +13 -0
  47. package/dist/cjs/capabilities/invocation.js +80 -10
  48. package/dist/cjs/capabilities/model.js +126 -13
  49. package/dist/cjs/capabilities/tool-runtime.js +64 -12
  50. package/dist/cjs/capabilities/tools.js +266 -31
  51. package/dist/cjs/context/assembly.js +46 -5
  52. package/dist/cjs/context/audit.js +31 -6
  53. package/dist/cjs/context/fragments.js +54 -11
  54. package/dist/cjs/context/index.js +12 -0
  55. package/dist/cjs/context/journal.js +84 -7
  56. package/dist/cjs/context/plan.js +30 -2
  57. package/dist/cjs/diagnostics/catalog.js +17 -3
  58. package/dist/cjs/diagnostics/index.js +149 -29
  59. package/dist/cjs/diagnostics/sub-flow.js +240 -40
  60. package/dist/cjs/errors.js +99 -17
  61. package/dist/cjs/execution/branch.js +20 -4
  62. package/dist/cjs/execution/engine.js +470 -56
  63. package/dist/cjs/execution/events.js +136 -18
  64. package/dist/cjs/execution/index.js +7 -0
  65. package/dist/cjs/execution/reporting.js +75 -6
  66. package/dist/cjs/execution/state.js +161 -22
  67. package/dist/cjs/execution/workflow.js +224 -32
  68. package/dist/cjs/index.js +18 -0
  69. package/dist/cjs/kits/aggregation.js +45 -3
  70. package/dist/cjs/kits/answering/batch.js +23 -4
  71. package/dist/cjs/kits/answering/check-result.js +31 -8
  72. package/dist/cjs/kits/answering/checks.js +24 -3
  73. package/dist/cjs/kits/answering/flow.js +192 -36
  74. package/dist/cjs/kits/answering/index.js +19 -1
  75. package/dist/cjs/kits/answering/tasks.js +88 -13
  76. package/dist/cjs/kits/artifacts.js +36 -4
  77. package/dist/cjs/kits/candidates.js +47 -5
  78. package/dist/cjs/kits/delivery.js +40 -5
  79. package/dist/cjs/kits/durable.js +155 -31
  80. package/dist/cjs/kits/evidence.js +66 -15
  81. package/dist/cjs/kits/family.js +152 -22
  82. package/dist/cjs/kits/index.js +12 -1
  83. package/dist/cjs/kits/inference.js +104 -16
  84. package/dist/cjs/kits/intents/catalog.js +67 -16
  85. package/dist/cjs/kits/intents/index.js +11 -0
  86. package/dist/cjs/kits/intents/registry.js +188 -43
  87. package/dist/cjs/kits/intents/scopes.js +215 -46
  88. package/dist/cjs/kits/interaction/command.js +140 -36
  89. package/dist/cjs/kits/interaction/commands.js +86 -11
  90. package/dist/cjs/kits/interaction/handlers.js +27 -10
  91. package/dist/cjs/kits/interaction/index.js +10 -0
  92. package/dist/cjs/kits/interaction/transfer.js +80 -14
  93. package/dist/cjs/kits/knowledge/catalog.js +62 -11
  94. package/dist/cjs/kits/knowledge/index.js +16 -1
  95. package/dist/cjs/kits/knowledge/publication.js +99 -23
  96. package/dist/cjs/kits/knowledge/sections.js +33 -4
  97. package/dist/cjs/kits/normalization.js +51 -7
  98. package/dist/cjs/kits/policies.js +79 -15
  99. package/dist/cjs/kits/presentation/events.js +54 -10
  100. package/dist/cjs/kits/presentation/index.js +24 -1
  101. package/dist/cjs/kits/presentation/outputs.js +176 -38
  102. package/dist/cjs/kits/presentation/templates.js +33 -5
  103. package/dist/cjs/kits/presentation/variants.js +31 -2
  104. package/dist/cjs/kits/projection.js +63 -8
  105. package/dist/cjs/kits/rank-fusion.js +27 -4
  106. package/dist/cjs/kits/reflection-log-source.js +89 -16
  107. package/dist/cjs/kits/reflection.js +234 -60
  108. package/dist/cjs/kits/retrieval.js +98 -18
  109. package/dist/cjs/kits/search.js +180 -27
  110. package/dist/cjs/kits/text-skills.js +104 -19
  111. package/dist/cjs/kits/tools.js +415 -74
  112. package/dist/cjs/kits/vector-search.js +50 -16
  113. package/dist/cjs/mock/node.js +7 -1
  114. package/dist/cjs/mock/web.js +7 -1
  115. package/dist/cjs/mock.js +7 -1
  116. package/dist/cjs/model/binding.js +68 -17
  117. package/dist/cjs/model/call-budget.js +45 -4
  118. package/dist/cjs/model/decision-retry.js +19 -1
  119. package/dist/cjs/model/defaults.js +27 -4
  120. package/dist/cjs/model/index.js +7 -0
  121. package/dist/cjs/model/interactions/arguments.js +36 -1
  122. package/dist/cjs/model/interactions/json-object.js +48 -12
  123. package/dist/cjs/model/interactions/native-functions.js +52 -10
  124. package/dist/cjs/model/message-diagnostics.js +17 -4
  125. package/dist/cjs/model/options.js +9 -1
  126. package/dist/cjs/model/preparation.js +86 -12
  127. package/dist/cjs/model/runner.js +413 -79
  128. package/dist/cjs/model/selection-transport.js +48 -8
  129. package/dist/cjs/model/settings.js +67 -13
  130. package/dist/cjs/model/token-budget.js +69 -11
  131. package/dist/cjs/model/transports.js +59 -6
  132. package/dist/cjs/structs/common.js +11 -0
  133. package/dist/cjs/structs/debug.js +34 -5
  134. package/dist/cjs/structs/errors.js +26 -1
  135. package/dist/cjs/structs/index.js +11 -1
  136. package/dist/cjs/structs/kits/durable.js +7 -0
  137. package/dist/cjs/structs/kits/family.js +1 -0
  138. package/dist/cjs/structs/kits/interaction.js +8 -1
  139. package/dist/cjs/structs/kits/knowledge-publication.js +1 -0
  140. package/dist/cjs/structs/kits/reflection.js +18 -3
  141. package/dist/cjs/structs/model/chat-provider.js +6 -0
  142. package/dist/cjs/structs/support/model/completion.js +2 -0
  143. package/dist/cjs/structs/support/model/messages.js +2 -0
  144. package/dist/cjs/support/capabilities.js +43 -6
  145. package/dist/cjs/support/context/assembly.js +88 -16
  146. package/dist/cjs/support/context/compression.js +48 -6
  147. package/dist/cjs/support/context/fragments.js +6 -0
  148. package/dist/cjs/support/context/history.js +36 -1
  149. package/dist/cjs/support/context/index.js +11 -0
  150. package/dist/cjs/support/context/nodes.js +164 -35
  151. package/dist/cjs/support/context/processing.js +319 -61
  152. package/dist/cjs/support/context/selection-policy.js +98 -21
  153. package/dist/cjs/support/context/selection.js +61 -10
  154. package/dist/cjs/support/context/snapshot.js +29 -7
  155. package/dist/cjs/support/context/strategies.js +120 -28
  156. package/dist/cjs/support/index.js +9 -1
  157. package/dist/cjs/support/model/capabilities.js +20 -1
  158. package/dist/cjs/support/model/chat-completions.js +92 -20
  159. package/dist/cjs/support/model/children.js +34 -6
  160. package/dist/cjs/support/model/compatible-provider.js +189 -59
  161. package/dist/cjs/support/model/completion/calls.js +61 -0
  162. package/dist/cjs/support/model/completion/default.js +33 -0
  163. package/dist/cjs/support/model/completion/index.js +28 -0
  164. package/dist/cjs/support/model/completion/session.js +107 -0
  165. package/dist/cjs/support/model/index.js +12 -0
  166. package/dist/cjs/support/model/interactions/index.js +12 -1
  167. package/dist/cjs/support/model/interactions/json-object.js +6 -0
  168. package/dist/cjs/support/model/interactions/native-functions.js +6 -0
  169. package/dist/cjs/support/model/observer.js +32 -6
  170. package/dist/cjs/support/model/preview-rules.js +66 -16
  171. package/dist/cjs/support/model/reply-preview.js +77 -17
  172. package/dist/cjs/support/model/stage-transport.js +33 -7
  173. package/dist/cjs/support/model/strategies.js +75 -14
  174. package/dist/cjs/support/model/transports.js +53 -11
  175. package/dist/cjs/support/registration.js +49 -7
  176. package/dist/cjs/support/schema.js +46 -4
  177. package/dist/cjs/support/stream-events.js +60 -8
  178. package/dist/cjs/support/tool-runtime.js +6 -0
  179. package/dist/cjs/support/tools.js +79 -10
  180. package/dist/cjs/support/transport/index.js +7 -0
  181. package/dist/cjs/support/transport/json.js +28 -4
  182. package/dist/cjs/support/transport/sse.js +25 -2
  183. package/dist/cjs/utils/break-observer.js +20 -2
  184. package/dist/cjs/utils/cancellation.js +77 -9
  185. package/dist/cjs/utils/catalog.js +19 -4
  186. package/dist/cjs/utils/debug.js +14 -2
  187. package/dist/cjs/utils/index.js +8 -0
  188. package/dist/cjs/utils/interaction-definition.js +26 -6
  189. package/dist/cjs/utils/invocation.js +42 -4
  190. package/dist/cjs/utils/model-protocol.js +20 -1
  191. package/dist/cjs/utils/object.js +16 -0
  192. package/dist/cjs/utils/observer.js +22 -2
  193. package/dist/cjs/utils/protocol-registry.js +47 -4
  194. package/dist/cjs/utils/query-key.js +21 -2
  195. package/dist/cjs/utils/registration.js +18 -2
  196. package/dist/cjs/utils/rules.js +39 -11
  197. package/dist/cjs/utils/schema-adapter.js +25 -2
  198. package/dist/cjs/utils/synchronous.js +64 -7
  199. package/dist/cjs/utils/text.js +15 -1
  200. package/dist/esm/capabilities/index.d.ts +13 -0
  201. package/dist/esm/capabilities/index.js +13 -0
  202. package/dist/esm/capabilities/invocation.d.ts +16 -2
  203. package/dist/esm/capabilities/invocation.js +80 -10
  204. package/dist/esm/capabilities/model.d.ts +68 -1
  205. package/dist/esm/capabilities/model.js +126 -13
  206. package/dist/esm/capabilities/tool-runtime.d.ts +11 -0
  207. package/dist/esm/capabilities/tool-runtime.js +64 -12
  208. package/dist/esm/capabilities/tools.d.ts +96 -3
  209. package/dist/esm/capabilities/tools.js +267 -32
  210. package/dist/esm/context/assembly.d.ts +13 -2
  211. package/dist/esm/context/assembly.js +46 -5
  212. package/dist/esm/context/audit.d.ts +23 -1
  213. package/dist/esm/context/audit.js +31 -6
  214. package/dist/esm/context/fragments.d.ts +37 -3
  215. package/dist/esm/context/fragments.js +54 -11
  216. package/dist/esm/context/index.d.ts +12 -0
  217. package/dist/esm/context/index.js +12 -0
  218. package/dist/esm/context/journal.d.ts +32 -1
  219. package/dist/esm/context/journal.js +84 -7
  220. package/dist/esm/context/plan.d.ts +11 -1
  221. package/dist/esm/context/plan.js +30 -2
  222. package/dist/esm/diagnostics/catalog.d.ts +6 -0
  223. package/dist/esm/diagnostics/catalog.js +17 -3
  224. package/dist/esm/diagnostics/index.d.ts +30 -2
  225. package/dist/esm/diagnostics/index.js +149 -29
  226. package/dist/esm/diagnostics/sub-flow.d.ts +41 -3
  227. package/dist/esm/diagnostics/sub-flow.js +240 -40
  228. package/dist/esm/errors.d.ts +22 -2
  229. package/dist/esm/errors.js +99 -17
  230. package/dist/esm/execution/branch.d.ts +19 -1
  231. package/dist/esm/execution/branch.js +20 -4
  232. package/dist/esm/execution/engine.d.ts +291 -5
  233. package/dist/esm/execution/engine.js +471 -57
  234. package/dist/esm/execution/events.d.ts +16 -2
  235. package/dist/esm/execution/events.js +136 -18
  236. package/dist/esm/execution/index.d.ts +7 -0
  237. package/dist/esm/execution/index.js +7 -0
  238. package/dist/esm/execution/reporting.d.ts +49 -1
  239. package/dist/esm/execution/reporting.js +75 -6
  240. package/dist/esm/execution/state.d.ts +126 -10
  241. package/dist/esm/execution/state.js +161 -22
  242. package/dist/esm/execution/workflow.d.ts +121 -3
  243. package/dist/esm/execution/workflow.js +224 -32
  244. package/dist/esm/index.d.ts +17 -1
  245. package/dist/esm/index.js +18 -0
  246. package/dist/esm/kits/aggregation.d.ts +34 -2
  247. package/dist/esm/kits/aggregation.js +45 -3
  248. package/dist/esm/kits/answering/batch.d.ts +17 -0
  249. package/dist/esm/kits/answering/batch.js +23 -4
  250. package/dist/esm/kits/answering/check-result.d.ts +18 -1
  251. package/dist/esm/kits/answering/check-result.js +31 -8
  252. package/dist/esm/kits/answering/checks.d.ts +11 -0
  253. package/dist/esm/kits/answering/checks.js +24 -3
  254. package/dist/esm/kits/answering/flow.d.ts +25 -2
  255. package/dist/esm/kits/answering/flow.js +192 -36
  256. package/dist/esm/kits/answering/index.d.ts +12 -0
  257. package/dist/esm/kits/answering/index.js +19 -1
  258. package/dist/esm/kits/answering/tasks.d.ts +32 -1
  259. package/dist/esm/kits/answering/tasks.js +88 -13
  260. package/dist/esm/kits/artifacts.d.ts +11 -0
  261. package/dist/esm/kits/artifacts.js +36 -4
  262. package/dist/esm/kits/candidates.d.ts +23 -1
  263. package/dist/esm/kits/candidates.js +47 -5
  264. package/dist/esm/kits/delivery.d.ts +34 -0
  265. package/dist/esm/kits/delivery.js +40 -5
  266. package/dist/esm/kits/durable.d.ts +19 -0
  267. package/dist/esm/kits/durable.js +155 -31
  268. package/dist/esm/kits/evidence.d.ts +28 -5
  269. package/dist/esm/kits/evidence.js +66 -15
  270. package/dist/esm/kits/family.d.ts +17 -1
  271. package/dist/esm/kits/family.js +152 -22
  272. package/dist/esm/kits/index.d.ts +12 -1
  273. package/dist/esm/kits/index.js +12 -1
  274. package/dist/esm/kits/inference.d.ts +64 -0
  275. package/dist/esm/kits/inference.js +104 -16
  276. package/dist/esm/kits/intents/catalog.d.ts +13 -1
  277. package/dist/esm/kits/intents/catalog.js +67 -16
  278. package/dist/esm/kits/intents/index.d.ts +11 -0
  279. package/dist/esm/kits/intents/index.js +11 -0
  280. package/dist/esm/kits/intents/registry.d.ts +61 -3
  281. package/dist/esm/kits/intents/registry.js +188 -43
  282. package/dist/esm/kits/intents/scopes.d.ts +73 -3
  283. package/dist/esm/kits/intents/scopes.js +215 -46
  284. package/dist/esm/kits/interaction/command.d.ts +38 -4
  285. package/dist/esm/kits/interaction/command.js +140 -36
  286. package/dist/esm/kits/interaction/commands.d.ts +66 -2
  287. package/dist/esm/kits/interaction/commands.js +86 -11
  288. package/dist/esm/kits/interaction/handlers.d.ts +19 -2
  289. package/dist/esm/kits/interaction/handlers.js +27 -10
  290. package/dist/esm/kits/interaction/index.d.ts +10 -0
  291. package/dist/esm/kits/interaction/index.js +10 -0
  292. package/dist/esm/kits/interaction/transfer.d.ts +39 -2
  293. package/dist/esm/kits/interaction/transfer.js +80 -14
  294. package/dist/esm/kits/knowledge/catalog.d.ts +13 -0
  295. package/dist/esm/kits/knowledge/catalog.js +62 -11
  296. package/dist/esm/kits/knowledge/index.d.ts +11 -0
  297. package/dist/esm/kits/knowledge/index.js +16 -1
  298. package/dist/esm/kits/knowledge/publication.d.ts +15 -1
  299. package/dist/esm/kits/knowledge/publication.js +99 -23
  300. package/dist/esm/kits/knowledge/sections.d.ts +31 -1
  301. package/dist/esm/kits/knowledge/sections.js +33 -4
  302. package/dist/esm/kits/normalization.d.ts +25 -2
  303. package/dist/esm/kits/normalization.js +51 -7
  304. package/dist/esm/kits/policies.d.ts +26 -3
  305. package/dist/esm/kits/policies.js +79 -15
  306. package/dist/esm/kits/presentation/events.d.ts +51 -4
  307. package/dist/esm/kits/presentation/events.js +54 -10
  308. package/dist/esm/kits/presentation/index.d.ts +12 -0
  309. package/dist/esm/kits/presentation/index.js +25 -2
  310. package/dist/esm/kits/presentation/outputs.d.ts +30 -1
  311. package/dist/esm/kits/presentation/outputs.js +176 -38
  312. package/dist/esm/kits/presentation/templates.d.ts +32 -3
  313. package/dist/esm/kits/presentation/templates.js +33 -5
  314. package/dist/esm/kits/presentation/variants.d.ts +29 -0
  315. package/dist/esm/kits/presentation/variants.js +31 -2
  316. package/dist/esm/kits/projection.d.ts +42 -5
  317. package/dist/esm/kits/projection.js +63 -8
  318. package/dist/esm/kits/rank-fusion.d.ts +21 -1
  319. package/dist/esm/kits/rank-fusion.js +28 -5
  320. package/dist/esm/kits/reflection-log-source.d.ts +28 -1
  321. package/dist/esm/kits/reflection-log-source.js +89 -16
  322. package/dist/esm/kits/reflection.d.ts +17 -1
  323. package/dist/esm/kits/reflection.js +235 -61
  324. package/dist/esm/kits/retrieval.d.ts +18 -2
  325. package/dist/esm/kits/retrieval.js +98 -18
  326. package/dist/esm/kits/search.d.ts +56 -3
  327. package/dist/esm/kits/search.js +180 -27
  328. package/dist/esm/kits/text-skills.d.ts +16 -2
  329. package/dist/esm/kits/text-skills.js +104 -19
  330. package/dist/esm/kits/tools.d.ts +122 -2
  331. package/dist/esm/kits/tools.js +416 -74
  332. package/dist/esm/kits/vector-search.d.ts +47 -1
  333. package/dist/esm/kits/vector-search.js +51 -17
  334. package/dist/esm/mock/node.d.ts +7 -0
  335. package/dist/esm/mock/node.js +7 -1
  336. package/dist/esm/mock/web.d.ts +7 -0
  337. package/dist/esm/mock/web.js +7 -1
  338. package/dist/esm/mock.d.ts +7 -0
  339. package/dist/esm/mock.js +7 -1
  340. package/dist/esm/model/binding.d.ts +32 -3
  341. package/dist/esm/model/binding.js +68 -17
  342. package/dist/esm/model/call-budget.d.ts +30 -2
  343. package/dist/esm/model/call-budget.js +45 -4
  344. package/dist/esm/model/decision-retry.d.ts +10 -1
  345. package/dist/esm/model/decision-retry.js +19 -1
  346. package/dist/esm/model/defaults.d.ts +13 -2
  347. package/dist/esm/model/defaults.js +27 -4
  348. package/dist/esm/model/index.d.ts +7 -0
  349. package/dist/esm/model/index.js +7 -0
  350. package/dist/esm/model/interactions/arguments.d.ts +27 -0
  351. package/dist/esm/model/interactions/arguments.js +36 -1
  352. package/dist/esm/model/interactions/json-object.d.ts +7 -1
  353. package/dist/esm/model/interactions/json-object.js +48 -12
  354. package/dist/esm/model/interactions/native-functions.d.ts +6 -0
  355. package/dist/esm/model/interactions/native-functions.js +52 -10
  356. package/dist/esm/model/message-diagnostics.d.ts +17 -1
  357. package/dist/esm/model/message-diagnostics.js +17 -4
  358. package/dist/esm/model/options.d.ts +18 -1
  359. package/dist/esm/model/options.js +9 -1
  360. package/dist/esm/model/preparation.d.ts +30 -2
  361. package/dist/esm/model/preparation.js +86 -12
  362. package/dist/esm/model/runner.d.ts +129 -5
  363. package/dist/esm/model/runner.js +414 -80
  364. package/dist/esm/model/selection-transport.d.ts +14 -1
  365. package/dist/esm/model/selection-transport.js +48 -8
  366. package/dist/esm/model/settings.d.ts +11 -0
  367. package/dist/esm/model/settings.js +67 -13
  368. package/dist/esm/model/token-budget.d.ts +59 -1
  369. package/dist/esm/model/token-budget.js +69 -11
  370. package/dist/esm/model/transports.d.ts +20 -2
  371. package/dist/esm/model/transports.js +59 -6
  372. package/dist/esm/structs/capabilities/invocation.d.ts +36 -0
  373. package/dist/esm/structs/capabilities/model.d.ts +27 -0
  374. package/dist/esm/structs/capabilities/tools.d.ts +38 -0
  375. package/dist/esm/structs/common.d.ts +62 -2
  376. package/dist/esm/structs/common.js +11 -0
  377. package/dist/esm/structs/context/fragments.d.ts +28 -0
  378. package/dist/esm/structs/context/journal.d.ts +28 -3
  379. package/dist/esm/structs/context/processing.d.ts +11 -0
  380. package/dist/esm/structs/debug.d.ts +58 -1
  381. package/dist/esm/structs/debug.js +34 -5
  382. package/dist/esm/structs/diagnostics.d.ts +119 -1
  383. package/dist/esm/structs/errors.d.ts +42 -1
  384. package/dist/esm/structs/errors.js +26 -1
  385. package/dist/esm/structs/execution/engine.d.ts +24 -1
  386. package/dist/esm/structs/execution/events.d.ts +12 -0
  387. package/dist/esm/structs/execution/workflow.d.ts +71 -0
  388. package/dist/esm/structs/index.d.ts +11 -1
  389. package/dist/esm/structs/index.js +11 -1
  390. package/dist/esm/structs/invocation.d.ts +30 -0
  391. package/dist/esm/structs/kits/aggregation.d.ts +12 -0
  392. package/dist/esm/structs/kits/answering/checks.d.ts +11 -0
  393. package/dist/esm/structs/kits/answering/flow.d.ts +35 -1
  394. package/dist/esm/structs/kits/answering/state.d.ts +21 -0
  395. package/dist/esm/structs/kits/answering/tasks.d.ts +21 -0
  396. package/dist/esm/structs/kits/artifacts.d.ts +14 -0
  397. package/dist/esm/structs/kits/candidates.d.ts +19 -0
  398. package/dist/esm/structs/kits/delivery.d.ts +22 -0
  399. package/dist/esm/structs/kits/durable.d.ts +56 -3
  400. package/dist/esm/structs/kits/durable.js +7 -0
  401. package/dist/esm/structs/kits/evidence.d.ts +23 -0
  402. package/dist/esm/structs/kits/family.d.ts +49 -1
  403. package/dist/esm/structs/kits/family.js +1 -0
  404. package/dist/esm/structs/kits/intents/catalog.d.ts +26 -0
  405. package/dist/esm/structs/kits/intents/registry.d.ts +34 -0
  406. package/dist/esm/structs/kits/intents/scopes.d.ts +36 -1
  407. package/dist/esm/structs/kits/interaction.d.ts +64 -0
  408. package/dist/esm/structs/kits/interaction.js +8 -1
  409. package/dist/esm/structs/kits/knowledge-publication.d.ts +43 -1
  410. package/dist/esm/structs/kits/knowledge-publication.js +1 -0
  411. package/dist/esm/structs/kits/knowledge.d.ts +39 -2
  412. package/dist/esm/structs/kits/normalization.d.ts +15 -0
  413. package/dist/esm/structs/kits/policies.d.ts +25 -1
  414. package/dist/esm/structs/kits/presentation/events.d.ts +28 -4
  415. package/dist/esm/structs/kits/presentation/outputs.d.ts +38 -1
  416. package/dist/esm/structs/kits/presentation/templates.d.ts +15 -0
  417. package/dist/esm/structs/kits/projection.d.ts +21 -0
  418. package/dist/esm/structs/kits/reflection.d.ts +61 -2
  419. package/dist/esm/structs/kits/reflection.js +18 -3
  420. package/dist/esm/structs/kits/retrieval.d.ts +39 -0
  421. package/dist/esm/structs/kits/search.d.ts +24 -0
  422. package/dist/esm/structs/kits/text-skills.d.ts +36 -0
  423. package/dist/esm/structs/kits/tools.d.ts +87 -0
  424. package/dist/esm/structs/model/chat-provider.d.ts +24 -1
  425. package/dist/esm/structs/model/chat-provider.js +6 -0
  426. package/dist/esm/structs/model/interactions.d.ts +38 -0
  427. package/dist/esm/structs/model/messages.d.ts +34 -0
  428. package/dist/esm/structs/model/runtime.d.ts +104 -6
  429. package/dist/esm/structs/support/capabilities.d.ts +19 -2
  430. package/dist/esm/structs/support/context-processing.d.ts +88 -9
  431. package/dist/esm/structs/support/context.d.ts +29 -1
  432. package/dist/esm/structs/support/model/completion.d.ts +50 -0
  433. package/dist/esm/structs/support/model/completion.js +1 -0
  434. package/dist/esm/structs/support/model/interactions.d.ts +13 -1
  435. package/dist/esm/structs/support/model/messages.d.ts +54 -0
  436. package/dist/esm/structs/support/model/messages.js +1 -0
  437. package/dist/esm/structs/support/model/provider-observer.d.ts +22 -1
  438. package/dist/esm/structs/support/model/provider.d.ts +71 -6
  439. package/dist/esm/structs/support/registration.d.ts +13 -0
  440. package/dist/esm/structs/support/schema.d.ts +14 -0
  441. package/dist/esm/structs/support/tools.d.ts +28 -0
  442. package/dist/esm/structs/support/transport/json.d.ts +16 -0
  443. package/dist/esm/structs/support/transport/sse.d.ts +15 -0
  444. package/dist/esm/structs/utils/rules.d.ts +19 -0
  445. package/dist/esm/support/capabilities.d.ts +25 -2
  446. package/dist/esm/support/capabilities.js +43 -6
  447. package/dist/esm/support/context/assembly.d.ts +35 -4
  448. package/dist/esm/support/context/assembly.js +88 -16
  449. package/dist/esm/support/context/compression.d.ts +17 -1
  450. package/dist/esm/support/context/compression.js +48 -6
  451. package/dist/esm/support/context/fragments.d.ts +6 -0
  452. package/dist/esm/support/context/fragments.js +6 -0
  453. package/dist/esm/support/context/history.d.ts +43 -0
  454. package/dist/esm/support/context/history.js +36 -1
  455. package/dist/esm/support/context/index.d.ts +13 -2
  456. package/dist/esm/support/context/index.js +12 -1
  457. package/dist/esm/support/context/nodes.d.ts +65 -3
  458. package/dist/esm/support/context/nodes.js +165 -36
  459. package/dist/esm/support/context/processing.d.ts +152 -1
  460. package/dist/esm/support/context/processing.js +320 -62
  461. package/dist/esm/support/context/selection-policy.d.ts +42 -2
  462. package/dist/esm/support/context/selection-policy.js +98 -21
  463. package/dist/esm/support/context/selection.d.ts +14 -1
  464. package/dist/esm/support/context/selection.js +61 -10
  465. package/dist/esm/support/context/snapshot.d.ts +23 -1
  466. package/dist/esm/support/context/snapshot.js +29 -7
  467. package/dist/esm/support/context/strategies.d.ts +35 -2
  468. package/dist/esm/support/context/strategies.js +120 -28
  469. package/dist/esm/support/index.d.ts +9 -1
  470. package/dist/esm/support/index.js +9 -1
  471. package/dist/esm/support/model/capabilities.d.ts +10 -0
  472. package/dist/esm/support/model/capabilities.js +20 -1
  473. package/dist/esm/support/model/chat-completions.d.ts +44 -15
  474. package/dist/esm/support/model/chat-completions.js +92 -20
  475. package/dist/esm/support/model/children.d.ts +34 -2
  476. package/dist/esm/support/model/children.js +34 -6
  477. package/dist/esm/support/model/compatible-provider.d.ts +29 -3
  478. package/dist/esm/support/model/compatible-provider.js +190 -60
  479. package/dist/esm/support/model/completion/calls.d.ts +40 -0
  480. package/dist/esm/support/model/completion/calls.js +58 -0
  481. package/dist/esm/support/model/completion/default.d.ts +11 -0
  482. package/dist/esm/support/model/completion/default.js +30 -0
  483. package/dist/esm/support/model/completion/index.d.ts +10 -0
  484. package/dist/esm/support/model/completion/index.js +22 -0
  485. package/dist/esm/support/model/completion/session.d.ts +16 -0
  486. package/dist/esm/support/model/completion/session.js +104 -0
  487. package/dist/esm/support/model/index.d.ts +14 -0
  488. package/dist/esm/support/model/index.js +12 -0
  489. package/dist/esm/support/model/interactions/index.d.ts +1 -1
  490. package/dist/esm/support/model/interactions/index.js +12 -1
  491. package/dist/esm/support/model/interactions/json-object.d.ts +6 -0
  492. package/dist/esm/support/model/interactions/json-object.js +6 -0
  493. package/dist/esm/support/model/interactions/native-functions.d.ts +6 -0
  494. package/dist/esm/support/model/interactions/native-functions.js +6 -0
  495. package/dist/esm/support/model/observer.d.ts +25 -2
  496. package/dist/esm/support/model/observer.js +32 -6
  497. package/dist/esm/support/model/preview-rules.d.ts +26 -2
  498. package/dist/esm/support/model/preview-rules.js +66 -16
  499. package/dist/esm/support/model/reply-preview.d.ts +22 -1
  500. package/dist/esm/support/model/reply-preview.js +77 -17
  501. package/dist/esm/support/model/stage-transport.d.ts +9 -1
  502. package/dist/esm/support/model/stage-transport.js +33 -7
  503. package/dist/esm/support/model/strategies.d.ts +28 -2
  504. package/dist/esm/support/model/strategies.js +75 -14
  505. package/dist/esm/support/model/transports.d.ts +17 -1
  506. package/dist/esm/support/model/transports.js +53 -11
  507. package/dist/esm/support/registration.d.ts +20 -1
  508. package/dist/esm/support/registration.js +49 -7
  509. package/dist/esm/support/schema.d.ts +31 -1
  510. package/dist/esm/support/schema.js +46 -4
  511. package/dist/esm/support/stream-events.d.ts +22 -1
  512. package/dist/esm/support/stream-events.js +60 -8
  513. package/dist/esm/support/tool-runtime.d.ts +6 -0
  514. package/dist/esm/support/tool-runtime.js +6 -0
  515. package/dist/esm/support/tools.d.ts +22 -0
  516. package/dist/esm/support/tools.js +79 -10
  517. package/dist/esm/support/transport/index.d.ts +7 -0
  518. package/dist/esm/support/transport/index.js +7 -0
  519. package/dist/esm/support/transport/json.d.ts +29 -2
  520. package/dist/esm/support/transport/json.js +28 -4
  521. package/dist/esm/support/transport/sse.d.ts +31 -1
  522. package/dist/esm/support/transport/sse.js +25 -2
  523. package/dist/esm/types.d.ts +9 -1
  524. package/dist/esm/utils/break-observer.d.ts +27 -2
  525. package/dist/esm/utils/break-observer.js +20 -2
  526. package/dist/esm/utils/cancellation.d.ts +56 -5
  527. package/dist/esm/utils/cancellation.js +77 -9
  528. package/dist/esm/utils/catalog.d.ts +20 -1
  529. package/dist/esm/utils/catalog.js +19 -4
  530. package/dist/esm/utils/debug.d.ts +20 -1
  531. package/dist/esm/utils/debug.js +14 -2
  532. package/dist/esm/utils/index.d.ts +8 -0
  533. package/dist/esm/utils/index.js +8 -0
  534. package/dist/esm/utils/interaction-definition.d.ts +18 -1
  535. package/dist/esm/utils/interaction-definition.js +26 -6
  536. package/dist/esm/utils/invocation.d.ts +36 -1
  537. package/dist/esm/utils/invocation.js +42 -4
  538. package/dist/esm/utils/model-protocol.d.ts +8 -0
  539. package/dist/esm/utils/model-protocol.js +20 -1
  540. package/dist/esm/utils/object.d.ts +16 -0
  541. package/dist/esm/utils/object.js +16 -0
  542. package/dist/esm/utils/observer.d.ts +19 -1
  543. package/dist/esm/utils/observer.js +22 -2
  544. package/dist/esm/utils/protocol-registry.d.ts +38 -1
  545. package/dist/esm/utils/protocol-registry.js +47 -4
  546. package/dist/esm/utils/query-key.d.ts +11 -1
  547. package/dist/esm/utils/query-key.js +21 -2
  548. package/dist/esm/utils/registration.d.ts +34 -2
  549. package/dist/esm/utils/registration.js +18 -2
  550. package/dist/esm/utils/rules.d.ts +81 -4
  551. package/dist/esm/utils/rules.js +39 -11
  552. package/dist/esm/utils/schema-adapter.d.ts +12 -1
  553. package/dist/esm/utils/schema-adapter.js +25 -2
  554. package/dist/esm/utils/synchronous.d.ts +60 -4
  555. package/dist/esm/utils/synchronous.js +64 -7
  556. package/dist/esm/utils/text.d.ts +15 -1
  557. package/dist/esm/utils/text.js +15 -1
  558. package/package.json +7 -3
@@ -3,14 +3,52 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.invocationId = invocationId;
4
4
  exports.invocationResult = invocationResult;
5
5
  exports.toolInvocation = toolInvocation;
6
- /** Call IDs are platform-neutral and independent of App/request identities. */
7
- function invocationId() { return globalThis.crypto.randomUUID(); }
6
+ /**
7
+ * Generate an invocation id.
8
+ *
9
+ * @returns A random UUID from the platform crypto implementation.
10
+ */
11
+ function invocationId() {
12
+ return globalThis.crypto.randomUUID();
13
+ }
14
+ /**
15
+ * Wrap a value and its metadata in a frozen result envelope.
16
+ *
17
+ * Both layers are frozen so downstream consumers cannot mutate an already reported
18
+ * invocation.
19
+ *
20
+ * @param value - The produced value.
21
+ * @param metadata - Invocation metadata describing the call.
22
+ * @returns A frozen `InvocationResult`.
23
+ */
8
24
  function invocationResult(value, metadata) {
9
25
  return Object.freeze({ value, invocation: Object.freeze(metadata) });
10
26
  }
27
+ /**
28
+ * Normalize the positional tool-invocation shorthand used by App handlers.
29
+ *
30
+ * The shorthand only accepts exactly one request so a handler cannot silently drop
31
+ * additional tools; the request must carry a non-blank `toolId` and an explicit
32
+ * `input` property, which distinguishes "no input" from "input omitted".
33
+ *
34
+ * @param request - Candidate request supplied as a single argument.
35
+ * @param arity - Number of arguments the caller actually passed; must be 1.
36
+ * @returns A plain object with the four supported request fields.
37
+ * @throws TypeError When the arity or the request shape is invalid.
38
+ */
11
39
  function toolInvocation(request, arity) {
12
- if (arity !== 1 || !request || typeof request !== 'object' || typeof request.toolId !== 'string' || !request.toolId.trim() || !('input' in request)) {
40
+ if (arity !== 1 ||
41
+ !request ||
42
+ typeof request !== 'object' ||
43
+ typeof request.toolId !== 'string' ||
44
+ !request.toolId.trim() ||
45
+ !('input' in request)) {
13
46
  throw new TypeError('Use one tool request with toolId and input');
14
47
  }
15
- return { toolId: request.toolId, input: request.input, diagnostics: request.diagnostics, signal: request.signal };
48
+ return {
49
+ toolId: request.toolId,
50
+ input: request.input,
51
+ diagnostics: request.diagnostics,
52
+ signal: request.signal,
53
+ };
16
54
  }
@@ -1,7 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.modelProtocolError = modelProtocolError;
4
+ /**
5
+ * Fail a model-facing protocol contract.
6
+ *
7
+ * Model output is untrusted input: violations are reported as `ValidationError`
8
+ * issues so callers can inspect every problem instead of catching a bare Error.
9
+ *
10
+ * Exports: `modelProtocolError`.
11
+ */
4
12
  const errors_js_1 = require("../structs/errors.js");
13
+ /**
14
+ * Throw a model protocol validation error.
15
+ *
16
+ * @param message - Primary issue message, always reported with code `MODEL_PROTOCOL`.
17
+ * @param reason - Optional secondary code for the same message, used to distinguish variants.
18
+ * @returns Never returns; the declared `never` return lets callers use it in expressions.
19
+ * @throws ValidationError carrying one or two issues.
20
+ */
5
21
  function modelProtocolError(message, reason) {
6
- throw new errors_js_1.ValidationError([{ code: 'MODEL_PROTOCOL', message }, ...(reason ? [{ code: reason, message }] : [])]);
22
+ throw new errors_js_1.ValidationError([
23
+ { code: 'MODEL_PROTOCOL', message },
24
+ ...(reason ? [{ code: reason, message }] : []),
25
+ ]);
7
26
  }
@@ -1,6 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.freezeSchema = freezeSchema;
4
+ /**
5
+ * Structural object freezing for schema snapshots.
6
+ *
7
+ * JSON schemas are shared by definition, so a consumer that mutates a nested keyword
8
+ * would corrupt every other consumer. This deep freeze makes that attempt fail loudly.
9
+ *
10
+ * Exports: `freezeSchema`.
11
+ */
12
+ /**
13
+ * Recursively freeze an object graph.
14
+ *
15
+ * Arrays are objects, so they are covered as well. Already frozen nodes are skipped,
16
+ * which makes the walk safe on cyclic or shared sub-graphs and idempotent.
17
+ *
18
+ * @param value - Candidate node; primitives and non-objects are ignored.
19
+ */
4
20
  function freezeSchema(value) {
5
21
  if (!value || typeof value !== 'object' || Object.isFrozen(value))
6
22
  return;
@@ -1,7 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.observeSafely = observeSafely;
4
- /** Observers receive detached data; uncloneable observations are skipped, never exposed by reference. */
4
+ /**
5
+ * Defensive delivery of observed values to App-supplied observers.
6
+ *
7
+ * Observation is optional and must never influence the observed operation, so the
8
+ * value is cloned, failures are swallowed and returned promises are consumed.
9
+ *
10
+ * Exports: `observeSafely`.
11
+ */
12
+ /**
13
+ * Deliver a detached copy of a value to an observer.
14
+ *
15
+ * The clone prevents an observer from mutating execution state through a shared
16
+ * reference. A value that cannot be structured-cloned is skipped entirely rather
17
+ * than handed over by reference.
18
+ *
19
+ * @param observe - Observer callback, if one is installed.
20
+ * @param value - Value to clone and deliver.
21
+ * @returns Nothing; the observer may run asynchronously after this returns.
22
+ */
5
23
  function observeSafely(observe, value) {
6
24
  if (!observe)
7
25
  return;
@@ -10,5 +28,7 @@ function observeSafely(observe, value) {
10
28
  if (pending)
11
29
  void Promise.resolve(pending).catch(() => { });
12
30
  }
13
- catch { /* Observation is independent of the operation. */ }
31
+ catch {
32
+ /* Observation is independent of the operation. */
33
+ }
14
34
  }
@@ -1,16 +1,59 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProtocolRegistry = void 0;
4
- /** Schema and terminal semantics come entirely from registration, with no built-in step names. */
4
+ /**
5
+ * Strict id-keyed registry for model output protocols.
6
+ *
7
+ * Registration is the only source of schema and terminal semantics: the core never
8
+ * knows protocol names. Writes are checked eagerly so a duplicate or blank id fails at
9
+ * wiring time instead of at dispatch time.
10
+ *
11
+ * Exports: `ProtocolRegistry`.
12
+ */
13
+ /**
14
+ * Append-only protocol registry.
15
+ *
16
+ * Extending `Map` keeps lookup semantics familiar while `set` rejects every invalid
17
+ * registration, which makes the instance effectively immutable after wiring.
18
+ */
5
19
  class ProtocolRegistry extends Map {
20
+ /**
21
+ * @param definitions - Initial id/protocol pairs, applied through the validating `set`.
22
+ * @throws TypeError When any initial entry is invalid or duplicated.
23
+ */
6
24
  constructor(definitions = []) {
7
25
  super();
8
26
  for (const [id, protocol] of definitions)
9
27
  this.set(id, protocol);
10
28
  }
11
- ids() { return Object.freeze([...this.keys()]); }
12
- require(id) { const value = this.get(id); if (value === undefined)
13
- throw new TypeError(`Unknown protocol: ${id}`); return value; }
29
+ /**
30
+ * @returns A frozen array of registered ids in insertion order.
31
+ */
32
+ ids() {
33
+ return Object.freeze([...this.keys()]);
34
+ }
35
+ /**
36
+ * Look up a protocol that must exist.
37
+ *
38
+ * @param id - Protocol id.
39
+ * @returns The registered protocol.
40
+ * @throws TypeError When the id is unknown.
41
+ */
42
+ require(id) {
43
+ const value = this.get(id);
44
+ if (value === undefined)
45
+ throw new TypeError(`Unknown protocol: ${id}`);
46
+ return value;
47
+ }
48
+ /**
49
+ * Register a protocol.
50
+ *
51
+ * @param id - Non-blank protocol id.
52
+ * @param protocol - Protocol implementation.
53
+ * @returns This registry, for chaining.
54
+ * @throws TypeError When the id is blank or the protocol is nullish.
55
+ * @throws Error When the id is already registered.
56
+ */
14
57
  set(id, protocol) {
15
58
  if (!id.trim() || protocol === null || protocol === undefined)
16
59
  throw new TypeError('Invalid protocol registration');
@@ -1,8 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.retrievalQueryKey = retrievalQueryKey;
4
+ /**
5
+ * Stable identity for retrieval queries.
6
+ *
7
+ * Retrieval caches need a key that is insensitive to property order but sensitive to
8
+ * array order, because a query's result list is order-dependent.
9
+ *
10
+ * Exports: `retrievalQueryKey`.
11
+ */
4
12
  const rules_js_1 = require("./rules.js");
5
- /** Stable structural equality for queries; array order remains meaningful. */
13
+ /**
14
+ * Serialize a query into a stable structural key.
15
+ *
16
+ * Object keys are sorted recursively while array positions are preserved. Values that
17
+ * JSON cannot represent, such as functions or `undefined`, make `JSON.stringify`
18
+ * return undefined and therefore produce an error instead of a colliding key.
19
+ *
20
+ * @param value - Query value to canonicalize.
21
+ * @returns A JSON string usable as a map key.
22
+ * @throws TypeError When the value cannot be serialized.
23
+ */
6
24
  function retrievalQueryKey(value) {
7
25
  const serialized = JSON.stringify(canonical(value));
8
26
  (0, rules_js_1.breakWhile)(serialized === undefined, () => new TypeError('Query cannot be serialized'));
@@ -12,7 +30,8 @@ function canonical(value) {
12
30
  if (Array.isArray(value))
13
31
  return value.map(canonical);
14
32
  if (value && typeof value === 'object') {
15
- return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right))
33
+ return Object.fromEntries(Object.entries(value)
34
+ .sort(([left], [right]) => left.localeCompare(right))
16
35
  .map(([key, item]) => [key, canonical(item)]));
17
36
  }
18
37
  return value;
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registrationData = registrationData;
4
- /** Snapshot inherited metadata with its real receiver, without retaining a mutable prototype. */
4
+ /**
5
+ * Copy the inherited, non-function data of a definition.
6
+ *
7
+ * The walk starts at the source and moves up the prototype chain while reading every
8
+ * accessor with the source as receiver, so getters keep observing their own instance
9
+ * without the snapshot retaining the mutable prototype. `constructor` is skipped for
10
+ * inherited levels because it describes the class rather than the definition.
11
+ *
12
+ * @param source - Definition to snapshot.
13
+ * @param excluded - Keys that must not appear in the result.
14
+ * @returns A plain object containing enumerable, writable non-function data.
15
+ */
5
16
  function registrationData(source, excluded = []) {
6
17
  const result = {};
7
18
  const seen = new Set(excluded);
@@ -13,7 +24,12 @@ function registrationData(source, excluded = []) {
13
24
  const descriptor = Object.getOwnPropertyDescriptor(owner, key);
14
25
  const value = descriptor.get ? descriptor.get.call(source) : descriptor.value;
15
26
  if (typeof value !== 'function')
16
- Object.defineProperty(result, key, { value, enumerable: true, configurable: true, writable: true });
27
+ Object.defineProperty(result, key, {
28
+ value,
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ });
17
33
  }
18
34
  }
19
35
  return result;
@@ -8,14 +8,29 @@ const synchronous_js_1 = require("./synchronous.js");
8
8
  const break_observer_js_1 = require("./break-observer.js");
9
9
  var break_observer_js_2 = require("./break-observer.js");
10
10
  Object.defineProperty(exports, "configureBreakWhile", { enumerable: true, get: function () { return break_observer_js_2.configureBreakWhile; } });
11
- /** First match owns the result, even when its handler returns undefined. */
11
+ /**
12
+ * Dispatch to the first matching rule.
13
+ *
14
+ * A rule without a pattern matches unconditionally, so the table's order decides
15
+ * precedence. The first match owns the result even when its handler returns undefined,
16
+ * and later rules are not consulted.
17
+ *
18
+ * @param rules - Ordered rules; only the first match is executed.
19
+ * @param input - Value passed to the pattern and handler.
20
+ * @returns The handler result, or undefined when nothing matched.
21
+ * @throws TypeError When a pattern returns a thenable or a non-boolean.
22
+ */
12
23
  function matchRule(rules, input) {
13
- return rules.find(rule => rule.pattern === undefined || (0, synchronous_js_1.booleanResult)(rule.pattern(input), 'Rule patterns must return boolean synchronously'))?.handle(input);
24
+ return rules
25
+ .find((rule) => rule.pattern === undefined ||
26
+ (0, synchronous_js_1.booleanResult)(rule.pattern(input), 'Rule patterns must return boolean synchronously'))
27
+ ?.handle(input);
14
28
  }
15
29
  function walkRules(rules, input = undefined) {
16
30
  for (const rule of rules) {
17
31
  (0, synchronous_js_1.synchronous)(rule.before?.(input), 'Rule traversal hooks must be synchronous');
18
- if (rule.pattern === undefined || (0, synchronous_js_1.booleanResult)(rule.pattern(input), 'Rule patterns must return boolean synchronously'))
32
+ if (rule.pattern === undefined ||
33
+ (0, synchronous_js_1.booleanResult)(rule.pattern(input), 'Rule patterns must return boolean synchronously'))
19
34
  (0, synchronous_js_1.synchronous)(rule.handle(input), 'Rule traversal handlers must be synchronous');
20
35
  }
21
36
  }
@@ -24,24 +39,37 @@ function breakWhile(occur, errorOrTags, tags = []) {
24
39
  const callTags = Array.isArray(errorOrTags) ? errorOrTags : tags;
25
40
  // A single value keeps ordinary JS truthiness, including a function used as a value.
26
41
  const checks = Array.isArray(occur)
27
- ? typeof occur[0] === 'function' && occur.every(item => typeof item === 'function')
42
+ ? typeof occur[0] === 'function' && occur.every((item) => typeof item === 'function')
28
43
  ? [{ occur, error }]
29
44
  : occur
30
45
  : [{ occur: () => occur, error }];
31
46
  for (const check of checks) {
32
47
  try {
33
- if (!check || typeof check !== 'object' || Array.isArray(check) || !Object.hasOwn(check, 'occur')
34
- || 'condition' in check || 'conditions' in check)
48
+ if (!check ||
49
+ typeof check !== 'object' ||
50
+ Array.isArray(check) ||
51
+ !Object.hasOwn(check, 'occur') ||
52
+ 'condition' in check ||
53
+ 'conditions' in check)
35
54
  throw new TypeError('A break check requires occur; condition and conditions were renamed to occur');
36
55
  const occur = check.occur;
37
- if (Array.isArray(occur) && occur.some(predicate => typeof predicate !== 'function'))
56
+ if (Array.isArray(occur) && occur.some((predicate) => typeof predicate !== 'function'))
38
57
  throw new TypeError('An occur array requires predicates');
39
- const matched = Array.isArray(occur) ? occur.some(predicate => (0, synchronous_js_1.synchronous)(predicate(), 'Occur predicates must be synchronous'))
40
- : typeof occur === 'function' ? (0, synchronous_js_1.synchronous)(occur(), 'Occur predicates must be synchronous') : occur;
58
+ const matched = Array.isArray(occur)
59
+ ? occur.some((predicate) => (0, synchronous_js_1.synchronous)(predicate(), 'Occur predicates must be synchronous'))
60
+ : typeof occur === 'function'
61
+ ? (0, synchronous_js_1.synchronous)(occur(), 'Occur predicates must be synchronous')
62
+ : occur;
41
63
  if (!matched)
42
64
  continue;
43
- const reason = typeof check.error === 'function' ? (0, synchronous_js_1.synchronous)(check.error(), 'Break reasons must be synchronous') : check.error;
44
- throw reason === undefined ? new Error() : typeof reason === 'string' ? new Error(reason) : reason;
65
+ const reason = typeof check.error === 'function'
66
+ ? (0, synchronous_js_1.synchronous)(check.error(), 'Break reasons must be synchronous')
67
+ : check.error;
68
+ throw reason === undefined
69
+ ? new Error()
70
+ : typeof reason === 'string'
71
+ ? new Error(reason)
72
+ : reason;
45
73
  }
46
74
  catch (failure) {
47
75
  (0, break_observer_js_1.observeBreak)(failure, callTags, check);
@@ -1,9 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.snapshotSchemaAdapter = snapshotSchemaAdapter;
4
+ /**
5
+ * Snapshot helper for registered schema adapters.
6
+ *
7
+ * An adapter owns a JSON schema and a parser. Both must be detached from the App object
8
+ * that supplied them, both must be immutable afterwards, and the parser must stay
9
+ * synchronous, because schema snapshots are reused across requests and diagnostics.
10
+ *
11
+ * Exports: `snapshotSchemaAdapter`.
12
+ */
4
13
  const object_js_1 = require("./object.js");
5
14
  const synchronous_js_1 = require("./synchronous.js");
6
- /** Pin the parser and its receiver independently of the schema snapshot. */
15
+ /**
16
+ * Detach a schema adapter into a frozen, synchronous definition.
17
+ *
18
+ * The JSON schema is cloned and deep-frozen; the parser is bound to the original
19
+ * definition so a method keeps its receiver, then wrapped so a thenable result is
20
+ * rejected rather than awaited.
21
+ *
22
+ * @param definition - Adapter to snapshot.
23
+ * @param asyncError - Message used when the parser returns a thenable.
24
+ * @returns A frozen adapter with a cloned schema and a synchronous parser.
25
+ * @throws TypeError When `jsonSchema` is missing or not a plain object.
26
+ */
7
27
  function snapshotSchemaAdapter(definition, asyncError = 'Schema parsers must be synchronous') {
8
28
  const { jsonSchema } = definition;
9
29
  if (!jsonSchema || typeof jsonSchema !== 'object' || Array.isArray(jsonSchema)) {
@@ -12,5 +32,8 @@ function snapshotSchemaAdapter(definition, asyncError = 'Schema parsers must be
12
32
  const snapshot = structuredClone(jsonSchema);
13
33
  (0, object_js_1.freezeSchema)(snapshot);
14
34
  const parse = definition.parse.bind(definition);
15
- return Object.freeze({ jsonSchema: snapshot, parse: (input) => (0, synchronous_js_1.synchronous)(parse(input), asyncError) });
35
+ return Object.freeze({
36
+ jsonSchema: snapshot,
37
+ parse: (input) => (0, synchronous_js_1.synchronous)(parse(input), asyncError),
38
+ });
16
39
  }
@@ -5,12 +5,38 @@ exports.synchronous = synchronous;
5
5
  exports.assertion = assertion;
6
6
  exports.maybeAssertion = maybeAssertion;
7
7
  exports.booleanResult = booleanResult;
8
- /** Shared thenable test for contracts that either reject or explicitly await one. */
8
+ /**
9
+ * Guards for contracts that require synchronous participants.
10
+ *
11
+ * Handlers, predicates and parsers are declared synchronous by contract. Detecting an
12
+ * accidental async implementation early is cheaper than debugging an interleaved
13
+ * execution, so every such call site passes its result through these helpers.
14
+ *
15
+ * Exports: `isPromiseLike`, `synchronous`, `assertion`, `maybeAssertion` and
16
+ * `booleanResult`.
17
+ */
18
+ /**
19
+ * Test for a thenable without invoking it.
20
+ *
21
+ * @param value - Candidate value.
22
+ * @returns True when the value carries a callable `then`.
23
+ */
9
24
  function isPromiseLike(value) {
10
- return value !== null && (typeof value === 'object' || typeof value === 'function')
11
- && typeof value.then === 'function';
25
+ return (value !== null &&
26
+ (typeof value === 'object' || typeof value === 'function') &&
27
+ typeof value.then === 'function');
12
28
  }
13
- /** Reject an accidental async callback and consume its eventual rejection. This cannot undo its side effects. */
29
+ /**
30
+ * Reject an accidentally asynchronous callback.
31
+ *
32
+ * A thenable is consumed before throwing so its eventual rejection cannot surface as an
33
+ * unhandled rejection. Any side effects the callback already started cannot be undone.
34
+ *
35
+ * @param value - Result of the callback.
36
+ * @param message - Message for the TypeError raised when the result is thenable.
37
+ * @returns The same value, narrowed to a non-thenable.
38
+ * @throws TypeError When the value is a thenable.
39
+ */
14
40
  function synchronous(value, message) {
15
41
  if (isPromiseLike(value)) {
16
42
  void Promise.resolve(value).catch(() => { });
@@ -18,17 +44,48 @@ function synchronous(value, message) {
18
44
  }
19
45
  return value;
20
46
  }
21
- /** Assertions and authorization must finish with undefined, never a discarded boolean. */
47
+ /**
48
+ * Require an assertion hook to finish with `undefined`.
49
+ *
50
+ * Returning a boolean is a common mistake that would silently pass; requiring `void`
51
+ * makes a discarded decision fail loudly.
52
+ *
53
+ * @param value - Result of the assertion hook.
54
+ * @param message - Message for the TypeError.
55
+ * @throws TypeError When the result is thenable or not `undefined`.
56
+ */
22
57
  function assertion(value, message) {
23
58
  if (synchronous(value, message) !== undefined)
24
59
  throw new TypeError(message);
25
60
  }
26
- /** Retain a synchronous assertion when allowed; await only actual thenables. */
61
+ /**
62
+ * Accept a synchronous assertion or await an actually asynchronous one.
63
+ *
64
+ * Only a thenable is awaited; synchronous results are validated immediately so callers
65
+ * that rely on ordering do not yield to the event loop unnecessarily.
66
+ *
67
+ * @param value - Result of the assertion hook.
68
+ * @param message - Message for the TypeError.
69
+ * @returns Nothing, or a promise resolved once the awaited assertion passed.
70
+ * @throws TypeError When the hook does not finish with `undefined`.
71
+ */
27
72
  function maybeAssertion(value, message) {
28
73
  if (isPromiseLike(value))
29
- return Promise.resolve(value).then(result => assertion(result, message));
74
+ return Promise.resolve(value).then((result) => assertion(result, message));
30
75
  assertion(value, message);
31
76
  }
77
+ /**
78
+ * Require a synchronous boolean decision.
79
+ *
80
+ * Truthiness is not accepted: routing must receive an explicit `true` or `false` so a
81
+ * predicate that forgets to return a value is reported instead of silently skipping.
82
+ *
83
+ * @param value - Result of the predicate.
84
+ * @param message - Message for the thenable TypeError.
85
+ * @param invalidMessage - Message for the non-boolean TypeError; defaults to `message`.
86
+ * @returns The validated boolean.
87
+ * @throws TypeError When the result is thenable or not boolean.
88
+ */
32
89
  function booleanResult(value, message, invalidMessage = message) {
33
90
  const result = synchronous(value, message);
34
91
  if (typeof result !== 'boolean')
@@ -1,7 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.commonPrefixLength = commonPrefixLength;
4
- /** Native prefix comparisons avoid a JavaScript character loop on long prompts. */
4
+ /**
5
+ * Small string helpers used for prompt accounting.
6
+ *
7
+ * Exports: `commonPrefixLength`.
8
+ */
9
+ /**
10
+ * Length of the longest common prefix of two strings.
11
+ *
12
+ * Implemented as a binary search over slice comparisons so long prompts stay on the
13
+ * native string comparison path instead of running a JavaScript character loop.
14
+ *
15
+ * @param left - First string.
16
+ * @param right - Second string.
17
+ * @returns Number of leading characters both strings share, bounded by the shorter length.
18
+ */
5
19
  function commonPrefixLength(left, right) {
6
20
  let low = 0;
7
21
  let high = Math.min(left.length, right.length);
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Capability registration surface: model capabilities, executable tools and host-selected
3
+ * invocations.
4
+ *
5
+ * These registries hold declarations only. Which capabilities a stage may use, whether a
6
+ * call is authorized, and what a payload means remain App decisions; this barrel provides
7
+ * the mechanisms that validate, seal and execute those declarations.
8
+ *
9
+ * Exports: the model capability registry (`model`), the executable tool registry and its
10
+ * sync/async invocation entry points (`tools`), host-selected invocation execution
11
+ * (`invocation`), and the Interaction Kit's protocol, command and handler definitions that
12
+ * shape and validate model-produced interactions.
13
+ */
1
14
  export * from './model.js';
2
15
  export * from './tools.js';
3
16
  export * from './invocation.js';
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Capability registration surface: model capabilities, executable tools and host-selected
3
+ * invocations.
4
+ *
5
+ * These registries hold declarations only. Which capabilities a stage may use, whether a
6
+ * call is authorized, and what a payload means remain App decisions; this barrel provides
7
+ * the mechanisms that validate, seal and execute those declarations.
8
+ *
9
+ * Exports: the model capability registry (`model`), the executable tool registry and its
10
+ * sync/async invocation entry points (`tools`), host-selected invocation execution
11
+ * (`invocation`), and the Interaction Kit's protocol, command and handler definitions that
12
+ * shape and validate model-produced interactions.
13
+ */
1
14
  export * from './model.js';
2
15
  export * from './tools.js';
3
16
  export * from './invocation.js';
@@ -1,4 +1,18 @@
1
1
  import type { InvocationHandler, ToolInvocationPorts } from '../structs/capabilities/invocation.js';
2
- /** Execute a host-selected synchronous call. Selection, authorization facts and payload shape stay outside. */
2
+ /**
3
+ * Run one synchronous invocation and record its effects.
4
+ *
5
+ * @param invocation Handler whose `call` performs the work; its `id` becomes the tool id in
6
+ * diagnostics and journal records.
7
+ * @param input Payload handed to the handler unchanged.
8
+ * @param context App context passed to the ports below; it is never inspected here.
9
+ * @param ports Per-context callbacks for diagnostics, cancellation, journalling and receipt
10
+ * capture. All are optional: without them the handler still runs, just unrecorded.
11
+ * @returns Nothing. The outcome is conveyed through the journal receipt, when one is bound.
12
+ * @throws TypeError when the handler identity is missing, or when the handler returns a
13
+ * promise despite the synchronous contract.
14
+ * @throws Whatever the handler throws, unchanged, including the abort error raised by the
15
+ * signal checks.
16
+ */
3
17
  export declare function executeInvocation<Input, Context>(invocation: InvocationHandler<Input, Context>, input: Input, context: Context, ports?: ToolInvocationPorts<Context>): void;
4
- export type { InvocationHandler, ToolInvocationPorts, ToolJournal } from '../structs/capabilities/invocation.js';
18
+ export type { InvocationHandler, ToolInvocationPorts, ToolJournal, } from '../structs/capabilities/invocation.js';