@amodalai/core 0.1.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 (463) hide show
  1. package/LICENSE +21 -0
  2. package/dist/.last_build +0 -0
  3. package/dist/src/amodal-config.d.ts +194 -0
  4. package/dist/src/amodal-config.js +326 -0
  5. package/dist/src/amodal-config.js.map +1 -0
  6. package/dist/src/audit/audit-logger.d.ts +52 -0
  7. package/dist/src/audit/audit-logger.js +137 -0
  8. package/dist/src/audit/audit-logger.js.map +1 -0
  9. package/dist/src/audit/audit-outputs.d.ts +34 -0
  10. package/dist/src/audit/audit-outputs.js +73 -0
  11. package/dist/src/audit/audit-outputs.js.map +1 -0
  12. package/dist/src/audit/audit-redact.d.ts +14 -0
  13. package/dist/src/audit/audit-redact.js +55 -0
  14. package/dist/src/audit/audit-redact.js.map +1 -0
  15. package/dist/src/audit/audit-types.d.ts +122 -0
  16. package/dist/src/audit/audit-types.js +64 -0
  17. package/dist/src/audit/audit-types.js.map +1 -0
  18. package/dist/src/audit/index.d.ts +10 -0
  19. package/dist/src/audit/index.js +10 -0
  20. package/dist/src/audit/index.js.map +1 -0
  21. package/dist/src/eval/eval-cost.d.ts +33 -0
  22. package/dist/src/eval/eval-cost.js +73 -0
  23. package/dist/src/eval/eval-cost.js.map +1 -0
  24. package/dist/src/eval/eval-diff.d.ts +11 -0
  25. package/dist/src/eval/eval-diff.js +97 -0
  26. package/dist/src/eval/eval-diff.js.map +1 -0
  27. package/dist/src/eval/eval-formatter.d.ts +23 -0
  28. package/dist/src/eval/eval-formatter.js +221 -0
  29. package/dist/src/eval/eval-formatter.js.map +1 -0
  30. package/dist/src/eval/eval-judge.d.ts +26 -0
  31. package/dist/src/eval/eval-judge.js +76 -0
  32. package/dist/src/eval/eval-judge.js.map +1 -0
  33. package/dist/src/eval/eval-run-builder.d.ts +25 -0
  34. package/dist/src/eval/eval-run-builder.js +78 -0
  35. package/dist/src/eval/eval-run-builder.js.map +1 -0
  36. package/dist/src/eval/eval-runner.d.ts +36 -0
  37. package/dist/src/eval/eval-runner.js +92 -0
  38. package/dist/src/eval/eval-runner.js.map +1 -0
  39. package/dist/src/eval/eval-session-provider.d.ts +40 -0
  40. package/dist/src/eval/eval-session-provider.js +46 -0
  41. package/dist/src/eval/eval-session-provider.js.map +1 -0
  42. package/dist/src/eval/eval-types.d.ts +146 -0
  43. package/dist/src/eval/eval-types.js +7 -0
  44. package/dist/src/eval/eval-types.js.map +1 -0
  45. package/dist/src/eval/experiment-runner.d.ts +16 -0
  46. package/dist/src/eval/experiment-runner.js +73 -0
  47. package/dist/src/eval/experiment-runner.js.map +1 -0
  48. package/dist/src/eval/experiment-types.d.ts +56 -0
  49. package/dist/src/eval/experiment-types.js +7 -0
  50. package/dist/src/eval/experiment-types.js.map +1 -0
  51. package/dist/src/eval/index.d.ts +22 -0
  52. package/dist/src/eval/index.js +18 -0
  53. package/dist/src/eval/index.js.map +1 -0
  54. package/dist/src/eval/multi-model-runner.d.ts +42 -0
  55. package/dist/src/eval/multi-model-runner.js +70 -0
  56. package/dist/src/eval/multi-model-runner.js.map +1 -0
  57. package/dist/src/eval/platform-eval-client.d.ts +105 -0
  58. package/dist/src/eval/platform-eval-client.js +155 -0
  59. package/dist/src/eval/platform-eval-client.js.map +1 -0
  60. package/dist/src/index.d.ts +41 -0
  61. package/dist/src/index.js +68 -0
  62. package/dist/src/index.js.map +1 -0
  63. package/dist/src/knowledge/index.d.ts +11 -0
  64. package/dist/src/knowledge/index.js +12 -0
  65. package/dist/src/knowledge/index.js.map +1 -0
  66. package/dist/src/knowledge/kb-formatter.d.ts +15 -0
  67. package/dist/src/knowledge/kb-formatter.js +78 -0
  68. package/dist/src/knowledge/kb-formatter.js.map +1 -0
  69. package/dist/src/knowledge/kb-index.d.ts +27 -0
  70. package/dist/src/knowledge/kb-index.js +66 -0
  71. package/dist/src/knowledge/kb-index.js.map +1 -0
  72. package/dist/src/knowledge/kb-types.d.ts +54 -0
  73. package/dist/src/knowledge/kb-types.js +7 -0
  74. package/dist/src/knowledge/kb-types.js.map +1 -0
  75. package/dist/src/knowledge/knowledge-store.d.ts +56 -0
  76. package/dist/src/knowledge/knowledge-store.js +141 -0
  77. package/dist/src/knowledge/knowledge-store.js.map +1 -0
  78. package/dist/src/knowledge/load-knowledge.d.ts +30 -0
  79. package/dist/src/knowledge/load-knowledge.js +161 -0
  80. package/dist/src/knowledge/load-knowledge.js.map +1 -0
  81. package/dist/src/knowledge/propose-kb-update.d.ts +32 -0
  82. package/dist/src/knowledge/propose-kb-update.js +148 -0
  83. package/dist/src/knowledge/propose-kb-update.js.map +1 -0
  84. package/dist/src/knowledge/propose-knowledge.d.ts +34 -0
  85. package/dist/src/knowledge/propose-knowledge.js +163 -0
  86. package/dist/src/knowledge/propose-knowledge.js.map +1 -0
  87. package/dist/src/mcp/index.d.ts +7 -0
  88. package/dist/src/mcp/index.js +7 -0
  89. package/dist/src/mcp/index.js.map +1 -0
  90. package/dist/src/mcp/mcp-manager.d.ts +96 -0
  91. package/dist/src/mcp/mcp-manager.js +192 -0
  92. package/dist/src/mcp/mcp-manager.js.map +1 -0
  93. package/dist/src/packages/config-deps.d.ts +20 -0
  94. package/dist/src/packages/config-deps.js +77 -0
  95. package/dist/src/packages/config-deps.js.map +1 -0
  96. package/dist/src/packages/env-file.d.ts +28 -0
  97. package/dist/src/packages/env-file.js +143 -0
  98. package/dist/src/packages/env-file.js.map +1 -0
  99. package/dist/src/packages/frontmatter.d.ts +28 -0
  100. package/dist/src/packages/frontmatter.js +77 -0
  101. package/dist/src/packages/frontmatter.js.map +1 -0
  102. package/dist/src/packages/index.d.ts +16 -0
  103. package/dist/src/packages/index.js +17 -0
  104. package/dist/src/packages/index.js.map +1 -0
  105. package/dist/src/packages/lock-file.d.ts +35 -0
  106. package/dist/src/packages/lock-file.js +117 -0
  107. package/dist/src/packages/lock-file.js.map +1 -0
  108. package/dist/src/packages/manifest-reader.d.ts +19 -0
  109. package/dist/src/packages/manifest-reader.js +91 -0
  110. package/dist/src/packages/manifest-reader.js.map +1 -0
  111. package/dist/src/packages/merge-engine.d.ts +63 -0
  112. package/dist/src/packages/merge-engine.js +357 -0
  113. package/dist/src/packages/merge-engine.js.map +1 -0
  114. package/dist/src/packages/npm-context.d.ts +56 -0
  115. package/dist/src/packages/npm-context.js +235 -0
  116. package/dist/src/packages/npm-context.js.map +1 -0
  117. package/dist/src/packages/npm-registry.d.ts +35 -0
  118. package/dist/src/packages/npm-registry.js +107 -0
  119. package/dist/src/packages/npm-registry.js.map +1 -0
  120. package/dist/src/packages/package-error.d.ts +16 -0
  121. package/dist/src/packages/package-error.js +17 -0
  122. package/dist/src/packages/package-error.js.map +1 -0
  123. package/dist/src/packages/package-types.d.ts +477 -0
  124. package/dist/src/packages/package-types.js +156 -0
  125. package/dist/src/packages/package-types.js.map +1 -0
  126. package/dist/src/packages/resolver.d.ts +41 -0
  127. package/dist/src/packages/resolver.js +353 -0
  128. package/dist/src/packages/resolver.js.map +1 -0
  129. package/dist/src/platform/config-builder.d.ts +24 -0
  130. package/dist/src/platform/config-builder.js +70 -0
  131. package/dist/src/platform/config-builder.js.map +1 -0
  132. package/dist/src/platform/index.d.ts +8 -0
  133. package/dist/src/platform/index.js +9 -0
  134. package/dist/src/platform/index.js.map +1 -0
  135. package/dist/src/platform/platform-client.d.ts +160 -0
  136. package/dist/src/platform/platform-client.js +486 -0
  137. package/dist/src/platform/platform-client.js.map +1 -0
  138. package/dist/src/platform/platform-types.d.ts +81 -0
  139. package/dist/src/platform/platform-types.js +18 -0
  140. package/dist/src/platform/platform-types.js.map +1 -0
  141. package/dist/src/providers/content-generator/google-to-llm.d.ts +87 -0
  142. package/dist/src/providers/content-generator/google-to-llm.js +226 -0
  143. package/dist/src/providers/content-generator/google-to-llm.js.map +1 -0
  144. package/dist/src/providers/content-generator/index.d.ts +10 -0
  145. package/dist/src/providers/content-generator/index.js +9 -0
  146. package/dist/src/providers/content-generator/index.js.map +1 -0
  147. package/dist/src/providers/content-generator/llm-to-google.d.ts +59 -0
  148. package/dist/src/providers/content-generator/llm-to-google.js +178 -0
  149. package/dist/src/providers/content-generator/llm-to-google.js.map +1 -0
  150. package/dist/src/providers/content-generator/multi-provider-content-generator.d.ts +61 -0
  151. package/dist/src/providers/content-generator/multi-provider-content-generator.js +144 -0
  152. package/dist/src/providers/content-generator/multi-provider-content-generator.js.map +1 -0
  153. package/dist/src/providers/runtime/anthropic-provider.d.ts +18 -0
  154. package/dist/src/providers/runtime/anthropic-provider.js +253 -0
  155. package/dist/src/providers/runtime/anthropic-provider.js.map +1 -0
  156. package/dist/src/providers/runtime/azure-provider.d.ts +25 -0
  157. package/dist/src/providers/runtime/azure-provider.js +206 -0
  158. package/dist/src/providers/runtime/azure-provider.js.map +1 -0
  159. package/dist/src/providers/runtime/bedrock-provider.d.ts +22 -0
  160. package/dist/src/providers/runtime/bedrock-provider.js +276 -0
  161. package/dist/src/providers/runtime/bedrock-provider.js.map +1 -0
  162. package/dist/src/providers/runtime/failover-provider.d.ts +30 -0
  163. package/dist/src/providers/runtime/failover-provider.js +124 -0
  164. package/dist/src/providers/runtime/failover-provider.js.map +1 -0
  165. package/dist/src/providers/runtime/google-provider.d.ts +17 -0
  166. package/dist/src/providers/runtime/google-provider.js +239 -0
  167. package/dist/src/providers/runtime/google-provider.js.map +1 -0
  168. package/dist/src/providers/runtime/index.d.ts +16 -0
  169. package/dist/src/providers/runtime/index.js +16 -0
  170. package/dist/src/providers/runtime/index.js.map +1 -0
  171. package/dist/src/providers/runtime/openai-provider.d.ts +21 -0
  172. package/dist/src/providers/runtime/openai-provider.js +266 -0
  173. package/dist/src/providers/runtime/openai-provider.js.map +1 -0
  174. package/dist/src/providers/runtime/provider-errors.d.ts +39 -0
  175. package/dist/src/providers/runtime/provider-errors.js +50 -0
  176. package/dist/src/providers/runtime/provider-errors.js.map +1 -0
  177. package/dist/src/providers/runtime/provider-factory.d.ts +19 -0
  178. package/dist/src/providers/runtime/provider-factory.js +45 -0
  179. package/dist/src/providers/runtime/provider-factory.js.map +1 -0
  180. package/dist/src/providers/runtime/runtime-provider-types.d.ts +63 -0
  181. package/dist/src/providers/runtime/runtime-provider-types.js +7 -0
  182. package/dist/src/providers/runtime/runtime-provider-types.js.map +1 -0
  183. package/dist/src/providers/runtime/streaming-types.d.ts +40 -0
  184. package/dist/src/providers/runtime/streaming-types.js +7 -0
  185. package/dist/src/providers/runtime/streaming-types.js.map +1 -0
  186. package/dist/src/repo/config-schema.d.ts +238 -0
  187. package/dist/src/repo/config-schema.js +155 -0
  188. package/dist/src/repo/config-schema.js.map +1 -0
  189. package/dist/src/repo/connection-schemas.d.ts +449 -0
  190. package/dist/src/repo/connection-schemas.js +109 -0
  191. package/dist/src/repo/connection-schemas.js.map +1 -0
  192. package/dist/src/repo/connection-types.d.ts +29 -0
  193. package/dist/src/repo/connection-types.js +7 -0
  194. package/dist/src/repo/connection-types.js.map +1 -0
  195. package/dist/src/repo/drift-detector.d.ts +26 -0
  196. package/dist/src/repo/drift-detector.js +66 -0
  197. package/dist/src/repo/drift-detector.js.map +1 -0
  198. package/dist/src/repo/graphql-drift-detector.d.ts +27 -0
  199. package/dist/src/repo/graphql-drift-detector.js +66 -0
  200. package/dist/src/repo/graphql-drift-detector.js.map +1 -0
  201. package/dist/src/repo/graphql-parser.d.ts +30 -0
  202. package/dist/src/repo/graphql-parser.js +125 -0
  203. package/dist/src/repo/graphql-parser.js.map +1 -0
  204. package/dist/src/repo/graphql-surface-parser.d.ts +20 -0
  205. package/dist/src/repo/graphql-surface-parser.js +74 -0
  206. package/dist/src/repo/graphql-surface-parser.js.map +1 -0
  207. package/dist/src/repo/index.d.ts +30 -0
  208. package/dist/src/repo/index.js +29 -0
  209. package/dist/src/repo/index.js.map +1 -0
  210. package/dist/src/repo/local-reader.d.ts +10 -0
  211. package/dist/src/repo/local-reader.js +299 -0
  212. package/dist/src/repo/local-reader.js.map +1 -0
  213. package/dist/src/repo/openapi-parser.d.ts +35 -0
  214. package/dist/src/repo/openapi-parser.js +93 -0
  215. package/dist/src/repo/openapi-parser.js.map +1 -0
  216. package/dist/src/repo/parsers.d.ts +91 -0
  217. package/dist/src/repo/parsers.js +454 -0
  218. package/dist/src/repo/parsers.js.map +1 -0
  219. package/dist/src/repo/platform-reader.d.ts +10 -0
  220. package/dist/src/repo/platform-reader.js +206 -0
  221. package/dist/src/repo/platform-reader.js.map +1 -0
  222. package/dist/src/repo/repo-loader.d.ts +14 -0
  223. package/dist/src/repo/repo-loader.js +25 -0
  224. package/dist/src/repo/repo-loader.js.map +1 -0
  225. package/dist/src/repo/repo-types.d.ts +159 -0
  226. package/dist/src/repo/repo-types.js +17 -0
  227. package/dist/src/repo/repo-types.js.map +1 -0
  228. package/dist/src/repo/spec-syncer.d.ts +30 -0
  229. package/dist/src/repo/spec-syncer.js +85 -0
  230. package/dist/src/repo/spec-syncer.js.map +1 -0
  231. package/dist/src/repo/store-loader.d.ts +19 -0
  232. package/dist/src/repo/store-loader.js +94 -0
  233. package/dist/src/repo/store-loader.js.map +1 -0
  234. package/dist/src/repo/store-schemas.d.ts +313 -0
  235. package/dist/src/repo/store-schemas.js +103 -0
  236. package/dist/src/repo/store-schemas.js.map +1 -0
  237. package/dist/src/repo/store-tool-schema.d.ts +29 -0
  238. package/dist/src/repo/store-tool-schema.js +103 -0
  239. package/dist/src/repo/store-tool-schema.js.map +1 -0
  240. package/dist/src/repo/store-types.d.ts +91 -0
  241. package/dist/src/repo/store-types.js +7 -0
  242. package/dist/src/repo/store-types.js.map +1 -0
  243. package/dist/src/repo/surface-parser.d.ts +17 -0
  244. package/dist/src/repo/surface-parser.js +75 -0
  245. package/dist/src/repo/surface-parser.js.map +1 -0
  246. package/dist/src/repo/tool-loader.d.ts +33 -0
  247. package/dist/src/repo/tool-loader.js +240 -0
  248. package/dist/src/repo/tool-loader.js.map +1 -0
  249. package/dist/src/repo/tool-types.d.ts +205 -0
  250. package/dist/src/repo/tool-types.js +61 -0
  251. package/dist/src/repo/tool-types.js.map +1 -0
  252. package/dist/src/roles/index.d.ts +7 -0
  253. package/dist/src/roles/index.js +8 -0
  254. package/dist/src/roles/index.js.map +1 -0
  255. package/dist/src/roles/role-filter.d.ts +33 -0
  256. package/dist/src/roles/role-filter.js +55 -0
  257. package/dist/src/roles/role-filter.js.map +1 -0
  258. package/dist/src/roles/role-types.d.ts +76 -0
  259. package/dist/src/roles/role-types.js +38 -0
  260. package/dist/src/roles/role-types.js.map +1 -0
  261. package/dist/src/runtime/connection-bridge.d.ts +19 -0
  262. package/dist/src/runtime/connection-bridge.js +103 -0
  263. package/dist/src/runtime/connection-bridge.js.map +1 -0
  264. package/dist/src/runtime/context-compiler.d.ts +35 -0
  265. package/dist/src/runtime/context-compiler.js +183 -0
  266. package/dist/src/runtime/context-compiler.js.map +1 -0
  267. package/dist/src/runtime/default-prompt.d.ts +28 -0
  268. package/dist/src/runtime/default-prompt.js +71 -0
  269. package/dist/src/runtime/default-prompt.js.map +1 -0
  270. package/dist/src/runtime/explore-tool.d.ts +96 -0
  271. package/dist/src/runtime/explore-tool.js +111 -0
  272. package/dist/src/runtime/explore-tool.js.map +1 -0
  273. package/dist/src/runtime/index.d.ts +26 -0
  274. package/dist/src/runtime/index.js +19 -0
  275. package/dist/src/runtime/index.js.map +1 -0
  276. package/dist/src/runtime/output-pipeline.d.ts +62 -0
  277. package/dist/src/runtime/output-pipeline.js +69 -0
  278. package/dist/src/runtime/output-pipeline.js.map +1 -0
  279. package/dist/src/runtime/plan-mode.d.ts +39 -0
  280. package/dist/src/runtime/plan-mode.js +81 -0
  281. package/dist/src/runtime/plan-mode.js.map +1 -0
  282. package/dist/src/runtime/preference-client.d.ts +39 -0
  283. package/dist/src/runtime/preference-client.js +70 -0
  284. package/dist/src/runtime/preference-client.js.map +1 -0
  285. package/dist/src/runtime/preference-detector.d.ts +22 -0
  286. package/dist/src/runtime/preference-detector.js +95 -0
  287. package/dist/src/runtime/preference-detector.js.map +1 -0
  288. package/dist/src/runtime/request-integration.d.ts +18 -0
  289. package/dist/src/runtime/request-integration.js +36 -0
  290. package/dist/src/runtime/request-integration.js.map +1 -0
  291. package/dist/src/runtime/runtime-types.d.ts +48 -0
  292. package/dist/src/runtime/runtime-types.js +7 -0
  293. package/dist/src/runtime/runtime-types.js.map +1 -0
  294. package/dist/src/runtime/session-setup.d.ts +53 -0
  295. package/dist/src/runtime/session-setup.js +90 -0
  296. package/dist/src/runtime/session-setup.js.map +1 -0
  297. package/dist/src/runtime/telemetry-client.d.ts +39 -0
  298. package/dist/src/runtime/telemetry-client.js +87 -0
  299. package/dist/src/runtime/telemetry-client.js.map +1 -0
  300. package/dist/src/runtime/telemetry-hooks.d.ts +47 -0
  301. package/dist/src/runtime/telemetry-hooks.js +115 -0
  302. package/dist/src/runtime/telemetry-hooks.js.map +1 -0
  303. package/dist/src/runtime/token-allocator.d.ts +34 -0
  304. package/dist/src/runtime/token-allocator.js +86 -0
  305. package/dist/src/runtime/token-allocator.js.map +1 -0
  306. package/dist/src/runtime/user-context.d.ts +49 -0
  307. package/dist/src/runtime/user-context.js +135 -0
  308. package/dist/src/runtime/user-context.js.map +1 -0
  309. package/dist/src/sdk.d.ts +57 -0
  310. package/dist/src/sdk.js +377 -0
  311. package/dist/src/sdk.js.map +1 -0
  312. package/dist/src/security/action-gate.d.ts +23 -0
  313. package/dist/src/security/action-gate.js +78 -0
  314. package/dist/src/security/action-gate.js.map +1 -0
  315. package/dist/src/security/field-scrubber.d.ts +27 -0
  316. package/dist/src/security/field-scrubber.js +152 -0
  317. package/dist/src/security/field-scrubber.js.map +1 -0
  318. package/dist/src/security/index.d.ts +14 -0
  319. package/dist/src/security/index.js +15 -0
  320. package/dist/src/security/index.js.map +1 -0
  321. package/dist/src/security/leak-detector.d.ts +23 -0
  322. package/dist/src/security/leak-detector.js +51 -0
  323. package/dist/src/security/leak-detector.js.map +1 -0
  324. package/dist/src/security/output-guard.d.ts +33 -0
  325. package/dist/src/security/output-guard.js +118 -0
  326. package/dist/src/security/output-guard.js.map +1 -0
  327. package/dist/src/security/pattern-scanner.d.ts +19 -0
  328. package/dist/src/security/pattern-scanner.js +66 -0
  329. package/dist/src/security/pattern-scanner.js.map +1 -0
  330. package/dist/src/security/scope-checker.d.ts +27 -0
  331. package/dist/src/security/scope-checker.js +52 -0
  332. package/dist/src/security/scope-checker.js.map +1 -0
  333. package/dist/src/security/scrub-tracker.d.ts +21 -0
  334. package/dist/src/security/scrub-tracker.js +39 -0
  335. package/dist/src/security/scrub-tracker.js.map +1 -0
  336. package/dist/src/security/security-types.d.ts +69 -0
  337. package/dist/src/security/security-types.js +17 -0
  338. package/dist/src/security/security-types.js.map +1 -0
  339. package/dist/src/security/threshold-evaluator.d.ts +13 -0
  340. package/dist/src/security/threshold-evaluator.js +44 -0
  341. package/dist/src/security/threshold-evaluator.js.map +1 -0
  342. package/dist/src/snapshot/index.d.ts +8 -0
  343. package/dist/src/snapshot/index.js +9 -0
  344. package/dist/src/snapshot/index.js.map +1 -0
  345. package/dist/src/snapshot/snapshot-builder.d.ts +37 -0
  346. package/dist/src/snapshot/snapshot-builder.js +152 -0
  347. package/dist/src/snapshot/snapshot-builder.js.map +1 -0
  348. package/dist/src/snapshot/snapshot-loader.d.ts +29 -0
  349. package/dist/src/snapshot/snapshot-loader.js +188 -0
  350. package/dist/src/snapshot/snapshot-loader.js.map +1 -0
  351. package/dist/src/snapshot/snapshot-types.d.ts +1940 -0
  352. package/dist/src/snapshot/snapshot-types.js +145 -0
  353. package/dist/src/snapshot/snapshot-types.js.map +1 -0
  354. package/dist/src/stores/index.d.ts +6 -0
  355. package/dist/src/stores/index.js +7 -0
  356. package/dist/src/stores/index.js.map +1 -0
  357. package/dist/src/stores/store-backend.d.ts +135 -0
  358. package/dist/src/stores/store-backend.js +7 -0
  359. package/dist/src/stores/store-backend.js.map +1 -0
  360. package/dist/src/templates/connections.d.ts +14 -0
  361. package/dist/src/templates/connections.js +7 -0
  362. package/dist/src/templates/connections.js.map +1 -0
  363. package/dist/src/templates/index.d.ts +7 -0
  364. package/dist/src/templates/index.js +8 -0
  365. package/dist/src/templates/index.js.map +1 -0
  366. package/dist/src/templates/template-resolver.d.ts +45 -0
  367. package/dist/src/templates/template-resolver.js +121 -0
  368. package/dist/src/templates/template-resolver.js.map +1 -0
  369. package/dist/src/tool-context.d.ts +33 -0
  370. package/dist/src/tool-context.js +7 -0
  371. package/dist/src/tool-context.js.map +1 -0
  372. package/dist/src/tool-registration.d.ts +14 -0
  373. package/dist/src/tool-registration.js +51 -0
  374. package/dist/src/tool-registration.js.map +1 -0
  375. package/dist/src/tools/amodal-tool-errors.d.ts +24 -0
  376. package/dist/src/tools/amodal-tool-errors.js +28 -0
  377. package/dist/src/tools/amodal-tool-errors.js.map +1 -0
  378. package/dist/src/tools/amodal-tool-names.d.ts +14 -0
  379. package/dist/src/tools/amodal-tool-names.js +15 -0
  380. package/dist/src/tools/amodal-tool-names.js.map +1 -0
  381. package/dist/src/tools/chain-tool-registry.d.ts +20 -0
  382. package/dist/src/tools/chain-tool-registry.js +49 -0
  383. package/dist/src/tools/chain-tool-registry.js.map +1 -0
  384. package/dist/src/tools/chain-tool-types.d.ts +190 -0
  385. package/dist/src/tools/chain-tool-types.js +50 -0
  386. package/dist/src/tools/chain-tool-types.js.map +1 -0
  387. package/dist/src/tools/chain-tool.d.ts +34 -0
  388. package/dist/src/tools/chain-tool.js +294 -0
  389. package/dist/src/tools/chain-tool.js.map +1 -0
  390. package/dist/src/tools/custom-tool-registrar.d.ts +8 -0
  391. package/dist/src/tools/custom-tool-registrar.js +10 -0
  392. package/dist/src/tools/custom-tool-registrar.js.map +1 -0
  393. package/dist/src/tools/definitions/amodal-tools.d.ts +9 -0
  394. package/dist/src/tools/definitions/amodal-tools.js +192 -0
  395. package/dist/src/tools/definitions/amodal-tools.js.map +1 -0
  396. package/dist/src/tools/function-tool-registry.d.ts +22 -0
  397. package/dist/src/tools/function-tool-registry.js +45 -0
  398. package/dist/src/tools/function-tool-registry.js.map +1 -0
  399. package/dist/src/tools/function-tool-types.d.ts +76 -0
  400. package/dist/src/tools/function-tool-types.js +27 -0
  401. package/dist/src/tools/function-tool-types.js.map +1 -0
  402. package/dist/src/tools/function-tool.d.ts +34 -0
  403. package/dist/src/tools/function-tool.js +97 -0
  404. package/dist/src/tools/function-tool.js.map +1 -0
  405. package/dist/src/tools/http-tool-registry.d.ts +20 -0
  406. package/dist/src/tools/http-tool-registry.js +34 -0
  407. package/dist/src/tools/http-tool-registry.js.map +1 -0
  408. package/dist/src/tools/http-tool-types.d.ts +92 -0
  409. package/dist/src/tools/http-tool-types.js +44 -0
  410. package/dist/src/tools/http-tool-types.js.map +1 -0
  411. package/dist/src/tools/http-tool.d.ts +32 -0
  412. package/dist/src/tools/http-tool.js +176 -0
  413. package/dist/src/tools/http-tool.js.map +1 -0
  414. package/dist/src/tools/merge-template.d.ts +33 -0
  415. package/dist/src/tools/merge-template.js +65 -0
  416. package/dist/src/tools/merge-template.js.map +1 -0
  417. package/dist/src/tools/request-tool-types.d.ts +46 -0
  418. package/dist/src/tools/request-tool-types.js +20 -0
  419. package/dist/src/tools/request-tool-types.js.map +1 -0
  420. package/dist/src/tools/request-tool.d.ts +29 -0
  421. package/dist/src/tools/request-tool.js +268 -0
  422. package/dist/src/tools/request-tool.js.map +1 -0
  423. package/dist/src/tools/store-query-tool.d.ts +29 -0
  424. package/dist/src/tools/store-query-tool.js +82 -0
  425. package/dist/src/tools/store-query-tool.js.map +1 -0
  426. package/dist/src/tools/store-write-tool.d.ts +26 -0
  427. package/dist/src/tools/store-write-tool.js +84 -0
  428. package/dist/src/tools/store-write-tool.js.map +1 -0
  429. package/dist/src/tools/tool-definition-types.d.ts +21 -0
  430. package/dist/src/tools/tool-definition-types.js +7 -0
  431. package/dist/src/tools/tool-definition-types.js.map +1 -0
  432. package/dist/src/tools/tool-utils.d.ts +29 -0
  433. package/dist/src/tools/tool-utils.js +66 -0
  434. package/dist/src/tools/tool-utils.js.map +1 -0
  435. package/dist/src/versions/bundle-loader.d.ts +37 -0
  436. package/dist/src/versions/bundle-loader.js +99 -0
  437. package/dist/src/versions/bundle-loader.js.map +1 -0
  438. package/dist/src/versions/dependency-manager.d.ts +54 -0
  439. package/dist/src/versions/dependency-manager.js +132 -0
  440. package/dist/src/versions/dependency-manager.js.map +1 -0
  441. package/dist/src/versions/handler-loader.d.ts +27 -0
  442. package/dist/src/versions/handler-loader.js +62 -0
  443. package/dist/src/versions/handler-loader.js.map +1 -0
  444. package/dist/src/versions/index.d.ts +10 -0
  445. package/dist/src/versions/index.js +11 -0
  446. package/dist/src/versions/index.js.map +1 -0
  447. package/dist/src/versions/version-bundle-types.d.ts +1278 -0
  448. package/dist/src/versions/version-bundle-types.js +207 -0
  449. package/dist/src/versions/version-bundle-types.js.map +1 -0
  450. package/dist/src/versions/version-manager.d.ts +89 -0
  451. package/dist/src/versions/version-manager.js +124 -0
  452. package/dist/src/versions/version-manager.js.map +1 -0
  453. package/dist/src/widgets/index.d.ts +8 -0
  454. package/dist/src/widgets/index.js +8 -0
  455. package/dist/src/widgets/index.js.map +1 -0
  456. package/dist/src/widgets/present-tool.d.ts +21 -0
  457. package/dist/src/widgets/present-tool.js +107 -0
  458. package/dist/src/widgets/present-tool.js.map +1 -0
  459. package/dist/src/widgets/widget-types.d.ts +78 -0
  460. package/dist/src/widgets/widget-types.js +28 -0
  461. package/dist/src/widgets/widget-types.js.map +1 -0
  462. package/dist/tsconfig.tsbuildinfo +1 -0
  463. package/package.json +50 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { randomUUID } from 'node:crypto';
7
+ import { ScrubTracker } from '../security/scrub-tracker.js';
8
+ import { FieldScrubber } from '../security/field-scrubber.js';
9
+ import { OutputGuard } from '../security/output-guard.js';
10
+ import { ActionGate } from '../security/action-gate.js';
11
+ import { TokenAllocator, getModelContextWindow } from './token-allocator.js';
12
+ import { ContextCompiler } from './context-compiler.js';
13
+ import { OutputPipeline } from './output-pipeline.js';
14
+ import { RuntimeTelemetry } from './telemetry-hooks.js';
15
+ import { buildAccessConfigs, buildConnectionsMap } from './connection-bridge.js';
16
+ import { resolveScopeLabels, generateFieldGuidance, generateAlternativeLookupGuidance, } from './user-context.js';
17
+ /**
18
+ * Sets up a complete session runtime from a loaded repo.
19
+ *
20
+ * This is synchronous — the repo must already be loaded and no HTTP calls
21
+ * are made. All security components, context compilation, and telemetry
22
+ * are initialized and ready for use.
23
+ */
24
+ export function setupSession(options) {
25
+ const { repo } = options;
26
+ const isDelegated = options.isDelegated ?? false;
27
+ const userRoles = options.userRoles ?? [];
28
+ const sessionId = randomUUID();
29
+ // Build connection maps
30
+ const accessConfigs = buildAccessConfigs(repo.connections);
31
+ const connectionsMap = buildConnectionsMap(repo.connections);
32
+ // Resolve scope and field guidance
33
+ const { scopeLabels, scopeRules } = resolveScopeLabels(repo.connections, userRoles);
34
+ const fieldGuidance = generateFieldGuidance(repo.connections, userRoles);
35
+ const alternativeLookupGuidance = generateAlternativeLookupGuidance(repo.connections);
36
+ // Security components
37
+ const scrubTracker = new ScrubTracker();
38
+ const fieldScrubber = new FieldScrubber({
39
+ accessConfigs,
40
+ userRoles,
41
+ tracker: scrubTracker,
42
+ });
43
+ const outputGuard = new OutputGuard({
44
+ tracker: scrubTracker,
45
+ accessConfigs,
46
+ userRoles,
47
+ scopeContext: { scopeRules, scopeLabels },
48
+ });
49
+ const actionGate = new ActionGate({
50
+ accessConfigs,
51
+ isDelegated,
52
+ });
53
+ // Context compilation
54
+ const modelWindow = getModelContextWindow(repo.config.models.main.model);
55
+ const allocator = new TokenAllocator(modelWindow);
56
+ const contextCompiler = new ContextCompiler({ repo, allocator });
57
+ const sessionConfig = {
58
+ repo,
59
+ userRoles,
60
+ scopeLabels,
61
+ fieldGuidance,
62
+ alternativeLookupGuidance,
63
+ planMode: false,
64
+ isDelegated,
65
+ sessionId,
66
+ };
67
+ const compiledContext = contextCompiler.compile(sessionConfig);
68
+ const exploreContext = contextCompiler.compileExplore(sessionConfig);
69
+ // Output pipeline
70
+ const outputPipeline = new OutputPipeline({ outputGuard });
71
+ // Telemetry
72
+ const telemetry = new RuntimeTelemetry(sessionId, options.telemetrySink);
73
+ return {
74
+ repo,
75
+ scrubTracker,
76
+ fieldScrubber,
77
+ outputGuard,
78
+ actionGate,
79
+ contextCompiler,
80
+ compiledContext,
81
+ exploreContext,
82
+ outputPipeline,
83
+ telemetry,
84
+ connectionsMap,
85
+ userRoles,
86
+ sessionId,
87
+ isDelegated,
88
+ };
89
+ }
90
+ //# sourceMappingURL=session-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-setup.js","sourceRoot":"","sources":["../../../src/runtime/session-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { TelemetrySink } from './telemetry-hooks.js';
7
+ /**
8
+ * Buffers RuntimeTelemetryEvents and batch-POSTs them to the platform API.
9
+ * Errors are swallowed — telemetry must never crash the runtime.
10
+ */
11
+ export declare class PlatformTelemetrySink {
12
+ private readonly buffer;
13
+ private readonly platformUrl;
14
+ private readonly apiKey;
15
+ private readonly batchSize;
16
+ private readonly flushIntervalMs;
17
+ private flushTimer;
18
+ private destroyed;
19
+ constructor(platformUrl: string, apiKey: string, options?: {
20
+ batchSize?: number;
21
+ flushIntervalMs?: number;
22
+ });
23
+ /**
24
+ * Returns a TelemetrySink callback for use with RuntimeTelemetry.
25
+ */
26
+ sink(): TelemetrySink;
27
+ /**
28
+ * Flush all buffered events to the platform.
29
+ */
30
+ flush(): Promise<void>;
31
+ /**
32
+ * Stop the flush timer and flush remaining events.
33
+ */
34
+ destroy(): Promise<void>;
35
+ /**
36
+ * Number of events currently buffered (for testing).
37
+ */
38
+ get bufferedCount(): number;
39
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ const DEFAULT_BATCH_SIZE = 50;
7
+ const DEFAULT_FLUSH_INTERVAL_MS = 5_000;
8
+ /**
9
+ * Buffers RuntimeTelemetryEvents and batch-POSTs them to the platform API.
10
+ * Errors are swallowed — telemetry must never crash the runtime.
11
+ */
12
+ export class PlatformTelemetrySink {
13
+ buffer = [];
14
+ platformUrl;
15
+ apiKey;
16
+ batchSize;
17
+ flushIntervalMs;
18
+ flushTimer = null;
19
+ destroyed = false;
20
+ constructor(platformUrl, apiKey, options) {
21
+ this.platformUrl = platformUrl.replace(/\/$/, '');
22
+ this.apiKey = apiKey;
23
+ this.batchSize = options?.batchSize ?? DEFAULT_BATCH_SIZE;
24
+ this.flushIntervalMs = options?.flushIntervalMs ?? DEFAULT_FLUSH_INTERVAL_MS;
25
+ this.flushTimer = setInterval(() => {
26
+ void this.flush();
27
+ }, this.flushIntervalMs);
28
+ if (this.flushTimer && typeof this.flushTimer === 'object' && 'unref' in this.flushTimer) {
29
+ this.flushTimer.unref();
30
+ }
31
+ }
32
+ /**
33
+ * Returns a TelemetrySink callback for use with RuntimeTelemetry.
34
+ */
35
+ sink() {
36
+ return (event) => {
37
+ if (this.destroyed)
38
+ return;
39
+ this.buffer.push(event);
40
+ if (this.buffer.length >= this.batchSize) {
41
+ void this.flush();
42
+ }
43
+ };
44
+ }
45
+ /**
46
+ * Flush all buffered events to the platform.
47
+ */
48
+ async flush() {
49
+ if (this.buffer.length === 0)
50
+ return;
51
+ const events = this.buffer.splice(0, this.buffer.length);
52
+ try {
53
+ const response = await fetch(`${this.platformUrl}/api/telemetry/ingest`, {
54
+ method: 'POST',
55
+ headers: {
56
+ 'Content-Type': 'application/json',
57
+ 'Authorization': `Bearer ${this.apiKey}`,
58
+ },
59
+ body: JSON.stringify({ events }),
60
+ });
61
+ if (!response.ok) {
62
+ // Swallow — telemetry failures must not affect the runtime
63
+ }
64
+ }
65
+ catch {
66
+ // Swallow network errors
67
+ }
68
+ }
69
+ /**
70
+ * Stop the flush timer and flush remaining events.
71
+ */
72
+ async destroy() {
73
+ this.destroyed = true;
74
+ if (this.flushTimer) {
75
+ clearInterval(this.flushTimer);
76
+ this.flushTimer = null;
77
+ }
78
+ await this.flush();
79
+ }
80
+ /**
81
+ * Number of events currently buffered (for testing).
82
+ */
83
+ get bufferedCount() {
84
+ return this.buffer.length;
85
+ }
86
+ }
87
+ //# sourceMappingURL=telemetry-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-client.js","sourceRoot":"","sources":["../../../src/runtime/telemetry-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAExC;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACf,MAAM,GAA4B,EAAE,CAAC;IACrC,WAAW,CAAS;IACpB,MAAM,CAAS;IACf,SAAS,CAAS;IAClB,eAAe,CAAS;IACjC,UAAU,GAA0C,IAAI,CAAC;IACzD,SAAS,GAAG,KAAK,CAAC;IAE1B,YACE,WAAmB,EACnB,MAAc,EACd,OAAwD;QAExD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,yBAAyB,CAAC;QAE7E,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,CAAC,KAA4B,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAErC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,uBAAuB,EAAE;gBACvE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACzC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,MAAM,EAAC,CAAC;aAC/B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,2DAA2D;YAC7D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { ScrubResult, GuardResult, GateResult } from '../security/security-types.js';
7
+ /**
8
+ * All telemetry event types the runtime can emit.
9
+ */
10
+ export type TelemetryEventType = 'field_scrub' | 'output_guard' | 'action_gate' | 'explore_dispatch' | 'plan_mode' | 'tool_call' | 'session_summary';
11
+ /**
12
+ * A telemetry event emitted by the runtime.
13
+ */
14
+ export interface RuntimeTelemetryEvent {
15
+ type: TelemetryEventType;
16
+ sessionId: string;
17
+ timestamp: number;
18
+ data: Record<string, unknown>;
19
+ }
20
+ /**
21
+ * A function that receives telemetry events.
22
+ */
23
+ export type TelemetrySink = (event: RuntimeTelemetryEvent) => void;
24
+ /**
25
+ * Structured telemetry for runtime security and orchestration events.
26
+ * Each log method constructs a RuntimeTelemetryEvent and sends it
27
+ * to the configured sink. If no sink is provided, all methods are no-ops.
28
+ */
29
+ export declare class RuntimeTelemetry {
30
+ private readonly sessionId;
31
+ private readonly sink?;
32
+ constructor(sessionId: string, sink?: TelemetrySink);
33
+ logScrub(result: ScrubResult, connectionName: string, endpointPath: string): void;
34
+ logGuard(result: GuardResult): void;
35
+ logGate(result: GateResult): void;
36
+ logExplore(query: string, resultTokens: number): void;
37
+ logPlanMode(action: 'enter' | 'approve' | 'exit'): void;
38
+ logToolCall(toolName: string, durationMs: number, tokenCount: number, modelProvider?: string, modelName?: string): void;
39
+ logSessionSummary(summary: {
40
+ totalTokens: number;
41
+ totalDurationMs: number;
42
+ toolCallCount: number;
43
+ scrubCount: number;
44
+ guardCount: number;
45
+ estimatedCostMicros: number;
46
+ }): void;
47
+ }
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Structured telemetry for runtime security and orchestration events.
8
+ * Each log method constructs a RuntimeTelemetryEvent and sends it
9
+ * to the configured sink. If no sink is provided, all methods are no-ops.
10
+ */
11
+ export class RuntimeTelemetry {
12
+ sessionId;
13
+ sink;
14
+ constructor(sessionId, sink) {
15
+ this.sessionId = sessionId;
16
+ this.sink = sink;
17
+ }
18
+ logScrub(result, connectionName, endpointPath) {
19
+ if (!this.sink)
20
+ return;
21
+ this.sink({
22
+ type: 'field_scrub',
23
+ sessionId: this.sessionId,
24
+ timestamp: Date.now(),
25
+ data: {
26
+ connectionName,
27
+ endpointPath,
28
+ strippedCount: result['strippedCount'],
29
+ redactableCount: result['redactableCount'],
30
+ },
31
+ });
32
+ }
33
+ logGuard(result) {
34
+ if (!this.sink)
35
+ return;
36
+ const findingTypes = [...new Set(result['findings'].map((f) => f.type))];
37
+ this.sink({
38
+ type: 'output_guard',
39
+ sessionId: this.sessionId,
40
+ timestamp: Date.now(),
41
+ data: {
42
+ modified: result['modified'],
43
+ blocked: result['blocked'],
44
+ findingCount: result['findings'].length,
45
+ findingTypes,
46
+ },
47
+ });
48
+ }
49
+ logGate(result) {
50
+ if (!this.sink)
51
+ return;
52
+ this.sink({
53
+ type: 'action_gate',
54
+ sessionId: this.sessionId,
55
+ timestamp: Date.now(),
56
+ data: {
57
+ decision: result['decision'],
58
+ escalated: result['escalated'],
59
+ endpointPath: result['endpointPath'],
60
+ },
61
+ });
62
+ }
63
+ logExplore(query, resultTokens) {
64
+ if (!this.sink)
65
+ return;
66
+ this.sink({
67
+ type: 'explore_dispatch',
68
+ sessionId: this.sessionId,
69
+ timestamp: Date.now(),
70
+ data: {
71
+ query,
72
+ resultTokens,
73
+ },
74
+ });
75
+ }
76
+ logPlanMode(action) {
77
+ if (!this.sink)
78
+ return;
79
+ this.sink({
80
+ type: 'plan_mode',
81
+ sessionId: this.sessionId,
82
+ timestamp: Date.now(),
83
+ data: {
84
+ action,
85
+ },
86
+ });
87
+ }
88
+ logToolCall(toolName, durationMs, tokenCount, modelProvider, modelName) {
89
+ if (!this.sink)
90
+ return;
91
+ this.sink({
92
+ type: 'tool_call',
93
+ sessionId: this.sessionId,
94
+ timestamp: Date.now(),
95
+ data: {
96
+ toolName,
97
+ durationMs,
98
+ tokenCount,
99
+ modelProvider,
100
+ modelName,
101
+ },
102
+ });
103
+ }
104
+ logSessionSummary(summary) {
105
+ if (!this.sink)
106
+ return;
107
+ this.sink({
108
+ type: 'session_summary',
109
+ sessionId: this.sessionId,
110
+ timestamp: Date.now(),
111
+ data: summary,
112
+ });
113
+ }
114
+ }
115
+ //# sourceMappingURL=telemetry-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-hooks.js","sourceRoot":"","sources":["../../../src/runtime/telemetry-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { ContextSection } from './runtime-types.js';
7
+ /**
8
+ * Returns the context window size for a given model string.
9
+ */
10
+ export declare function getModelContextWindow(model: string): number;
11
+ /**
12
+ * Allocates token budget across context sections using priority-based trimming.
13
+ *
14
+ * Sections with lower priority numbers are trimmed first when the total
15
+ * exceeds the available budget.
16
+ */
17
+ export declare class TokenAllocator {
18
+ readonly budget: number;
19
+ constructor(modelContextWindow: number, reserveForResponse?: number);
20
+ /**
21
+ * Estimates the number of tokens in a text string.
22
+ * Uses the chars / 4 heuristic.
23
+ */
24
+ estimateTokens(text: string): number;
25
+ /**
26
+ * Allocates budget to sections, trimming lowest-priority sections first
27
+ * when the total exceeds available budget.
28
+ */
29
+ allocate(sections: ContextSection[]): {
30
+ included: ContextSection[];
31
+ trimmed: ContextSection[];
32
+ totalTokens: number;
33
+ };
34
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ const DEFAULT_RESPONSE_RESERVE = 4096;
7
+ /**
8
+ * Returns the context window size for a given model string.
9
+ */
10
+ export function getModelContextWindow(model) {
11
+ const lower = model.toLowerCase();
12
+ if (lower.includes('gemini')) {
13
+ return 1_000_000;
14
+ }
15
+ if (lower.includes('claude')) {
16
+ return 200_000;
17
+ }
18
+ if (lower.includes('gpt-4o')) {
19
+ return 128_000;
20
+ }
21
+ return 128_000;
22
+ }
23
+ /**
24
+ * Allocates token budget across context sections using priority-based trimming.
25
+ *
26
+ * Sections with lower priority numbers are trimmed first when the total
27
+ * exceeds the available budget.
28
+ */
29
+ export class TokenAllocator {
30
+ budget;
31
+ constructor(modelContextWindow, reserveForResponse = DEFAULT_RESPONSE_RESERVE) {
32
+ this.budget = Math.max(0, modelContextWindow - reserveForResponse);
33
+ }
34
+ /**
35
+ * Estimates the number of tokens in a text string.
36
+ * Uses the chars / 4 heuristic.
37
+ */
38
+ estimateTokens(text) {
39
+ return Math.ceil(text.length / 4);
40
+ }
41
+ /**
42
+ * Allocates budget to sections, trimming lowest-priority sections first
43
+ * when the total exceeds available budget.
44
+ */
45
+ allocate(sections) {
46
+ // Calculate tokens for each section
47
+ const withTokens = sections.map((s) => ({
48
+ ...s,
49
+ tokens: this.estimateTokens(s.content),
50
+ }));
51
+ const totalNeeded = withTokens.reduce((sum, s) => sum + s.tokens, 0);
52
+ // Everything fits
53
+ if (totalNeeded <= this.budget) {
54
+ return {
55
+ included: withTokens.map((s) => ({ ...s, trimmed: false })),
56
+ trimmed: [],
57
+ totalTokens: totalNeeded,
58
+ };
59
+ }
60
+ // Sort by priority ascending to trim lowest first
61
+ const sortedByPriority = [...withTokens].sort((a, b) => a.priority - b.priority);
62
+ let excess = totalNeeded - this.budget;
63
+ const trimmedNames = new Set();
64
+ for (const section of sortedByPriority) {
65
+ if (excess <= 0) {
66
+ break;
67
+ }
68
+ trimmedNames.add(section.name);
69
+ excess -= section.tokens;
70
+ }
71
+ const included = [];
72
+ const trimmed = [];
73
+ let totalTokens = 0;
74
+ for (const section of withTokens) {
75
+ if (trimmedNames.has(section.name)) {
76
+ trimmed.push({ ...section, content: '', tokens: 0, trimmed: true });
77
+ }
78
+ else {
79
+ included.push({ ...section, trimmed: false });
80
+ totalTokens += section.tokens;
81
+ }
82
+ }
83
+ return { included, trimmed, totalTokens };
84
+ }
85
+ }
86
+ //# sourceMappingURL=token-allocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-allocator.js","sourceRoot":"","sources":["../../../src/runtime/token-allocator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { LoadedConnection } from '../repo/connection-types.js';
7
+ import type { ScopingRule } from '../repo/connection-schemas.js';
8
+ /**
9
+ * The result of processing a user context response.
10
+ */
11
+ export interface UserContextResult {
12
+ raw: Record<string, unknown>;
13
+ roles: string[];
14
+ scopeLabels: Record<string, string>;
15
+ scopeRules: Record<string, ScopingRule>;
16
+ fieldGuidance: string;
17
+ alternativeLookupGuidance: string;
18
+ }
19
+ /**
20
+ * Extract roles from a user context response object.
21
+ * Looks for: role (string), roles (string[]), permissions.role, user.role.
22
+ */
23
+ export declare function extractRoles(data: Record<string, unknown>): string[];
24
+ /**
25
+ * Resolve scope labels for a user's roles from all connections' rowScoping.
26
+ *
27
+ * For each entity in each connection's rowScoping, finds the first matching
28
+ * role's scoping rule label. If no role matches, the entity is skipped.
29
+ */
30
+ export declare function resolveScopeLabels(connections: Map<string, LoadedConnection>, userRoles: string[]): {
31
+ scopeLabels: Record<string, string>;
32
+ scopeRules: Record<string, ScopingRule>;
33
+ };
34
+ /**
35
+ * Generate field guidance text from all connections' fieldRestrictions.
36
+ *
37
+ * Lists never_retrieve fields as "Do not request: entity.field (reason)"
38
+ * Lists role_gated fields with allowed roles
39
+ * Lists retrieve_but_redact fields as "Will be redacted: entity.field"
40
+ */
41
+ export declare function generateFieldGuidance(connections: Map<string, LoadedConnection>, userRoles: string[]): string;
42
+ /**
43
+ * Generate alternative lookup guidance from all connections' alternativeLookups.
44
+ */
45
+ export declare function generateAlternativeLookupGuidance(connections: Map<string, LoadedConnection>): string;
46
+ /**
47
+ * Create a default empty UserContextResult.
48
+ */
49
+ export declare function defaultUserContext(): UserContextResult;