@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,135 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Extract roles from a user context response object.
8
+ * Looks for: role (string), roles (string[]), permissions.role, user.role.
9
+ */
10
+ export function extractRoles(data) {
11
+ // Direct role string
12
+ if (typeof data['role'] === 'string') {
13
+ return [data['role']];
14
+ }
15
+ // Direct roles array
16
+ if (Array.isArray(data['roles'])) {
17
+ return data['roles'].filter((r) => typeof r === 'string');
18
+ }
19
+ // Nested permissions.role
20
+ const permissions = data['permissions'];
21
+ if (permissions !== null && typeof permissions === 'object' && !Array.isArray(permissions)) {
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- SDK boundary: verified object
23
+ const perms = permissions;
24
+ if (typeof perms['role'] === 'string') {
25
+ return [perms['role']];
26
+ }
27
+ }
28
+ // Nested user.role
29
+ const user = data['user'];
30
+ if (user !== null && typeof user === 'object' && !Array.isArray(user)) {
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- SDK boundary: verified object
32
+ const usr = user;
33
+ if (typeof usr['role'] === 'string') {
34
+ return [usr['role']];
35
+ }
36
+ }
37
+ return [];
38
+ }
39
+ /**
40
+ * Resolve scope labels for a user's roles from all connections' rowScoping.
41
+ *
42
+ * For each entity in each connection's rowScoping, finds the first matching
43
+ * role's scoping rule label. If no role matches, the entity is skipped.
44
+ */
45
+ export function resolveScopeLabels(connections, userRoles) {
46
+ const scopeLabels = {};
47
+ const scopeRules = {};
48
+ for (const [, conn] of connections) {
49
+ const rowScoping = conn.access.rowScoping;
50
+ if (!rowScoping)
51
+ continue;
52
+ for (const [entity, roleMap] of Object.entries(rowScoping)) {
53
+ // Already resolved this entity from a prior connection
54
+ if (scopeRules[entity])
55
+ continue;
56
+ // Try to find a matching role
57
+ let matched = false;
58
+ for (const role of userRoles) {
59
+ const rule = roleMap[role];
60
+ if (rule) {
61
+ scopeRules[entity] = rule;
62
+ scopeLabels[entity] = rule.label ?? `scoped by ${rule.type}`;
63
+ matched = true;
64
+ break;
65
+ }
66
+ }
67
+ // If no role matched, skip this entity
68
+ if (!matched)
69
+ continue;
70
+ }
71
+ }
72
+ return { scopeLabels, scopeRules };
73
+ }
74
+ /**
75
+ * Generate field guidance text from all connections' fieldRestrictions.
76
+ *
77
+ * Lists never_retrieve fields as "Do not request: entity.field (reason)"
78
+ * Lists role_gated fields with allowed roles
79
+ * Lists retrieve_but_redact fields as "Will be redacted: entity.field"
80
+ */
81
+ export function generateFieldGuidance(connections, userRoles) {
82
+ const lines = [];
83
+ for (const [, conn] of connections) {
84
+ const restrictions = conn.access.fieldRestrictions;
85
+ if (!restrictions || restrictions.length === 0)
86
+ continue;
87
+ for (const r of restrictions) {
88
+ if (r.policy === 'never_retrieve') {
89
+ const reason = r.reason ? ` (${r.reason})` : '';
90
+ lines.push(`Do not request: ${r.entity}.${r.field}${reason}`);
91
+ }
92
+ else if (r.policy === 'role_gated') {
93
+ const allowed = r.allowedRoles ?? [];
94
+ const hasAccess = userRoles.some((role) => allowed.includes(role));
95
+ if (!hasAccess) {
96
+ lines.push(`Do not request: ${r.entity}.${r.field} (requires role: ${allowed.join(', ')})`);
97
+ }
98
+ }
99
+ else if (r.policy === 'retrieve_but_redact') {
100
+ lines.push(`Will be redacted: ${r.entity}.${r.field}`);
101
+ }
102
+ }
103
+ }
104
+ return lines.join('\n');
105
+ }
106
+ /**
107
+ * Generate alternative lookup guidance from all connections' alternativeLookups.
108
+ */
109
+ export function generateAlternativeLookupGuidance(connections) {
110
+ const lines = [];
111
+ for (const [, conn] of connections) {
112
+ const lookups = conn.access.alternativeLookups;
113
+ if (!lookups || lookups.length === 0)
114
+ continue;
115
+ for (const lookup of lookups) {
116
+ const desc = lookup.description ? ` — ${lookup.description}` : '';
117
+ lines.push(`Instead of ${lookup.restrictedField}, use ${lookup.alternativeEndpoint}${desc}`);
118
+ }
119
+ }
120
+ return lines.join('\n');
121
+ }
122
+ /**
123
+ * Create a default empty UserContextResult.
124
+ */
125
+ export function defaultUserContext() {
126
+ return {
127
+ raw: {},
128
+ roles: [],
129
+ scopeLabels: {},
130
+ scopeRules: {},
131
+ fieldGuidance: '',
132
+ alternativeLookupGuidance: '',
133
+ };
134
+ }
135
+ //# sourceMappingURL=user-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-context.js","sourceRoot":"","sources":["../../../src/runtime/user-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { AmodalConfig } from './amodal-config.js';
7
+ import { VersionManager } from './versions/version-manager.js';
8
+ import { PlatformClient } from './platform/platform-client.js';
9
+ import type { AgentSDKConfig } from './platform/platform-types.js';
10
+ /**
11
+ * The main public interface for the Agent Runtime Platform SDK.
12
+ *
13
+ * Wraps AmodalConfig + VersionManager + PlatformClient into a single entry point.
14
+ * Consumers create an AgentSDK, call initialize(), then use getConfig()
15
+ * to access the fully-configured runtime.
16
+ */
17
+ export declare class AgentSDK {
18
+ private readonly sdkConfig;
19
+ private readonly configOverrides;
20
+ private amodalConfig;
21
+ private versionManager;
22
+ private platformClientInstance;
23
+ private initialized;
24
+ /**
25
+ * @param sdkConfig Platform, connections, audit, and role configuration
26
+ * @param configOverrides Additional ConfigParameters fields for the underlying
27
+ * Config class (model, sessionId, cwd, etc.). Bundle-derived fields from
28
+ * the version config will override matching fields in configOverrides.
29
+ */
30
+ constructor(sdkConfig: AgentSDKConfig, configOverrides?: Record<string, unknown>);
31
+ /**
32
+ * Load the version bundle (if configured), install deps, import handlers,
33
+ * build AmodalConfig, and call AmodalConfig.initialize().
34
+ *
35
+ * Must be called exactly once before getConfig() or getVersionManager().
36
+ */
37
+ initialize(): Promise<void>;
38
+ /**
39
+ * Access the initialized AmodalConfig instance.
40
+ * Throws if initialize() hasn't been called.
41
+ */
42
+ getConfig(): AmodalConfig;
43
+ /**
44
+ * Access the VersionManager instance.
45
+ * Throws if initialize() hasn't been called.
46
+ */
47
+ getVersionManager(): VersionManager;
48
+ /**
49
+ * Access the PlatformClient instance (if platform config was provided).
50
+ * Returns null if no platform config was set.
51
+ */
52
+ getPlatformClient(): PlatformClient | null;
53
+ /**
54
+ * Shutdown the SDK: flush audit logs.
55
+ */
56
+ shutdown(): Promise<void>;
57
+ }
@@ -0,0 +1,377 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { tmpdir } from 'node:os';
7
+ import path from 'node:path';
8
+ import { mkdir, writeFile } from 'node:fs/promises';
9
+ import { AmodalConfig } from './amodal-config.js';
10
+ import { VersionManager } from './versions/version-manager.js';
11
+ import { PlatformClient } from './platform/platform-client.js';
12
+ import { buildPlatformConfigParams } from './platform/config-builder.js';
13
+ /**
14
+ * The main public interface for the Agent Runtime Platform SDK.
15
+ *
16
+ * Wraps AmodalConfig + VersionManager + PlatformClient into a single entry point.
17
+ * Consumers create an AgentSDK, call initialize(), then use getConfig()
18
+ * to access the fully-configured runtime.
19
+ */
20
+ export class AgentSDK {
21
+ sdkConfig;
22
+ configOverrides;
23
+ amodalConfig = null;
24
+ versionManager = null;
25
+ platformClientInstance = null;
26
+ initialized = false;
27
+ /**
28
+ * @param sdkConfig Platform, connections, audit, and role configuration
29
+ * @param configOverrides Additional ConfigParameters fields for the underlying
30
+ * Config class (model, sessionId, cwd, etc.). Bundle-derived fields from
31
+ * the version config will override matching fields in configOverrides.
32
+ */
33
+ constructor(sdkConfig, configOverrides = {}) {
34
+ this.sdkConfig = sdkConfig;
35
+ this.configOverrides = configOverrides;
36
+ }
37
+ /**
38
+ * Load the version bundle (if configured), install deps, import handlers,
39
+ * build AmodalConfig, and call AmodalConfig.initialize().
40
+ *
41
+ * Must be called exactly once before getConfig() or getVersionManager().
42
+ */
43
+ async initialize() {
44
+ if (this.initialized) {
45
+ throw new Error('AgentSDK is already initialized');
46
+ }
47
+ this.initialized = true;
48
+ // 1. Determine bundle source and load if available
49
+ const baseDir = this.sdkConfig.versionBaseDir ?? tmpdir();
50
+ this.versionManager = new VersionManager({ baseDir });
51
+ let versionConfig = null;
52
+ if (this.sdkConfig.platform) {
53
+ // Create PlatformClient for KB/org/secrets fetching
54
+ this.platformClientInstance = new PlatformClient(this.sdkConfig.platform);
55
+ // Only fetch bundle when a deployment is configured
56
+ if (this.sdkConfig.platform.deployment) {
57
+ const bundle = await this.platformClientInstance.fetchLatestBundle();
58
+ const bundleDir = path.join(baseDir, 'bundles');
59
+ await mkdir(bundleDir, { recursive: true });
60
+ const bundlePath = path.join(bundleDir, `${bundle.version}.json`);
61
+ await writeFile(bundlePath, JSON.stringify(bundle), 'utf-8');
62
+ await this.versionManager.loadVersion({ path: bundlePath });
63
+ versionConfig = this.versionManager.getVersionConfig();
64
+ }
65
+ }
66
+ else if (this.sdkConfig.localBundlePath) {
67
+ await this.versionManager.loadVersion({
68
+ path: this.sdkConfig.localBundlePath,
69
+ });
70
+ versionConfig = this.versionManager.getVersionConfig();
71
+ }
72
+ // 1.5 Load base_prompt + agent_context from application (non-fatal)
73
+ if (this.platformClientInstance && this.sdkConfig.applicationId) {
74
+ try {
75
+ const app = await this.platformClientInstance.fetchApplication(this.sdkConfig.applicationId);
76
+ if (app.agent_context) {
77
+ this.sdkConfig.agentContext = app.agent_context;
78
+ }
79
+ if (app.base_prompt) {
80
+ this.configOverrides['basePrompt'] = app.base_prompt;
81
+ }
82
+ if (app.name) {
83
+ this.configOverrides['agentName'] = app.name;
84
+ }
85
+ if (app.disabled_platform_tools && app.disabled_platform_tools.length > 0) {
86
+ this.sdkConfig.disabledPlatformTools = app.disabled_platform_tools;
87
+ }
88
+ if (app.model) {
89
+ this.configOverrides['model'] = app.model;
90
+ }
91
+ if (app.provider) {
92
+ process.env['LLM_PROVIDER'] = app.provider;
93
+ // Build ModelConfig for the MultiProviderContentGenerator
94
+ const mc = {
95
+ provider: app.provider,
96
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
97
+ model: app.model ?? this.configOverrides['model'] ?? 'gemini-2.0-flash',
98
+ baseUrl: app.provider_base_url ?? undefined,
99
+ credentials: {},
100
+ };
101
+ if (app.provider_api_key) {
102
+ const credKey = app.provider === 'anthropic' ? 'ANTHROPIC_API_KEY'
103
+ : app.provider === 'openai' ? 'OPENAI_API_KEY'
104
+ : 'API_KEY';
105
+ mc.credentials = { [credKey]: app.provider_api_key };
106
+ }
107
+ this.configOverrides['modelConfig'] = mc;
108
+ }
109
+ if (app.provider_base_url) {
110
+ this.configOverrides['providerBaseUrl'] = app.provider_base_url;
111
+ }
112
+ if (app.provider_api_key) {
113
+ this.configOverrides['providerApiKey'] = app.provider_api_key;
114
+ }
115
+ if (app.simple_model) {
116
+ this.configOverrides['simpleModel'] = app.simple_model;
117
+ }
118
+ if (app.advanced_model) {
119
+ this.configOverrides['advancedModel'] = app.advanced_model;
120
+ }
121
+ }
122
+ catch {
123
+ process.stderr.write('[WARN] Failed to fetch application details\n');
124
+ }
125
+ }
126
+ // 2. Fetch knowledge base documents (non-fatal)
127
+ let appDocuments = [];
128
+ let tenantDocuments = [];
129
+ if (this.platformClientInstance) {
130
+ const appId = this.sdkConfig.applicationId;
131
+ if (appId) {
132
+ try {
133
+ appDocuments = await this.platformClientInstance.fetchDocuments('application', appId, this.sdkConfig.sessionType);
134
+ }
135
+ catch {
136
+ process.stderr.write('[WARN] Failed to fetch application knowledge base\n');
137
+ }
138
+ }
139
+ const tenId = this.sdkConfig.tenantId;
140
+ if (tenId) {
141
+ try {
142
+ tenantDocuments = await this.platformClientInstance.fetchDocuments('tenant', tenId, this.sdkConfig.sessionType);
143
+ }
144
+ catch {
145
+ process.stderr.write('[WARN] Failed to fetch tenant knowledge base\n');
146
+ }
147
+ }
148
+ // 2.5 Resolve tenant secrets and merge into connections (non-fatal)
149
+ const tenantIdForSecrets = this.sdkConfig.tenantId;
150
+ if (tenantIdForSecrets) {
151
+ try {
152
+ const secrets = await this.platformClientInstance.resolveSecrets(tenantIdForSecrets);
153
+ if (secrets.length > 0) {
154
+ const connections = this.sdkConfig.connections ?? {};
155
+ const resolved = {};
156
+ for (const secret of secrets) {
157
+ resolved[secret.name] = secret.value;
158
+ }
159
+ this.sdkConfig.connections = { ...connections, _secrets: resolved };
160
+ }
161
+ }
162
+ catch {
163
+ process.stderr.write('[WARN] Failed to resolve tenant secrets\n');
164
+ }
165
+ // 2.6 Resolve connections (credentials + request_config) — non-fatal
166
+ try {
167
+ const resolvedConns = await this.platformClientInstance.resolveConnections(tenantIdForSecrets);
168
+ const connections = this.sdkConfig.connections ?? {};
169
+ for (const [connName, resolved] of Object.entries(resolvedConns)) {
170
+ const connConfig = {
171
+ ...resolved.credentials,
172
+ };
173
+ if (resolved.request_config) {
174
+ connConfig['_request_config'] = resolved.request_config;
175
+ }
176
+ connections[connName] = connConfig;
177
+ }
178
+ this.sdkConfig.connections = connections;
179
+ }
180
+ catch {
181
+ process.stderr.write('[WARN] Failed to resolve connections\n');
182
+ }
183
+ }
184
+ }
185
+ // 2.65 Fetch connection metadata for agent awareness (non-fatal)
186
+ let connectionInfos = [];
187
+ if (this.platformClientInstance && this.sdkConfig.applicationId) {
188
+ try {
189
+ connectionInfos = await this.platformClientInstance.fetchConnections(this.sdkConfig.applicationId, this.sdkConfig.sessionType);
190
+ if (connectionInfos.length > 0) {
191
+ process.stderr.write(`[SDK] Loaded ${String(connectionInfos.length)} connection info(s)\n`);
192
+ }
193
+ }
194
+ catch {
195
+ process.stderr.write('[WARN] Failed to fetch connection metadata\n');
196
+ }
197
+ }
198
+ // 2.7 Fetch custom tools and separate by type (non-fatal)
199
+ const httpToolConfigs = [];
200
+ const chainToolConfigs = [];
201
+ const functionToolConfigs = [];
202
+ if (this.platformClientInstance) {
203
+ const toolAppId = this.sdkConfig.applicationId;
204
+ if (toolAppId) {
205
+ try {
206
+ const tools = await this.platformClientInstance.fetchTools(toolAppId, this.sdkConfig.sessionType);
207
+ for (const tool of tools) {
208
+ const { type: _type, ...config } = tool;
209
+ if (tool.type === 'http') {
210
+ httpToolConfigs.push(config);
211
+ }
212
+ else if (tool.type === 'chain') {
213
+ chainToolConfigs.push(config);
214
+ }
215
+ else if (tool.type === 'function') {
216
+ functionToolConfigs.push(config);
217
+ }
218
+ }
219
+ if (tools.length > 0) {
220
+ process.stderr.write(`[SDK] Loaded ${String(tools.length)} custom tool(s)\n`);
221
+ }
222
+ }
223
+ catch {
224
+ process.stderr.write('[WARN] Failed to fetch custom tools\n');
225
+ }
226
+ }
227
+ }
228
+ // 2.8 Fetch skills from platform API (non-fatal)
229
+ let fetchedSkills = [];
230
+ if (this.platformClientInstance) {
231
+ const skillAppId = this.sdkConfig.applicationId;
232
+ if (skillAppId) {
233
+ try {
234
+ fetchedSkills = await this.platformClientInstance.fetchSkills(skillAppId, this.sdkConfig.sessionType);
235
+ if (fetchedSkills.length > 0) {
236
+ process.stderr.write(`[SDK] Loaded ${String(fetchedSkills.length)} skill(s)\n`);
237
+ }
238
+ }
239
+ catch {
240
+ process.stderr.write('[WARN] Failed to fetch skills\n');
241
+ }
242
+ }
243
+ }
244
+ // 2.9 Fetch subagents from platform API (non-fatal)
245
+ let fetchedSubagents = [];
246
+ if (this.platformClientInstance) {
247
+ const saAppId = this.sdkConfig.applicationId;
248
+ if (saAppId) {
249
+ try {
250
+ fetchedSubagents = await this.platformClientInstance.fetchSubagents(saAppId, this.sdkConfig.sessionType);
251
+ if (fetchedSubagents.length > 0) {
252
+ process.stderr.write(`[SDK] Loaded ${String(fetchedSubagents.length)} subagent(s)\n`);
253
+ }
254
+ }
255
+ catch {
256
+ process.stderr.write('[WARN] Failed to fetch subagents\n');
257
+ }
258
+ }
259
+ }
260
+ // 3. Build platform config params
261
+ const platformParams = buildPlatformConfigParams(versionConfig, this.sdkConfig);
262
+ // 4. Merge: configOverrides (base) + platformParams (override) + KB docs + custom tools
263
+ const mergedParams = {
264
+ ...this.configOverrides,
265
+ ...platformParams,
266
+ appDocuments,
267
+ tenantDocuments,
268
+ connectionInfos,
269
+ };
270
+ // Only set tool config arrays when there are tools to include
271
+ const bundleHttp = (platformParams.httpToolConfigs) ?? [];
272
+ const bundleChain = (platformParams.chainToolConfigs) ?? [];
273
+ const bundleFunction = (platformParams.functionToolConfigs) ?? [];
274
+ if (bundleHttp.length > 0 || httpToolConfigs.length > 0) {
275
+ mergedParams['httpToolConfigs'] = [...bundleHttp, ...httpToolConfigs];
276
+ }
277
+ if (bundleChain.length > 0 || chainToolConfigs.length > 0) {
278
+ mergedParams['chainToolConfigs'] = [...bundleChain, ...chainToolConfigs];
279
+ }
280
+ if (bundleFunction.length > 0 || functionToolConfigs.length > 0) {
281
+ mergedParams['functionToolConfigs'] = [...bundleFunction, ...functionToolConfigs];
282
+ }
283
+ // Merge skills
284
+ const bundleSkillsFromVersion = platformParams.bundleSkills ?? [];
285
+ if (bundleSkillsFromVersion.length > 0 || fetchedSkills.length > 0) {
286
+ mergedParams['bundleSkills'] = [...bundleSkillsFromVersion, ...fetchedSkills];
287
+ }
288
+ // Merge subagents
289
+ if (fetchedSubagents.length > 0) {
290
+ mergedParams['bundleSubagents'] = fetchedSubagents;
291
+ }
292
+ // 2.95 Fetch stores + knowledge from active deployment snapshot (non-fatal)
293
+ if (this.platformClientInstance) {
294
+ try {
295
+ const snapshot = await this.platformClientInstance.fetchActiveSnapshot(30000, this.sdkConfig.deployId);
296
+ if (snapshot) {
297
+ // Stores
298
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- snapshot from server
299
+ const stores = snapshot['stores'];
300
+ if (stores && stores.length > 0) {
301
+ mergedParams['stores'] = stores;
302
+ process.stderr.write(`[SDK] Loaded ${String(stores.length)} store(s)\n`);
303
+ }
304
+ // Knowledge from snapshot (repo-based, not from platform DB)
305
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- snapshot from server
306
+ const knowledge = snapshot['knowledge'];
307
+ if (knowledge && knowledge.length > 0) {
308
+ // Convert snapshot knowledge to KBDocument format
309
+ const snapshotDocs = knowledge.map((k) => ({
310
+ id: k.name,
311
+ scope_type: 'application',
312
+ scope_id: this.sdkConfig.applicationId ?? '',
313
+ title: k.title,
314
+ category: 'system_docs',
315
+ body: k.body,
316
+ tags: [],
317
+ status: 'approved',
318
+ created_by: 'deployment',
319
+ created_at: new Date().toISOString(),
320
+ updated_at: new Date().toISOString(),
321
+ }));
322
+ // Merge with any platform-fetched docs (snapshot docs first, platform docs override)
323
+ const existingNames = new Set(appDocuments.map((d) => d.title));
324
+ const newDocs = snapshotDocs.filter((d) => !existingNames.has(d.title));
325
+ appDocuments = [...appDocuments, ...newDocs];
326
+ // Update mergedParams since appDocuments was reassigned
327
+ mergedParams['appDocuments'] = appDocuments;
328
+ process.stderr.write(`[SDK] Loaded ${String(newDocs.length)} knowledge doc(s) from snapshot\n`);
329
+ }
330
+ }
331
+ }
332
+ catch {
333
+ // Non-fatal — stores and knowledge are optional
334
+ }
335
+ }
336
+ // 5. Create AmodalConfig (composition wrapper) and initialize
337
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- merging partial configs
338
+ this.amodalConfig = new AmodalConfig(mergedParams);
339
+ await this.amodalConfig.initialize();
340
+ }
341
+ /**
342
+ * Access the initialized AmodalConfig instance.
343
+ * Throws if initialize() hasn't been called.
344
+ */
345
+ getConfig() {
346
+ if (!this.amodalConfig) {
347
+ throw new Error('AgentSDK not initialized. Call initialize() first.');
348
+ }
349
+ return this.amodalConfig;
350
+ }
351
+ /**
352
+ * Access the VersionManager instance.
353
+ * Throws if initialize() hasn't been called.
354
+ */
355
+ getVersionManager() {
356
+ if (!this.versionManager) {
357
+ throw new Error('AgentSDK not initialized. Call initialize() first.');
358
+ }
359
+ return this.versionManager;
360
+ }
361
+ /**
362
+ * Access the PlatformClient instance (if platform config was provided).
363
+ * Returns null if no platform config was set.
364
+ */
365
+ getPlatformClient() {
366
+ return this.platformClientInstance;
367
+ }
368
+ /**
369
+ * Shutdown the SDK: flush audit logs.
370
+ */
371
+ async shutdown() {
372
+ if (this.amodalConfig) {
373
+ await this.amodalConfig.shutdown();
374
+ }
375
+ }
376
+ }
377
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { AccessConfig } from '../repo/connection-schemas.js';
7
+ import type { GateResult } from './security-types.js';
8
+ export interface ActionGateConfig {
9
+ accessConfigs: Map<string, AccessConfig>;
10
+ isDelegated: boolean;
11
+ }
12
+ /**
13
+ * Controls write operations based on confirmation tiers from access config.
14
+ */
15
+ export declare class ActionGate {
16
+ private readonly accessConfigs;
17
+ private readonly isDelegated;
18
+ private readonly thresholdEvaluator;
19
+ constructor(config: ActionGateConfig);
20
+ evaluate(endpointPath: string, connectionName: string, params?: Record<string, unknown>): GateResult;
21
+ private resolveBaseTier;
22
+ private escalateDecision;
23
+ }