@jangts/agent-core 0.1.1 → 0.2.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 (523) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/development/docs/api/reference.md +1907 -1874
  3. package/development/docs/api/support.md +27 -0
  4. package/development/skills/agent-core-app/scripts/create-app.mjs +267 -70
  5. package/development/skills/agent-core-app/scripts/lib/knowledge.mjs +40 -15
  6. package/development/skills/agent-core-app/scripts/lib/source.mjs +30 -2
  7. package/development/skills/agent-core-app/scripts/plan.mjs +37 -12
  8. package/development/skills/agent-core-app/scripts/prepare-source.mjs +61 -10
  9. package/development/skills/agent-core-app/scripts/resources.mjs +45 -17
  10. package/development/skills/agent-core-app/scripts/validate-knowledge.mjs +18 -1
  11. package/development/skills/agent-core-app/templates/catalog.json +36 -22
  12. package/dist/cjs/capabilities/index.js +13 -0
  13. package/dist/cjs/capabilities/invocation.js +80 -10
  14. package/dist/cjs/capabilities/model.js +126 -13
  15. package/dist/cjs/capabilities/tool-runtime.js +64 -12
  16. package/dist/cjs/capabilities/tools.js +266 -31
  17. package/dist/cjs/context/assembly.js +46 -5
  18. package/dist/cjs/context/audit.js +31 -6
  19. package/dist/cjs/context/fragments.js +54 -11
  20. package/dist/cjs/context/index.js +12 -0
  21. package/dist/cjs/context/journal.js +84 -7
  22. package/dist/cjs/context/plan.js +30 -2
  23. package/dist/cjs/diagnostics/catalog.js +11 -3
  24. package/dist/cjs/diagnostics/index.js +149 -29
  25. package/dist/cjs/diagnostics/sub-flow.js +240 -40
  26. package/dist/cjs/errors.js +99 -17
  27. package/dist/cjs/execution/branch.js +20 -4
  28. package/dist/cjs/execution/engine.js +470 -56
  29. package/dist/cjs/execution/events.js +136 -18
  30. package/dist/cjs/execution/index.js +7 -0
  31. package/dist/cjs/execution/reporting.js +75 -6
  32. package/dist/cjs/execution/state.js +161 -22
  33. package/dist/cjs/execution/workflow.js +224 -32
  34. package/dist/cjs/index.js +18 -0
  35. package/dist/cjs/kits/aggregation.js +45 -3
  36. package/dist/cjs/kits/answering/batch.js +23 -4
  37. package/dist/cjs/kits/answering/check-result.js +31 -8
  38. package/dist/cjs/kits/answering/checks.js +24 -3
  39. package/dist/cjs/kits/answering/flow.js +192 -36
  40. package/dist/cjs/kits/answering/index.js +19 -1
  41. package/dist/cjs/kits/answering/tasks.js +88 -13
  42. package/dist/cjs/kits/artifacts.js +36 -4
  43. package/dist/cjs/kits/candidates.js +47 -5
  44. package/dist/cjs/kits/delivery.js +40 -5
  45. package/dist/cjs/kits/durable.js +155 -31
  46. package/dist/cjs/kits/evidence.js +66 -15
  47. package/dist/cjs/kits/family.js +152 -22
  48. package/dist/cjs/kits/index.js +12 -1
  49. package/dist/cjs/kits/inference.js +104 -16
  50. package/dist/cjs/kits/intents/catalog.js +67 -16
  51. package/dist/cjs/kits/intents/index.js +11 -0
  52. package/dist/cjs/kits/intents/registry.js +188 -43
  53. package/dist/cjs/kits/intents/scopes.js +215 -46
  54. package/dist/cjs/kits/interaction/command.js +140 -36
  55. package/dist/cjs/kits/interaction/commands.js +86 -11
  56. package/dist/cjs/kits/interaction/handlers.js +27 -10
  57. package/dist/cjs/kits/interaction/index.js +10 -0
  58. package/dist/cjs/kits/interaction/transfer.js +80 -14
  59. package/dist/cjs/kits/knowledge/catalog.js +62 -11
  60. package/dist/cjs/kits/knowledge/index.js +16 -1
  61. package/dist/cjs/kits/knowledge/publication.js +99 -23
  62. package/dist/cjs/kits/knowledge/sections.js +33 -4
  63. package/dist/cjs/kits/normalization.js +51 -7
  64. package/dist/cjs/kits/policies.js +79 -15
  65. package/dist/cjs/kits/presentation/events.js +54 -10
  66. package/dist/cjs/kits/presentation/index.js +24 -1
  67. package/dist/cjs/kits/presentation/outputs.js +176 -38
  68. package/dist/cjs/kits/presentation/templates.js +33 -5
  69. package/dist/cjs/kits/presentation/variants.js +31 -2
  70. package/dist/cjs/kits/projection.js +63 -8
  71. package/dist/cjs/kits/rank-fusion.js +27 -4
  72. package/dist/cjs/kits/reflection-log-source.js +89 -16
  73. package/dist/cjs/kits/reflection.js +234 -60
  74. package/dist/cjs/kits/retrieval.js +98 -18
  75. package/dist/cjs/kits/search.js +180 -27
  76. package/dist/cjs/kits/text-skills.js +104 -19
  77. package/dist/cjs/kits/tools.js +415 -74
  78. package/dist/cjs/kits/vector-search.js +50 -16
  79. package/dist/cjs/mock/node.js +7 -1
  80. package/dist/cjs/mock/web.js +7 -1
  81. package/dist/cjs/mock.js +7 -1
  82. package/dist/cjs/model/binding.js +68 -17
  83. package/dist/cjs/model/call-budget.js +45 -4
  84. package/dist/cjs/model/decision-retry.js +19 -1
  85. package/dist/cjs/model/defaults.js +27 -4
  86. package/dist/cjs/model/index.js +7 -0
  87. package/dist/cjs/model/interactions/arguments.js +36 -1
  88. package/dist/cjs/model/interactions/json-object.js +48 -12
  89. package/dist/cjs/model/interactions/native-functions.js +52 -10
  90. package/dist/cjs/model/message-diagnostics.js +17 -4
  91. package/dist/cjs/model/options.js +9 -1
  92. package/dist/cjs/model/preparation.js +86 -12
  93. package/dist/cjs/model/runner.js +413 -79
  94. package/dist/cjs/model/selection-transport.js +48 -8
  95. package/dist/cjs/model/settings.js +67 -13
  96. package/dist/cjs/model/token-budget.js +69 -11
  97. package/dist/cjs/model/transports.js +59 -6
  98. package/dist/cjs/structs/common.js +11 -0
  99. package/dist/cjs/structs/debug.js +34 -5
  100. package/dist/cjs/structs/errors.js +26 -1
  101. package/dist/cjs/structs/index.js +11 -1
  102. package/dist/cjs/structs/kits/durable.js +7 -0
  103. package/dist/cjs/structs/kits/family.js +1 -0
  104. package/dist/cjs/structs/kits/interaction.js +8 -1
  105. package/dist/cjs/structs/kits/knowledge-publication.js +1 -0
  106. package/dist/cjs/structs/kits/reflection.js +18 -3
  107. package/dist/cjs/structs/model/chat-provider.js +6 -0
  108. package/dist/cjs/structs/support/model/completion.js +2 -0
  109. package/dist/cjs/structs/support/model/messages.js +2 -0
  110. package/dist/cjs/support/capabilities.js +43 -6
  111. package/dist/cjs/support/context/assembly.js +88 -16
  112. package/dist/cjs/support/context/compression.js +48 -6
  113. package/dist/cjs/support/context/fragments.js +6 -0
  114. package/dist/cjs/support/context/history.js +36 -1
  115. package/dist/cjs/support/context/index.js +11 -0
  116. package/dist/cjs/support/context/nodes.js +164 -35
  117. package/dist/cjs/support/context/processing.js +319 -61
  118. package/dist/cjs/support/context/selection-policy.js +98 -21
  119. package/dist/cjs/support/context/selection.js +61 -10
  120. package/dist/cjs/support/context/snapshot.js +29 -7
  121. package/dist/cjs/support/context/strategies.js +120 -28
  122. package/dist/cjs/support/index.js +9 -1
  123. package/dist/cjs/support/model/capabilities.js +20 -1
  124. package/dist/cjs/support/model/chat-completions.js +92 -20
  125. package/dist/cjs/support/model/children.js +34 -6
  126. package/dist/cjs/support/model/compatible-provider.js +189 -59
  127. package/dist/cjs/support/model/completion/calls.js +61 -0
  128. package/dist/cjs/support/model/completion/default.js +32 -0
  129. package/dist/cjs/support/model/completion/index.js +28 -0
  130. package/dist/cjs/support/model/completion/session.js +102 -0
  131. package/dist/cjs/support/model/index.js +12 -0
  132. package/dist/cjs/support/model/interactions/index.js +12 -1
  133. package/dist/cjs/support/model/interactions/json-object.js +6 -0
  134. package/dist/cjs/support/model/interactions/native-functions.js +6 -0
  135. package/dist/cjs/support/model/observer.js +32 -6
  136. package/dist/cjs/support/model/preview-rules.js +66 -16
  137. package/dist/cjs/support/model/reply-preview.js +77 -17
  138. package/dist/cjs/support/model/stage-transport.js +33 -7
  139. package/dist/cjs/support/model/strategies.js +75 -14
  140. package/dist/cjs/support/model/transports.js +53 -11
  141. package/dist/cjs/support/registration.js +49 -7
  142. package/dist/cjs/support/schema.js +46 -4
  143. package/dist/cjs/support/stream-events.js +60 -8
  144. package/dist/cjs/support/tool-runtime.js +6 -0
  145. package/dist/cjs/support/tools.js +79 -10
  146. package/dist/cjs/support/transport/index.js +7 -0
  147. package/dist/cjs/support/transport/json.js +28 -4
  148. package/dist/cjs/support/transport/sse.js +25 -2
  149. package/dist/cjs/utils/break-observer.js +20 -2
  150. package/dist/cjs/utils/cancellation.js +77 -9
  151. package/dist/cjs/utils/catalog.js +19 -4
  152. package/dist/cjs/utils/debug.js +14 -2
  153. package/dist/cjs/utils/index.js +8 -0
  154. package/dist/cjs/utils/interaction-definition.js +26 -6
  155. package/dist/cjs/utils/invocation.js +42 -4
  156. package/dist/cjs/utils/model-protocol.js +20 -1
  157. package/dist/cjs/utils/object.js +16 -0
  158. package/dist/cjs/utils/observer.js +22 -2
  159. package/dist/cjs/utils/protocol-registry.js +47 -4
  160. package/dist/cjs/utils/query-key.js +21 -2
  161. package/dist/cjs/utils/registration.js +18 -2
  162. package/dist/cjs/utils/rules.js +39 -11
  163. package/dist/cjs/utils/schema-adapter.js +25 -2
  164. package/dist/cjs/utils/synchronous.js +64 -7
  165. package/dist/cjs/utils/text.js +15 -1
  166. package/dist/esm/capabilities/index.d.ts +13 -0
  167. package/dist/esm/capabilities/index.js +13 -0
  168. package/dist/esm/capabilities/invocation.d.ts +16 -2
  169. package/dist/esm/capabilities/invocation.js +80 -10
  170. package/dist/esm/capabilities/model.d.ts +68 -1
  171. package/dist/esm/capabilities/model.js +126 -13
  172. package/dist/esm/capabilities/tool-runtime.d.ts +11 -0
  173. package/dist/esm/capabilities/tool-runtime.js +64 -12
  174. package/dist/esm/capabilities/tools.d.ts +96 -3
  175. package/dist/esm/capabilities/tools.js +267 -32
  176. package/dist/esm/context/assembly.d.ts +13 -2
  177. package/dist/esm/context/assembly.js +46 -5
  178. package/dist/esm/context/audit.d.ts +23 -1
  179. package/dist/esm/context/audit.js +31 -6
  180. package/dist/esm/context/fragments.d.ts +37 -3
  181. package/dist/esm/context/fragments.js +54 -11
  182. package/dist/esm/context/index.d.ts +12 -0
  183. package/dist/esm/context/index.js +12 -0
  184. package/dist/esm/context/journal.d.ts +32 -1
  185. package/dist/esm/context/journal.js +84 -7
  186. package/dist/esm/context/plan.d.ts +11 -1
  187. package/dist/esm/context/plan.js +30 -2
  188. package/dist/esm/diagnostics/catalog.js +11 -3
  189. package/dist/esm/diagnostics/index.d.ts +30 -2
  190. package/dist/esm/diagnostics/index.js +149 -29
  191. package/dist/esm/diagnostics/sub-flow.d.ts +41 -3
  192. package/dist/esm/diagnostics/sub-flow.js +240 -40
  193. package/dist/esm/errors.d.ts +22 -2
  194. package/dist/esm/errors.js +99 -17
  195. package/dist/esm/execution/branch.d.ts +19 -1
  196. package/dist/esm/execution/branch.js +20 -4
  197. package/dist/esm/execution/engine.d.ts +291 -5
  198. package/dist/esm/execution/engine.js +471 -57
  199. package/dist/esm/execution/events.d.ts +16 -2
  200. package/dist/esm/execution/events.js +136 -18
  201. package/dist/esm/execution/index.d.ts +7 -0
  202. package/dist/esm/execution/index.js +7 -0
  203. package/dist/esm/execution/reporting.d.ts +49 -1
  204. package/dist/esm/execution/reporting.js +75 -6
  205. package/dist/esm/execution/state.d.ts +126 -10
  206. package/dist/esm/execution/state.js +161 -22
  207. package/dist/esm/execution/workflow.d.ts +121 -3
  208. package/dist/esm/execution/workflow.js +224 -32
  209. package/dist/esm/index.d.ts +17 -1
  210. package/dist/esm/index.js +18 -0
  211. package/dist/esm/kits/aggregation.d.ts +34 -2
  212. package/dist/esm/kits/aggregation.js +45 -3
  213. package/dist/esm/kits/answering/batch.d.ts +17 -0
  214. package/dist/esm/kits/answering/batch.js +23 -4
  215. package/dist/esm/kits/answering/check-result.d.ts +18 -1
  216. package/dist/esm/kits/answering/check-result.js +31 -8
  217. package/dist/esm/kits/answering/checks.d.ts +11 -0
  218. package/dist/esm/kits/answering/checks.js +24 -3
  219. package/dist/esm/kits/answering/flow.d.ts +25 -2
  220. package/dist/esm/kits/answering/flow.js +192 -36
  221. package/dist/esm/kits/answering/index.d.ts +12 -0
  222. package/dist/esm/kits/answering/index.js +19 -1
  223. package/dist/esm/kits/answering/tasks.d.ts +32 -1
  224. package/dist/esm/kits/answering/tasks.js +88 -13
  225. package/dist/esm/kits/artifacts.d.ts +11 -0
  226. package/dist/esm/kits/artifacts.js +36 -4
  227. package/dist/esm/kits/candidates.d.ts +23 -1
  228. package/dist/esm/kits/candidates.js +47 -5
  229. package/dist/esm/kits/delivery.d.ts +34 -0
  230. package/dist/esm/kits/delivery.js +40 -5
  231. package/dist/esm/kits/durable.d.ts +19 -0
  232. package/dist/esm/kits/durable.js +155 -31
  233. package/dist/esm/kits/evidence.d.ts +28 -5
  234. package/dist/esm/kits/evidence.js +66 -15
  235. package/dist/esm/kits/family.d.ts +17 -1
  236. package/dist/esm/kits/family.js +152 -22
  237. package/dist/esm/kits/index.d.ts +12 -1
  238. package/dist/esm/kits/index.js +12 -1
  239. package/dist/esm/kits/inference.d.ts +64 -0
  240. package/dist/esm/kits/inference.js +104 -16
  241. package/dist/esm/kits/intents/catalog.d.ts +13 -1
  242. package/dist/esm/kits/intents/catalog.js +67 -16
  243. package/dist/esm/kits/intents/index.d.ts +11 -0
  244. package/dist/esm/kits/intents/index.js +11 -0
  245. package/dist/esm/kits/intents/registry.d.ts +61 -3
  246. package/dist/esm/kits/intents/registry.js +188 -43
  247. package/dist/esm/kits/intents/scopes.d.ts +73 -3
  248. package/dist/esm/kits/intents/scopes.js +215 -46
  249. package/dist/esm/kits/interaction/command.d.ts +38 -4
  250. package/dist/esm/kits/interaction/command.js +140 -36
  251. package/dist/esm/kits/interaction/commands.d.ts +66 -2
  252. package/dist/esm/kits/interaction/commands.js +86 -11
  253. package/dist/esm/kits/interaction/handlers.d.ts +19 -2
  254. package/dist/esm/kits/interaction/handlers.js +27 -10
  255. package/dist/esm/kits/interaction/index.d.ts +10 -0
  256. package/dist/esm/kits/interaction/index.js +10 -0
  257. package/dist/esm/kits/interaction/transfer.d.ts +39 -2
  258. package/dist/esm/kits/interaction/transfer.js +80 -14
  259. package/dist/esm/kits/knowledge/catalog.d.ts +13 -0
  260. package/dist/esm/kits/knowledge/catalog.js +62 -11
  261. package/dist/esm/kits/knowledge/index.d.ts +11 -0
  262. package/dist/esm/kits/knowledge/index.js +16 -1
  263. package/dist/esm/kits/knowledge/publication.d.ts +15 -1
  264. package/dist/esm/kits/knowledge/publication.js +99 -23
  265. package/dist/esm/kits/knowledge/sections.d.ts +31 -1
  266. package/dist/esm/kits/knowledge/sections.js +33 -4
  267. package/dist/esm/kits/normalization.d.ts +25 -2
  268. package/dist/esm/kits/normalization.js +51 -7
  269. package/dist/esm/kits/policies.d.ts +26 -3
  270. package/dist/esm/kits/policies.js +79 -15
  271. package/dist/esm/kits/presentation/events.d.ts +51 -4
  272. package/dist/esm/kits/presentation/events.js +54 -10
  273. package/dist/esm/kits/presentation/index.d.ts +12 -0
  274. package/dist/esm/kits/presentation/index.js +25 -2
  275. package/dist/esm/kits/presentation/outputs.d.ts +30 -1
  276. package/dist/esm/kits/presentation/outputs.js +176 -38
  277. package/dist/esm/kits/presentation/templates.d.ts +32 -3
  278. package/dist/esm/kits/presentation/templates.js +33 -5
  279. package/dist/esm/kits/presentation/variants.d.ts +29 -0
  280. package/dist/esm/kits/presentation/variants.js +31 -2
  281. package/dist/esm/kits/projection.d.ts +42 -5
  282. package/dist/esm/kits/projection.js +63 -8
  283. package/dist/esm/kits/rank-fusion.d.ts +21 -1
  284. package/dist/esm/kits/rank-fusion.js +28 -5
  285. package/dist/esm/kits/reflection-log-source.d.ts +28 -1
  286. package/dist/esm/kits/reflection-log-source.js +89 -16
  287. package/dist/esm/kits/reflection.d.ts +17 -1
  288. package/dist/esm/kits/reflection.js +235 -61
  289. package/dist/esm/kits/retrieval.d.ts +18 -2
  290. package/dist/esm/kits/retrieval.js +98 -18
  291. package/dist/esm/kits/search.d.ts +56 -3
  292. package/dist/esm/kits/search.js +180 -27
  293. package/dist/esm/kits/text-skills.d.ts +16 -2
  294. package/dist/esm/kits/text-skills.js +104 -19
  295. package/dist/esm/kits/tools.d.ts +122 -2
  296. package/dist/esm/kits/tools.js +416 -74
  297. package/dist/esm/kits/vector-search.d.ts +47 -1
  298. package/dist/esm/kits/vector-search.js +51 -17
  299. package/dist/esm/mock/node.d.ts +7 -0
  300. package/dist/esm/mock/node.js +7 -1
  301. package/dist/esm/mock/web.d.ts +7 -0
  302. package/dist/esm/mock/web.js +7 -1
  303. package/dist/esm/mock.d.ts +7 -0
  304. package/dist/esm/mock.js +7 -1
  305. package/dist/esm/model/binding.d.ts +32 -3
  306. package/dist/esm/model/binding.js +68 -17
  307. package/dist/esm/model/call-budget.d.ts +30 -2
  308. package/dist/esm/model/call-budget.js +45 -4
  309. package/dist/esm/model/decision-retry.d.ts +10 -1
  310. package/dist/esm/model/decision-retry.js +19 -1
  311. package/dist/esm/model/defaults.d.ts +13 -2
  312. package/dist/esm/model/defaults.js +27 -4
  313. package/dist/esm/model/index.d.ts +7 -0
  314. package/dist/esm/model/index.js +7 -0
  315. package/dist/esm/model/interactions/arguments.d.ts +27 -0
  316. package/dist/esm/model/interactions/arguments.js +36 -1
  317. package/dist/esm/model/interactions/json-object.d.ts +7 -1
  318. package/dist/esm/model/interactions/json-object.js +48 -12
  319. package/dist/esm/model/interactions/native-functions.d.ts +6 -0
  320. package/dist/esm/model/interactions/native-functions.js +52 -10
  321. package/dist/esm/model/message-diagnostics.d.ts +17 -1
  322. package/dist/esm/model/message-diagnostics.js +17 -4
  323. package/dist/esm/model/options.d.ts +18 -1
  324. package/dist/esm/model/options.js +9 -1
  325. package/dist/esm/model/preparation.d.ts +30 -2
  326. package/dist/esm/model/preparation.js +86 -12
  327. package/dist/esm/model/runner.d.ts +129 -5
  328. package/dist/esm/model/runner.js +414 -80
  329. package/dist/esm/model/selection-transport.d.ts +14 -1
  330. package/dist/esm/model/selection-transport.js +48 -8
  331. package/dist/esm/model/settings.d.ts +11 -0
  332. package/dist/esm/model/settings.js +67 -13
  333. package/dist/esm/model/token-budget.d.ts +59 -1
  334. package/dist/esm/model/token-budget.js +69 -11
  335. package/dist/esm/model/transports.d.ts +20 -2
  336. package/dist/esm/model/transports.js +59 -6
  337. package/dist/esm/structs/capabilities/invocation.d.ts +36 -0
  338. package/dist/esm/structs/capabilities/model.d.ts +27 -0
  339. package/dist/esm/structs/capabilities/tools.d.ts +38 -0
  340. package/dist/esm/structs/common.d.ts +62 -2
  341. package/dist/esm/structs/common.js +11 -0
  342. package/dist/esm/structs/context/fragments.d.ts +28 -0
  343. package/dist/esm/structs/context/journal.d.ts +28 -3
  344. package/dist/esm/structs/context/processing.d.ts +11 -0
  345. package/dist/esm/structs/debug.d.ts +58 -1
  346. package/dist/esm/structs/debug.js +34 -5
  347. package/dist/esm/structs/diagnostics.d.ts +119 -1
  348. package/dist/esm/structs/errors.d.ts +42 -1
  349. package/dist/esm/structs/errors.js +26 -1
  350. package/dist/esm/structs/execution/engine.d.ts +24 -1
  351. package/dist/esm/structs/execution/events.d.ts +12 -0
  352. package/dist/esm/structs/execution/workflow.d.ts +71 -0
  353. package/dist/esm/structs/index.d.ts +11 -1
  354. package/dist/esm/structs/index.js +11 -1
  355. package/dist/esm/structs/invocation.d.ts +30 -0
  356. package/dist/esm/structs/kits/aggregation.d.ts +12 -0
  357. package/dist/esm/structs/kits/answering/checks.d.ts +11 -0
  358. package/dist/esm/structs/kits/answering/flow.d.ts +35 -1
  359. package/dist/esm/structs/kits/answering/state.d.ts +21 -0
  360. package/dist/esm/structs/kits/answering/tasks.d.ts +21 -0
  361. package/dist/esm/structs/kits/artifacts.d.ts +14 -0
  362. package/dist/esm/structs/kits/candidates.d.ts +19 -0
  363. package/dist/esm/structs/kits/delivery.d.ts +22 -0
  364. package/dist/esm/structs/kits/durable.d.ts +56 -3
  365. package/dist/esm/structs/kits/durable.js +7 -0
  366. package/dist/esm/structs/kits/evidence.d.ts +23 -0
  367. package/dist/esm/structs/kits/family.d.ts +49 -1
  368. package/dist/esm/structs/kits/family.js +1 -0
  369. package/dist/esm/structs/kits/intents/catalog.d.ts +26 -0
  370. package/dist/esm/structs/kits/intents/registry.d.ts +34 -0
  371. package/dist/esm/structs/kits/intents/scopes.d.ts +36 -1
  372. package/dist/esm/structs/kits/interaction.d.ts +64 -0
  373. package/dist/esm/structs/kits/interaction.js +8 -1
  374. package/dist/esm/structs/kits/knowledge-publication.d.ts +43 -1
  375. package/dist/esm/structs/kits/knowledge-publication.js +1 -0
  376. package/dist/esm/structs/kits/knowledge.d.ts +39 -2
  377. package/dist/esm/structs/kits/normalization.d.ts +15 -0
  378. package/dist/esm/structs/kits/policies.d.ts +25 -1
  379. package/dist/esm/structs/kits/presentation/events.d.ts +28 -4
  380. package/dist/esm/structs/kits/presentation/outputs.d.ts +38 -1
  381. package/dist/esm/structs/kits/presentation/templates.d.ts +15 -0
  382. package/dist/esm/structs/kits/projection.d.ts +21 -0
  383. package/dist/esm/structs/kits/reflection.d.ts +61 -2
  384. package/dist/esm/structs/kits/reflection.js +18 -3
  385. package/dist/esm/structs/kits/retrieval.d.ts +38 -0
  386. package/dist/esm/structs/kits/search.d.ts +22 -0
  387. package/dist/esm/structs/kits/text-skills.d.ts +36 -0
  388. package/dist/esm/structs/kits/tools.d.ts +87 -0
  389. package/dist/esm/structs/model/chat-provider.d.ts +24 -1
  390. package/dist/esm/structs/model/chat-provider.js +6 -0
  391. package/dist/esm/structs/model/interactions.d.ts +38 -0
  392. package/dist/esm/structs/model/messages.d.ts +30 -0
  393. package/dist/esm/structs/model/runtime.d.ts +104 -6
  394. package/dist/esm/structs/support/capabilities.d.ts +19 -2
  395. package/dist/esm/structs/support/context-processing.d.ts +88 -9
  396. package/dist/esm/structs/support/context.d.ts +29 -1
  397. package/dist/esm/structs/support/model/completion.d.ts +50 -0
  398. package/dist/esm/structs/support/model/completion.js +1 -0
  399. package/dist/esm/structs/support/model/interactions.d.ts +13 -1
  400. package/dist/esm/structs/support/model/messages.d.ts +52 -0
  401. package/dist/esm/structs/support/model/messages.js +1 -0
  402. package/dist/esm/structs/support/model/provider-observer.d.ts +22 -1
  403. package/dist/esm/structs/support/model/provider.d.ts +71 -6
  404. package/dist/esm/structs/support/registration.d.ts +13 -0
  405. package/dist/esm/structs/support/schema.d.ts +14 -0
  406. package/dist/esm/structs/support/tools.d.ts +28 -0
  407. package/dist/esm/structs/support/transport/json.d.ts +16 -0
  408. package/dist/esm/structs/support/transport/sse.d.ts +15 -0
  409. package/dist/esm/structs/utils/rules.d.ts +19 -0
  410. package/dist/esm/support/capabilities.d.ts +25 -2
  411. package/dist/esm/support/capabilities.js +43 -6
  412. package/dist/esm/support/context/assembly.d.ts +35 -4
  413. package/dist/esm/support/context/assembly.js +88 -16
  414. package/dist/esm/support/context/compression.d.ts +17 -1
  415. package/dist/esm/support/context/compression.js +48 -6
  416. package/dist/esm/support/context/fragments.d.ts +6 -0
  417. package/dist/esm/support/context/fragments.js +6 -0
  418. package/dist/esm/support/context/history.d.ts +43 -0
  419. package/dist/esm/support/context/history.js +36 -1
  420. package/dist/esm/support/context/index.d.ts +13 -2
  421. package/dist/esm/support/context/index.js +12 -1
  422. package/dist/esm/support/context/nodes.d.ts +49 -3
  423. package/dist/esm/support/context/nodes.js +165 -36
  424. package/dist/esm/support/context/processing.d.ts +145 -1
  425. package/dist/esm/support/context/processing.js +320 -62
  426. package/dist/esm/support/context/selection-policy.d.ts +42 -2
  427. package/dist/esm/support/context/selection-policy.js +98 -21
  428. package/dist/esm/support/context/selection.d.ts +14 -1
  429. package/dist/esm/support/context/selection.js +61 -10
  430. package/dist/esm/support/context/snapshot.d.ts +23 -1
  431. package/dist/esm/support/context/snapshot.js +29 -7
  432. package/dist/esm/support/context/strategies.d.ts +35 -2
  433. package/dist/esm/support/context/strategies.js +120 -28
  434. package/dist/esm/support/index.d.ts +9 -1
  435. package/dist/esm/support/index.js +9 -1
  436. package/dist/esm/support/model/capabilities.d.ts +10 -0
  437. package/dist/esm/support/model/capabilities.js +20 -1
  438. package/dist/esm/support/model/chat-completions.d.ts +44 -15
  439. package/dist/esm/support/model/chat-completions.js +92 -20
  440. package/dist/esm/support/model/children.d.ts +32 -2
  441. package/dist/esm/support/model/children.js +34 -6
  442. package/dist/esm/support/model/compatible-provider.d.ts +29 -3
  443. package/dist/esm/support/model/compatible-provider.js +190 -60
  444. package/dist/esm/support/model/completion/calls.d.ts +40 -0
  445. package/dist/esm/support/model/completion/calls.js +58 -0
  446. package/dist/esm/support/model/completion/default.d.ts +10 -0
  447. package/dist/esm/support/model/completion/default.js +29 -0
  448. package/dist/esm/support/model/completion/index.d.ts +10 -0
  449. package/dist/esm/support/model/completion/index.js +22 -0
  450. package/dist/esm/support/model/completion/session.d.ts +11 -0
  451. package/dist/esm/support/model/completion/session.js +99 -0
  452. package/dist/esm/support/model/index.d.ts +14 -0
  453. package/dist/esm/support/model/index.js +12 -0
  454. package/dist/esm/support/model/interactions/index.d.ts +1 -1
  455. package/dist/esm/support/model/interactions/index.js +12 -1
  456. package/dist/esm/support/model/interactions/json-object.d.ts +6 -0
  457. package/dist/esm/support/model/interactions/json-object.js +6 -0
  458. package/dist/esm/support/model/interactions/native-functions.d.ts +6 -0
  459. package/dist/esm/support/model/interactions/native-functions.js +6 -0
  460. package/dist/esm/support/model/observer.d.ts +25 -2
  461. package/dist/esm/support/model/observer.js +32 -6
  462. package/dist/esm/support/model/preview-rules.d.ts +20 -2
  463. package/dist/esm/support/model/preview-rules.js +66 -16
  464. package/dist/esm/support/model/reply-preview.d.ts +15 -1
  465. package/dist/esm/support/model/reply-preview.js +77 -17
  466. package/dist/esm/support/model/stage-transport.d.ts +9 -1
  467. package/dist/esm/support/model/stage-transport.js +33 -7
  468. package/dist/esm/support/model/strategies.d.ts +24 -2
  469. package/dist/esm/support/model/strategies.js +75 -14
  470. package/dist/esm/support/model/transports.d.ts +17 -1
  471. package/dist/esm/support/model/transports.js +53 -11
  472. package/dist/esm/support/registration.d.ts +20 -1
  473. package/dist/esm/support/registration.js +49 -7
  474. package/dist/esm/support/schema.d.ts +31 -1
  475. package/dist/esm/support/schema.js +46 -4
  476. package/dist/esm/support/stream-events.d.ts +22 -1
  477. package/dist/esm/support/stream-events.js +60 -8
  478. package/dist/esm/support/tool-runtime.d.ts +6 -0
  479. package/dist/esm/support/tool-runtime.js +6 -0
  480. package/dist/esm/support/tools.d.ts +22 -0
  481. package/dist/esm/support/tools.js +79 -10
  482. package/dist/esm/support/transport/index.d.ts +7 -0
  483. package/dist/esm/support/transport/index.js +7 -0
  484. package/dist/esm/support/transport/json.d.ts +29 -2
  485. package/dist/esm/support/transport/json.js +28 -4
  486. package/dist/esm/support/transport/sse.d.ts +31 -1
  487. package/dist/esm/support/transport/sse.js +25 -2
  488. package/dist/esm/types.d.ts +9 -1
  489. package/dist/esm/utils/break-observer.d.ts +27 -2
  490. package/dist/esm/utils/break-observer.js +20 -2
  491. package/dist/esm/utils/cancellation.d.ts +56 -5
  492. package/dist/esm/utils/cancellation.js +77 -9
  493. package/dist/esm/utils/catalog.d.ts +20 -1
  494. package/dist/esm/utils/catalog.js +19 -4
  495. package/dist/esm/utils/debug.d.ts +20 -1
  496. package/dist/esm/utils/debug.js +14 -2
  497. package/dist/esm/utils/index.d.ts +8 -0
  498. package/dist/esm/utils/index.js +8 -0
  499. package/dist/esm/utils/interaction-definition.d.ts +18 -1
  500. package/dist/esm/utils/interaction-definition.js +26 -6
  501. package/dist/esm/utils/invocation.d.ts +36 -1
  502. package/dist/esm/utils/invocation.js +42 -4
  503. package/dist/esm/utils/model-protocol.d.ts +8 -0
  504. package/dist/esm/utils/model-protocol.js +20 -1
  505. package/dist/esm/utils/object.d.ts +16 -0
  506. package/dist/esm/utils/object.js +16 -0
  507. package/dist/esm/utils/observer.d.ts +19 -1
  508. package/dist/esm/utils/observer.js +22 -2
  509. package/dist/esm/utils/protocol-registry.d.ts +38 -1
  510. package/dist/esm/utils/protocol-registry.js +47 -4
  511. package/dist/esm/utils/query-key.d.ts +11 -1
  512. package/dist/esm/utils/query-key.js +21 -2
  513. package/dist/esm/utils/registration.d.ts +34 -2
  514. package/dist/esm/utils/registration.js +18 -2
  515. package/dist/esm/utils/rules.d.ts +81 -4
  516. package/dist/esm/utils/rules.js +39 -11
  517. package/dist/esm/utils/schema-adapter.d.ts +12 -1
  518. package/dist/esm/utils/schema-adapter.js +25 -2
  519. package/dist/esm/utils/synchronous.d.ts +60 -4
  520. package/dist/esm/utils/synchronous.js +64 -7
  521. package/dist/esm/utils/text.d.ts +15 -1
  522. package/dist/esm/utils/text.js +15 -1
  523. package/package.json +3 -2
@@ -2,10 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateToolReferences = validateToolReferences;
4
4
  exports.defineCapabilityCatalog = defineCapabilityCatalog;
5
+ /**
6
+ * Capability catalog support: validate application modules and the tools they contribute.
7
+ *
8
+ * Applications declare modules (id, description, tools) plus optional tool-reference projections;
9
+ * this module checks them once at construction so the resulting catalog can be handed to Core.
10
+ * It is composition only: it creates no Core execution entity and owns no domain lifecycle.
11
+ *
12
+ * Main exports: `defineCapabilityCatalog` and `validateToolReferences`.
13
+ */
5
14
  const synchronous_js_1 = require("../utils/synchronous.js");
6
15
  const catalog_js_1 = require("../utils/catalog.js");
7
16
  const rules_js_1 = require("../utils/rules.js");
8
- /** Validate against the complete registered set, including tools unavailable in this request. */
17
+ /**
18
+ * Validate tool references against the complete registered set.
19
+ *
20
+ * Checking against every registered tool (not only the ones available in the current request)
21
+ * keeps the declaration honest: a module may reference a tool that this request filters out, but
22
+ * never one that does not exist.
23
+ *
24
+ * @param names All registered tool IDs, including tools unavailable to the current request.
25
+ * @param references Tool-reference declarations to check.
26
+ * @throws {Error} When an owner ID is blank, `requiredToolIds` is not an array, or a referenced
27
+ * tool ID is not registered.
28
+ */
9
29
  function validateToolReferences(names, references) {
10
30
  const available = new Set(names);
11
31
  for (const reference of references) {
@@ -17,9 +37,21 @@ function validateToolReferences(names, references) {
17
37
  }
18
38
  }
19
39
  }
20
- /** App-side composition only: no new Core execution entity or domain lifecycle. */
40
+ /**
41
+ * Build a frozen capability catalog from application module declarations.
42
+ *
43
+ * Each module must carry a non-empty description, and every contributed tool ID must be unique
44
+ * across modules. Reference projections run during construction and must be synchronous.
45
+ *
46
+ * @param definitions Capability modules in declaration order; order is preserved in the catalog.
47
+ * @param options Optional projections that expose tool references for validation.
48
+ * @returns A frozen catalog with `definitions`, `require`, `tools` and `findToolOwner`.
49
+ * @throws {TypeError} When the catalog lookup receives an unknown module ID.
50
+ * @throws {Error} When a module description, tool ID, reference projection or referenced tool is
51
+ * invalid.
52
+ */
21
53
  function defineCapabilityCatalog(definitions, options = {}) {
22
- const catalog = (0, catalog_js_1.readonlyCatalog)(definitions, id => new TypeError(`Unknown capability module: ${id}`));
54
+ const catalog = (0, catalog_js_1.readonlyCatalog)(definitions, (id) => new TypeError(`Unknown capability module: ${id}`));
23
55
  const modules = catalog.definitions;
24
56
  const owners = new Map();
25
57
  const tools = [];
@@ -32,9 +64,14 @@ function defineCapabilityCatalog(definitions, options = {}) {
32
64
  tools.push(tool);
33
65
  }
34
66
  }
35
- validateToolReferences(owners.keys(), modules.flatMap(module => options.toolReferences ? (0, synchronous_js_1.synchronous)(options.toolReferences(module), 'Capability reference projections must be synchronous') : []));
67
+ validateToolReferences(owners.keys(), modules.flatMap((module) => options.toolReferences
68
+ ? (0, synchronous_js_1.synchronous)(options.toolReferences(module), 'Capability reference projections must be synchronous')
69
+ : []));
36
70
  return Object.freeze({
37
- ...catalog, tools: Object.freeze(tools),
38
- findToolOwner(toolId) { return owners.get(toolId); },
71
+ ...catalog,
72
+ tools: Object.freeze(tools),
73
+ findToolOwner(toolId) {
74
+ return owners.get(toolId);
75
+ },
39
76
  });
40
77
  }
@@ -3,15 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defineContextAssembly = defineContextAssembly;
4
4
  exports.defineContextFragments = defineContextFragments;
5
5
  exports.transformContextText = transformContextText;
6
+ /**
7
+ * Context builders: compile application fragment declarations into a Core `ContextBuilder`.
8
+ *
9
+ * Ordering and metadata are compiled once; fragment values and formatting are produced per
10
+ * request, so a builder may be shared across invocations. The builder only assembles a plan or
11
+ * built context; reduction, selection and model execution stay with Core or explicit nodes.
12
+ *
13
+ * Main exports: `defineContextAssembly`, `defineContextFragments` and `transformContextText`.
14
+ */
6
15
  const synchronous_js_1 = require("../../utils/synchronous.js");
7
16
  const rules_js_1 = require("../../utils/rules.js");
8
17
  const plan_js_1 = require("../../context/plan.js");
9
18
  const fragments_js_1 = require("../../context/fragments.js");
10
- /** Compile context ordering once; expansion and formatting use each request's current input. */
19
+ /**
20
+ * Compile ordered context projections into a builder.
21
+ *
22
+ * A projection is either a single fragment (with its own formatter) or a placement whose
23
+ * contribution handler expands to any number of fragments at request time.
24
+ *
25
+ * @param definitions Projections in the order they should appear in the plan.
26
+ * @param options Fragment factory, contribution handlers and an optional size budget.
27
+ * @returns A frozen builder exposing `fragments`, `plan` and `build`.
28
+ * @throws {Error} When a projection ID repeats, a formatter is missing, a placement has no
29
+ * contribution handler, or a callback is asynchronous.
30
+ */
11
31
  function defineContextAssembly(definitions, options) {
12
32
  const fragment = options.fragment.bind(options);
13
33
  const ids = new Set();
14
- const factories = definitions.map(definition => {
34
+ const factories = definitions.map((definition) => {
35
+ // Contribution placements live in the same ID namespace, prefixed so they cannot collide with
36
+ // a real fragment ID.
15
37
  const id = definition.kind === 'fragment' ? definition.id : `contributions:${definition.placement}`;
16
38
  (0, rules_js_1.breakWhile)(ids.has(id), `Duplicate context projection: ${id}`);
17
39
  ids.add(id);
@@ -19,7 +41,9 @@ function defineContextAssembly(definitions, options) {
19
41
  const id = definition.id;
20
42
  (0, rules_js_1.breakWhile)(typeof definition.format !== 'function', `Missing context formatter: ${id}`);
21
43
  const format = definition.format.bind(definition);
22
- return (input) => [(0, synchronous_js_1.synchronous)(fragment(id, (0, synchronous_js_1.synchronous)(format(input), 'Context formatters must be synchronous')), 'Context fragment factories must be synchronous')];
44
+ return (input) => [
45
+ (0, synchronous_js_1.synchronous)(fragment(id, (0, synchronous_js_1.synchronous)(format(input), 'Context formatters must be synchronous')), 'Context fragment factories must be synchronous'),
46
+ ];
23
47
  }
24
48
  const create = options.contributions?.[definition.placement];
25
49
  (0, rules_js_1.breakWhile)(typeof create !== 'function', `Unknown context contribution: ${definition.placement}`);
@@ -28,26 +52,52 @@ function defineContextAssembly(definitions, options) {
28
52
  });
29
53
  return contextBuilder(factories, options);
30
54
  }
31
- /** Full-metadata catalogs use the same builder without a separate metadata reference catalog. */
55
+ /**
56
+ * Compile self-describing fragment declarations into a builder.
57
+ *
58
+ * Each definition carries its own trust, lifetime and size metadata, so no separate metadata
59
+ * catalog is needed. The budget may be a constant or a function of the request input.
60
+ *
61
+ * @param definitions Fragment configurations in plan order.
62
+ * @param options Optional transform, budget selector and related builder settings.
63
+ * @returns A frozen builder exposing `fragments`, `plan` and `build`.
64
+ * @throws {Error} When a fragment ID repeats or a formatter is missing or asynchronous.
65
+ * @throws {TypeError} When `plan`/`build` is called with no configured or overridden budget.
66
+ */
32
67
  function defineContextFragments(definitions, options = {}) {
33
68
  const ids = new Set();
34
- const factories = definitions.map(definition => {
35
- const metadata = { id: definition.id, sourceId: definition.sourceId, trust: definition.trust, lifetime: definition.lifetime, maxChars: definition.maxChars, role: definition.role };
69
+ const factories = definitions.map((definition) => {
70
+ const metadata = {
71
+ id: definition.id,
72
+ sourceId: definition.sourceId,
73
+ trust: definition.trust,
74
+ lifetime: definition.lifetime,
75
+ maxChars: definition.maxChars,
76
+ role: definition.role,
77
+ };
36
78
  (0, rules_js_1.breakWhile)(typeof definition.format !== 'function', `Missing context formatter: ${metadata.id}`);
37
79
  const format = definition.format.bind(definition);
38
80
  (0, rules_js_1.breakWhile)(ids.has(metadata.id), `Duplicate context fragment: ${metadata.id}`);
39
81
  ids.add(metadata.id);
40
- return (input) => [{ ...metadata, value: (0, synchronous_js_1.synchronous)(format(input), 'Context formatters must be synchronous') }];
82
+ return (input) => [
83
+ { ...metadata, value: (0, synchronous_js_1.synchronous)(format(input), 'Context formatters must be synchronous') },
84
+ ];
41
85
  });
42
86
  return contextBuilder(factories, options);
43
87
  }
44
88
  function contextBuilder(factories, options) {
45
89
  const transform = options.transform?.bind(options);
46
90
  const configuredLimit = typeof options.maxInputChars === 'function'
47
- ? options.maxInputChars.bind(options) : options.maxInputChars;
48
- const fragments = (input) => factories.flatMap(create => create(input).map(value => transform ? (0, synchronous_js_1.synchronous)(transform(value, input), 'Context transforms must be synchronous') : value));
91
+ ? options.maxInputChars.bind(options)
92
+ : options.maxInputChars;
93
+ const fragments = (input) => factories.flatMap((create) => create(input).map((value) => transform
94
+ ? (0, synchronous_js_1.synchronous)(transform(value, input), 'Context transforms must be synchronous')
95
+ : value));
49
96
  function limit(input, override) {
50
- const value = override ?? (typeof configuredLimit === 'function' ? (0, synchronous_js_1.synchronous)(configuredLimit(input), 'Context budget selectors must be synchronous') : configuredLimit);
97
+ const value = override ??
98
+ (typeof configuredLimit === 'function'
99
+ ? (0, synchronous_js_1.synchronous)(configuredLimit(input), 'Context budget selectors must be synchronous')
100
+ : configuredLimit);
51
101
  if (value === undefined)
52
102
  throw new TypeError('Configure a context budget or pass maxInputChars');
53
103
  (0, fragments_js_1.validateContextBudget)(0, value);
@@ -55,19 +105,41 @@ function contextBuilder(factories, options) {
55
105
  }
56
106
  return Object.freeze({
57
107
  fragments,
58
- plan({ input, maxInputChars, originalFragments, additionalMessages, mutableFragmentIds }) {
108
+ plan({ input, maxInputChars, originalFragments, additionalMessages, mutableFragmentIds, }) {
59
109
  const budget = limit(input, maxInputChars);
60
- return { fragments: fragments(input), maxInputChars: budget, originalFragments, additionalMessages, mutableFragmentIds };
110
+ return {
111
+ fragments: fragments(input),
112
+ maxInputChars: budget,
113
+ originalFragments,
114
+ additionalMessages,
115
+ mutableFragmentIds,
116
+ };
61
117
  },
62
- build({ input, maxInputChars, originalFragments, additionalMessages, mutableFragmentIds }) {
118
+ build({ input, maxInputChars, originalFragments, additionalMessages, mutableFragmentIds, }) {
63
119
  const budget = limit(input, maxInputChars);
64
- return (0, plan_js_1.assembleContextPlan)({ fragments: fragments(input), maxInputChars: budget, originalFragments, additionalMessages, mutableFragmentIds });
120
+ return (0, plan_js_1.assembleContextPlan)({
121
+ fragments: fragments(input),
122
+ maxInputChars: budget,
123
+ originalFragments,
124
+ additionalMessages,
125
+ mutableFragmentIds,
126
+ });
65
127
  },
66
128
  });
67
129
  }
68
- /** Transform all outbound text, including nested receipt values, before measuring context budgets. */
130
+ /**
131
+ * Apply a text transform to a fragment value, including strings nested inside objects.
132
+ *
133
+ * Structured values are walked through a JSON round trip, which is what the budget measurement
134
+ * serializes later; values that JSON cannot represent are therefore not preserved.
135
+ *
136
+ * @param fragment Fragment whose value should be transformed.
137
+ * @param transform Pure text mapping applied to every string in the value.
138
+ * @returns A new fragment with unchanged metadata and the transformed value.
139
+ */
69
140
  function transformContextText(fragment, transform) {
70
- const value = typeof fragment.value === 'string' ? transform(fragment.value)
141
+ const value = typeof fragment.value === 'string'
142
+ ? transform(fragment.value)
71
143
  : JSON.parse(JSON.stringify(fragment.value, (_key, value) => typeof value === 'string' ? transform(value) : value));
72
144
  return { ...fragment, value };
73
145
  }
@@ -1,18 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createContextCompressor = createContextCompressor;
4
+ /**
5
+ * Context compressor factory: one model-backed compression handler for context reductions.
6
+ *
7
+ * The application owns the prompt and the output contract; the actual model call goes through the
8
+ * Core call port supplied with each compression request, so budgets, cancellation and diagnostics
9
+ * stay under Core control.
10
+ *
11
+ * Main export: `createContextCompressor`.
12
+ */
4
13
  const rules_js_1 = require("../../utils/rules.js");
5
14
  const synchronous_js_1 = require("../../utils/synchronous.js");
6
- /** Prompt and output contract belong to App; model execution stays on the Core call port. */
15
+ /**
16
+ * Build a compressor that asks a model to rewrite one fragment.
17
+ *
18
+ * The request pairs a system instruction with a user message carrying the fragment ID, its current
19
+ * value and the target character count. Only the model's parsed value is returned; the caller
20
+ * decides whether the result fits the reduction contract.
21
+ *
22
+ * @param options Compressor declaration.
23
+ * @param options.id Handler ID referenced by `compress` reduction steps; must be unique per policy.
24
+ * @param options.instruction System prompt describing the compression task and output format.
25
+ * @param options.modelId Optional model override; defaults to the stage's prepared model.
26
+ * @param options.transport Registered transport ID used for the compression call.
27
+ * @param options.maxOutputTokens Output reservation for the compression call.
28
+ * @param options.parse Converts the model value into the fragment value type; must be synchronous.
29
+ * @returns A frozen `ContextCompressor` whose `compress` performs the model call.
30
+ * @throws {Error} When `parse` is not a function, or when the parser returns a thenable.
31
+ */
7
32
  function createContextCompressor(options) {
8
33
  const { id, instruction, modelId, transport, maxOutputTokens } = options;
9
34
  (0, rules_js_1.breakWhile)(typeof options.parse !== 'function', 'Context compressor requires a result parser');
10
35
  const parse = options.parse.bind(options);
11
- return Object.freeze({ id, async compress(call) {
12
- const result = await call.callModel({ stageId: `${call.stageId}:compress:${id}`, modelId, input: [
36
+ return Object.freeze({
37
+ id,
38
+ async compress(call) {
39
+ const result = await call.callModel({
40
+ // Suffix the stage ID so compressor calls are attributable in diagnostics and budgets.
41
+ stageId: `${call.stageId}:compress:${id}`,
42
+ modelId,
43
+ input: [
13
44
  { role: 'system', content: instruction },
14
- { role: 'user', content: JSON.stringify({ sourceId: call.fragment.sourceId, value: call.fragment.value, targetChars: call.targetChars }) },
15
- ], maxOutputTokens, transport });
45
+ {
46
+ role: 'user',
47
+ content: JSON.stringify({
48
+ sourceId: call.fragment.sourceId,
49
+ value: call.fragment.value,
50
+ targetChars: call.targetChars,
51
+ }),
52
+ },
53
+ ],
54
+ maxOutputTokens,
55
+ transport,
56
+ });
16
57
  return (0, synchronous_js_1.synchronous)(parse(result.value), 'Context result parsers must be synchronous');
17
- } });
58
+ },
59
+ });
18
60
  }
@@ -14,4 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * Re-export barrel: Core fragment assembly helpers used by context support code.
19
+ *
20
+ * Kept as a stable Support path so applications do not import Core internals directly. No logic
21
+ * lives here.
22
+ */
17
23
  __exportStar(require("../../context/assembly.js"), exports);
@@ -8,6 +8,14 @@ const errors_js_1 = require("../../structs/errors.js");
8
8
  const rules_js_1 = require("../../utils/rules.js");
9
9
  const invalid = (message) => new errors_js_1.ValidationError([{ code: 'CONTEXT_POLICY', message }]);
10
10
  const positive = (value) => Number.isSafeInteger(value) && value > 0;
11
+ /**
12
+ * Validate a grouping declaration and return it unchanged.
13
+ *
14
+ * @param options Grouping to validate.
15
+ * @param options.grouping Grouping kind plus its kind-specific settings.
16
+ * @returns The same grouping object supplied by the caller.
17
+ * @throws {ValidationError} When the kind is unknown or its settings are invalid.
18
+ */
11
19
  function historyGrouping(options) {
12
20
  const grouping = options.grouping;
13
21
  (0, rules_js_1.breakWhile)(!grouping || !Object.hasOwn(exports.historyGroupingCatalog, grouping.kind), invalid('Unknown history grouping'));
@@ -30,7 +38,9 @@ function userTurns(entries) {
30
38
  const groups = [];
31
39
  for (const entry of entries) {
32
40
  const message = entry;
33
- (0, rules_js_1.breakWhile)(!message || !['user', 'assistant'].includes(message.role) || typeof message.content !== 'string', invalid('User-turn history requires user/assistant text messages; tool protocols need their own grouping contract'));
41
+ (0, rules_js_1.breakWhile)(!message ||
42
+ !['user', 'assistant'].includes(message.role) ||
43
+ typeof message.content !== 'string', invalid('User-turn history requires user/assistant text messages; tool protocols need their own grouping contract'));
34
44
  if (message.role === 'user')
35
45
  groups.push([]);
36
46
  (0, rules_js_1.breakWhile)(!groups.length, invalid('User-turn history cannot start with an orphan assistant message'));
@@ -38,15 +48,40 @@ function userTurns(entries) {
38
48
  }
39
49
  return groups;
40
50
  }
51
+ /**
52
+ * Grouping kinds with their validators and splitters.
53
+ *
54
+ * Validation and splitting come from one declaration so a policy cannot pass validation with
55
+ * rules that the splitter does not apply.
56
+ */
41
57
  exports.historyGroupingCatalog = {
42
58
  fixed: { validate: validateFixed, split: fixedGroups },
43
59
  'user-turn': { validate: validateUserTurns, split: userTurns },
44
60
  };
61
+ /**
62
+ * Split the entries of one structured field into removable groups.
63
+ *
64
+ * @param value Fragment value expected to be an object holding an array at `field`.
65
+ * @param options Field name and grouping rule to apply.
66
+ * @returns Grouped entries in source order; an empty array yields no groups.
67
+ * @throws {ValidationError} When the value is a string, the field is not an array, the grouping
68
+ * is invalid, or the entries do not satisfy the grouping contract.
69
+ */
45
70
  function historyGroups(value, options) {
46
71
  (0, rules_js_1.breakWhile)(typeof value === 'string' || !Array.isArray(value[options.field]), invalid('History requires a structured array field'));
47
72
  const grouping = historyGrouping(options);
48
73
  return exports.historyGroupingCatalog[grouping.kind].split(value[options.field], grouping);
49
74
  }
75
+ /**
76
+ * Validate a recent-history retention declaration.
77
+ *
78
+ * `keepGroups` may be zero (drop everything eligible); negative or fractional counts are rejected
79
+ * because groups are indivisible.
80
+ *
81
+ * @param options Field, retained group count and grouping rule.
82
+ * @throws {ValidationError} When the field is empty, `keepGroups` is invalid, or the grouping is
83
+ * not recognised.
84
+ */
50
85
  function validateRecentHistory(options) {
51
86
  (0, rules_js_1.breakWhile)(!options.field || !Number.isSafeInteger(options.keepGroups) || options.keepGroups < 0, invalid('Invalid recent-history retention'));
52
87
  historyGrouping(options);
@@ -15,6 +15,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.contextHistoryStrategies = exports.createContextStrategy = exports.contextReductionCatalog = exports.contextPolicyCatalog = exports.validateContextPolicy = exports.processContext = void 0;
18
+ /**
19
+ * Context support: app-side assembly, reduction and selection helpers for Core context plans.
20
+ *
21
+ * Core keeps the trust, budget, assembly and structural-audit guarantees. This module supplies
22
+ * recommended builders (assembly, compressor, selector, strategy) and node factories that plug
23
+ * into an application workflow; it does not replace Core's processing contract.
24
+ *
25
+ * Main exports: `defineContextAssembly`, `defineContextFragments`, `createContextCompressor`,
26
+ * `createContextSelector`, `createContextStrategy`, the context node factories and the
27
+ * registered policy/reduction/selection catalogs.
28
+ */
18
29
  __exportStar(require("./assembly.js"), exports);
19
30
  __exportStar(require("./fragments.js"), exports);
20
31
  __exportStar(require("./compression.js"), exports);