@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,205 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { z } from 'zod';
7
+ import { ResponseShapingSchema } from '../tools/http-tool-types.js';
8
+ /** Regex for valid tool names — snake_case, starts with lowercase letter */
9
+ export declare const TOOL_NAME_REGEX: RegExp;
10
+ /**
11
+ * Schema for a tool.json file in the tools/ directory.
12
+ *
13
+ * `name` is optional — if omitted, the directory name is used.
14
+ * If provided, it must match the directory name.
15
+ */
16
+ export declare const ToolJsonSchema: z.ZodObject<{
17
+ /** Tool name — snake_case, starts with lowercase letter. Optional; defaults to directory name. */
18
+ name: z.ZodOptional<z.ZodString>;
19
+ /** Description shown to the LLM */
20
+ description: z.ZodString;
21
+ /** JSON Schema describing the parameters the LLM should provide */
22
+ parameters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
+ /** Confirmation behavior: false=no confirm, true=confirm before run, 'review'=show params, 'never'=hide from LLM */
24
+ confirm: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<false>, z.ZodLiteral<true>, z.ZodLiteral<"review">, z.ZodLiteral<"never">]>>;
25
+ /** Execution timeout in milliseconds */
26
+ timeout: z.ZodDefault<z.ZodNumber>;
27
+ /** Environment variable names the handler is allowed to access */
28
+ env: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
29
+ /** Optional response shaping configuration */
30
+ responseShaping: z.ZodOptional<z.ZodObject<{
31
+ path: z.ZodOptional<z.ZodString>;
32
+ maxLength: z.ZodDefault<z.ZodNumber>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ maxLength: number;
35
+ path?: string | undefined;
36
+ }, {
37
+ path?: string | undefined;
38
+ maxLength?: number | undefined;
39
+ }>>;
40
+ /** Sandbox configuration for hosted execution */
41
+ sandbox: z.ZodOptional<z.ZodObject<{
42
+ /** Base language runtime for the sandbox (default: 'typescript') */
43
+ language: z.ZodDefault<z.ZodString>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ language: string;
46
+ }, {
47
+ language?: string | undefined;
48
+ }>>;
49
+ }, "strip", z.ZodTypeAny, {
50
+ description: string;
51
+ parameters: Record<string, unknown>;
52
+ timeout: number;
53
+ confirm: boolean | "never" | "review";
54
+ env: string[];
55
+ name?: string | undefined;
56
+ responseShaping?: {
57
+ maxLength: number;
58
+ path?: string | undefined;
59
+ } | undefined;
60
+ sandbox?: {
61
+ language: string;
62
+ } | undefined;
63
+ }, {
64
+ description: string;
65
+ name?: string | undefined;
66
+ responseShaping?: {
67
+ path?: string | undefined;
68
+ maxLength?: number | undefined;
69
+ } | undefined;
70
+ parameters?: Record<string, unknown> | undefined;
71
+ timeout?: number | undefined;
72
+ confirm?: boolean | "never" | "review" | undefined;
73
+ env?: string[] | undefined;
74
+ sandbox?: {
75
+ language?: string | undefined;
76
+ } | undefined;
77
+ }>;
78
+ export type ToolJson = z.infer<typeof ToolJsonSchema>;
79
+ /**
80
+ * A fully loaded custom tool ready for execution.
81
+ */
82
+ export interface LoadedTool {
83
+ /** Tool name (from tool.json) */
84
+ name: string;
85
+ /** Description (from tool.json) */
86
+ description: string;
87
+ /** JSON Schema parameters (from tool.json) */
88
+ parameters: Record<string, unknown>;
89
+ /** Confirmation behavior */
90
+ confirm: false | true | 'review' | 'never';
91
+ /** Execution timeout in ms */
92
+ timeout: number;
93
+ /** Allowed environment variable names */
94
+ env: string[];
95
+ /** Absolute path to handler.ts */
96
+ handlerPath: string;
97
+ /** Directory containing the tool */
98
+ location: string;
99
+ /** Whether the tool has its own package.json */
100
+ hasPackageJson: boolean;
101
+ /** Whether the tool has a setup.sh script */
102
+ hasSetupScript: boolean;
103
+ /** Whether the tool has a requirements.txt */
104
+ hasRequirementsTxt: boolean;
105
+ /** Whether the tool has a Dockerfile */
106
+ hasDockerfile: boolean;
107
+ /** Sandbox language for hosted execution (default: 'typescript') */
108
+ sandboxLanguage: string;
109
+ /** Optional response shaping */
110
+ responseShaping?: z.infer<typeof ResponseShapingSchema>;
111
+ }
112
+ /**
113
+ * Context provided to custom tool handlers at execution time.
114
+ */
115
+ export interface CustomToolContext {
116
+ /** Make an HTTP request through a configured connection */
117
+ request(connection: string, endpoint: string, params?: {
118
+ method?: string;
119
+ data?: unknown;
120
+ params?: Record<string, string>;
121
+ }): Promise<unknown>;
122
+ /** Execute a shell command (locally or in sandbox). Use to delegate to Python, Go, etc. */
123
+ exec(command: string, options?: {
124
+ cwd?: string;
125
+ timeout?: number;
126
+ }): Promise<{
127
+ stdout: string;
128
+ stderr: string;
129
+ exitCode: number;
130
+ }>;
131
+ /** Read an environment variable (only if in the tool's env allowlist) */
132
+ env(name: string): string | undefined;
133
+ /** Log a message for debugging */
134
+ log(message: string): void;
135
+ /** Current user info */
136
+ user: {
137
+ roles: string[];
138
+ [key: string]: unknown;
139
+ };
140
+ /** Abort signal for cancellation */
141
+ signal: AbortSignal;
142
+ }
143
+ /**
144
+ * Definition object for a single-file tool handler.
145
+ *
146
+ * When a tool directory has no tool.json, the loader imports handler.ts
147
+ * and looks for either a ToolHandlerDefinition default export (from defineToolHandler)
148
+ * or individual named exports (description, parameters, handler, etc.).
149
+ */
150
+ export interface ToolHandlerDefinition {
151
+ /** Marker so the loader knows this is a defineToolHandler result */
152
+ __toolHandler: true;
153
+ /** Description shown to the LLM */
154
+ description: string;
155
+ /** JSON Schema describing parameters */
156
+ parameters?: Record<string, unknown>;
157
+ /** Confirmation behavior */
158
+ confirm?: false | true | 'review' | 'never';
159
+ /** Execution timeout in ms */
160
+ timeout?: number;
161
+ /** Allowed environment variable names */
162
+ env?: string[];
163
+ /** The handler function */
164
+ handler: (params: Record<string, unknown>, ctx: CustomToolContext) => Promise<unknown>;
165
+ }
166
+ /**
167
+ * Helper for defining a typed tool handler in a single file.
168
+ *
169
+ * Usage in handler.ts:
170
+ * ```ts
171
+ * import { defineToolHandler } from '@amodalai/core'
172
+ *
173
+ * export default defineToolHandler({
174
+ * description: 'Calculate weighted pipeline value',
175
+ * parameters: {
176
+ * type: 'object',
177
+ * properties: { deal_ids: { type: 'array', items: { type: 'string' } } },
178
+ * required: ['deal_ids'],
179
+ * },
180
+ * handler: async (params, ctx) => {
181
+ * const deals = await ctx.request('crm', '/deals')
182
+ * return { total: 42 }
183
+ * },
184
+ * })
185
+ * ```
186
+ */
187
+ export declare function defineToolHandler(def: Omit<ToolHandlerDefinition, '__toolHandler'>): ToolHandlerDefinition;
188
+ /**
189
+ * Interface for executing custom tool handlers.
190
+ */
191
+ export interface CustomToolExecutor {
192
+ execute(tool: LoadedTool, params: Record<string, unknown>, ctx: CustomToolContext): Promise<unknown>;
193
+ dispose?(): void;
194
+ }
195
+ /**
196
+ * Interface for executing shell commands.
197
+ */
198
+ export interface CustomShellExecutor {
199
+ exec(command: string, timeout: number, signal: AbortSignal): Promise<{
200
+ stdout: string;
201
+ stderr: string;
202
+ exitCode: number;
203
+ }>;
204
+ dispose?(): void;
205
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { z } from 'zod';
7
+ import { ResponseShapingSchema } from '../tools/http-tool-types.js';
8
+ /** Regex for valid tool names — snake_case, starts with lowercase letter */
9
+ export const TOOL_NAME_REGEX = /^[a-z][a-z0-9_]*$/;
10
+ /**
11
+ * Schema for a tool.json file in the tools/ directory.
12
+ *
13
+ * `name` is optional — if omitted, the directory name is used.
14
+ * If provided, it must match the directory name.
15
+ */
16
+ export const ToolJsonSchema = z.object({
17
+ /** Tool name — snake_case, starts with lowercase letter. Optional; defaults to directory name. */
18
+ name: z.string().regex(TOOL_NAME_REGEX, 'Tool name must be snake_case (lowercase letters, digits, underscores)').optional(),
19
+ /** Description shown to the LLM */
20
+ description: z.string().min(1),
21
+ /** JSON Schema describing the parameters the LLM should provide */
22
+ parameters: z.record(z.unknown()).default({}),
23
+ /** Confirmation behavior: false=no confirm, true=confirm before run, 'review'=show params, 'never'=hide from LLM */
24
+ confirm: z.union([z.literal(false), z.literal(true), z.literal('review'), z.literal('never')]).default(false),
25
+ /** Execution timeout in milliseconds */
26
+ timeout: z.number().int().positive().default(30000),
27
+ /** Environment variable names the handler is allowed to access */
28
+ env: z.array(z.string()).default([]),
29
+ /** Optional response shaping configuration */
30
+ responseShaping: ResponseShapingSchema.optional(),
31
+ /** Sandbox configuration for hosted execution */
32
+ sandbox: z.object({
33
+ /** Base language runtime for the sandbox (default: 'typescript') */
34
+ language: z.string().default('typescript'),
35
+ }).optional(),
36
+ });
37
+ /**
38
+ * Helper for defining a typed tool handler in a single file.
39
+ *
40
+ * Usage in handler.ts:
41
+ * ```ts
42
+ * import { defineToolHandler } from '@amodalai/core'
43
+ *
44
+ * export default defineToolHandler({
45
+ * description: 'Calculate weighted pipeline value',
46
+ * parameters: {
47
+ * type: 'object',
48
+ * properties: { deal_ids: { type: 'array', items: { type: 'string' } } },
49
+ * required: ['deal_ids'],
50
+ * },
51
+ * handler: async (params, ctx) => {
52
+ * const deals = await ctx.request('crm', '/deals')
53
+ * return { total: 42 }
54
+ * },
55
+ * })
56
+ * ```
57
+ */
58
+ export function defineToolHandler(def) {
59
+ return { ...def, __toolHandler: true };
60
+ }
61
+ //# sourceMappingURL=tool-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-types.js","sourceRoot":"","sources":["../../../src/repo/tool-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,6BAA6B,CAAC;AAElE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,kGAAkG;IAClG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,uEAAuE,CAAC,CAAC,QAAQ,EAAE;IAC3H,mCAAmC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,mEAAmE;IACnE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,oHAAoH;IACpH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7G,wCAAwC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,kEAAkE;IAClE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,8CAA8C;IAC9C,eAAe,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACjD,iDAAiD;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,oEAAoE;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KAC3C,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAwFH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAiD;IAEjD,OAAO,EAAC,GAAG,GAAG,EAAE,aAAa,EAAE,IAAI,EAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export { RoleDefinitionSchema, AutomationPermissionsSchema, ROLE_WILDCARD, type RoleDefinition, type AutomationPermissions, } from './role-types.js';
7
+ export { isToolAllowedByRole, isSkillAllowedByRole, resolveActiveRole, } from './role-filter.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export { RoleDefinitionSchema, AutomationPermissionsSchema, ROLE_WILDCARD, } from './role-types.js';
7
+ export { isToolAllowedByRole, isSkillAllowedByRole, resolveActiveRole, } from './role-filter.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/roles/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,GAGd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { type RoleDefinition } from './role-types.js';
7
+ /**
8
+ * Checks whether a tool is allowed by the active role.
9
+ *
10
+ * Returns true (allowed) if:
11
+ * - No role is set (backward-compatible: all tools available)
12
+ * - The role's tools list contains the wildcard "*"
13
+ * - The role's tools list contains the tool name
14
+ */
15
+ export declare function isToolAllowedByRole(toolName: string, role: RoleDefinition | undefined): boolean;
16
+ /**
17
+ * Checks whether a skill is allowed by the active role.
18
+ *
19
+ * Returns true (allowed) if:
20
+ * - No role is set (backward-compatible: all skills available)
21
+ * - The role's skills list contains the wildcard "*"
22
+ * - The role's skills list contains the skill name
23
+ */
24
+ export declare function isSkillAllowedByRole(skillName: string, role: RoleDefinition | undefined): boolean;
25
+ /**
26
+ * Resolves the active role definition by name from a list of definitions.
27
+ *
28
+ * @param roleName - The name of the role to resolve (undefined = no role)
29
+ * @param definitions - Available role definitions
30
+ * @returns The matching RoleDefinition, or undefined if no role name given
31
+ * @throws Error if roleName is provided but not found in definitions
32
+ */
33
+ export declare function resolveActiveRole(roleName: string | undefined, definitions: RoleDefinition[]): RoleDefinition | undefined;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { ROLE_WILDCARD } from './role-types.js';
7
+ /**
8
+ * Checks whether a tool is allowed by the active role.
9
+ *
10
+ * Returns true (allowed) if:
11
+ * - No role is set (backward-compatible: all tools available)
12
+ * - The role's tools list contains the wildcard "*"
13
+ * - The role's tools list contains the tool name
14
+ */
15
+ export function isToolAllowedByRole(toolName, role) {
16
+ if (!role)
17
+ return true;
18
+ if (role.tools.includes(ROLE_WILDCARD))
19
+ return true;
20
+ return role.tools.includes(toolName);
21
+ }
22
+ /**
23
+ * Checks whether a skill is allowed by the active role.
24
+ *
25
+ * Returns true (allowed) if:
26
+ * - No role is set (backward-compatible: all skills available)
27
+ * - The role's skills list contains the wildcard "*"
28
+ * - The role's skills list contains the skill name
29
+ */
30
+ export function isSkillAllowedByRole(skillName, role) {
31
+ if (!role)
32
+ return true;
33
+ if (role.skills.includes(ROLE_WILDCARD))
34
+ return true;
35
+ return role.skills.includes(skillName);
36
+ }
37
+ /**
38
+ * Resolves the active role definition by name from a list of definitions.
39
+ *
40
+ * @param roleName - The name of the role to resolve (undefined = no role)
41
+ * @param definitions - Available role definitions
42
+ * @returns The matching RoleDefinition, or undefined if no role name given
43
+ * @throws Error if roleName is provided but not found in definitions
44
+ */
45
+ export function resolveActiveRole(roleName, definitions) {
46
+ if (!roleName)
47
+ return undefined;
48
+ const role = definitions.find((d) => d.name === roleName);
49
+ if (!role) {
50
+ const available = definitions.map((d) => d.name).join(', ');
51
+ throw new Error(`Unknown role "${roleName}". Available roles: ${available || '(none)'}`);
52
+ }
53
+ return role;
54
+ }
55
+ //# sourceMappingURL=role-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-filter.js","sourceRoot":"","sources":["../../../src/roles/role-filter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,IAAgC;IAEhC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,IAAgC;IAEhC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAA4B,EAC5B,WAA6B;IAE7B,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,iBAAiB,QAAQ,uBAAuB,SAAS,IAAI,QAAQ,EAAE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Schema for automation permissions within a role.
9
+ */
10
+ export declare const AutomationPermissionsSchema: z.ZodObject<{
11
+ /** Whether the role can view automation results */
12
+ can_view: z.ZodDefault<z.ZodBoolean>;
13
+ /** Whether the role can create new automations */
14
+ can_create: z.ZodDefault<z.ZodBoolean>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ can_view: boolean;
17
+ can_create: boolean;
18
+ }, {
19
+ can_view?: boolean | undefined;
20
+ can_create?: boolean | undefined;
21
+ }>;
22
+ /**
23
+ * Schema for a single role definition.
24
+ *
25
+ * A role determines which tools and skills a user can access.
26
+ * Tools requires at least one entry; use "*" for wildcard (allow all).
27
+ * Skills defaults to ["*"] (allow all) if not specified.
28
+ * Constraints is a generic record for domain-specific validation.
29
+ */
30
+ export declare const RoleDefinitionSchema: z.ZodObject<{
31
+ /** Unique role name */
32
+ name: z.ZodString;
33
+ /** Allowed tool names — at least one required, "*" = wildcard */
34
+ tools: z.ZodArray<z.ZodString, "many">;
35
+ /** Allowed skill names — defaults to ["*"] (all) */
36
+ skills: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
37
+ /** Automation permissions */
38
+ automations: z.ZodDefault<z.ZodObject<{
39
+ /** Whether the role can view automation results */
40
+ can_view: z.ZodDefault<z.ZodBoolean>;
41
+ /** Whether the role can create new automations */
42
+ can_create: z.ZodDefault<z.ZodBoolean>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ can_view: boolean;
45
+ can_create: boolean;
46
+ }, {
47
+ can_view?: boolean | undefined;
48
+ can_create?: boolean | undefined;
49
+ }>>;
50
+ /** Domain-specific constraints (validated by business logic, not schema) */
51
+ constraints: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ name: string;
54
+ tools: string[];
55
+ skills: string[];
56
+ automations: {
57
+ can_view: boolean;
58
+ can_create: boolean;
59
+ };
60
+ constraints: Record<string, unknown>;
61
+ }, {
62
+ name: string;
63
+ tools: string[];
64
+ skills?: string[] | undefined;
65
+ automations?: {
66
+ can_view?: boolean | undefined;
67
+ can_create?: boolean | undefined;
68
+ } | undefined;
69
+ constraints?: Record<string, unknown> | undefined;
70
+ }>;
71
+ /** Inferred type for a role definition */
72
+ export type RoleDefinition = z.infer<typeof RoleDefinitionSchema>;
73
+ /** Inferred type for automation permissions */
74
+ export type AutomationPermissions = z.infer<typeof AutomationPermissionsSchema>;
75
+ /** Wildcard value that means "allow all" */
76
+ export declare const ROLE_WILDCARD = "*";
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Schema for automation permissions within a role.
9
+ */
10
+ export const AutomationPermissionsSchema = z.object({
11
+ /** Whether the role can view automation results */
12
+ can_view: z.boolean().default(true),
13
+ /** Whether the role can create new automations */
14
+ can_create: z.boolean().default(false),
15
+ });
16
+ /**
17
+ * Schema for a single role definition.
18
+ *
19
+ * A role determines which tools and skills a user can access.
20
+ * Tools requires at least one entry; use "*" for wildcard (allow all).
21
+ * Skills defaults to ["*"] (allow all) if not specified.
22
+ * Constraints is a generic record for domain-specific validation.
23
+ */
24
+ export const RoleDefinitionSchema = z.object({
25
+ /** Unique role name */
26
+ name: z.string().min(1),
27
+ /** Allowed tool names — at least one required, "*" = wildcard */
28
+ tools: z.array(z.string().min(1)).min(1),
29
+ /** Allowed skill names — defaults to ["*"] (all) */
30
+ skills: z.array(z.string().min(1)).default(['*']),
31
+ /** Automation permissions */
32
+ automations: AutomationPermissionsSchema.default({}),
33
+ /** Domain-specific constraints (validated by business logic, not schema) */
34
+ constraints: z.record(z.unknown()).default({}),
35
+ });
36
+ /** Wildcard value that means "allow all" */
37
+ export const ROLE_WILDCARD = '*';
38
+ //# sourceMappingURL=role-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-types.js","sourceRoot":"","sources":["../../../src/roles/role-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,mDAAmD;IACnD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,kDAAkD;IAClD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACvC,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,uBAAuB;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,iEAAiE;IACjE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,oDAAoD;IACpD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IACjD,6BAA6B;IAC7B,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,4EAA4E;IAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC;AAQH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { LoadedConnection } from '../repo/connection-types.js';
7
+ import type { ConnectionsMap } from '../templates/connections.js';
8
+ import type { AccessConfig } from '../repo/connection-schemas.js';
9
+ /**
10
+ * Build a ConnectionsMap from LoadedConnections.
11
+ *
12
+ * Each entry has: base_url (from spec.baseUrl or spec.source), _request_config with auth details,
13
+ * and any injected credential values for {{VAR}} template resolution.
14
+ */
15
+ export declare function buildConnectionsMap(connections: Map<string, LoadedConnection>, credentials?: Record<string, Record<string, string>>): ConnectionsMap;
16
+ /**
17
+ * Build AccessConfig map keyed by connection name.
18
+ */
19
+ export declare function buildAccessConfigs(connections: Map<string, LoadedConnection>): Map<string, AccessConfig>;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Resolve an `env:VAR_NAME` reference to the actual value.
8
+ * Falls back to `{{VAR_NAME}}` template syntax for runtime resolution
9
+ * if the env var is not available at build time.
10
+ */
11
+ function resolveEnvRef(value, credentials) {
12
+ if (!value.startsWith('env:')) {
13
+ return value;
14
+ }
15
+ const varName = value.slice(4);
16
+ // Check injected credentials first
17
+ if (credentials && credentials[varName] !== undefined) {
18
+ return credentials[varName];
19
+ }
20
+ // Fall back to process.env
21
+ const envVal = process.env[varName];
22
+ if (envVal !== undefined) {
23
+ return envVal;
24
+ }
25
+ // Leave as {{VAR}} template for runtime resolution
26
+ return `{{${varName}}}`;
27
+ }
28
+ /**
29
+ * Build a ConnectionsMap from LoadedConnections.
30
+ *
31
+ * Each entry has: base_url (from spec.baseUrl or spec.source), _request_config with auth details,
32
+ * and any injected credential values for {{VAR}} template resolution.
33
+ */
34
+ export function buildConnectionsMap(connections, credentials) {
35
+ const result = {};
36
+ for (const [name, conn] of connections) {
37
+ const connCredentials = credentials?.[name];
38
+ const auth = buildAuthHeaders(conn, connCredentials);
39
+ // Use baseUrl if specified, otherwise fall back to source
40
+ const baseUrl = conn.spec.baseUrl ?? conn.spec.source;
41
+ const resolvedBaseUrl = resolveEnvRef(baseUrl, connCredentials);
42
+ const entry = {
43
+ base_url: resolvedBaseUrl,
44
+ _request_config: {
45
+ base_url_field: 'base_url',
46
+ auth,
47
+ default_headers: {},
48
+ },
49
+ };
50
+ // Merge credential values into the connection config so
51
+ // {{VAR}} templates in auth headers can be resolved at request time
52
+ if (connCredentials) {
53
+ for (const [key, val] of Object.entries(connCredentials)) {
54
+ entry[key] = val;
55
+ }
56
+ }
57
+ result[name] = entry;
58
+ }
59
+ return result;
60
+ }
61
+ /**
62
+ * Build AccessConfig map keyed by connection name.
63
+ */
64
+ export function buildAccessConfigs(connections) {
65
+ const result = new Map();
66
+ for (const [name, conn] of connections) {
67
+ result.set(name, conn.access);
68
+ }
69
+ return result;
70
+ }
71
+ /**
72
+ * Build auth header entries from a connection's spec.auth configuration.
73
+ * Resolves env:VAR_NAME references in token values.
74
+ */
75
+ function buildAuthHeaders(conn, credentials) {
76
+ const specAuth = conn.spec.auth;
77
+ if (!specAuth) {
78
+ return [];
79
+ }
80
+ const rawToken = specAuth.token ?? '';
81
+ const token = resolveEnvRef(rawToken, credentials);
82
+ if (specAuth.type === 'bearer') {
83
+ const header = specAuth.header ?? 'Authorization';
84
+ const prefix = specAuth.prefix ?? 'Bearer';
85
+ return [{ header, value_template: `${prefix} ${token}` }];
86
+ }
87
+ if (specAuth.type === 'api-key') {
88
+ const header = specAuth.header ?? 'X-API-Key';
89
+ return [{ header, value_template: token }];
90
+ }
91
+ if (specAuth.type === 'basic') {
92
+ // For basic auth, token should be the base64-encoded user:pass
93
+ // or two env:VAR refs separated by :
94
+ return [{ header: 'Authorization', value_template: `Basic ${token}` }];
95
+ }
96
+ if (specAuth.type === 'header') {
97
+ // Custom header auth (e.g., X-Shopify-Access-Token)
98
+ const header = specAuth.header ?? 'Authorization';
99
+ return [{ header, value_template: token }];
100
+ }
101
+ return [];
102
+ }
103
+ //# sourceMappingURL=connection-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-bridge.js","sourceRoot":"","sources":["../../../src/runtime/connection-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { AmodalRepo } from '../repo/repo-types.js';
7
+ import type { CompiledContext, SessionConfig } from './runtime-types.js';
8
+ import type { TokenAllocator } from './token-allocator.js';
9
+ /**
10
+ * Compiles system prompts from repo configuration and session state.
11
+ *
12
+ * Builds ordered, prioritized context sections and delegates to TokenAllocator
13
+ * for budget trimming.
14
+ */
15
+ export declare class ContextCompiler {
16
+ private readonly repo;
17
+ private readonly allocator;
18
+ constructor(config: {
19
+ repo: AmodalRepo;
20
+ allocator: TokenAllocator;
21
+ });
22
+ /**
23
+ * Compile the full primary-agent system prompt.
24
+ */
25
+ compile(session: SessionConfig): CompiledContext;
26
+ /**
27
+ * Compile the explore sub-agent system prompt (subset of main).
28
+ */
29
+ compileExplore(session: SessionConfig): CompiledContext;
30
+ private section;
31
+ private buildConnectionsContent;
32
+ private buildSkillsContent;
33
+ private buildKnowledgeContent;
34
+ private buildResult;
35
+ }