@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,206 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { ToolJsonSchema } from './tool-types.js';
7
+ import { RepoError } from './repo-types.js';
8
+ import { parseConfig, parseConnection, parseSkill, parseKnowledge, parseAutomation, parseEval, } from './parsers.js';
9
+ /**
10
+ * Fetch a text resource from the platform API.
11
+ * Returns null on 404, throws on other errors.
12
+ */
13
+ async function fetchText(baseUrl, path, apiKey, timeout = 30000) {
14
+ const url = `${baseUrl}${path}`;
15
+ let response;
16
+ try {
17
+ const controller = new AbortController();
18
+ const timer = setTimeout(() => controller.abort(), timeout);
19
+ response = await fetch(url, {
20
+ signal: controller.signal,
21
+ headers: {
22
+ Authorization: `Bearer ${apiKey}`,
23
+ Accept: 'text/plain, application/json',
24
+ },
25
+ });
26
+ clearTimeout(timer);
27
+ }
28
+ catch (err) {
29
+ if (err instanceof DOMException && err.name === 'AbortError') {
30
+ throw new RepoError('PLATFORM_FETCH_FAILED', `Request timed out: ${url}`, err);
31
+ }
32
+ throw new RepoError('PLATFORM_FETCH_FAILED', `Failed to fetch ${url}`, err);
33
+ }
34
+ if (response.status === 404) {
35
+ return null;
36
+ }
37
+ if (!response.ok) {
38
+ throw new RepoError('PLATFORM_FETCH_FAILED', `HTTP ${String(response.status)} fetching ${url}`);
39
+ }
40
+ return response.text();
41
+ }
42
+ /**
43
+ * Fetch and parse JSON from the platform API.
44
+ */
45
+ async function fetchJson(baseUrl, path, apiKey, timeout = 30000) {
46
+ const text = await fetchText(baseUrl, path, apiKey, timeout);
47
+ if (text === null) {
48
+ throw new RepoError('PLATFORM_FETCH_FAILED', `Resource not found: ${path}`);
49
+ }
50
+ try {
51
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
52
+ return JSON.parse(text);
53
+ }
54
+ catch (err) {
55
+ throw new RepoError('CONFIG_PARSE_FAILED', `Invalid JSON from ${path}`, err);
56
+ }
57
+ }
58
+ /**
59
+ * Load a single connection from the platform API.
60
+ */
61
+ async function loadPlatformConnection(baseUrl, apiKey, name) {
62
+ const basePath = `/api/repo/connections/${name}`;
63
+ const [specJson, accessJson, surfaceMd, entitiesMd, rulesMd] = await Promise.all([
64
+ fetchText(baseUrl, `${basePath}/spec`, apiKey),
65
+ fetchText(baseUrl, `${basePath}/access`, apiKey),
66
+ fetchText(baseUrl, `${basePath}/surface`, apiKey),
67
+ fetchText(baseUrl, `${basePath}/entities`, apiKey),
68
+ fetchText(baseUrl, `${basePath}/rules`, apiKey),
69
+ ]);
70
+ if (!specJson) {
71
+ throw new RepoError('READ_FAILED', `Missing spec.json for connection "${name}"`);
72
+ }
73
+ if (!accessJson) {
74
+ throw new RepoError('READ_FAILED', `Missing access.json for connection "${name}"`);
75
+ }
76
+ return parseConnection(name, {
77
+ specJson,
78
+ accessJson,
79
+ surfaceMd: surfaceMd ?? undefined,
80
+ entitiesMd: entitiesMd ?? undefined,
81
+ rulesMd: rulesMd ?? undefined,
82
+ }, `${baseUrl}${basePath}`);
83
+ }
84
+ /**
85
+ * Load the full amodal repo from the platform API.
86
+ */
87
+ export async function loadRepoFromPlatform(apiUrl, apiKey) {
88
+ // Normalize URL — strip trailing slash
89
+ const baseUrl = apiUrl.replace(/\/+$/, '');
90
+ // Fetch config
91
+ const configText = await fetchText(baseUrl, '/api/repo/config', apiKey);
92
+ if (configText === null) {
93
+ throw new RepoError('CONFIG_NOT_FOUND', 'Config not found on platform');
94
+ }
95
+ const config = parseConfig(configText);
96
+ // Fetch directory tree
97
+ const tree = await fetchJson(baseUrl, '/api/repo/tree', apiKey);
98
+ // Load all sections in parallel
99
+ const [connections, skills, agents, knowledge, automations, evals, tools] = await Promise.all([
100
+ // Connections
101
+ (async () => {
102
+ const map = new Map();
103
+ const loaded = await Promise.all(tree.connections.map(async (name) => {
104
+ const conn = await loadPlatformConnection(baseUrl, apiKey, name);
105
+ return [name, conn];
106
+ }));
107
+ for (const [name, conn] of loaded) {
108
+ map.set(name, conn);
109
+ }
110
+ return map;
111
+ })(),
112
+ // Skills
113
+ Promise.all(tree.skills.map(async (name) => {
114
+ const content = await fetchText(baseUrl, `/api/repo/skills/${name}`, apiKey);
115
+ if (!content)
116
+ return null;
117
+ return parseSkill(content, `${baseUrl}/api/repo/skills/${name}`);
118
+ })).then((results) => results.filter((s) => s !== null)),
119
+ // Agents
120
+ (async () => {
121
+ const [main, explore] = await Promise.all([
122
+ fetchText(baseUrl, '/api/repo/agents/main', apiKey),
123
+ fetchText(baseUrl, '/api/repo/agents/explore', apiKey),
124
+ ]);
125
+ return {
126
+ main: main ?? undefined,
127
+ explore: explore ?? undefined,
128
+ subagents: [],
129
+ };
130
+ })(),
131
+ // Knowledge
132
+ Promise.all(tree.knowledge.map(async (name) => {
133
+ const content = await fetchText(baseUrl, `/api/repo/knowledge/${name}`, apiKey);
134
+ if (!content) {
135
+ return parseKnowledge('', name, `${baseUrl}/api/repo/knowledge/${name}`);
136
+ }
137
+ return parseKnowledge(content, name, `${baseUrl}/api/repo/knowledge/${name}`);
138
+ })),
139
+ // Automations
140
+ Promise.all(tree.automations.map(async (name) => {
141
+ const content = await fetchText(baseUrl, `/api/repo/automations/${name}`, apiKey);
142
+ if (!content) {
143
+ return parseAutomation('', name, `${baseUrl}/api/repo/automations/${name}`);
144
+ }
145
+ return parseAutomation(content, name, `${baseUrl}/api/repo/automations/${name}`);
146
+ })),
147
+ // Evals
148
+ Promise.all(tree.evals.map(async (name) => {
149
+ const content = await fetchText(baseUrl, `/api/repo/evals/${name}`, apiKey);
150
+ if (!content) {
151
+ return parseEval('', name, `${baseUrl}/api/repo/evals/${name}`);
152
+ }
153
+ return parseEval(content, name, `${baseUrl}/api/repo/evals/${name}`);
154
+ })),
155
+ // Tools
156
+ Promise.all((tree.tools ?? []).map(async (name) => {
157
+ const content = await fetchText(baseUrl, `/api/repo/tools/${name}/tool.json`, apiKey);
158
+ if (!content)
159
+ return null;
160
+ let raw;
161
+ try {
162
+ raw = JSON.parse(content);
163
+ }
164
+ catch {
165
+ return null;
166
+ }
167
+ const parsed = ToolJsonSchema.safeParse(raw);
168
+ if (!parsed.success)
169
+ return null;
170
+ const toolJson = parsed.data;
171
+ const tool = {
172
+ name: toolJson.name ?? name,
173
+ description: toolJson.description,
174
+ parameters: toolJson.parameters,
175
+ confirm: toolJson.confirm,
176
+ timeout: toolJson.timeout,
177
+ env: toolJson.env,
178
+ handlerPath: `${baseUrl}/api/repo/tools/${name}/handler`,
179
+ location: `${baseUrl}/api/repo/tools/${name}`,
180
+ hasPackageJson: false,
181
+ hasSetupScript: false,
182
+ hasRequirementsTxt: false,
183
+ hasDockerfile: false,
184
+ sandboxLanguage: toolJson.sandbox?.language ?? 'typescript',
185
+ };
186
+ if (toolJson.responseShaping) {
187
+ tool.responseShaping = toolJson.responseShaping;
188
+ }
189
+ return tool;
190
+ })).then((results) => results.filter((t) => t !== null)),
191
+ ]);
192
+ return {
193
+ source: 'platform',
194
+ origin: baseUrl,
195
+ config,
196
+ connections,
197
+ skills,
198
+ agents,
199
+ knowledge,
200
+ automations,
201
+ evals,
202
+ tools,
203
+ stores: [],
204
+ };
205
+ }
206
+ //# sourceMappingURL=platform-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-reader.js","sourceRoot":"","sources":["../../../src/repo/platform-reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { AmodalRepo, RepoLoadOptions } from './repo-types.js';
7
+ /**
8
+ * Load an amodal repo from either local disk or the platform API.
9
+ *
10
+ * - If `localPath` is set, reads from disk.
11
+ * - Else if `platformUrl` + `platformApiKey` are set, fetches from the platform.
12
+ * - Otherwise throws CONFIG_NOT_FOUND.
13
+ */
14
+ export declare function loadRepo(options: RepoLoadOptions): Promise<AmodalRepo>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { RepoError } from './repo-types.js';
7
+ import { loadRepoFromDisk } from './local-reader.js';
8
+ import { loadRepoFromPlatform } from './platform-reader.js';
9
+ /**
10
+ * Load an amodal repo from either local disk or the platform API.
11
+ *
12
+ * - If `localPath` is set, reads from disk.
13
+ * - Else if `platformUrl` + `platformApiKey` are set, fetches from the platform.
14
+ * - Otherwise throws CONFIG_NOT_FOUND.
15
+ */
16
+ export async function loadRepo(options) {
17
+ if (options.localPath) {
18
+ return loadRepoFromDisk(options.localPath);
19
+ }
20
+ if (options.platformUrl && options.platformApiKey) {
21
+ return loadRepoFromPlatform(options.platformUrl, options.platformApiKey);
22
+ }
23
+ throw new RepoError('CONFIG_NOT_FOUND', 'No repo source configured. Provide either localPath or platformUrl + platformApiKey.');
24
+ }
25
+ //# sourceMappingURL=repo-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-loader.js","sourceRoot":"","sources":["../../../src/repo/repo-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAClD,OAAO,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,SAAS,CACjB,kBAAkB,EAClB,sFAAsF,CACvF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { AmodalConfig } from './config-schema.js';
7
+ import type { LoadedConnection } from './connection-types.js';
8
+ import type { LoadedStore } from './store-types.js';
9
+ import type { LoadedTool } from './tool-types.js';
10
+ /**
11
+ * Error codes for repo loading failures.
12
+ */
13
+ export type RepoErrorCode = 'CONFIG_NOT_FOUND' | 'CONFIG_PARSE_FAILED' | 'CONFIG_VALIDATION_FAILED' | 'ENV_NOT_SET' | 'READ_FAILED' | 'PLATFORM_FETCH_FAILED';
14
+ /**
15
+ * Error thrown during repo loading.
16
+ */
17
+ export declare class RepoError extends Error {
18
+ readonly code: RepoErrorCode;
19
+ constructor(code: RepoErrorCode, message: string, cause?: unknown);
20
+ }
21
+ /**
22
+ * A loaded skill definition.
23
+ */
24
+ export interface LoadedSkill {
25
+ name: string;
26
+ description: string;
27
+ trigger?: string;
28
+ body: string;
29
+ location: string;
30
+ }
31
+ /**
32
+ * A loaded knowledge document.
33
+ */
34
+ export interface LoadedKnowledge {
35
+ name: string;
36
+ title: string;
37
+ body: string;
38
+ location: string;
39
+ }
40
+ /**
41
+ * A loaded automation definition.
42
+ */
43
+ export interface LoadedAutomation {
44
+ name: string;
45
+ title: string;
46
+ /** Cron schedule (e.g., "0 9 * * 1-5"). Omit for webhook or manual trigger. */
47
+ schedule?: string;
48
+ /** Trigger type: cron (scheduled), webhook (external POST), or manual (API/CLI). */
49
+ trigger: 'cron' | 'webhook' | 'manual';
50
+ /** The prompt sent to the agent when the automation fires. */
51
+ prompt: string;
52
+ location: string;
53
+ }
54
+ /**
55
+ * A loaded agent (subagent) definition from agents/ directory.
56
+ * Each subdirectory in agents/ defines a subagent. The reserved names
57
+ * "explore" and "plan" override the default explore and plan agents.
58
+ */
59
+ export interface LoadedAgent {
60
+ /** Agent name (directory name, used for dispatch) */
61
+ name: string;
62
+ /** Display name for admin UI */
63
+ displayName: string;
64
+ /** Short description */
65
+ description: string;
66
+ /** Prompt template (from AGENT.md body) */
67
+ prompt: string;
68
+ /** Tools this agent can use */
69
+ tools: string[];
70
+ /** Max dispatch depth (1 = no sub-agents) */
71
+ maxDepth: number;
72
+ /** Max tool calls per execution */
73
+ maxToolCalls: number;
74
+ /** Timeout in seconds */
75
+ timeout: number;
76
+ /** Target output token range */
77
+ targetOutputMin: number;
78
+ targetOutputMax: number;
79
+ /** Model tier: 'simple' for data gathering, 'advanced' for reasoning */
80
+ modelTier?: 'default' | 'simple' | 'advanced';
81
+ /** File path */
82
+ location: string;
83
+ }
84
+ /**
85
+ * A loaded eval definition.
86
+ */
87
+ export interface LoadedEval {
88
+ name: string;
89
+ title: string;
90
+ description: string;
91
+ setup: {
92
+ tenant?: string;
93
+ context?: string;
94
+ };
95
+ query: string;
96
+ assertions: Array<{
97
+ text: string;
98
+ negated: boolean;
99
+ }>;
100
+ raw: string;
101
+ location: string;
102
+ }
103
+ /**
104
+ * The fully loaded amodal repo — the complete runtime configuration.
105
+ */
106
+ export interface AmodalRepo {
107
+ /** Where the repo was loaded from */
108
+ source: 'local' | 'platform';
109
+ /** Absolute path (local) or platform API URL */
110
+ origin: string;
111
+ /** Parsed config */
112
+ config: AmodalConfig;
113
+ /** Loaded connections keyed by name */
114
+ connections: Map<string, LoadedConnection>;
115
+ /** Loaded skills */
116
+ skills: LoadedSkill[];
117
+ /** Agent overrides (simple, plan) and custom subagent definitions */
118
+ agents: {
119
+ main?: string;
120
+ simple?: string;
121
+ subagents: LoadedAgent[];
122
+ };
123
+ /** Loaded automations */
124
+ automations: LoadedAutomation[];
125
+ /** Knowledge documents */
126
+ knowledge: LoadedKnowledge[];
127
+ /** Eval definitions */
128
+ evals: LoadedEval[];
129
+ /** Custom tools from tools/ directory */
130
+ tools: LoadedTool[];
131
+ /** Store definitions from stores/ directory */
132
+ stores: LoadedStore[];
133
+ /** MCP servers to connect to */
134
+ mcpServers?: Record<string, RepoMcpServerConfig>;
135
+ /** Warnings from package resolution */
136
+ warnings?: string[];
137
+ }
138
+ /**
139
+ * MCP server configuration as stored in the repo.
140
+ */
141
+ export interface RepoMcpServerConfig {
142
+ transport: 'stdio' | 'sse' | 'http';
143
+ command?: string;
144
+ args?: string[];
145
+ env?: Record<string, string>;
146
+ url?: string;
147
+ trust?: boolean;
148
+ }
149
+ /**
150
+ * Options for loading an amodal repo.
151
+ */
152
+ export interface RepoLoadOptions {
153
+ /** Path to local amodal repo on disk */
154
+ localPath?: string;
155
+ /** Platform API URL for remote repo access */
156
+ platformUrl?: string;
157
+ /** Platform API key */
158
+ platformApiKey?: string;
159
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Error thrown during repo loading.
8
+ */
9
+ export class RepoError extends Error {
10
+ code;
11
+ constructor(code, message, cause) {
12
+ super(message, { cause });
13
+ this.name = 'RepoError';
14
+ this.code = code;
15
+ }
16
+ }
17
+ //# sourceMappingURL=repo-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-types.js","sourceRoot":"","sources":["../../../src/repo/repo-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAgB;IAE7B,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAe;QAC/D,KAAK,CAAC,OAAO,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { LoadedConnection } from './connection-types.js';
7
+ import type { ParsedEndpoint } from './openapi-parser.js';
8
+ import type { SurfaceEndpoint } from './connection-types.js';
9
+ import type { EndpointChange } from './drift-detector.js';
10
+ export interface SyncPlan {
11
+ connectionName: string;
12
+ added: Array<ParsedEndpoint | {
13
+ name: string;
14
+ operationType: string;
15
+ }>;
16
+ removed: SurfaceEndpoint[];
17
+ changed: Array<EndpointChange | {
18
+ name: string;
19
+ operationType: string;
20
+ changes: string[];
21
+ }>;
22
+ unchanged: string[];
23
+ }
24
+ /**
25
+ * Build a sync plan for a connection by fetching its spec
26
+ * and comparing against the current surface endpoints.
27
+ *
28
+ * Supports OpenAPI and GraphQL connections.
29
+ */
30
+ export declare function buildSyncPlan(connection: LoadedConnection): Promise<SyncPlan>;
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { fetchAndParseSpec } from './openapi-parser.js';
7
+ import { detectDrift } from './drift-detector.js';
8
+ import { fetchAndParseGraphQLSchema } from './graphql-parser.js';
9
+ import { detectGraphQLDrift } from './graphql-drift-detector.js';
10
+ /**
11
+ * Build a sync plan for a connection by fetching its spec
12
+ * and comparing against the current surface endpoints.
13
+ *
14
+ * Supports OpenAPI and GraphQL connections.
15
+ */
16
+ export async function buildSyncPlan(connection) {
17
+ if (connection.spec.format === 'graphql') {
18
+ return buildGraphQLSyncPlan(connection);
19
+ }
20
+ // Only sync OpenAPI connections
21
+ if (connection.spec.format !== 'openapi') {
22
+ return {
23
+ connectionName: connection.name,
24
+ added: [],
25
+ removed: [],
26
+ changed: [],
27
+ unchanged: connection.surface.map((ep) => `${ep.method} ${ep.path}`),
28
+ };
29
+ }
30
+ // Derive spec URL from the source base URL
31
+ const baseUrl = connection.spec.source.replace(/\/$/, '');
32
+ const specUrl = `${baseUrl}/openapi.json`;
33
+ // Build auth for the spec fetch
34
+ let auth;
35
+ if (connection.spec.auth) {
36
+ const token = connection.spec.auth.token ?? '';
37
+ if (connection.spec.auth.type === 'bearer') {
38
+ auth = {
39
+ header: connection.spec.auth.header ?? 'Authorization',
40
+ value: `${connection.spec.auth.prefix ?? 'Bearer'} ${token}`,
41
+ };
42
+ }
43
+ else if (connection.spec.auth.type === 'api-key') {
44
+ auth = {
45
+ header: connection.spec.auth.header ?? 'X-API-Key',
46
+ value: token,
47
+ };
48
+ }
49
+ }
50
+ const specEndpoints = await fetchAndParseSpec(specUrl, auth);
51
+ // Only compare included surface endpoints
52
+ const includedSurface = connection.surface.filter((ep) => ep.included);
53
+ const drift = detectDrift(specEndpoints, includedSurface);
54
+ return {
55
+ connectionName: connection.name,
56
+ ...drift,
57
+ };
58
+ }
59
+ async function buildGraphQLSyncPlan(connection) {
60
+ const baseUrl = connection.spec.source.replace(/\/$/, '');
61
+ let auth;
62
+ if (connection.spec.auth) {
63
+ const token = connection.spec.auth.token ?? '';
64
+ if (connection.spec.auth.type === 'bearer') {
65
+ auth = {
66
+ header: connection.spec.auth.header ?? 'Authorization',
67
+ value: `${connection.spec.auth.prefix ?? 'Bearer'} ${token}`,
68
+ };
69
+ }
70
+ else if (connection.spec.auth.type === 'api-key') {
71
+ auth = {
72
+ header: connection.spec.auth.header ?? 'X-API-Key',
73
+ value: token,
74
+ };
75
+ }
76
+ }
77
+ const schemaOps = await fetchAndParseGraphQLSchema(baseUrl, auth);
78
+ const includedSurface = connection.surface.filter((ep) => ep.included);
79
+ const drift = detectGraphQLDrift(schemaOps, includedSurface);
80
+ return {
81
+ connectionName: connection.name,
82
+ ...drift,
83
+ };
84
+ }
85
+ //# sourceMappingURL=spec-syncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-syncer.js","sourceRoot":"","sources":["../../../src/repo/spec-syncer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { LoadedStore } from './store-types.js';
7
+ /**
8
+ * Parse a store JSON string into a LoadedStore.
9
+ */
10
+ export declare function parseStoreJson(jsonString: string, fileName: string, location: string): LoadedStore;
11
+ /**
12
+ * Load all store definitions from the stores/ directory.
13
+ *
14
+ * Each .json file in stores/ defines a store. The filename (without extension)
15
+ * becomes the store name unless overridden by a "name" field in the JSON.
16
+ *
17
+ * Missing stores/ directory returns [].
18
+ */
19
+ export declare function loadStores(repoPath: string): Promise<LoadedStore[]>;