@theoremjs/agents 0.0.0-stage → 0.3.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 (514) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1264 -2
  3. package/esm/_dnt.polyfills.d.ts +66 -0
  4. package/esm/_dnt.polyfills.js +51 -0
  5. package/esm/mod.d.ts +65 -0
  6. package/esm/mod.js +42 -0
  7. package/esm/package.json +3 -0
  8. package/esm/src/cli/bin.d.ts +7 -0
  9. package/esm/src/cli/bin.js +9 -0
  10. package/esm/src/cli/commands/bench.d.ts +6 -0
  11. package/esm/src/cli/commands/bench.js +458 -0
  12. package/esm/src/cli/commands/egress-compile.d.ts +17 -0
  13. package/esm/src/cli/commands/egress-compile.js +25 -0
  14. package/esm/src/cli/commands/eval.d.ts +37 -0
  15. package/esm/src/cli/commands/eval.js +190 -0
  16. package/esm/src/cli/commands/fuzz-canary.d.ts +15 -0
  17. package/esm/src/cli/commands/fuzz-canary.js +202 -0
  18. package/esm/src/cli/commands/fuzz-guardrails.d.ts +2 -0
  19. package/esm/src/cli/commands/fuzz-guardrails.js +5 -0
  20. package/esm/src/cli/commands/profile.d.ts +2 -0
  21. package/esm/src/cli/commands/profile.js +80 -0
  22. package/esm/src/cli/commands/run.d.ts +13 -0
  23. package/esm/src/cli/commands/run.js +45 -0
  24. package/esm/src/cli/commands/test.d.ts +25 -0
  25. package/esm/src/cli/commands/test.js +143 -0
  26. package/esm/src/cli/event-log.d.ts +15 -0
  27. package/esm/src/cli/event-log.js +136 -0
  28. package/esm/src/cli/index.d.ts +10 -0
  29. package/esm/src/cli/index.js +267 -0
  30. package/esm/src/cli/matrix/fixtures.d.ts +10 -0
  31. package/esm/src/cli/matrix/fixtures.js +72 -0
  32. package/esm/src/cli/matrix/synthesizer.d.ts +18 -0
  33. package/esm/src/cli/matrix/synthesizer.js +103 -0
  34. package/esm/src/evals/attachments.d.ts +4 -0
  35. package/esm/src/evals/attachments.js +53 -0
  36. package/esm/src/evals/breakdown.d.ts +28 -0
  37. package/esm/src/evals/breakdown.js +68 -0
  38. package/esm/src/evals/graders/answer.d.ts +13 -0
  39. package/esm/src/evals/graders/answer.js +133 -0
  40. package/esm/src/evals/graders/code.d.ts +64 -0
  41. package/esm/src/evals/graders/code.js +205 -0
  42. package/esm/src/evals/graders/judge.d.ts +20 -0
  43. package/esm/src/evals/graders/judge.js +365 -0
  44. package/esm/src/evals/graders/latency.d.ts +5 -0
  45. package/esm/src/evals/graders/latency.js +81 -0
  46. package/esm/src/evals/graders/live.d.ts +11 -0
  47. package/esm/src/evals/graders/live.js +40 -0
  48. package/esm/src/evals/graders/media.d.ts +18 -0
  49. package/esm/src/evals/graders/media.js +92 -0
  50. package/esm/src/evals/graders/shared.d.ts +11 -0
  51. package/esm/src/evals/graders/shared.js +62 -0
  52. package/esm/src/evals/graders/transcript.d.ts +17 -0
  53. package/esm/src/evals/graders/transcript.js +200 -0
  54. package/esm/src/evals/mod.d.ts +42 -0
  55. package/esm/src/evals/mod.js +30 -0
  56. package/esm/src/evals/record.d.ts +35 -0
  57. package/esm/src/evals/record.js +105 -0
  58. package/esm/src/evals/rubrics/catalog.d.ts +148 -0
  59. package/esm/src/evals/rubrics/catalog.js +846 -0
  60. package/esm/src/evals/rubrics/mod.d.ts +24 -0
  61. package/esm/src/evals/rubrics/mod.js +55 -0
  62. package/esm/src/evals/rubrics/mustache.d.ts +23 -0
  63. package/esm/src/evals/rubrics/mustache.js +154 -0
  64. package/esm/src/evals/rubrics/types.d.ts +54 -0
  65. package/esm/src/evals/rubrics/types.js +74 -0
  66. package/esm/src/evals/run.d.ts +118 -0
  67. package/esm/src/evals/run.js +452 -0
  68. package/esm/src/evals/suite.d.ts +19 -0
  69. package/esm/src/evals/suite.js +92 -0
  70. package/esm/src/evals/summary.d.ts +32 -0
  71. package/esm/src/evals/summary.js +30 -0
  72. package/esm/src/evals/trial.d.ts +27 -0
  73. package/esm/src/evals/trial.js +158 -0
  74. package/esm/src/evals/types.d.ts +260 -0
  75. package/esm/src/evals/types.js +126 -0
  76. package/esm/src/evals/verdict.d.ts +18 -0
  77. package/esm/src/evals/verdict.js +45 -0
  78. package/esm/src/guardrails/canary-gate.d.ts +21 -0
  79. package/esm/src/guardrails/canary-gate.js +40 -0
  80. package/esm/src/guardrails/canary.d.ts +112 -0
  81. package/esm/src/guardrails/canary.js +901 -0
  82. package/esm/src/guardrails/compile-egress.d.ts +11 -0
  83. package/esm/src/guardrails/compile-egress.js +11 -0
  84. package/esm/src/guardrails/corpus/canary-egress-attacks.d.ts +22 -0
  85. package/esm/src/guardrails/corpus/canary-egress-attacks.js +303 -0
  86. package/esm/src/guardrails/corpus/fuzz-inbound.d.ts +5 -0
  87. package/esm/src/guardrails/corpus/fuzz-inbound.js +202 -0
  88. package/esm/src/guardrails/corpus/inbound-payloads.d.ts +3 -0
  89. package/esm/src/guardrails/corpus/inbound-payloads.js +118 -0
  90. package/esm/src/guardrails/corpus/live-attacks.d.ts +13 -0
  91. package/esm/src/guardrails/corpus/live-attacks.js +224 -0
  92. package/esm/src/guardrails/corpus/mod.d.ts +7 -0
  93. package/esm/src/guardrails/corpus/mod.js +4 -0
  94. package/esm/src/guardrails/corpus/secrets.d.ts +12 -0
  95. package/esm/src/guardrails/corpus/secrets.js +16 -0
  96. package/esm/src/guardrails/corpus/strings.d.ts +23 -0
  97. package/esm/src/guardrails/corpus/strings.js +29 -0
  98. package/esm/src/guardrails/corpus/types.d.ts +32 -0
  99. package/esm/src/guardrails/corpus/types.js +1 -0
  100. package/esm/src/guardrails/egress-automata.d.ts +14 -0
  101. package/esm/src/guardrails/egress-automata.js +6059 -0
  102. package/esm/src/guardrails/egress-compiler.d.ts +33 -0
  103. package/esm/src/guardrails/egress-compiler.js +237 -0
  104. package/esm/src/guardrails/egress-patterns.d.ts +24 -0
  105. package/esm/src/guardrails/egress-patterns.js +32 -0
  106. package/esm/src/guardrails/egress-policy.d.ts +27 -0
  107. package/esm/src/guardrails/egress-policy.js +76 -0
  108. package/esm/src/guardrails/egress-rules.d.ts +54 -0
  109. package/esm/src/guardrails/egress-rules.js +49 -0
  110. package/esm/src/guardrails/egress-stream.d.ts +105 -0
  111. package/esm/src/guardrails/egress-stream.js +645 -0
  112. package/esm/src/guardrails/egress-urls.d.ts +83 -0
  113. package/esm/src/guardrails/egress-urls.js +917 -0
  114. package/esm/src/guardrails/egress.d.ts +106 -0
  115. package/esm/src/guardrails/egress.js +374 -0
  116. package/esm/src/guardrails/error.d.ts +26 -0
  117. package/esm/src/guardrails/error.js +91 -0
  118. package/esm/src/guardrails/event-schemas.d.ts +57 -0
  119. package/esm/src/guardrails/event-schemas.js +41 -0
  120. package/esm/src/guardrails/events.d.ts +9 -0
  121. package/esm/src/guardrails/events.js +42 -0
  122. package/esm/src/guardrails/hits.d.ts +8 -0
  123. package/esm/src/guardrails/hits.js +19 -0
  124. package/esm/src/guardrails/injection-patterns.d.ts +15 -0
  125. package/esm/src/guardrails/injection-patterns.js +94 -0
  126. package/esm/src/guardrails/injection.d.ts +14 -0
  127. package/esm/src/guardrails/injection.js +237 -0
  128. package/esm/src/guardrails/lexicon.d.ts +30 -0
  129. package/esm/src/guardrails/lexicon.js +478 -0
  130. package/esm/src/guardrails/live-outbound-gate.d.ts +54 -0
  131. package/esm/src/guardrails/live-outbound-gate.js +305 -0
  132. package/esm/src/guardrails/mod.d.ts +46 -0
  133. package/esm/src/guardrails/mod.js +29 -0
  134. package/esm/src/guardrails/network.d.ts +42 -0
  135. package/esm/src/guardrails/network.js +328 -0
  136. package/esm/src/guardrails/normalize.d.ts +6 -0
  137. package/esm/src/guardrails/normalize.js +132 -0
  138. package/esm/src/guardrails/policy.d.ts +19 -0
  139. package/esm/src/guardrails/policy.js +50 -0
  140. package/esm/src/guardrails/progressive-yield.d.ts +69 -0
  141. package/esm/src/guardrails/progressive-yield.js +237 -0
  142. package/esm/src/guardrails/prompt-echo.d.ts +38 -0
  143. package/esm/src/guardrails/prompt-echo.js +225 -0
  144. package/esm/src/guardrails/quota.d.ts +20 -0
  145. package/esm/src/guardrails/quota.js +80 -0
  146. package/esm/src/guardrails/rules.d.ts +56 -0
  147. package/esm/src/guardrails/rules.js +54 -0
  148. package/esm/src/guardrails/sanitize.d.ts +23 -0
  149. package/esm/src/guardrails/sanitize.js +184 -0
  150. package/esm/src/guardrails/sensitive.d.ts +29 -0
  151. package/esm/src/guardrails/sensitive.js +113 -0
  152. package/esm/src/guardrails/serialize.d.ts +14 -0
  153. package/esm/src/guardrails/serialize.js +37 -0
  154. package/esm/src/guardrails/testing.d.ts +9 -0
  155. package/esm/src/guardrails/testing.js +8 -0
  156. package/esm/src/guardrails/theorem-error.d.ts +18 -0
  157. package/esm/src/guardrails/theorem-error.js +53 -0
  158. package/esm/src/guardrails/thought-guard.d.ts +55 -0
  159. package/esm/src/guardrails/thought-guard.js +464 -0
  160. package/esm/src/guardrails/tool-directives.d.ts +19 -0
  161. package/esm/src/guardrails/tool-directives.js +109 -0
  162. package/esm/src/guardrails/tool-result.d.ts +61 -0
  163. package/esm/src/guardrails/tool-result.js +248 -0
  164. package/esm/src/guardrails/types.d.ts +242 -0
  165. package/esm/src/guardrails/types.js +54 -0
  166. package/esm/src/host/client-turn.d.ts +9 -0
  167. package/esm/src/host/client-turn.js +38 -0
  168. package/esm/src/host/mint-trace.d.ts +28 -0
  169. package/esm/src/host/mint-trace.js +59 -0
  170. package/esm/src/host/mod.d.ts +13 -0
  171. package/esm/src/host/mod.js +11 -0
  172. package/esm/src/host/readStreamingJsonStringField.d.ts +2 -0
  173. package/esm/src/host/readStreamingJsonStringField.js +68 -0
  174. package/esm/src/host/reply.d.ts +7 -0
  175. package/esm/src/host/reply.js +35 -0
  176. package/esm/src/interface/blocks.d.ts +8 -0
  177. package/esm/src/interface/blocks.js +213 -0
  178. package/esm/src/interface/composer-actions.d.ts +20 -0
  179. package/esm/src/interface/composer-actions.js +31 -0
  180. package/esm/src/interface/draft.d.ts +14 -0
  181. package/esm/src/interface/draft.js +28 -0
  182. package/esm/src/interface/from-profile.d.ts +12 -0
  183. package/esm/src/interface/from-profile.js +144 -0
  184. package/esm/src/interface/history.d.ts +40 -0
  185. package/esm/src/interface/history.js +269 -0
  186. package/esm/src/interface/inputs.d.ts +10 -0
  187. package/esm/src/interface/inputs.js +64 -0
  188. package/esm/src/interface/mod.d.ts +31 -0
  189. package/esm/src/interface/mod.js +21 -0
  190. package/esm/src/interface/models.d.ts +19 -0
  191. package/esm/src/interface/models.js +45 -0
  192. package/esm/src/interface/pending.d.ts +48 -0
  193. package/esm/src/interface/pending.js +146 -0
  194. package/esm/src/interface/profile-interface.d.ts +4 -0
  195. package/esm/src/interface/profile-interface.js +223 -0
  196. package/esm/src/interface/session.d.ts +64 -0
  197. package/esm/src/interface/session.js +121 -0
  198. package/esm/src/interface/tool-calls.d.ts +20 -0
  199. package/esm/src/interface/tool-calls.js +73 -0
  200. package/esm/src/interface/tool-invoke.d.ts +4 -0
  201. package/esm/src/interface/tool-invoke.js +20 -0
  202. package/esm/src/interface/tool-media.d.ts +9 -0
  203. package/esm/src/interface/tool-media.js +112 -0
  204. package/esm/src/interface/types.d.ts +213 -0
  205. package/esm/src/interface/types.js +4 -0
  206. package/esm/src/kernel/auth/credential-source.d.ts +23 -0
  207. package/esm/src/kernel/auth/credential-source.js +11 -0
  208. package/esm/src/kernel/auth/crypto.d.ts +51 -0
  209. package/esm/src/kernel/auth/crypto.js +161 -0
  210. package/esm/src/kernel/auth/mod.d.ts +5 -0
  211. package/esm/src/kernel/auth/mod.js +5 -0
  212. package/esm/src/kernel/auth/oauth.d.ts +17 -0
  213. package/esm/src/kernel/auth/oauth.js +438 -0
  214. package/esm/src/kernel/auth/scope-refusal.d.ts +9 -0
  215. package/esm/src/kernel/auth/scope-refusal.js +8 -0
  216. package/esm/src/kernel/auth/typed-secret.d.ts +13 -0
  217. package/esm/src/kernel/auth/typed-secret.js +23 -0
  218. package/esm/src/kernel/auth/types.d.ts +139 -0
  219. package/esm/src/kernel/auth/types.js +1 -0
  220. package/esm/src/kernel/default-scope.d.ts +34 -0
  221. package/esm/src/kernel/default-scope.js +72 -0
  222. package/esm/src/kernel/engine/compaction.d.ts +70 -0
  223. package/esm/src/kernel/engine/compaction.js +202 -0
  224. package/esm/src/kernel/engine/decision.d.ts +41 -0
  225. package/esm/src/kernel/engine/decision.js +412 -0
  226. package/esm/src/kernel/engine/hash.d.ts +6 -0
  227. package/esm/src/kernel/engine/hash.js +22 -0
  228. package/esm/src/kernel/engine/live-inbound.d.ts +9 -0
  229. package/esm/src/kernel/engine/live-inbound.js +19 -0
  230. package/esm/src/kernel/engine/live-ingress.d.ts +9 -0
  231. package/esm/src/kernel/engine/live-ingress.js +37 -0
  232. package/esm/src/kernel/engine/media-probe/audio.d.ts +7 -0
  233. package/esm/src/kernel/engine/media-probe/audio.js +342 -0
  234. package/esm/src/kernel/engine/media-probe/bytes.d.ts +6 -0
  235. package/esm/src/kernel/engine/media-probe/bytes.js +26 -0
  236. package/esm/src/kernel/engine/media-probe/image.d.ts +5 -0
  237. package/esm/src/kernel/engine/media-probe/image.js +171 -0
  238. package/esm/src/kernel/engine/media-probe/iso-bmff.d.ts +19 -0
  239. package/esm/src/kernel/engine/media-probe/iso-bmff.js +48 -0
  240. package/esm/src/kernel/engine/media-probe/matroska.d.ts +35 -0
  241. package/esm/src/kernel/engine/media-probe/matroska.js +226 -0
  242. package/esm/src/kernel/engine/media-probe/mp4.d.ts +22 -0
  243. package/esm/src/kernel/engine/media-probe/mp4.js +279 -0
  244. package/esm/src/kernel/engine/media-probe/opus.d.ts +4 -0
  245. package/esm/src/kernel/engine/media-probe/opus.js +23 -0
  246. package/esm/src/kernel/engine/media-probe/pdf.d.ts +5 -0
  247. package/esm/src/kernel/engine/media-probe/pdf.js +117 -0
  248. package/esm/src/kernel/engine/media-probe/video.d.ts +15 -0
  249. package/esm/src/kernel/engine/media-probe/video.js +49 -0
  250. package/esm/src/kernel/engine/record.d.ts +3 -0
  251. package/esm/src/kernel/engine/record.js +11 -0
  252. package/esm/src/kernel/engine/repair.d.ts +7 -0
  253. package/esm/src/kernel/engine/repair.js +36 -0
  254. package/esm/src/kernel/engine/runner/gates.d.ts +5 -0
  255. package/esm/src/kernel/engine/runner/gates.js +322 -0
  256. package/esm/src/kernel/engine/runner/mod.d.ts +15 -0
  257. package/esm/src/kernel/engine/runner/mod.js +574 -0
  258. package/esm/src/kernel/engine/runner/schema-validation.d.ts +14 -0
  259. package/esm/src/kernel/engine/runner/schema-validation.js +105 -0
  260. package/esm/src/kernel/engine/runner/stages.d.ts +28 -0
  261. package/esm/src/kernel/engine/runner/stages.js +48 -0
  262. package/esm/src/kernel/engine/runner/state.d.ts +76 -0
  263. package/esm/src/kernel/engine/runner/state.js +40 -0
  264. package/esm/src/kernel/engine/runner/steps.d.ts +14 -0
  265. package/esm/src/kernel/engine/runner/steps.js +360 -0
  266. package/esm/src/kernel/engine/runner/stream.d.ts +40 -0
  267. package/esm/src/kernel/engine/runner/stream.js +225 -0
  268. package/esm/src/kernel/engine/runner/usage.d.ts +45 -0
  269. package/esm/src/kernel/engine/runner/usage.js +150 -0
  270. package/esm/src/kernel/engine/session/mod.d.ts +31 -0
  271. package/esm/src/kernel/engine/session/mod.js +951 -0
  272. package/esm/src/kernel/engine/session/session-trace.d.ts +115 -0
  273. package/esm/src/kernel/engine/session/session-trace.js +489 -0
  274. package/esm/src/kernel/engine/token-estimate.d.ts +77 -0
  275. package/esm/src/kernel/engine/token-estimate.js +218 -0
  276. package/esm/src/kernel/engine/tool-trace.d.ts +58 -0
  277. package/esm/src/kernel/engine/tool-trace.js +131 -0
  278. package/esm/src/kernel/engine/tree.d.ts +2 -0
  279. package/esm/src/kernel/engine/tree.js +17 -0
  280. package/esm/src/kernel/engine/turn-trace.d.ts +118 -0
  281. package/esm/src/kernel/engine/turn-trace.js +863 -0
  282. package/esm/src/kernel/engine/usage.d.ts +30 -0
  283. package/esm/src/kernel/engine/usage.js +134 -0
  284. package/esm/src/kernel/interaction-parts.d.ts +10 -0
  285. package/esm/src/kernel/interaction-parts.js +22 -0
  286. package/esm/src/kernel/mod.d.ts +47 -0
  287. package/esm/src/kernel/mod.js +30 -0
  288. package/esm/src/kernel/profile-graph.d.ts +140 -0
  289. package/esm/src/kernel/profile-graph.js +151 -0
  290. package/esm/src/kernel/profile-presence.d.ts +9 -0
  291. package/esm/src/kernel/profile-presence.js +143 -0
  292. package/esm/src/kernel/profile-scope.d.ts +36 -0
  293. package/esm/src/kernel/profile-scope.js +262 -0
  294. package/esm/src/kernel/registry/attachments.d.ts +35 -0
  295. package/esm/src/kernel/registry/attachments.js +211 -0
  296. package/esm/src/kernel/registry/catalog.d.ts +19 -0
  297. package/esm/src/kernel/registry/catalog.js +78 -0
  298. package/esm/src/kernel/registry/ingress.d.ts +8 -0
  299. package/esm/src/kernel/registry/ingress.js +134 -0
  300. package/esm/src/kernel/registry/kernel-registry.d.ts +12 -0
  301. package/esm/src/kernel/registry/kernel-registry.js +8 -0
  302. package/esm/src/kernel/registry/profile-outputs.d.ts +3 -0
  303. package/esm/src/kernel/registry/profile-outputs.js +7 -0
  304. package/esm/src/kernel/registry/profiles.d.ts +92 -0
  305. package/esm/src/kernel/registry/profiles.js +698 -0
  306. package/esm/src/kernel/registry/provider-request.d.ts +6 -0
  307. package/esm/src/kernel/registry/provider-request.js +42 -0
  308. package/esm/src/kernel/registry/resolve.d.ts +14 -0
  309. package/esm/src/kernel/registry/resolve.js +237 -0
  310. package/esm/src/kernel/registry/schemas.d.ts +9 -0
  311. package/esm/src/kernel/registry/schemas.js +25 -0
  312. package/esm/src/kernel/registry/sole-model.d.ts +2 -0
  313. package/esm/src/kernel/registry/sole-model.js +4 -0
  314. package/esm/src/kernel/registry/system-prompt.d.ts +8 -0
  315. package/esm/src/kernel/registry/system-prompt.js +33 -0
  316. package/esm/src/kernel/registry/system-role.d.ts +3 -0
  317. package/esm/src/kernel/registry/system-role.js +9 -0
  318. package/esm/src/kernel/registry/vault.d.ts +13 -0
  319. package/esm/src/kernel/registry/vault.js +14 -0
  320. package/esm/src/kernel/schema.d.ts +172 -0
  321. package/esm/src/kernel/schema.js +653 -0
  322. package/esm/src/kernel/scope.d.ts +22 -0
  323. package/esm/src/kernel/scope.js +25 -0
  324. package/esm/src/kernel/stages.d.ts +141 -0
  325. package/esm/src/kernel/stages.js +388 -0
  326. package/esm/src/kernel/stop.d.ts +93 -0
  327. package/esm/src/kernel/stop.js +125 -0
  328. package/esm/src/kernel/system-parts.d.ts +26 -0
  329. package/esm/src/kernel/system-parts.js +98 -0
  330. package/esm/src/kernel/tools/activity-label.d.ts +16 -0
  331. package/esm/src/kernel/tools/activity-label.js +209 -0
  332. package/esm/src/kernel/tools/events.d.ts +51 -0
  333. package/esm/src/kernel/tools/events.js +149 -0
  334. package/esm/src/kernel/tools/execute.d.ts +64 -0
  335. package/esm/src/kernel/tools/execute.js +801 -0
  336. package/esm/src/kernel/tools/gate-answer.d.ts +50 -0
  337. package/esm/src/kernel/tools/gate-answer.js +54 -0
  338. package/esm/src/kernel/tools/harness.d.ts +16 -0
  339. package/esm/src/kernel/tools/harness.js +42 -0
  340. package/esm/src/kernel/tools/invoke.d.ts +10 -0
  341. package/esm/src/kernel/tools/invoke.js +129 -0
  342. package/esm/src/kernel/tools/mcp-sessions.d.ts +20 -0
  343. package/esm/src/kernel/tools/mcp-sessions.js +64 -0
  344. package/esm/src/kernel/tools/mod.d.ts +9 -0
  345. package/esm/src/kernel/tools/mod.js +6 -0
  346. package/esm/src/kernel/tools/model-text.d.ts +11 -0
  347. package/esm/src/kernel/tools/model-text.js +25 -0
  348. package/esm/src/kernel/tools/permission.d.ts +6 -0
  349. package/esm/src/kernel/tools/permission.js +38 -0
  350. package/esm/src/kernel/tools/project.d.ts +8 -0
  351. package/esm/src/kernel/tools/project.js +25 -0
  352. package/esm/src/kernel/tools/registry.d.ts +20 -0
  353. package/esm/src/kernel/tools/registry.js +84 -0
  354. package/esm/src/kernel/tools/remote.d.ts +110 -0
  355. package/esm/src/kernel/tools/remote.js +998 -0
  356. package/esm/src/kernel/tools/resolve.d.ts +28 -0
  357. package/esm/src/kernel/tools/resolve.js +259 -0
  358. package/esm/src/kernel/tools/schema.d.ts +10 -0
  359. package/esm/src/kernel/tools/schema.js +174 -0
  360. package/esm/src/kernel/tools/signed-in-fetch.d.ts +18 -0
  361. package/esm/src/kernel/tools/signed-in-fetch.js +45 -0
  362. package/esm/src/kernel/tools/stage-run.d.ts +93 -0
  363. package/esm/src/kernel/tools/stage-run.js +140 -0
  364. package/esm/src/kernel/tools/types.d.ts +287 -0
  365. package/esm/src/kernel/tools/types.js +1 -0
  366. package/esm/src/kernel/turn-events.d.ts +599 -0
  367. package/esm/src/kernel/turn-events.js +425 -0
  368. package/esm/src/kernel/types.d.ts +884 -0
  369. package/esm/src/kernel/types.js +1 -0
  370. package/esm/src/kernel/util/base64.d.ts +2 -0
  371. package/esm/src/kernel/util/base64.js +13 -0
  372. package/esm/src/kernel/util/exact-type.d.ts +31 -0
  373. package/esm/src/kernel/util/exact-type.js +1 -0
  374. package/esm/src/kernel/util/find-last.d.ts +3 -0
  375. package/esm/src/kernel/util/find-last.js +9 -0
  376. package/esm/src/kernel/util/mime.d.ts +2 -0
  377. package/esm/src/kernel/util/mime.js +4 -0
  378. package/esm/src/kernel/util/record.d.ts +1 -0
  379. package/esm/src/kernel/util/record.js +3 -0
  380. package/esm/src/observability/destinations.d.ts +9 -0
  381. package/esm/src/observability/destinations.js +38 -0
  382. package/esm/src/observability/jsonl.d.ts +18 -0
  383. package/esm/src/observability/jsonl.js +117 -0
  384. package/esm/src/observability/mod.d.ts +22 -0
  385. package/esm/src/observability/mod.js +16 -0
  386. package/esm/src/observability/openinference.d.ts +11 -0
  387. package/esm/src/observability/openinference.js +205 -0
  388. package/esm/src/observability/otlp.d.ts +68 -0
  389. package/esm/src/observability/otlp.js +98 -0
  390. package/esm/src/observability/phoenix.d.ts +29 -0
  391. package/esm/src/observability/phoenix.js +71 -0
  392. package/esm/src/observability/policy.d.ts +14 -0
  393. package/esm/src/observability/policy.js +69 -0
  394. package/esm/src/observability/resolve-policy.d.ts +8 -0
  395. package/esm/src/observability/resolve-policy.js +58 -0
  396. package/esm/src/observability/spans.d.ts +16 -0
  397. package/esm/src/observability/spans.js +56 -0
  398. package/esm/src/observability/trace-catalog.d.ts +111 -0
  399. package/esm/src/observability/trace-catalog.js +865 -0
  400. package/esm/src/observability/trace-record.d.ts +23 -0
  401. package/esm/src/observability/trace-record.js +223 -0
  402. package/esm/src/observability/trace-schema.d.ts +54 -0
  403. package/esm/src/observability/trace-schema.js +59 -0
  404. package/esm/src/observability/trace-sink.d.ts +13 -0
  405. package/esm/src/observability/trace-sink.js +3 -0
  406. package/esm/src/observability/trace-span.d.ts +92 -0
  407. package/esm/src/observability/trace-span.js +199 -0
  408. package/esm/src/observability/trace.d.ts +11 -0
  409. package/esm/src/observability/trace.js +35 -0
  410. package/esm/src/observability/types.d.ts +85 -0
  411. package/esm/src/observability/types.js +3 -0
  412. package/esm/src/presets/google/speech-voices.d.ts +8 -0
  413. package/esm/src/presets/google/speech-voices.js +38 -0
  414. package/esm/src/presets/google-limits.d.ts +12 -0
  415. package/esm/src/presets/google-limits.js +18 -0
  416. package/esm/src/presets/google.d.ts +104 -0
  417. package/esm/src/presets/google.js +188 -0
  418. package/esm/src/presets/mod.d.ts +10 -0
  419. package/esm/src/presets/mod.js +9 -0
  420. package/esm/src/presets/openrouter.d.ts +13 -0
  421. package/esm/src/presets/openrouter.js +13 -0
  422. package/esm/src/presets/typesafe.d.ts +2 -0
  423. package/esm/src/presets/typesafe.js +2 -0
  424. package/esm/src/providers/create-provider.d.ts +21 -0
  425. package/esm/src/providers/create-provider.js +90 -0
  426. package/esm/src/providers/decision/usage.d.ts +3 -0
  427. package/esm/src/providers/decision/usage.js +25 -0
  428. package/esm/src/providers/google/api-error.d.ts +8 -0
  429. package/esm/src/providers/google/api-error.js +123 -0
  430. package/esm/src/providers/google/grounding.d.ts +5 -0
  431. package/esm/src/providers/google/grounding.js +226 -0
  432. package/esm/src/providers/google/interactions/framing.d.ts +15 -0
  433. package/esm/src/providers/google/interactions/framing.js +263 -0
  434. package/esm/src/providers/google/interactions/mod.d.ts +2 -0
  435. package/esm/src/providers/google/interactions/mod.js +2 -0
  436. package/esm/src/providers/google/interactions/steps.d.ts +12 -0
  437. package/esm/src/providers/google/interactions/steps.js +200 -0
  438. package/esm/src/providers/google/interactions/stream.d.ts +24 -0
  439. package/esm/src/providers/google/interactions/stream.js +297 -0
  440. package/esm/src/providers/google/keys.d.ts +20 -0
  441. package/esm/src/providers/google/keys.js +87 -0
  442. package/esm/src/providers/google/live/framing.d.ts +51 -0
  443. package/esm/src/providers/google/live/framing.js +597 -0
  444. package/esm/src/providers/google/live/mod.d.ts +7 -0
  445. package/esm/src/providers/google/live/mod.js +7 -0
  446. package/esm/src/providers/google/live/openapi-schema.d.ts +1 -0
  447. package/esm/src/providers/google/live/openapi-schema.js +42 -0
  448. package/esm/src/providers/google/live/session.d.ts +14 -0
  449. package/esm/src/providers/google/live/session.js +150 -0
  450. package/esm/src/providers/google/live/stream.d.ts +51 -0
  451. package/esm/src/providers/google/live/stream.js +263 -0
  452. package/esm/src/providers/google/thinking.d.ts +3 -0
  453. package/esm/src/providers/google/thinking.js +8 -0
  454. package/esm/src/providers/google/urls.d.ts +6 -0
  455. package/esm/src/providers/google/urls.js +6 -0
  456. package/esm/src/providers/google/usage.d.ts +7 -0
  457. package/esm/src/providers/google/usage.js +49 -0
  458. package/esm/src/providers/local/local.d.ts +12 -0
  459. package/esm/src/providers/local/local.js +186 -0
  460. package/esm/src/providers/local/mod.d.ts +8 -0
  461. package/esm/src/providers/local/mod.js +8 -0
  462. package/esm/src/providers/mod.d.ts +11 -0
  463. package/esm/src/providers/mod.js +7 -0
  464. package/esm/src/providers/openrouter/cache-control.d.ts +5 -0
  465. package/esm/src/providers/openrouter/cache-control.js +4 -0
  466. package/esm/src/providers/openrouter/chat.d.ts +64 -0
  467. package/esm/src/providers/openrouter/chat.js +490 -0
  468. package/esm/src/providers/openrouter/image.d.ts +24 -0
  469. package/esm/src/providers/openrouter/image.js +187 -0
  470. package/esm/src/providers/openrouter/openai/compat.d.ts +19 -0
  471. package/esm/src/providers/openrouter/openai/compat.js +162 -0
  472. package/esm/src/providers/openrouter/openai/image-payload.d.ts +9 -0
  473. package/esm/src/providers/openrouter/openai/image-payload.js +115 -0
  474. package/esm/src/providers/openrouter/openai/sdk-messages.d.ts +10 -0
  475. package/esm/src/providers/openrouter/openai/sdk-messages.js +99 -0
  476. package/esm/src/providers/openrouter/openai/usage.d.ts +8 -0
  477. package/esm/src/providers/openrouter/openai/usage.js +56 -0
  478. package/esm/src/providers/openrouter/resolve-api-key.d.ts +3 -0
  479. package/esm/src/providers/openrouter/resolve-api-key.js +8 -0
  480. package/esm/src/providers/openrouter/speech.d.ts +18 -0
  481. package/esm/src/providers/openrouter/speech.js +109 -0
  482. package/esm/src/providers/probe.d.ts +5 -0
  483. package/esm/src/providers/probe.js +15 -0
  484. package/esm/src/providers/shared/builtin-wire.d.ts +4 -0
  485. package/esm/src/providers/shared/builtin-wire.js +9 -0
  486. package/esm/src/providers/shared/pcm.d.ts +14 -0
  487. package/esm/src/providers/shared/pcm.js +78 -0
  488. package/esm/src/providers/shared/response-identity.d.ts +11 -0
  489. package/esm/src/providers/shared/response-identity.js +12 -0
  490. package/esm/src/providers/shared/sse.d.ts +10 -0
  491. package/esm/src/providers/shared/sse.js +79 -0
  492. package/esm/src/providers/shared/structured-output.d.ts +4 -0
  493. package/esm/src/providers/shared/structured-output.js +11 -0
  494. package/esm/src/providers/shared/tool-args.d.ts +25 -0
  495. package/esm/src/providers/shared/tool-args.js +84 -0
  496. package/esm/src/providers/shared/upstream-tap.d.ts +8 -0
  497. package/esm/src/providers/shared/upstream-tap.js +85 -0
  498. package/esm/src/providers/shared/upstream-tape.d.ts +6 -0
  499. package/esm/src/providers/shared/upstream-tape.js +88 -0
  500. package/esm/src/providers/shared/vault.d.ts +13 -0
  501. package/esm/src/providers/shared/vault.js +41 -0
  502. package/esm/src/providers/types.d.ts +19 -0
  503. package/esm/src/providers/types.js +1 -0
  504. package/esm/src/surface/formats.d.ts +28 -0
  505. package/esm/src/surface/formats.js +139 -0
  506. package/esm/src/surface/mod.d.ts +14 -0
  507. package/esm/src/surface/mod.js +10 -0
  508. package/esm/src/surface/runtime.d.ts +40 -0
  509. package/esm/src/surface/runtime.js +439 -0
  510. package/esm/src/surface/tools.d.ts +15 -0
  511. package/esm/src/surface/tools.js +80 -0
  512. package/esm/src/surface/types.d.ts +104 -0
  513. package/esm/src/surface/types.js +4 -0
  514. package/package.json +108 -4
@@ -0,0 +1,30 @@
1
+ import type { TurnCost, TurnEvent, TurnGroundingCount, TurnTokens } from '../types.js';
2
+ /** Provider usage already mapped to the OpenTelemetry GenAI meanings. */
3
+ export interface ReportedUsage {
4
+ /** Everything the model read. `undefined` = not reported. */
5
+ input?: number;
6
+ /** Everything the model wrote, reasoning included. `undefined` = not reported. */
7
+ output?: number;
8
+ thinking?: number;
9
+ toolUse?: number;
10
+ cached?: number;
11
+ cacheWrite?: number;
12
+ cost?: TurnCost;
13
+ byModality?: TurnTokens['byModality'];
14
+ grounding?: TurnGroundingCount[];
15
+ }
16
+ export declare function usageCount(value: unknown): number | undefined;
17
+ /**
18
+ * `TurnTokens` from reported usage, or `undefined` when the provider reported
19
+ * nothing. A missing side is 0 and listed in `estimated`. Input 0 counts as
20
+ * missing, since every model call reads a prompt; an all-zero row (a
21
+ * placeholder some servers stream) reports nothing.
22
+ */
23
+ export declare function reportedTokens(usage: ReportedUsage): TurnTokens | undefined;
24
+ /** A turn's usage: the sum of its `tokens` events. `done.tokens` and the turn's span both read it. */
25
+ export declare function sumEventTokens(events: readonly TurnEvent[]): TurnTokens | undefined;
26
+ /**
27
+ * A side is `estimated` when any call estimated it. Cost is `partial` when some call reported none;
28
+ * a missing `upstreamUsd` is not missing data (OpenRouter reports it only for BYOK).
29
+ */
30
+ export declare function sumTokens(calls: TurnTokens[]): TurnTokens | undefined;
@@ -0,0 +1,134 @@
1
+ export function usageCount(value) {
2
+ return typeof value === 'number' && Number.isFinite(value) && value >= 0 ? value : undefined;
3
+ }
4
+ /**
5
+ * `TurnTokens` from reported usage, or `undefined` when the provider reported
6
+ * nothing. A missing side is 0 and listed in `estimated`. Input 0 counts as
7
+ * missing, since every model call reads a prompt; an all-zero row (a
8
+ * placeholder some servers stream) reports nothing.
9
+ */
10
+ export function reportedTokens(usage) {
11
+ const reportedInput = usage.input ? usage.input : undefined;
12
+ if (reportedInput === undefined && !usage.output)
13
+ return undefined;
14
+ const estimated = [];
15
+ if (reportedInput === undefined)
16
+ estimated.push('input');
17
+ if (usage.output === undefined)
18
+ estimated.push('output');
19
+ const input = reportedInput ?? 0;
20
+ const output = usage.output ?? 0;
21
+ return {
22
+ input,
23
+ output,
24
+ ...(usage.thinking ? { thinking: usage.thinking } : {}),
25
+ ...(usage.toolUse ? { toolUse: usage.toolUse } : {}),
26
+ ...(usage.cached ? { cached: usage.cached } : {}),
27
+ ...(usage.cacheWrite ? { cacheWrite: usage.cacheWrite } : {}),
28
+ total: input + output,
29
+ ...(usage.cost ? { cost: usage.cost } : {}),
30
+ ...(estimated.length > 0 ? { estimated } : {}),
31
+ ...(usage.byModality ? { byModality: usage.byModality } : {}),
32
+ ...(usage.grounding ? { grounding: usage.grounding } : {}),
33
+ };
34
+ }
35
+ function sumCost(calls) {
36
+ const costs = calls.flatMap((call) => (call.cost ? [call.cost] : []));
37
+ if (costs.length === 0)
38
+ return undefined;
39
+ const upstream = costs.flatMap((cost) => cost.upstreamUsd === undefined ? [] : [cost.upstreamUsd]);
40
+ const partial = costs.length < calls.length || costs.some((cost) => cost.partial);
41
+ return {
42
+ usd: costs.reduce((sum, cost) => sum + cost.usd, 0),
43
+ ...(upstream.length > 0 ? { upstreamUsd: upstream.reduce((sum, usd) => sum + usd, 0) } : {}),
44
+ ...(partial ? { partial: true } : {}),
45
+ };
46
+ }
47
+ /**
48
+ * A modality's share summed across calls, kept only when every call reported
49
+ * that modality: a partial sum would read as exact and be wrong.
50
+ */
51
+ function sumByModality(calls) {
52
+ const sides = ['input', 'output'];
53
+ const summed = {};
54
+ for (const side of sides) {
55
+ const [first, ...rest] = calls.map((call) => call.byModality?.[side]);
56
+ const modalities = Object.keys(first ?? {}).filter((modality) => rest.every((counts) => counts?.[modality] !== undefined));
57
+ if (modalities.length === 0)
58
+ continue;
59
+ summed[side] = Object.fromEntries(modalities.map((modality) => [
60
+ modality,
61
+ calls.reduce((sum, call) => sum + (call.byModality?.[side]?.[modality] ?? 0), 0),
62
+ ]));
63
+ }
64
+ return Object.keys(summed).length > 0 ? summed : undefined;
65
+ }
66
+ /**
67
+ * Grounding use summed per tool over the calls that reported it; a call that
68
+ * ran no grounding tool reports none. `searchQueryCount` sums only when every
69
+ * report of that tool carried it.
70
+ */
71
+ function sumGrounding(calls) {
72
+ const byType = new Map();
73
+ for (const entry of calls.flatMap((call) => call.grounding ?? [])) {
74
+ byType.set(entry.type, [...(byType.get(entry.type) ?? []), entry]);
75
+ }
76
+ if (byType.size === 0)
77
+ return undefined;
78
+ return [...byType].map(([type, entries]) => {
79
+ const queries = entries.every((entry) => entry.searchQueryCount !== undefined);
80
+ return {
81
+ type,
82
+ count: entries.reduce((sum, entry) => sum + entry.count, 0),
83
+ ...(queries
84
+ ? {
85
+ searchQueryCount: entries.reduce((sum, entry) => sum + (entry.searchQueryCount ?? 0), 0),
86
+ }
87
+ : {}),
88
+ };
89
+ });
90
+ }
91
+ /** A turn's usage: the sum of its `tokens` events. `done.tokens` and the turn's span both read it. */
92
+ export function sumEventTokens(events) {
93
+ return sumTokens(events.flatMap((event) => (event.type === 'tokens' ? [event.tokens] : [])));
94
+ }
95
+ /**
96
+ * A side is `estimated` when any call estimated it. Cost is `partial` when some call reported none;
97
+ * a missing `upstreamUsd` is not missing data (OpenRouter reports it only for BYOK).
98
+ */
99
+ export function sumTokens(calls) {
100
+ if (calls.length === 0)
101
+ return undefined;
102
+ const add = (pick) => calls.reduce((sum, call) => sum + (pick(call) ?? 0), 0);
103
+ const input = add((call) => call.input);
104
+ const output = add((call) => call.output);
105
+ const thinking = add((call) => call.thinking);
106
+ const toolUse = add((call) => call.toolUse);
107
+ const cached = add((call) => call.cached);
108
+ const cacheWrite = add((call) => call.cacheWrite);
109
+ const cost = sumCost(calls);
110
+ const byModality = sumByModality(calls);
111
+ const grounding = sumGrounding(calls);
112
+ const sides = ['input', 'output'];
113
+ const estimated = sides.filter((side) => calls.some((call) => call.estimated?.includes(side)));
114
+ const unknownMedia = {};
115
+ for (const side of sides) {
116
+ const count = add((call) => call.unknownMedia?.[side]);
117
+ if (count > 0)
118
+ unknownMedia[side] = count;
119
+ }
120
+ return {
121
+ input,
122
+ output,
123
+ ...(thinking ? { thinking } : {}),
124
+ ...(toolUse ? { toolUse } : {}),
125
+ ...(cached ? { cached } : {}),
126
+ ...(cacheWrite ? { cacheWrite } : {}),
127
+ total: input + output,
128
+ ...(cost ? { cost } : {}),
129
+ ...(estimated.length > 0 ? { estimated } : {}),
130
+ ...(Object.keys(unknownMedia).length > 0 ? { unknownMedia } : {}),
131
+ ...(byModality ? { byModality } : {}),
132
+ ...(grounding ? { grounding } : {}),
133
+ };
134
+ }
@@ -0,0 +1,10 @@
1
+ import type { InteractionMediaRefPart, InteractionPart, TurnHistoryMessage } from './types.js';
2
+ /** `toGoogleValue` snake-cases `mimeType` to the documented Interactions `mime_type`. */
3
+ export declare function wireInteractionPart(part: InteractionPart): Record<string, string>;
4
+ export declare function isMediaRefPart(part: InteractionPart): part is InteractionMediaRefPart;
5
+ /**
6
+ * Everything a history message says, in the one order every provider adapter
7
+ * sends it: `content` first as a text part (when non-empty), then `parts`.
8
+ * Neither field replaces the other.
9
+ */
10
+ export declare function historyMessageParts(msg: TurnHistoryMessage): InteractionPart[];
@@ -0,0 +1,22 @@
1
+ /** `toGoogleValue` snake-cases `mimeType` to the documented Interactions `mime_type`. */
2
+ export function wireInteractionPart(part) {
3
+ if (part.type === 'text') {
4
+ return { type: 'text', text: part.text };
5
+ }
6
+ if ('uri' in part) {
7
+ return { type: part.type, mimeType: part.mimeType, uri: part.uri };
8
+ }
9
+ return { type: part.type, mimeType: part.mimeType, data: part.data };
10
+ }
11
+ export function isMediaRefPart(part) {
12
+ return part.type !== 'text' && 'uri' in part;
13
+ }
14
+ /**
15
+ * Everything a history message says, in the one order every provider adapter
16
+ * sends it: `content` first as a text part (when non-empty), then `parts`.
17
+ * Neither field replaces the other.
18
+ */
19
+ export function historyMessageParts(msg) {
20
+ const parts = msg.parts ?? [];
21
+ return msg.content ? [{ type: 'text', text: msg.content }, ...parts] : [...parts];
22
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Profile, turn, tool, provider, egress, and event contracts for THEOREM.
3
+ *
4
+ * @module
5
+ */
6
+ import "../../_dnt.polyfills.js";
7
+ export * from './auth/mod.js';
8
+ export { clearProfiles, compactHistory, getProfile, getStructured, getTool, hasProfile, hasTool, invokeTool, listProfiles, listTools, projectProfile, registerProfile, registerProfiles, registerStructured, registerTool, registerTools, requireTool, resetTools, resolveTurn, runDecision, runSession, runTurn, } from './default-scope.js';
9
+ export type { CompactionSplit, CompactionTokens } from './engine/compaction.js';
10
+ export { compactionMeter, compactionNeeded, resolveCompactionTokens, resolveHistoryTokens, shouldCompact, splitForCompaction, } from './engine/compaction.js';
11
+ export type { RunDecisionOptions } from './engine/decision.js';
12
+ export { DecisionError, validateDecisionRequest } from './engine/decision.js';
13
+ export type { LiveIngressChannel } from './engine/live-ingress.js';
14
+ export { assertLiveIngress, assertLiveIngressConfigured, hasAnyLiveIngress, liveIngressChannelDefault, liveIngressEnabled, liveIngressEnabledFromSpec, } from './engine/live-ingress.js';
15
+ export type { RunSessionOptions, SignInGatePolicy } from './engine/session/mod.js';
16
+ export type { MediaPayload, MediaTokenFamily, TokenCount, TokenEstimator, } from './engine/token-estimate.js';
17
+ export { loadTokenEstimator, mediaTokenFamily, TOKEN_TEXT_ENCODING, } from './engine/token-estimate.js';
18
+ export { sumTokens } from './engine/usage.js';
19
+ export { isMediaRefPart, wireInteractionPart } from './interaction-parts.js';
20
+ export type { ProfileGraphEditor, ProfileGraphFacet, ProfileGraphFacetId, ProfileGraphRole, } from './profile-graph.js';
21
+ export { PROFILE_GRAPH, profileGraphFacet, spineFacetsForProfileType, } from './profile-graph.js';
22
+ export type { MediaInputChannel } from './registry/catalog.js';
23
+ export { clampThinkingLevel, clampThinkingLevelForApiId, mediaChannelForMime, mediaKindForMime, mimeAllowed, mimeEssence, modelEntryByApiId, requireModelBinding, } from './registry/catalog.js';
24
+ export type { KernelRegistry } from './registry/kernel-registry.js';
25
+ export { createKernelRegistry } from './registry/kernel-registry.js';
26
+ export type { DecisionProfileDefinition, HostProfileDefinition, ImageProfileDefinition, LiveProfileDefinition, ProfileDefinition, ProfileDefinitionBase, ProfileRegistry, SpeechProfileDefinition, TextProfileDefinition, } from './registry/profiles.js';
27
+ export { createProfileRegistry, defineProfile } from './registry/profiles.js';
28
+ export { projectProfileObject, requireModelProfile } from './registry/resolve.js';
29
+ export type { SchemaRegistry } from './registry/schemas.js';
30
+ export { createSchemaRegistry } from './registry/schemas.js';
31
+ export type { AuthUnauthenticatedPolicy, CustomToolType, HttpMethod, PlaygroundAuthType, ToolAccess, ToolAuthType, ToolPermission, ToolType, } from './schema.js';
32
+ export { ATTACHMENT_ACCEPT_MIMES, AUTH_UNAUTHENTICATED_POLICIES, AWAITING_USER_INPUT_KINDS, AWAITING_USER_INPUT_STATUS, CACHE_MODES, CACHE_TTLS, COMPACTION_METERS, COMPACTION_OUTCOMES, COMPACTION_TIMINGS, CONTINUE_STOP_KINDS, catalogPathFor, coerceProtocol, coerceProvider, EXTRA_FIELDS, fieldMeta, HTTP_METHODS, IMAGE_ATTACHMENT_ACCEPT_MIMES, isKeySlotName, isToolGateKind, isTurnInjectStage, isTurnStage, isValidPair, isValidProfileProtocol, KEY_SLOT_NAME, MEDIA_INPUT_KIND_VALUES, MEDIA_INPUT_KINDS, MEDIA_WILDCARDS, PLAYGROUND_AUTH_TYPES, PROFILE_FIELDS, PROFILE_TYPE_PROTOCOLS, PROFILE_TYPES, PROTOCOL_PROVIDERS, PROTOCOLS, PROVIDERS, protocolsFor, protocolsForProfileType, providersFor, SPEECH_AUDIO_FORMATS, STREAM_MODES, SUMMARY_MODES, THINKING_LEVELS, TOOL_ACCESS, TOOL_AUTH_TYPES, TOOL_GATE_KINDS, TOOL_LOAD_TIERS, TOOL_PERMISSION, TOOL_TYPES, TURN_INJECT_STAGES, TURN_STAGES, TURN_STOP_KINDS, VOICE_ACCEPT_MIMES, } from './schema.js';
33
+ export type { KernelScope } from './scope.js';
34
+ export { createKernelScope, defaultKernelScope } from './scope.js';
35
+ export type { AwaitingUserInput, StageAffordance, StageApplyInput, StageApplyOutput, StageApplyWarning, StageApplyWarningCode, StageContext, StageEventExtra, StageHandler, StageMutate, StageResult, } from './stages.js';
36
+ export { applyStageResult, isAwaitingUserInput, STAGE_AFFORDANCE_MATRIX, STAGE_AFFORDANCES, stageAllowsAffordance, stageEventFields, } from './stages.js';
37
+ export type { MediaTurnBehaviourSpec, ProfileTurnBehaviourSpec, ProfileTurnResumptionSpec, TurnContinueFrom, TurnStop, } from './stop.js';
38
+ export { AUTO_CONTINUE_DELAY_MS, DEFAULT_ALLOW_CONTINUE, DEFAULT_AUTO_CONTINUE, GenerationStopError, isContinueStopKind, isGenerationStopError, isResumeableStop, isUserCancelledStop, profileAllowsInject, profileAllowsSteering, profileTurnResumption, shouldAutoContinue, turnStopFromClientStreamEnd, turnStopFromInteractionStatus, turnStopFromOpenAiFinishReason, } from './stop.js';
39
+ export { type AnsweredGate, answerGatedCall, GATE_DECISIONS, type GateAnswerRequest, type GateDecision, gateExpired, type HeldGatedCall, resolveGateTtlMs, sessionPermissionsAfterApproval, type ToolGateAuth, } from './tools/gate-answer.js';
40
+ export type { McpProtocolVersion, McpRpcResponse, ToolRegistry } from './tools/mod.js';
41
+ export { askUserTool, coerceToolResultParts, createToolRegistry, executeHttpTool, executeMcpTool, executeRegisteredTool, formatToolResult, isUnsupportedMcpProtocolError, leanToolResultData, MCP_PROTOCOL_VERSIONS, parseMcpRpcResponse, prepareTurnToolSnapshot, projectForModel, registerHarnessTools, resolveToolAuth, } from './tools/mod.js';
42
+ export { CredentialRefusedError } from './tools/signed-in-fetch.js';
43
+ export { awaitingUserInputSchema, TURN_EVENT_SCHEMAS, toolGateSchema, turnDoneOf, turnEventSchema, turnHistoryMessageSchema, turnToolSnapshotSchema, } from './turn-events.js';
44
+ export type * from './types.js';
45
+ export { base64ToBytes, bytesToBase64 } from './util/base64.js';
46
+ export type { Equals } from './util/exact-type.js';
47
+ export { isRecord } from './util/record.js';
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Profile, turn, tool, provider, egress, and event contracts for THEOREM.
3
+ *
4
+ * @module
5
+ */
6
+ import "../../_dnt.polyfills.js";
7
+ export * from './auth/mod.js';
8
+ export { clearProfiles, compactHistory, getProfile, getStructured, getTool, hasProfile, hasTool, invokeTool, listProfiles, listTools, projectProfile, registerProfile, registerProfiles, registerStructured, registerTool, registerTools, requireTool, resetTools, resolveTurn, runDecision, runSession, runTurn, } from './default-scope.js';
9
+ export { compactionMeter, compactionNeeded, resolveCompactionTokens, resolveHistoryTokens, shouldCompact, splitForCompaction, } from './engine/compaction.js';
10
+ export { DecisionError, validateDecisionRequest } from './engine/decision.js';
11
+ export { assertLiveIngress, assertLiveIngressConfigured, hasAnyLiveIngress, liveIngressChannelDefault, liveIngressEnabled, liveIngressEnabledFromSpec, } from './engine/live-ingress.js';
12
+ export { loadTokenEstimator, mediaTokenFamily, TOKEN_TEXT_ENCODING, } from './engine/token-estimate.js';
13
+ export { sumTokens } from './engine/usage.js';
14
+ export { isMediaRefPart, wireInteractionPart } from './interaction-parts.js';
15
+ export { PROFILE_GRAPH, profileGraphFacet, spineFacetsForProfileType, } from './profile-graph.js';
16
+ export { clampThinkingLevel, clampThinkingLevelForApiId, mediaChannelForMime, mediaKindForMime, mimeAllowed, mimeEssence, modelEntryByApiId, requireModelBinding, } from './registry/catalog.js';
17
+ export { createKernelRegistry } from './registry/kernel-registry.js';
18
+ export { createProfileRegistry, defineProfile } from './registry/profiles.js';
19
+ export { projectProfileObject, requireModelProfile } from './registry/resolve.js';
20
+ export { createSchemaRegistry } from './registry/schemas.js';
21
+ export { ATTACHMENT_ACCEPT_MIMES, AUTH_UNAUTHENTICATED_POLICIES, AWAITING_USER_INPUT_KINDS, AWAITING_USER_INPUT_STATUS, CACHE_MODES, CACHE_TTLS, COMPACTION_METERS, COMPACTION_OUTCOMES, COMPACTION_TIMINGS, CONTINUE_STOP_KINDS, catalogPathFor, coerceProtocol, coerceProvider, EXTRA_FIELDS, fieldMeta, HTTP_METHODS, IMAGE_ATTACHMENT_ACCEPT_MIMES, isKeySlotName, isToolGateKind, isTurnInjectStage, isTurnStage, isValidPair, isValidProfileProtocol, KEY_SLOT_NAME, MEDIA_INPUT_KIND_VALUES, MEDIA_INPUT_KINDS, MEDIA_WILDCARDS, PLAYGROUND_AUTH_TYPES, PROFILE_FIELDS, PROFILE_TYPE_PROTOCOLS, PROFILE_TYPES, PROTOCOL_PROVIDERS, PROTOCOLS, PROVIDERS, protocolsFor, protocolsForProfileType, providersFor, SPEECH_AUDIO_FORMATS, STREAM_MODES, SUMMARY_MODES, THINKING_LEVELS, TOOL_ACCESS, TOOL_AUTH_TYPES, TOOL_GATE_KINDS, TOOL_LOAD_TIERS, TOOL_PERMISSION, TOOL_TYPES, TURN_INJECT_STAGES, TURN_STAGES, TURN_STOP_KINDS, VOICE_ACCEPT_MIMES, } from './schema.js';
22
+ export { createKernelScope, defaultKernelScope } from './scope.js';
23
+ export { applyStageResult, isAwaitingUserInput, STAGE_AFFORDANCE_MATRIX, STAGE_AFFORDANCES, stageAllowsAffordance, stageEventFields, } from './stages.js';
24
+ export { AUTO_CONTINUE_DELAY_MS, DEFAULT_ALLOW_CONTINUE, DEFAULT_AUTO_CONTINUE, GenerationStopError, isContinueStopKind, isGenerationStopError, isResumeableStop, isUserCancelledStop, profileAllowsInject, profileAllowsSteering, profileTurnResumption, shouldAutoContinue, turnStopFromClientStreamEnd, turnStopFromInteractionStatus, turnStopFromOpenAiFinishReason, } from './stop.js';
25
+ export { answerGatedCall, GATE_DECISIONS, gateExpired, resolveGateTtlMs, sessionPermissionsAfterApproval, } from './tools/gate-answer.js';
26
+ export { askUserTool, coerceToolResultParts, createToolRegistry, executeHttpTool, executeMcpTool, executeRegisteredTool, formatToolResult, isUnsupportedMcpProtocolError, leanToolResultData, MCP_PROTOCOL_VERSIONS, parseMcpRpcResponse, prepareTurnToolSnapshot, projectForModel, registerHarnessTools, resolveToolAuth, } from './tools/mod.js';
27
+ export { CredentialRefusedError } from './tools/signed-in-fetch.js';
28
+ export { awaitingUserInputSchema, TURN_EVENT_SCHEMAS, toolGateSchema, turnDoneOf, turnEventSchema, turnHistoryMessageSchema, turnToolSnapshotSchema, } from './turn-events.js';
29
+ export { base64ToBytes, bytesToBase64 } from './util/base64.js';
30
+ export { isRecord } from './util/record.js';
@@ -0,0 +1,140 @@
1
+ import type { ProfileType } from './schema.js';
2
+ export type ProfileGraphEditor = 'schema' | 'structural';
3
+ export type ProfileGraphRole = 'root' | 'spine' | 'branch';
4
+ /**
5
+ * Adding a profile section? Add it to PROFILE_FIELDS and a row here, never a FacetKind in the
6
+ * frontend. Each facet's `profileTypes` come from `PROFILE_FIELD_SCOPE` via its `profilePath`.
7
+ */
8
+ declare const PROFILE_GRAPH_DEF: readonly [{
9
+ readonly id: "identity";
10
+ readonly profilePath: "identity";
11
+ readonly role: "root";
12
+ readonly optional: false;
13
+ readonly editor: "structural";
14
+ readonly label: "Identity";
15
+ readonly ownsFields: readonly ["id", "type"];
16
+ }, {
17
+ readonly id: "models";
18
+ readonly profilePath: "models";
19
+ readonly role: "spine";
20
+ readonly optional: false;
21
+ readonly editor: "structural";
22
+ readonly label: "Models";
23
+ readonly ownsFields: readonly ["defaultModel", "allowModelSelect", "maxSteps", "key", "fallbackKey"];
24
+ }, {
25
+ readonly id: "modelBinding";
26
+ readonly profilePath: "models.*";
27
+ readonly role: "branch";
28
+ readonly parent: "models";
29
+ readonly optional: false;
30
+ readonly editor: "structural";
31
+ readonly label: "Model binding";
32
+ }, {
33
+ readonly id: "decision";
34
+ readonly profilePath: "decision";
35
+ readonly role: "spine";
36
+ readonly optional: false;
37
+ readonly editor: "structural";
38
+ readonly label: "Decision";
39
+ readonly ownsFields: readonly ["inputs"];
40
+ }, {
41
+ readonly id: "image";
42
+ readonly profilePath: "image";
43
+ readonly role: "spine";
44
+ readonly optional: false;
45
+ readonly editor: "structural";
46
+ readonly label: "Image";
47
+ }, {
48
+ readonly id: "speech";
49
+ readonly profilePath: "speech";
50
+ readonly role: "spine";
51
+ readonly optional: false;
52
+ readonly editor: "structural";
53
+ readonly label: "Speech";
54
+ }, {
55
+ readonly id: "live";
56
+ readonly profilePath: "live";
57
+ readonly role: "spine";
58
+ readonly optional: false;
59
+ readonly editor: "structural";
60
+ readonly label: "Live";
61
+ }, {
62
+ readonly id: "tools";
63
+ readonly profilePath: "tools";
64
+ readonly role: "spine";
65
+ readonly optional: false;
66
+ readonly editor: "structural";
67
+ readonly label: "Tools";
68
+ }, {
69
+ readonly id: "toolSpec";
70
+ readonly profilePath: "tools.allow";
71
+ readonly role: "branch";
72
+ readonly parent: "tools";
73
+ readonly optional: true;
74
+ readonly editor: "structural";
75
+ readonly label: "Tool";
76
+ }, {
77
+ readonly id: "inputs";
78
+ readonly profilePath: "inputs";
79
+ readonly role: "spine";
80
+ readonly optional: false;
81
+ readonly editor: "structural";
82
+ readonly label: "Inputs";
83
+ }, {
84
+ readonly id: "outputs";
85
+ readonly profilePath: "outputs";
86
+ readonly role: "spine";
87
+ readonly optional: true;
88
+ readonly editor: "structural";
89
+ readonly label: "Outputs";
90
+ }, {
91
+ readonly id: "turnBehaviour";
92
+ readonly profilePath: "turnBehaviour";
93
+ readonly role: "spine";
94
+ readonly optional: true;
95
+ readonly editor: "structural";
96
+ readonly label: "Turn behaviour";
97
+ }, {
98
+ readonly id: "guardrails";
99
+ readonly profilePath: "guardrails";
100
+ readonly role: "spine";
101
+ readonly optional: true;
102
+ readonly editor: "structural";
103
+ readonly label: "Guardrails";
104
+ }, {
105
+ readonly id: "observability";
106
+ readonly profilePath: "observability";
107
+ readonly role: "spine";
108
+ readonly optional: true;
109
+ readonly editor: "structural";
110
+ readonly label: "Observability";
111
+ }, {
112
+ readonly id: "wording";
113
+ readonly profilePath: "lexicon";
114
+ readonly role: "spine";
115
+ readonly optional: true;
116
+ readonly editor: "structural";
117
+ readonly label: "Wording";
118
+ }];
119
+ export type ProfileGraphFacetId = (typeof PROFILE_GRAPH_DEF)[number]['id'];
120
+ /** `profilePath` is a PROFILE_FIELDS key (section root) or a dynamic path (`models.*`). */
121
+ export interface ProfileGraphFacet {
122
+ id: ProfileGraphFacetId;
123
+ profilePath: string;
124
+ role: ProfileGraphRole;
125
+ parent?: ProfileGraphFacetId;
126
+ profileTypes: readonly ProfileType[];
127
+ optional: boolean;
128
+ editor: ProfileGraphEditor;
129
+ label: string;
130
+ /**
131
+ * Extra PROFILE_FIELDS top-level keys owned by this facet (not 1:1 with id).
132
+ * Used by the drift gate so `defaultModel` / `id` / `type` are not orphaned.
133
+ */
134
+ ownsFields?: readonly string[];
135
+ }
136
+ export declare const PROFILE_GRAPH: readonly ProfileGraphFacet[];
137
+ /** Spine (and root) facets visible for a profile type, in catalog order. */
138
+ declare function spineFacetsForProfileType(type: ProfileType): ProfileGraphFacet[];
139
+ declare function profileGraphFacet(id: ProfileGraphFacetId): ProfileGraphFacet | undefined;
140
+ export { profileGraphFacet, spineFacetsForProfileType };
@@ -0,0 +1,151 @@
1
+ import { ALL_PROFILE_TYPES, profileTypesForField } from './profile-scope.js';
2
+ /**
3
+ * Adding a profile section? Add it to PROFILE_FIELDS and a row here, never a FacetKind in the
4
+ * frontend. Each facet's `profileTypes` come from `PROFILE_FIELD_SCOPE` via its `profilePath`.
5
+ */
6
+ const PROFILE_GRAPH_DEF = [
7
+ {
8
+ id: 'identity',
9
+ profilePath: 'identity',
10
+ role: 'root',
11
+ optional: false,
12
+ editor: 'structural',
13
+ label: 'Identity',
14
+ ownsFields: ['id', 'type'],
15
+ },
16
+ {
17
+ id: 'models',
18
+ profilePath: 'models',
19
+ role: 'spine',
20
+ optional: false,
21
+ editor: 'structural',
22
+ label: 'Models',
23
+ ownsFields: ['defaultModel', 'allowModelSelect', 'maxSteps', 'key', 'fallbackKey'],
24
+ },
25
+ {
26
+ id: 'modelBinding',
27
+ profilePath: 'models.*',
28
+ role: 'branch',
29
+ parent: 'models',
30
+ optional: false,
31
+ editor: 'structural',
32
+ label: 'Model binding',
33
+ },
34
+ {
35
+ id: 'decision',
36
+ profilePath: 'decision',
37
+ role: 'spine',
38
+ optional: false,
39
+ editor: 'structural',
40
+ label: 'Decision',
41
+ ownsFields: ['inputs'],
42
+ },
43
+ {
44
+ id: 'image',
45
+ profilePath: 'image',
46
+ role: 'spine',
47
+ optional: false,
48
+ editor: 'structural',
49
+ label: 'Image',
50
+ },
51
+ {
52
+ id: 'speech',
53
+ profilePath: 'speech',
54
+ role: 'spine',
55
+ optional: false,
56
+ editor: 'structural',
57
+ label: 'Speech',
58
+ },
59
+ {
60
+ id: 'live',
61
+ profilePath: 'live',
62
+ role: 'spine',
63
+ optional: false,
64
+ editor: 'structural',
65
+ label: 'Live',
66
+ },
67
+ {
68
+ id: 'tools',
69
+ profilePath: 'tools',
70
+ role: 'spine',
71
+ optional: false,
72
+ editor: 'structural',
73
+ label: 'Tools',
74
+ },
75
+ {
76
+ id: 'toolSpec',
77
+ profilePath: 'tools.allow',
78
+ role: 'branch',
79
+ parent: 'tools',
80
+ optional: true,
81
+ editor: 'structural',
82
+ label: 'Tool',
83
+ },
84
+ {
85
+ id: 'inputs',
86
+ profilePath: 'inputs',
87
+ role: 'spine',
88
+ optional: false,
89
+ editor: 'structural',
90
+ label: 'Inputs',
91
+ },
92
+ {
93
+ id: 'outputs',
94
+ profilePath: 'outputs',
95
+ role: 'spine',
96
+ optional: true,
97
+ editor: 'structural',
98
+ label: 'Outputs',
99
+ },
100
+ {
101
+ id: 'turnBehaviour',
102
+ profilePath: 'turnBehaviour',
103
+ role: 'spine',
104
+ optional: true,
105
+ editor: 'structural',
106
+ label: 'Turn behaviour',
107
+ },
108
+ {
109
+ id: 'guardrails',
110
+ profilePath: 'guardrails',
111
+ role: 'spine',
112
+ optional: true,
113
+ editor: 'structural',
114
+ label: 'Guardrails',
115
+ },
116
+ {
117
+ id: 'observability',
118
+ profilePath: 'observability',
119
+ role: 'spine',
120
+ optional: true,
121
+ editor: 'structural',
122
+ label: 'Observability',
123
+ },
124
+ {
125
+ id: 'wording',
126
+ profilePath: 'lexicon',
127
+ role: 'spine',
128
+ optional: true,
129
+ editor: 'structural',
130
+ label: 'Wording',
131
+ },
132
+ ];
133
+ /** The facets whose types differ from their `profilePath`'s scope. */
134
+ const FACET_PROFILE_TYPES = {
135
+ // The root holds `id` and `type`, which every profile has.
136
+ identity: ALL_PROFILE_TYPES,
137
+ // A decision's inputs belong to its Decision facet.
138
+ inputs: profileTypesForField('inputs').filter((type) => type !== 'decision'),
139
+ };
140
+ export const PROFILE_GRAPH = PROFILE_GRAPH_DEF.map((facet) => ({
141
+ ...facet,
142
+ profileTypes: FACET_PROFILE_TYPES[facet.id] ?? profileTypesForField(facet.profilePath),
143
+ }));
144
+ /** Spine (and root) facets visible for a profile type, in catalog order. */
145
+ function spineFacetsForProfileType(type) {
146
+ return PROFILE_GRAPH.filter((facet) => (facet.role === 'root' || facet.role === 'spine') && facet.profileTypes.includes(type));
147
+ }
148
+ function profileGraphFacet(id) {
149
+ return PROFILE_GRAPH.find((facet) => facet.id === id);
150
+ }
151
+ export { profileGraphFacet, spineFacetsForProfileType };
@@ -0,0 +1,9 @@
1
+ /** lexicon-exempt-file: authoring field-meta presence notes — not runtime user or model copy (P2) */
2
+ export interface ProfileFieldPresence {
3
+ /** The profile must set the field: always (`true`), or only in the case named. */
4
+ required?: true | string;
5
+ /** What leaving the field out does, as a short phrase a blank control can show. */
6
+ unset?: string;
7
+ }
8
+ /** Presence for profile paths, keyed like `PROFILE_FIELDS` (`models.*` matches every binding). */
9
+ export declare const PROFILE_FIELD_PRESENCE: Readonly<Record<string, ProfileFieldPresence>>;