@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,207 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { z } from 'zod';
7
+ import { HttpToolConfigSchema } from '../tools/http-tool-types.js';
8
+ import { ChainToolConfigSchema } from '../tools/chain-tool-types.js';
9
+ import { FunctionToolConfigSchema } from '../tools/function-tool-types.js';
10
+ import { RoleDefinitionSchema } from '../roles/role-types.js';
11
+ // ---------------------------------------------------------------------------
12
+ // Automation schemas
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * Automation trigger — cron schedule or webhook event.
16
+ */
17
+ export const AutomationTriggerSchema = z.discriminatedUnion('type', [
18
+ z.object({
19
+ type: z.literal('cron'),
20
+ // Cron expression (e.g., "*/5 * * * *")
21
+ schedule: z.string().min(1),
22
+ }),
23
+ z.object({
24
+ type: z.literal('webhook'),
25
+ /** Event source identifier */
26
+ source: z.string().min(1),
27
+ /** Optional filter expression for the webhook payload */
28
+ filter: z.string().optional(),
29
+ }),
30
+ ]);
31
+ /**
32
+ * Automation output channel configuration.
33
+ */
34
+ export const AutomationOutputSchema = z.object({
35
+ /** Output channel type */
36
+ channel: z.enum(['slack', 'webhook', 'email']),
37
+ /** Channel-specific target (URL, email address, etc.) */
38
+ target: z.string().min(1),
39
+ });
40
+ /**
41
+ * Constraints applied to automation sessions.
42
+ */
43
+ export const AutomationConstraintsSchema = z.object({
44
+ /** Maximum number of tool calls per automation run */
45
+ max_tool_calls: z.number().int().positive().optional(),
46
+ /** Timeout in seconds for the entire automation run */
47
+ timeout_seconds: z.number().int().positive().optional(),
48
+ /** Maximum tokens for the LLM response */
49
+ max_tokens: z.number().int().positive().optional(),
50
+ });
51
+ /**
52
+ * An automation definition — scheduled or event-triggered agent prompt.
53
+ */
54
+ export const AutomationDefinitionSchema = z.object({
55
+ /** Unique automation name */
56
+ name: z.string().min(1),
57
+ /** How this automation is triggered */
58
+ trigger: AutomationTriggerSchema,
59
+ /** The prompt sent to the agent when triggered */
60
+ prompt: z.string().min(1),
61
+ /** Tools available during this automation's session */
62
+ tools: z.array(z.string().min(1)).min(1),
63
+ /** Skills available during this automation's session */
64
+ skills: z.array(z.string().min(1)).default(['*']),
65
+ /** Where to send the automation's output */
66
+ output: AutomationOutputSchema,
67
+ /** Session constraints */
68
+ constraints: AutomationConstraintsSchema.optional(),
69
+ /** Whether write operations are allowed (default false — safety guardrail) */
70
+ allow_writes: z.boolean().default(false),
71
+ /** Session types where this automation is available. Empty/undefined = all. */
72
+ session_types: z.array(z.string().min(1)).optional(),
73
+ });
74
+ // ---------------------------------------------------------------------------
75
+ // Bundle tool config — discriminated union of all tool types
76
+ // ---------------------------------------------------------------------------
77
+ const BundleHttpToolSchema = HttpToolConfigSchema.extend({
78
+ type: z.literal('http'),
79
+ disabled: z.boolean().optional(),
80
+ session_types: z.array(z.string().min(1)).optional(),
81
+ });
82
+ const BundleChainToolSchema = ChainToolConfigSchema.extend({
83
+ type: z.literal('chain'),
84
+ disabled: z.boolean().optional(),
85
+ session_types: z.array(z.string().min(1)).optional(),
86
+ });
87
+ const BundleFunctionToolSchema = FunctionToolConfigSchema.extend({
88
+ type: z.literal('function'),
89
+ disabled: z.boolean().optional(),
90
+ session_types: z.array(z.string().min(1)).optional(),
91
+ });
92
+ /**
93
+ * A tool config in a version bundle — discriminated by `type`.
94
+ */
95
+ export const BundleToolConfigSchema = z.discriminatedUnion('type', [
96
+ BundleHttpToolSchema,
97
+ BundleChainToolSchema,
98
+ BundleFunctionToolSchema,
99
+ ]);
100
+ // ---------------------------------------------------------------------------
101
+ // Handler and dependency schemas
102
+ // ---------------------------------------------------------------------------
103
+ /**
104
+ * A handler definition — entry file plus all source files.
105
+ */
106
+ export const BundleHandlerSchema = z.object({
107
+ /** Entry point filename (e.g., "compute-risk.ts") */
108
+ entry: z.string().min(1),
109
+ /** Map of filename → source code */
110
+ files: z.record(z.string().min(1)),
111
+ });
112
+ /**
113
+ * Dependencies required by the version bundle.
114
+ */
115
+ export const BundleDependenciesSchema = z.object({
116
+ /** npm packages: { name: version } */
117
+ npm: z.record(z.string()).optional(),
118
+ /** pip packages: { name: version } */
119
+ pip: z.record(z.string()).optional(),
120
+ /** System binaries that must be available (checked via `which`) */
121
+ system: z.array(z.string().min(1)).optional(),
122
+ });
123
+ // ---------------------------------------------------------------------------
124
+ // Skill schema
125
+ // ---------------------------------------------------------------------------
126
+ /**
127
+ * Knowledge base dependencies for a skill — tags and scope to auto-load.
128
+ */
129
+ export const SkillKnowledgeDepsSchema = z.object({
130
+ /** Docs matching any of these tags are auto-loaded on skill activation. */
131
+ tags: z.array(z.string().min(1)).optional(),
132
+ /** Restrict to a specific scope, or 'all' for both application and tenant. Default: 'all'. */
133
+ scope: z.enum(['application', 'tenant', 'all']).optional(),
134
+ });
135
+ /**
136
+ * A skill definition in a version bundle.
137
+ */
138
+ export const BundleSkillSchema = z.object({
139
+ /** Skill name (used for activation) */
140
+ name: z.string().min(1),
141
+ /** Short description (shown to LLM in system prompt) */
142
+ description: z.string().min(1),
143
+ /** Full skill body (SKILL.md content, loaded on activation) */
144
+ body: z.string().min(1),
145
+ /** Knowledge base documents to auto-load when this skill activates. */
146
+ knowledge: SkillKnowledgeDepsSchema.optional(),
147
+ /** Session types where this skill is available. Empty/undefined = all. */
148
+ session_types: z.array(z.string().min(1)).optional(),
149
+ });
150
+ // ---------------------------------------------------------------------------
151
+ // Subagent schema
152
+ // ---------------------------------------------------------------------------
153
+ /**
154
+ * A subagent (task agent) configuration in a version bundle.
155
+ */
156
+ export const SubagentConfigSchema = z.object({
157
+ /** Subagent name (used for dispatch) */
158
+ name: z.string().min(1),
159
+ /** Display name shown in the admin UI */
160
+ displayName: z.string().min(1),
161
+ /** Short description (visible to admins and injected into primary agent context) */
162
+ description: z.string().min(1),
163
+ /** Prompt template with {{variable}} placeholders */
164
+ prompt: z.string().min(1),
165
+ /** Tools this subagent can use */
166
+ tools: z.array(z.string().min(1)).default(['shell_exec', 'load_knowledge']),
167
+ /** Max dispatch depth (1 = no sub-agents, 2 = can dispatch sub-task agents) */
168
+ maxDepth: z.number().int().min(1).max(4).default(1),
169
+ /** Max tool calls per execution */
170
+ maxToolCalls: z.number().int().min(1).max(100).default(10),
171
+ /** Timeout in seconds */
172
+ timeout: z.number().int().min(5).max(600).default(20),
173
+ /** Target output token range */
174
+ targetOutputMin: z.number().int().min(50).max(2000).default(200),
175
+ targetOutputMax: z.number().int().min(50).max(2000).default(400),
176
+ /** Model tier: 'simple' for data gathering, 'advanced' for complex reasoning, 'default' for standard */
177
+ modelTier: z.enum(['default', 'simple', 'advanced']).optional(),
178
+ /** Session types where this subagent is available. Empty/undefined = all. */
179
+ session_types: z.array(z.string().min(1)).optional(),
180
+ });
181
+ // ---------------------------------------------------------------------------
182
+ // Full version bundle
183
+ // ---------------------------------------------------------------------------
184
+ /**
185
+ * A complete version bundle — the atomic unit of deployment.
186
+ */
187
+ export const VersionBundleSchema = z.object({
188
+ /** Semantic version string (e.g., "1.2.3") */
189
+ version: z.string().min(1),
190
+ /** ISO 8601 timestamp when published */
191
+ published_at: z.string().optional(),
192
+ /** Who published this version */
193
+ published_by: z.string().optional(),
194
+ /** Tool configurations */
195
+ tools: z.array(BundleToolConfigSchema).default([]),
196
+ /** Skill definitions */
197
+ skills: z.array(BundleSkillSchema).default([]),
198
+ /** Handler definitions keyed by handler name */
199
+ handlers: z.record(BundleHandlerSchema).default({}),
200
+ /** External dependencies */
201
+ dependencies: BundleDependenciesSchema.default({}),
202
+ /** Role definitions */
203
+ roles: z.array(RoleDefinitionSchema).default([]),
204
+ /** Automation definitions */
205
+ automations: z.array(AutomationDefinitionSchema).default([]),
206
+ });
207
+ //# sourceMappingURL=version-bundle-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-bundle-types.js","sourceRoot":"","sources":["../../../src/versions/version-bundle-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { AuditLogger } from '../audit/audit-logger.js';
7
+ import type { FunctionHandlerMap } from '../tools/function-tool-types.js';
8
+ import type { HttpToolConfig } from '../tools/http-tool-types.js';
9
+ import type { ChainToolConfig } from '../tools/chain-tool-types.js';
10
+ import type { FunctionToolConfig } from '../tools/function-tool-types.js';
11
+ import type { RoleDefinition } from '../roles/role-types.js';
12
+ import type { VersionBundle, BundleSkill, AutomationDefinition } from './version-bundle-types.js';
13
+ import { type BundleSource } from './bundle-loader.js';
14
+ /**
15
+ * A fully loaded and ready-to-use version.
16
+ */
17
+ export interface LoadedVersion {
18
+ /** The raw bundle */
19
+ bundle: VersionBundle;
20
+ /** Directory where this version's files live */
21
+ versionDir: string;
22
+ /** Imported function handlers */
23
+ handlerMap: FunctionHandlerMap;
24
+ /** HTTP tool configs extracted from the bundle */
25
+ httpToolConfigs: HttpToolConfig[];
26
+ /** Chain tool configs extracted from the bundle */
27
+ chainToolConfigs: ChainToolConfig[];
28
+ /** Function tool configs extracted from the bundle */
29
+ functionToolConfigs: FunctionToolConfig[];
30
+ /** Skill definitions */
31
+ skills: BundleSkill[];
32
+ /** Role definitions */
33
+ roles: RoleDefinition[];
34
+ /** Automation definitions */
35
+ automations: AutomationDefinition[];
36
+ /** When this version was loaded */
37
+ loadedAt: Date;
38
+ }
39
+ export interface VersionManagerOptions {
40
+ /** Base directory for version storage */
41
+ baseDir: string;
42
+ /** Optional audit logger for version_load events */
43
+ auditLogger?: AuditLogger;
44
+ }
45
+ /**
46
+ * Manages the version bundle lifecycle: load, install deps, import handlers,
47
+ * and atomically swap to the new version.
48
+ */
49
+ export declare class VersionManager {
50
+ private readonly baseDir;
51
+ private readonly auditLogger?;
52
+ private _currentVersion;
53
+ constructor(options: VersionManagerOptions);
54
+ /**
55
+ * The currently active version, or null if none loaded.
56
+ */
57
+ get currentVersion(): LoadedVersion | null;
58
+ /**
59
+ * Load a version bundle through the full lifecycle:
60
+ * 1. Fetch/read + validate
61
+ * 2. Create version directory
62
+ * 3. Diff dependencies against current version
63
+ * 4. Install dependencies + verify system binaries
64
+ * 5. Write + import handlers
65
+ * 6. Separate tool configs by type
66
+ * 7. Atomic swap
67
+ * 8. Audit log
68
+ */
69
+ loadVersion(source: BundleSource): Promise<LoadedVersion>;
70
+ /**
71
+ * Get config-compatible fields from the current version.
72
+ * Returns null if no version is loaded.
73
+ */
74
+ getVersionConfig(): {
75
+ httpToolConfigs: HttpToolConfig[];
76
+ chainToolConfigs: ChainToolConfig[];
77
+ functionToolConfigs: FunctionToolConfig[];
78
+ functionToolHandlers: FunctionHandlerMap;
79
+ roleDefinitions: RoleDefinition[];
80
+ skills: BundleSkill[];
81
+ automations: AutomationDefinition[];
82
+ version: string;
83
+ } | null;
84
+ /**
85
+ * Remove a version's directory from disk.
86
+ * Should only be called after all sessions using this version have finished.
87
+ */
88
+ cleanup(version: string): Promise<void>;
89
+ }
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { mkdir, rm } from 'node:fs/promises';
7
+ import path from 'node:path';
8
+ import { loadBundle } from './bundle-loader.js';
9
+ import { diffDependencies, installDependencies } from './dependency-manager.js';
10
+ import { loadHandlers } from './handler-loader.js';
11
+ /**
12
+ * Manages the version bundle lifecycle: load, install deps, import handlers,
13
+ * and atomically swap to the new version.
14
+ */
15
+ export class VersionManager {
16
+ baseDir;
17
+ auditLogger;
18
+ _currentVersion = null;
19
+ constructor(options) {
20
+ this.baseDir = options.baseDir;
21
+ this.auditLogger = options.auditLogger;
22
+ }
23
+ /**
24
+ * The currently active version, or null if none loaded.
25
+ */
26
+ get currentVersion() {
27
+ return this._currentVersion;
28
+ }
29
+ /**
30
+ * Load a version bundle through the full lifecycle:
31
+ * 1. Fetch/read + validate
32
+ * 2. Create version directory
33
+ * 3. Diff dependencies against current version
34
+ * 4. Install dependencies + verify system binaries
35
+ * 5. Write + import handlers
36
+ * 6. Separate tool configs by type
37
+ * 7. Atomic swap
38
+ * 8. Audit log
39
+ */
40
+ async loadVersion(source) {
41
+ // 1. Load and validate
42
+ const bundle = await loadBundle(source);
43
+ // 2. Create version directory
44
+ const versionDir = path.join(this.baseDir, 'versions', bundle.version);
45
+ await mkdir(versionDir, { recursive: true });
46
+ // 3. Diff dependencies
47
+ const oldDeps = this._currentVersion
48
+ ? this._currentVersion.bundle.dependencies
49
+ : {};
50
+ const diff = diffDependencies(oldDeps, bundle.dependencies);
51
+ // 4. Install dependencies and verify system binaries
52
+ const installResult = await installDependencies(diff, versionDir);
53
+ if (installResult.missingBinaries.length > 0) {
54
+ throw new Error(`Missing system binaries: ${installResult.missingBinaries.join(', ')}`);
55
+ }
56
+ // 5. Write and import handlers
57
+ const handlerMap = await loadHandlers(bundle.handlers, versionDir);
58
+ // 6. Separate tool configs by type (skip disabled tools as belt-and-suspenders)
59
+ const httpToolConfigs = [];
60
+ const chainToolConfigs = [];
61
+ const functionToolConfigs = [];
62
+ for (const tool of bundle.tools.filter((t) => !t.disabled)) {
63
+ if (tool.type === 'http') {
64
+ const { type: _, ...config } = tool;
65
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stripping discriminator from validated Zod output
66
+ httpToolConfigs.push(config);
67
+ }
68
+ else if (tool.type === 'chain') {
69
+ const { type: _, ...config } = tool;
70
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stripping discriminator from validated Zod output
71
+ chainToolConfigs.push(config);
72
+ }
73
+ else if (tool.type === 'function') {
74
+ const { type: _, ...config } = tool;
75
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stripping discriminator from validated Zod output
76
+ functionToolConfigs.push(config);
77
+ }
78
+ }
79
+ // 7. Build loaded version and atomic swap
80
+ const loadedVersion = {
81
+ bundle,
82
+ versionDir,
83
+ handlerMap,
84
+ httpToolConfigs,
85
+ chainToolConfigs,
86
+ functionToolConfigs,
87
+ skills: bundle.skills,
88
+ roles: bundle.roles,
89
+ automations: bundle.automations,
90
+ loadedAt: new Date(),
91
+ };
92
+ this._currentVersion = loadedVersion;
93
+ // 8. Audit
94
+ this.auditLogger?.logVersionLoad(bundle.version);
95
+ return loadedVersion;
96
+ }
97
+ /**
98
+ * Get config-compatible fields from the current version.
99
+ * Returns null if no version is loaded.
100
+ */
101
+ getVersionConfig() {
102
+ if (!this._currentVersion)
103
+ return null;
104
+ return {
105
+ httpToolConfigs: this._currentVersion.httpToolConfigs,
106
+ chainToolConfigs: this._currentVersion.chainToolConfigs,
107
+ functionToolConfigs: this._currentVersion.functionToolConfigs,
108
+ functionToolHandlers: this._currentVersion.handlerMap,
109
+ roleDefinitions: this._currentVersion.roles,
110
+ skills: this._currentVersion.skills,
111
+ automations: this._currentVersion.automations,
112
+ version: this._currentVersion.bundle.version,
113
+ };
114
+ }
115
+ /**
116
+ * Remove a version's directory from disk.
117
+ * Should only be called after all sessions using this version have finished.
118
+ */
119
+ async cleanup(version) {
120
+ const versionDir = path.join(this.baseDir, 'versions', version);
121
+ await rm(versionDir, { recursive: true, force: true });
122
+ }
123
+ }
124
+ //# sourceMappingURL=version-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-manager.js","sourceRoot":"","sources":["../../../src/versions/version-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export { WIDGET_TYPES } from './widget-types.js';
7
+ export type { WidgetType, PresentParams, InfoCardData, MetricData } from './widget-types.js';
8
+ export { PresentTool } from './present-tool.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export { WIDGET_TYPES } from './widget-types.js';
7
+ export { PresentTool } from './present-tool.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { MessageBus } from '@google/gemini-cli-core';
7
+ import type { ToolResult, ToolInvocation } from '@google/gemini-cli-core';
8
+ import { BaseDeclarativeTool } from '@google/gemini-cli-core';
9
+ import type { ToolContext } from '../tool-context.js';
10
+ import type { PresentParams } from './widget-types.js';
11
+ /**
12
+ * Built-in tool for presenting visual widgets inline in the conversation.
13
+ * Always available regardless of role. The server transforms the tool result
14
+ * into a widget SSE event for the client to render.
15
+ */
16
+ export declare class PresentTool extends BaseDeclarativeTool<PresentParams, ToolResult> {
17
+ private config;
18
+ static readonly Name = "present";
19
+ constructor(config: ToolContext, messageBus: MessageBus);
20
+ protected createInvocation(params: PresentParams, messageBus: MessageBus, _toolName?: string, _toolDisplayName?: string): ToolInvocation<PresentParams, ToolResult>;
21
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { BaseDeclarativeTool, BaseToolInvocation, Kind } from '@google/gemini-cli-core';
7
+ import { PRESENT_TOOL_NAME, WIDGET_TYPES } from './widget-types.js';
8
+ import { ToolErrorType } from '@google/gemini-cli-core';
9
+ import { getPresentToolDefinition } from '../tools/definitions/amodal-tools.js';
10
+ class PresentInvocation extends BaseToolInvocation {
11
+ config;
12
+ constructor(config, params, messageBus, _toolName, _toolDisplayName) {
13
+ super(params, messageBus, _toolName, _toolDisplayName);
14
+ this.config = config;
15
+ }
16
+ getDescription() {
17
+ return `present [${this.params.widget}]`;
18
+ }
19
+ async getConfirmationDetails(_abortSignal) {
20
+ // No confirmation needed for rendering widgets
21
+ return false;
22
+ }
23
+ async execute(_signal) {
24
+ // Validate widget type
25
+ const validTypes = WIDGET_TYPES;
26
+ if (!validTypes.includes(this.params.widget)) {
27
+ const errorMessage = `Invalid widget type "${this.params.widget}". Must be one of: ${WIDGET_TYPES.join(', ')}`;
28
+ return {
29
+ llmContent: `Error: ${errorMessage}`,
30
+ returnDisplay: `Error: ${errorMessage}`,
31
+ error: {
32
+ message: errorMessage,
33
+ type: ToolErrorType.INVALID_TOOL_PARAMS,
34
+ },
35
+ };
36
+ }
37
+ // Validate data is an object
38
+ if (!this.params.data || typeof this.params.data !== 'object') {
39
+ const errorMessage = 'Widget data must be a non-null object.';
40
+ return {
41
+ llmContent: `Error: ${errorMessage}`,
42
+ returnDisplay: `Error: ${errorMessage}`,
43
+ error: {
44
+ message: errorMessage,
45
+ type: ToolErrorType.INVALID_TOOL_PARAMS,
46
+ },
47
+ };
48
+ }
49
+ // Validate required fields for input widget types
50
+ if (this.params.widget === 'credential-input') {
51
+ const data = this.params.data;
52
+ if (!data['connection_name'] || !data['tenant_id'] || !Array.isArray(data['fields'])) {
53
+ const errorMessage = 'credential-input requires connection_name, tenant_id, and fields array.';
54
+ return {
55
+ llmContent: `Error: ${errorMessage}`,
56
+ returnDisplay: `Error: ${errorMessage}`,
57
+ error: {
58
+ message: errorMessage,
59
+ type: ToolErrorType.INVALID_TOOL_PARAMS,
60
+ },
61
+ };
62
+ }
63
+ }
64
+ if (this.params.widget === 'document-preview') {
65
+ const data = this.params.data;
66
+ if (!data['preview_id'] || !data['resource_type'] || !data['title'] || !data['body'] || !data['action']) {
67
+ const errorMessage = 'document-preview requires preview_id, resource_type, title, body, and action.';
68
+ return {
69
+ llmContent: `Error: ${errorMessage}`,
70
+ returnDisplay: `Error: ${errorMessage}`,
71
+ error: {
72
+ message: errorMessage,
73
+ type: ToolErrorType.INVALID_TOOL_PARAMS,
74
+ },
75
+ };
76
+ }
77
+ }
78
+ // Log audit event
79
+ const auditLogger = this.config.getAuditLogger();
80
+ if (auditLogger) {
81
+ auditLogger.logToolCall(PRESENT_TOOL_NAME, { widget: this.params.widget }, 0);
82
+ }
83
+ const successMessage = `Widget "${this.params.widget}" presented successfully.`;
84
+ return {
85
+ llmContent: successMessage,
86
+ returnDisplay: successMessage,
87
+ };
88
+ }
89
+ }
90
+ /**
91
+ * Built-in tool for presenting visual widgets inline in the conversation.
92
+ * Always available regardless of role. The server transforms the tool result
93
+ * into a widget SSE event for the client to render.
94
+ */
95
+ export class PresentTool extends BaseDeclarativeTool {
96
+ config;
97
+ static Name = PRESENT_TOOL_NAME;
98
+ constructor(config, messageBus) {
99
+ const definition = getPresentToolDefinition();
100
+ super(PresentTool.Name, 'Present Widget', definition.base.description, Kind.Other, definition.base.parametersJsonSchema, messageBus, true, false);
101
+ this.config = config;
102
+ }
103
+ createInvocation(params, messageBus, _toolName, _toolDisplayName) {
104
+ return new PresentInvocation(this.config, params, messageBus, _toolName, _toolDisplayName ?? 'Present Widget');
105
+ }
106
+ }
107
+ //# sourceMappingURL=present-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"present-tool.js","sourceRoot":"","sources":["../../../src/widgets/present-tool.ts"],"names":[],"mappings":"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"}