@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,294 @@
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 { ToolErrorType } from '@google/gemini-cli-core';
8
+ import { resolveTemplate, resolveTemplateObject, } from '../templates/template-resolver.js';
9
+ import { isPrivateIp } from '@google/gemini-cli-core';
10
+ import { httpFetch, shapeResponse, formatTemplateErrors } from './tool-utils.js';
11
+ import { resolveMergeTemplate, resolveMergeTemplateObject, } from './merge-template.js';
12
+ /**
13
+ * Invocation for a chain tool call — parallel HTTP steps merged into one result.
14
+ */
15
+ export class ChainToolInvocation extends BaseToolInvocation {
16
+ config;
17
+ connections;
18
+ constructor(params, messageBus, toolName, toolDisplayName, config, connections) {
19
+ super(params, messageBus, toolName, toolDisplayName);
20
+ this.config = config;
21
+ this.connections = connections;
22
+ }
23
+ getDescription() {
24
+ const stepNames = this.config.steps.map((s) => s.name).join(', ');
25
+ return `Chain: [${stepNames}]`;
26
+ }
27
+ async execute(signal) {
28
+ const controller = new AbortController();
29
+ const aggregateTimeout = setTimeout(() => controller.abort(), this.config.timeout);
30
+ // Forward external abort
31
+ if (signal.aborted) {
32
+ clearTimeout(aggregateTimeout);
33
+ return this.errorResult(ToolErrorType.EXECUTION_FAILED, 'Chain aborted before execution');
34
+ }
35
+ signal.addEventListener('abort', () => controller.abort(), { once: true });
36
+ try {
37
+ // Execute all steps in parallel
38
+ const stepPromises = this.config.steps.map((step) => this.executeStep(step, controller.signal));
39
+ const results = await Promise.all(stepPromises);
40
+ // Check for step failures
41
+ for (const result of results) {
42
+ if (result.error) {
43
+ return result.error;
44
+ }
45
+ }
46
+ // Build merge context
47
+ const mergeContext = {};
48
+ for (const result of results) {
49
+ mergeContext[result.name] = result.data;
50
+ }
51
+ // Apply merge template
52
+ return this.applyMerge(mergeContext);
53
+ }
54
+ catch (error) {
55
+ const message = error instanceof Error ? error.message : String(error);
56
+ if (message.includes('abort')) {
57
+ return this.errorResult(ToolErrorType.EXECUTION_FAILED, `Chain timed out after ${this.config.timeout}ms`);
58
+ }
59
+ return this.errorResult(ToolErrorType.EXECUTION_FAILED, `Chain execution failed: ${message}`);
60
+ }
61
+ finally {
62
+ clearTimeout(aggregateTimeout);
63
+ }
64
+ }
65
+ async executeStep(step, signal) {
66
+ const context = {
67
+ connections: this.connections,
68
+ params: this.params,
69
+ };
70
+ // 1. Resolve URL template
71
+ const urlResult = resolveTemplate(step.urlTemplate, context);
72
+ if (urlResult.errors.length > 0) {
73
+ return {
74
+ name: step.name,
75
+ data: null,
76
+ error: this.stepTemplateError(step.name, 'URL', urlResult.errors),
77
+ };
78
+ }
79
+ // 2. Resolve query params
80
+ let fullUrl = urlResult.value;
81
+ if (step.queryParams) {
82
+ const qpResult = resolveTemplateObject(step.queryParams, context);
83
+ if (qpResult.errors.length > 0) {
84
+ return {
85
+ name: step.name,
86
+ data: null,
87
+ error: this.stepTemplateError(step.name, 'query params', qpResult.errors),
88
+ };
89
+ }
90
+ const searchParams = new URLSearchParams();
91
+ for (const [key, val] of Object.entries(qpResult.value)) {
92
+ searchParams.append(key, String(val));
93
+ }
94
+ const sep = fullUrl.includes('?') ? '&' : '?';
95
+ fullUrl = `${fullUrl}${sep}${searchParams.toString()}`;
96
+ }
97
+ // 3. Validate URL
98
+ let parsedUrl;
99
+ try {
100
+ parsedUrl = new URL(fullUrl);
101
+ }
102
+ catch {
103
+ return {
104
+ name: step.name,
105
+ data: null,
106
+ error: this.errorResult(ToolErrorType.EXECUTION_FAILED, `Step "${step.name}": Invalid URL: ${fullUrl}`),
107
+ };
108
+ }
109
+ if (!['http:', 'https:'].includes(parsedUrl.protocol)) {
110
+ return {
111
+ name: step.name,
112
+ data: null,
113
+ error: this.errorResult(ToolErrorType.EXECUTION_FAILED, `Step "${step.name}": Unsupported protocol: ${parsedUrl.protocol}`),
114
+ };
115
+ }
116
+ // 4. Private IP check
117
+ if (isPrivateIp(fullUrl)) {
118
+ return {
119
+ name: step.name,
120
+ data: null,
121
+ error: this.errorResult(ToolErrorType.EXECUTION_FAILED, `Step "${step.name}": Request to private IP blocked: ${parsedUrl.hostname}`),
122
+ };
123
+ }
124
+ // 5. Resolve headers
125
+ const baseHeaders = {
126
+ 'Content-Type': 'application/json',
127
+ };
128
+ let resolvedHeaders = baseHeaders;
129
+ if (step.headers) {
130
+ const headersResult = resolveTemplateObject(step.headers, context);
131
+ if (headersResult.errors.length > 0) {
132
+ return {
133
+ name: step.name,
134
+ data: null,
135
+ error: this.stepTemplateError(step.name, 'headers', headersResult.errors),
136
+ };
137
+ }
138
+ resolvedHeaders = { ...baseHeaders, ...headersResult.value };
139
+ }
140
+ // 6. Resolve body
141
+ let body;
142
+ const methodsWithBody = ['POST', 'PUT', 'PATCH'];
143
+ if (methodsWithBody.includes(step.method) && step.bodyTemplate !== undefined) {
144
+ if (typeof step.bodyTemplate === 'string') {
145
+ const bodyResult = resolveTemplate(step.bodyTemplate, context);
146
+ if (bodyResult.errors.length > 0) {
147
+ return {
148
+ name: step.name,
149
+ data: null,
150
+ error: this.stepTemplateError(step.name, 'body', bodyResult.errors),
151
+ };
152
+ }
153
+ body = bodyResult.value;
154
+ }
155
+ else {
156
+ const bodyResult = resolveTemplateObject(step.bodyTemplate, context);
157
+ if (bodyResult.errors.length > 0) {
158
+ return {
159
+ name: step.name,
160
+ data: null,
161
+ error: this.stepTemplateError(step.name, 'body', bodyResult.errors),
162
+ };
163
+ }
164
+ body = JSON.stringify(bodyResult.value);
165
+ }
166
+ }
167
+ // 7. Make the HTTP request
168
+ let response;
169
+ try {
170
+ response = await httpFetch(fullUrl, {
171
+ method: step.method,
172
+ headers: resolvedHeaders,
173
+ body,
174
+ timeout: step.timeout,
175
+ signal,
176
+ });
177
+ }
178
+ catch (error) {
179
+ const message = error instanceof Error ? error.message : String(error);
180
+ if (message.includes('abort')) {
181
+ return {
182
+ name: step.name,
183
+ data: null,
184
+ error: this.errorResult(ToolErrorType.EXECUTION_FAILED, `Step "${step.name}": Request timed out after ${step.timeout}ms`),
185
+ };
186
+ }
187
+ return {
188
+ name: step.name,
189
+ data: null,
190
+ error: this.errorResult(ToolErrorType.EXECUTION_FAILED, `Step "${step.name}": HTTP request failed: ${message}`),
191
+ };
192
+ }
193
+ // 8. Handle HTTP errors
194
+ if (!response.ok) {
195
+ let errorBody;
196
+ try {
197
+ errorBody = await response.text();
198
+ }
199
+ catch {
200
+ errorBody = '';
201
+ }
202
+ const truncated = errorBody.length > 500 ? errorBody.slice(0, 500) + '...' : errorBody;
203
+ return {
204
+ name: step.name,
205
+ data: null,
206
+ error: this.errorResult(ToolErrorType.EXECUTION_FAILED, `Step "${step.name}": HTTP ${response.status} ${response.statusText}: ${truncated}`),
207
+ };
208
+ }
209
+ // 9. Parse response
210
+ let responseData;
211
+ const contentType = response.headers.get('content-type') ?? '';
212
+ if (contentType.includes('application/json')) {
213
+ try {
214
+ responseData = await response.json();
215
+ }
216
+ catch {
217
+ responseData = await response.text();
218
+ }
219
+ }
220
+ else {
221
+ responseData = await response.text();
222
+ }
223
+ // 10. Shape step response if configured
224
+ if (step.responseShaping?.path) {
225
+ const shaped = shapeResponse(responseData, step.responseShaping);
226
+ try {
227
+ responseData = JSON.parse(shaped);
228
+ }
229
+ catch {
230
+ responseData = shaped;
231
+ }
232
+ }
233
+ return { name: step.name, data: responseData };
234
+ }
235
+ applyMerge(context) {
236
+ let merged;
237
+ if (typeof this.config.merge === 'string') {
238
+ const result = resolveMergeTemplate(this.config.merge, context);
239
+ if (result.errors.length > 0) {
240
+ const errMsg = result.errors
241
+ .map((e) => ` - {{${e.expression}}}: ${e.message}`)
242
+ .join('\n');
243
+ return this.errorResult(ToolErrorType.EXECUTION_FAILED, `Merge template resolution failed:\n${errMsg}`);
244
+ }
245
+ merged = result.value;
246
+ }
247
+ else {
248
+ const result = resolveMergeTemplateObject(this.config.merge, context);
249
+ if (result.errors.length > 0) {
250
+ const errMsg = result.errors
251
+ .map((e) => ` - {{${e.expression}}}: ${e.message}`)
252
+ .join('\n');
253
+ return this.errorResult(ToolErrorType.EXECUTION_FAILED, `Merge template resolution failed:\n${errMsg}`);
254
+ }
255
+ merged = JSON.stringify(result.value);
256
+ }
257
+ // Apply final response shaping
258
+ const shaped = shapeResponse(merged, this.config.responseShaping);
259
+ return {
260
+ llmContent: shaped,
261
+ returnDisplay: shaped,
262
+ };
263
+ }
264
+ stepTemplateError(stepName, location, errors) {
265
+ const msg = `Step "${stepName}": Template resolution failed in ${location}:\n${formatTemplateErrors(errors)}`;
266
+ return this.errorResult(ToolErrorType.EXECUTION_FAILED, msg);
267
+ }
268
+ errorResult(type, message) {
269
+ return {
270
+ llmContent: `Error: ${message}`,
271
+ returnDisplay: message,
272
+ error: { message, type },
273
+ };
274
+ }
275
+ }
276
+ /**
277
+ * A declarative chain tool — parallel API calls merged into one response.
278
+ */
279
+ export class ChainTool extends BaseDeclarativeTool {
280
+ chainConfig;
281
+ connections;
282
+ constructor(chainConfig, connections, messageBus) {
283
+ super(chainConfig.name, chainConfig.displayName, chainConfig.description, Kind.Fetch, chainConfig.parameters, messageBus, false, // isOutputMarkdown
284
+ false, // canUpdateOutput
285
+ undefined, // extensionName
286
+ undefined);
287
+ this.chainConfig = chainConfig;
288
+ this.connections = connections;
289
+ }
290
+ createInvocation(params, messageBus, toolName, toolDisplayName) {
291
+ return new ChainToolInvocation(params, messageBus, toolName ?? this.name, toolDisplayName ?? this.displayName, this.chainConfig, this.connections);
292
+ }
293
+ }
294
+ //# sourceMappingURL=chain-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-tool.js","sourceRoot":"","sources":["../../../src/tools/chain-tool.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 { registerHttpTools } from './http-tool-registry.js';
7
+ export { registerChainTools } from './chain-tool-registry.js';
8
+ export { registerFunctionTools } from './function-tool-registry.js';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ // Re-export the individual registrar functions
7
+ export { registerHttpTools } from './http-tool-registry.js';
8
+ export { registerChainTools } from './chain-tool-registry.js';
9
+ export { registerFunctionTools } from './function-tool-registry.js';
10
+ //# sourceMappingURL=custom-tool-registrar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-tool-registrar.js","sourceRoot":"","sources":["../../../src/tools/custom-tool-registrar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+CAA+C;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { ToolDefinition } from '../tool-definition-types.js';
7
+ export declare function getProposeKnowledgeDefinition(): ToolDefinition;
8
+ export declare function getPresentToolDefinition(): ToolDefinition;
9
+ export declare function getRequestToolDefinition(): ToolDefinition;
@@ -0,0 +1,192 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { PROPOSE_KNOWLEDGE_TOOL_NAME, PRESENT_TOOL_NAME, REQUEST_TOOL_NAME, } from '../amodal-tool-names.js';
7
+ // ============================================================================
8
+ // PROPOSE_KNOWLEDGE TOOL
9
+ // ============================================================================
10
+ export function getProposeKnowledgeDefinition() {
11
+ return {
12
+ base: {
13
+ name: PROPOSE_KNOWLEDGE_TOOL_NAME,
14
+ description: `Propose a knowledge base update. Use when you discover a new pattern, learn domain context from the analyst, notice a gap in the knowledge base, find outdated information, or want to record working memory for future sessions. Choose 'application' scope for knowledge that applies to all tenants, 'tenant' for knowledge specific to this deployment. Working memory is always tenant-scoped.
15
+
16
+ When to propose:
17
+ - New false positive discovered → category: false_positives
18
+ - New risk pattern identified → category: patterns
19
+ - Baseline shift detected → category: baselines
20
+ - Session notes for future reference → category: working_memory (always tenant-scoped)
21
+
22
+ Working memory is for session-to-session continuity. Formal categories (patterns, false_positives, etc.) are for permanent knowledge. Do not use this for analyst preferences — use save_memory instead.`,
23
+ parametersJsonSchema: {
24
+ type: 'object',
25
+ properties: {
26
+ action: {
27
+ type: 'string',
28
+ enum: ['create', 'update'],
29
+ description: 'Create a new document or update an existing one.',
30
+ },
31
+ scope: {
32
+ type: 'string',
33
+ enum: ['application', 'tenant'],
34
+ description: 'application = shared across all tenants (universal patterns, product knowledge). tenant = specific to this deployment (local incidents, environment details, working memory).',
35
+ },
36
+ document_id: {
37
+ type: 'string',
38
+ description: 'For updates: ID of the document to update. Omit for new documents.',
39
+ },
40
+ title: {
41
+ type: 'string',
42
+ description: 'Title of the proposed document.',
43
+ },
44
+ category: {
45
+ type: 'string',
46
+ enum: [
47
+ 'system_docs',
48
+ 'methodology',
49
+ 'patterns',
50
+ 'false_positives',
51
+ 'response_procedures',
52
+ 'environment',
53
+ 'baselines',
54
+ 'team',
55
+ 'incident_history',
56
+ 'working_memory',
57
+ ],
58
+ description: 'Category for the document. Application-level: system_docs, methodology, patterns, false_positives, response_procedures. Tenant-level: environment, baselines, team, incident_history, working_memory.',
59
+ },
60
+ body: {
61
+ type: 'string',
62
+ description: 'The proposed content.',
63
+ },
64
+ reasoning: {
65
+ type: 'string',
66
+ description: 'Why you are proposing this — what did you discover or what gap did you notice?',
67
+ },
68
+ },
69
+ required: [
70
+ 'action',
71
+ 'scope',
72
+ 'title',
73
+ 'category',
74
+ 'body',
75
+ 'reasoning',
76
+ ],
77
+ },
78
+ },
79
+ };
80
+ }
81
+ // ============================================================================
82
+ // PRESENT TOOL
83
+ // ============================================================================
84
+ export function getPresentToolDefinition() {
85
+ return {
86
+ base: {
87
+ name: PRESENT_TOOL_NAME,
88
+ description: `Show a visual widget inline in the conversation. Use to display entities, maps, alerts, timelines, score breakdowns, status boards, credential input forms, document previews, and other structured data visually instead of describing them in text.
89
+
90
+ Before first use in a session, load knowledge tagged widget_schemas for the correct data format for each widget type.
91
+
92
+ Widget selection:
93
+ - entity-card: Single entity profile or lookup result
94
+ - entity-list: Multiple entities in table format
95
+ - alert-card: Individual finding or alert with severity
96
+ - timeline: Chronological event sequence
97
+ - data-table: Structured data, comparisons, lists
98
+ - scope-map: Spatial/scope visualization
99
+ - comparison: Side-by-side entity or metric comparison
100
+ - score-breakdown: Risk/severity score with factor breakdown
101
+ - status-board: Overview of all active findings with severity
102
+ - credential-input: Securely capture connection credentials
103
+ - document-preview: Show proposed resources for approval
104
+ - info-card: Generic entity/object profile with key-value fields
105
+ - metric: Single highlighted metric with optional trend`,
106
+ parametersJsonSchema: {
107
+ type: 'object',
108
+ properties: {
109
+ widget: {
110
+ type: 'string',
111
+ enum: [
112
+ 'entity-card',
113
+ 'entity-list',
114
+ 'scope-map',
115
+ 'alert-card',
116
+ 'timeline',
117
+ 'comparison',
118
+ 'data-table',
119
+ 'score-breakdown',
120
+ 'status-board',
121
+ 'credential-input',
122
+ 'document-preview',
123
+ 'info-card',
124
+ 'metric',
125
+ ],
126
+ description: 'Widget type to render.',
127
+ },
128
+ data: {
129
+ type: 'object',
130
+ description: 'Widget-specific data. Schema depends on widget type.',
131
+ },
132
+ },
133
+ required: ['widget', 'data'],
134
+ },
135
+ },
136
+ };
137
+ }
138
+ // ============================================================================
139
+ // REQUEST TOOL
140
+ // ============================================================================
141
+ export function getRequestToolDefinition() {
142
+ return {
143
+ base: {
144
+ name: REQUEST_TOOL_NAME,
145
+ description: `Make an HTTP request to a connected system. Use intent "read" for GET/query operations. For write operations (POST/PUT/PATCH/DELETE that modify data), first call with intent "write" to preview what will be executed. Present the preview to the user and ask for confirmation. Once confirmed, call again with intent "confirmed_write" to execute.
146
+
147
+ If the API returns an error:
148
+ - 401/403: Connection credentials may be invalid or expired — report to analyst
149
+ - 404: Endpoint may not exist — load system_docs to verify correct path
150
+ - 429: Rate limited — reduce query scope or wait before retrying
151
+ - 500+: Server error — try alternative endpoint, do not retry immediately`,
152
+ parametersJsonSchema: {
153
+ type: 'object',
154
+ properties: {
155
+ connection: {
156
+ type: 'string',
157
+ description: 'Name of the connection to use (e.g., "datadog", "slack").',
158
+ },
159
+ method: {
160
+ type: 'string',
161
+ enum: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'],
162
+ description: 'HTTP method.',
163
+ },
164
+ endpoint: {
165
+ type: 'string',
166
+ description: 'Relative API path (e.g., "/monitors", "/api/v1/events").',
167
+ },
168
+ params: {
169
+ type: 'object',
170
+ additionalProperties: { type: 'string' },
171
+ description: 'Query parameters as key-value pairs.',
172
+ },
173
+ data: {
174
+ description: 'Request body (for POST/PUT/PATCH).',
175
+ },
176
+ headers: {
177
+ type: 'object',
178
+ additionalProperties: { type: 'string' },
179
+ description: 'Additional HTTP headers.',
180
+ },
181
+ intent: {
182
+ type: 'string',
183
+ enum: ['read', 'write', 'confirmed_write'],
184
+ description: '"read" executes immediately. "write" returns a preview without executing — present it to the user for confirmation. "confirmed_write" executes after user approval.',
185
+ },
186
+ },
187
+ required: ['connection', 'method', 'endpoint', 'intent'],
188
+ },
189
+ },
190
+ };
191
+ }
192
+ //# sourceMappingURL=amodal-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amodal-tools.js","sourceRoot":"","sources":["../../../../src/tools/definitions/amodal-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,2BAA2B;YACjC,WAAW,EACT;;;;;;;;yMAQiM;YACnM,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;wBAC1B,WAAW,EACT,kDAAkD;qBACrD;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;wBAC/B,WAAW,EACT,+KAA+K;qBAClL;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,oEAAoE;qBACvE;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iCAAiC;qBAC/C;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE;4BACJ,aAAa;4BACb,aAAa;4BACb,UAAU;4BACV,iBAAiB;4BACjB,qBAAqB;4BACrB,aAAa;4BACb,WAAW;4BACX,MAAM;4BACN,kBAAkB;4BAClB,gBAAgB;yBACjB;wBACD,WAAW,EACT,uMAAuM;qBAC1M;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uBAAuB;qBACrC;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,gFAAgF;qBACnF;iBACF;gBACD,QAAQ,EAAE;oBACR,QAAQ;oBACR,OAAO;oBACP,OAAO;oBACP,UAAU;oBACV,MAAM;oBACN,WAAW;iBACZ;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT;;;;;;;;;;;;;;;;;wDAiBgD;YAClD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE;4BACJ,aAAa;4BACb,aAAa;4BACb,WAAW;4BACX,YAAY;4BACZ,UAAU;4BACV,YAAY;4BACZ,YAAY;4BACZ,iBAAiB;4BACjB,cAAc;4BACd,kBAAkB;4BAClB,kBAAkB;4BAClB,WAAW;4BACX,QAAQ;yBACT;wBACD,WAAW,EAAE,wBAAwB;qBACtC;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,sDAAsD;qBACpE;iBACF;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC7B;SACF;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT;;;;;;0EAMkE;YACpE,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,2DAA2D;qBAC9D;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;wBAC/C,WAAW,EAAE,cAAc;qBAC5B;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,0DAA0D;qBAC7D;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxC,WAAW,EAAE,sCAAsC;qBACpD;oBACD,IAAI,EAAE;wBACJ,WAAW,EAAE,oCAAoC;qBAClD;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxC,WAAW,EAAE,0BAA0B;qBACxC;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC;wBAC1C,WAAW,EACT,qKAAqK;qBACxK;iBACF;gBACD,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;aACzD;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { type FunctionHandlerMap } from './function-tool-types.js';
7
+ import type { ToolRegistry } from '@google/gemini-cli-core';
8
+ import type { ConnectionsMap } from '../templates/connections.js';
9
+ import type { MessageBus } from '@google/gemini-cli-core';
10
+ export interface RegisterFunctionToolsResult {
11
+ registered: string[];
12
+ errors: Array<{
13
+ index: number;
14
+ error: string;
15
+ }>;
16
+ }
17
+ /**
18
+ * Validate and register function tool configs into the tool registry.
19
+ * Each config must reference a handler that exists in the handler map.
20
+ * Invalid configs produce errors but don't block other registrations.
21
+ */
22
+ export declare function registerFunctionTools(registry: ToolRegistry, configs: unknown[], handlers: FunctionHandlerMap, connections: ConnectionsMap, messageBus: MessageBus): RegisterFunctionToolsResult;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { FunctionToolConfigSchema } from './function-tool-types.js';
7
+ import { FunctionTool } from './function-tool.js';
8
+ import { debugLogger } from '@google/gemini-cli-core';
9
+ /**
10
+ * Validate and register function tool configs into the tool registry.
11
+ * Each config must reference a handler that exists in the handler map.
12
+ * Invalid configs produce errors but don't block other registrations.
13
+ */
14
+ export function registerFunctionTools(registry, configs, handlers, connections, messageBus) {
15
+ const registered = [];
16
+ const errors = [];
17
+ for (let i = 0; i < configs.length; i++) {
18
+ const raw = configs[i];
19
+ const parsed = FunctionToolConfigSchema.safeParse(raw);
20
+ if (!parsed.success) {
21
+ const errorMsg = parsed.error.issues
22
+ .map((issue) => `${issue.path.join('.')}: ${issue.message}`)
23
+ .join('; ');
24
+ errors.push({ index: i, error: errorMsg });
25
+ debugLogger.log(`Function tool config #${i} invalid: ${errorMsg}`);
26
+ continue;
27
+ }
28
+ const config = parsed.data;
29
+ // Validate that the handler exists
30
+ const handler = handlers.get(config.handler);
31
+ if (!handler) {
32
+ errors.push({
33
+ index: i,
34
+ error: `Handler "${config.handler}" not found in handler map`,
35
+ });
36
+ debugLogger.log(`Function tool config #${i} ("${config.name}"): handler "${config.handler}" not found`);
37
+ continue;
38
+ }
39
+ const tool = new FunctionTool(config, handler, connections, messageBus);
40
+ registry.registerTool(tool);
41
+ registered.push(config.name);
42
+ }
43
+ return { registered, errors };
44
+ }
45
+ //# sourceMappingURL=function-tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-tool-registry.js","sourceRoot":"","sources":["../../../src/tools/function-tool-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAoD,MAAM,0BAA0B,CAAC;AACtH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAOtD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAsB,EACtB,OAAkB,EAClB,QAA4B,EAC5B,WAA2B,EAC3B,UAAsB;IAEtB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAA4C,EAAE,CAAC;IAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3C,WAAW,CAAC,GAAG,CAAC,yBAAyB,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAuB,MAAM,CAAC,IAAI,CAAC;QAE/C,mCAAmC;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,YAAY,MAAM,CAAC,OAAO,4BAA4B;aAC9D,CAAC,CAAC;YACH,WAAW,CAAC,GAAG,CACb,yBAAyB,CAAC,MAAM,MAAM,CAAC,IAAI,gBAAgB,MAAM,CAAC,OAAO,aAAa,CACvF,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACxE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC"}