@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,299 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { readFile, readdir, stat } from 'node:fs/promises';
7
+ import * as path from 'node:path';
8
+ import { RepoError } from './repo-types.js';
9
+ import { parseAgent, parseConfig, parseConnection, parseSkill, parseKnowledge, parseAutomation, parseEval, } from './parsers.js';
10
+ import { readLockFile } from '../packages/lock-file.js';
11
+ import { resolveAllPackages } from '../packages/resolver.js';
12
+ import { loadStores } from './store-loader.js';
13
+ import { loadTools } from './tool-loader.js';
14
+ /**
15
+ * Read a file from disk, returning null if it doesn't exist.
16
+ */
17
+ async function readOptionalFile(filePath) {
18
+ try {
19
+ return await readFile(filePath, 'utf-8');
20
+ }
21
+ catch (err) {
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
23
+ if (err.code === 'ENOENT') {
24
+ return null;
25
+ }
26
+ throw new RepoError('READ_FAILED', `Failed to read ${filePath}`, err);
27
+ }
28
+ }
29
+ /**
30
+ * Read a required file from disk.
31
+ */
32
+ async function readRequiredFile(filePath, errorMsg) {
33
+ try {
34
+ return await readFile(filePath, 'utf-8');
35
+ }
36
+ catch (err) {
37
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
38
+ if (err.code === 'ENOENT') {
39
+ throw new RepoError('CONFIG_NOT_FOUND', errorMsg, err);
40
+ }
41
+ throw new RepoError('READ_FAILED', `Failed to read ${filePath}`, err);
42
+ }
43
+ }
44
+ /**
45
+ * List subdirectories in a directory. Returns [] if dir doesn't exist.
46
+ */
47
+ async function listSubdirs(dirPath) {
48
+ try {
49
+ const entries = await readdir(dirPath, { withFileTypes: true });
50
+ return entries
51
+ .filter((e) => e.isDirectory())
52
+ .map((e) => e.name);
53
+ }
54
+ catch {
55
+ return [];
56
+ }
57
+ }
58
+ /**
59
+ * List .md files in a directory. Returns [] if dir doesn't exist.
60
+ */
61
+ async function listMdFiles(dirPath) {
62
+ try {
63
+ const entries = await readdir(dirPath, { withFileTypes: true });
64
+ return entries
65
+ .filter((e) => e.isFile() && e.name.endsWith('.md'))
66
+ .map((e) => e.name);
67
+ }
68
+ catch {
69
+ return [];
70
+ }
71
+ }
72
+ /**
73
+ * Load a single connection from its directory.
74
+ */
75
+ async function loadConnection(connDir, name) {
76
+ const specJson = await readRequiredFile(path.join(connDir, 'spec.json'), `Missing spec.json for connection "${name}"`);
77
+ const accessJson = await readRequiredFile(path.join(connDir, 'access.json'), `Missing access.json for connection "${name}"`);
78
+ const surfaceMd = await readOptionalFile(path.join(connDir, 'surface.md'));
79
+ const entitiesMd = await readOptionalFile(path.join(connDir, 'entities.md'));
80
+ const rulesMd = await readOptionalFile(path.join(connDir, 'rules.md'));
81
+ return parseConnection(name, {
82
+ specJson,
83
+ accessJson,
84
+ surfaceMd: surfaceMd ?? undefined,
85
+ entitiesMd: entitiesMd ?? undefined,
86
+ rulesMd: rulesMd ?? undefined,
87
+ }, connDir);
88
+ }
89
+ /**
90
+ * Load all connections from the connections/ directory.
91
+ */
92
+ async function loadConnections(repoPath) {
93
+ const connectionsDir = path.join(repoPath, 'connections');
94
+ const dirs = await listSubdirs(connectionsDir);
95
+ const connections = new Map();
96
+ const loaded = await Promise.all(dirs.map(async (name) => {
97
+ const conn = await loadConnection(path.join(connectionsDir, name), name);
98
+ return [name, conn];
99
+ }));
100
+ for (const [name, conn] of loaded) {
101
+ connections.set(name, conn);
102
+ }
103
+ return connections;
104
+ }
105
+ /**
106
+ * Load all skills from the skills/ directory.
107
+ */
108
+ async function loadSkills(repoPath) {
109
+ const skillsDir = path.join(repoPath, 'skills');
110
+ const dirs = await listSubdirs(skillsDir);
111
+ const skills = [];
112
+ const results = await Promise.all(dirs.map(async (name) => {
113
+ const skillPath = path.join(skillsDir, name, 'SKILL.md');
114
+ const content = await readOptionalFile(skillPath);
115
+ if (!content)
116
+ return null;
117
+ return parseSkill(content, skillPath);
118
+ }));
119
+ for (const result of results) {
120
+ if (result)
121
+ skills.push(result);
122
+ }
123
+ return skills;
124
+ }
125
+ /**
126
+ * Load agents from the agents/ directory.
127
+ *
128
+ * - agents/main/AGENT.md → overrides the primary agent prompt
129
+ * - agents/explore/AGENT.md → overrides the explore sub-agent prompt
130
+ * - agents/plan/AGENT.md → overrides the plan agent prompt
131
+ * - agents/<anything-else>/AGENT.md → defines a custom subagent
132
+ *
133
+ * Flat files agents/main.md and agents/simple.md are also supported.
134
+ */
135
+ async function loadAgents(repoPath) {
136
+ const agentsDir = path.join(repoPath, 'agents');
137
+ const dirs = await listSubdirs(agentsDir);
138
+ // Check for flat files (main.md, simple.md)
139
+ const [mainFlat, simpleFlat] = await Promise.all([
140
+ readOptionalFile(path.join(agentsDir, 'main.md')),
141
+ readOptionalFile(path.join(agentsDir, 'simple.md')),
142
+ ]);
143
+ let main = mainFlat ?? undefined;
144
+ let simple = simpleFlat ?? undefined;
145
+ const subagents = [];
146
+ // Process subdirectories
147
+ const results = await Promise.all(dirs.map(async (name) => {
148
+ const agentPath = path.join(agentsDir, name, 'AGENT.md');
149
+ const content = await readOptionalFile(agentPath);
150
+ if (!content)
151
+ return null;
152
+ return { name, content, location: agentPath };
153
+ }));
154
+ for (const result of results) {
155
+ if (!result)
156
+ continue;
157
+ if (result.name === 'main') {
158
+ main = result.content;
159
+ }
160
+ else if (result.name === 'simple') {
161
+ simple = result.content;
162
+ }
163
+ else if (result.name === 'plan') {
164
+ const parsed = parseAgent(result.content, result.name, result.location);
165
+ if (parsed)
166
+ subagents.push(parsed);
167
+ }
168
+ else {
169
+ const parsed = parseAgent(result.content, result.name, result.location);
170
+ if (parsed)
171
+ subagents.push(parsed);
172
+ }
173
+ }
174
+ return { main, simple, subagents };
175
+ }
176
+ /**
177
+ * Load all knowledge files.
178
+ */
179
+ async function loadKnowledgeFiles(repoPath) {
180
+ const knowledgeDir = path.join(repoPath, 'knowledge');
181
+ const files = await listMdFiles(knowledgeDir);
182
+ const results = await Promise.all(files.map(async (filename) => {
183
+ const filePath = path.join(knowledgeDir, filename);
184
+ const content = await readFile(filePath, 'utf-8');
185
+ const name = filename.replace(/\.md$/, '');
186
+ return parseKnowledge(content, name, filePath);
187
+ }));
188
+ return results;
189
+ }
190
+ /**
191
+ * Load all automation files.
192
+ */
193
+ async function loadAutomations(repoPath) {
194
+ const autoDir = path.join(repoPath, 'automations');
195
+ // Support both .json (new) and .md (legacy) automation files
196
+ let files;
197
+ try {
198
+ const entries = await readdir(autoDir, { withFileTypes: true });
199
+ files = entries
200
+ .filter((e) => e.isFile() && (e.name.endsWith('.json') || e.name.endsWith('.md')))
201
+ .map((e) => e.name);
202
+ }
203
+ catch {
204
+ return [];
205
+ }
206
+ const results = await Promise.all(files.map(async (filename) => {
207
+ const filePath = path.join(autoDir, filename);
208
+ const content = await readFile(filePath, 'utf-8');
209
+ const name = filename.replace(/\.(json|md)$/, '');
210
+ return parseAutomation(content, name, filePath);
211
+ }));
212
+ return results;
213
+ }
214
+ /**
215
+ * Load all eval files.
216
+ */
217
+ async function loadEvals(repoPath) {
218
+ const evalsDir = path.join(repoPath, 'evals');
219
+ const files = await listMdFiles(evalsDir);
220
+ const results = await Promise.all(files.map(async (filename) => {
221
+ const filePath = path.join(evalsDir, filename);
222
+ const content = await readFile(filePath, 'utf-8');
223
+ const name = filename.replace(/\.md$/, '');
224
+ return parseEval(content, name, filePath);
225
+ }));
226
+ return results;
227
+ }
228
+ /**
229
+ * Load the full amodal repo from disk.
230
+ */
231
+ export async function loadRepoFromDisk(repoPath) {
232
+ const absolutePath = path.resolve(repoPath);
233
+ // Verify the path exists
234
+ try {
235
+ await stat(absolutePath);
236
+ }
237
+ catch {
238
+ throw new RepoError('CONFIG_NOT_FOUND', `Repo path does not exist: ${absolutePath}`);
239
+ }
240
+ // Read config (required)
241
+ const configPath = path.join(absolutePath, 'amodal.json');
242
+ const configJson = await readRequiredFile(configPath, `Missing amodal.json in ${absolutePath}`);
243
+ const config = parseConfig(configJson);
244
+ // Check for lock file to decide resolution strategy
245
+ let lockFile;
246
+ try {
247
+ lockFile = await readLockFile(absolutePath);
248
+ }
249
+ catch {
250
+ // Lock file read failed — fall through to direct load
251
+ lockFile = null;
252
+ }
253
+ let connections;
254
+ let skills;
255
+ let knowledge;
256
+ let automations;
257
+ let warnings;
258
+ if (lockFile && Object.keys(lockFile.packages).length > 0) {
259
+ // Package-aware resolution (merges npm packages + repo overrides)
260
+ const resolved = await resolveAllPackages({ repoPath: absolutePath, lockFile });
261
+ connections = resolved.connections;
262
+ skills = resolved.skills;
263
+ knowledge = resolved.knowledge;
264
+ automations = resolved.automations;
265
+ warnings = resolved.warnings.length > 0 ? resolved.warnings : undefined;
266
+ }
267
+ else {
268
+ // Direct load (no packages installed)
269
+ [connections, skills, knowledge, automations] = await Promise.all([
270
+ loadConnections(absolutePath),
271
+ loadSkills(absolutePath),
272
+ loadKnowledgeFiles(absolutePath),
273
+ loadAutomations(absolutePath),
274
+ ]);
275
+ }
276
+ // Agents, evals, tools, and stores always from disk (not package types)
277
+ const [agents, evals, tools, stores] = await Promise.all([
278
+ loadAgents(absolutePath),
279
+ loadEvals(absolutePath),
280
+ loadTools(absolutePath),
281
+ loadStores(absolutePath),
282
+ ]);
283
+ return {
284
+ source: 'local',
285
+ origin: absolutePath,
286
+ config,
287
+ connections,
288
+ skills,
289
+ agents,
290
+ knowledge,
291
+ automations,
292
+ evals,
293
+ tools,
294
+ stores,
295
+ mcpServers: config.mcp?.servers,
296
+ warnings,
297
+ };
298
+ }
299
+ //# sourceMappingURL=local-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-reader.js","sourceRoot":"","sources":["../../../src/repo/local-reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * A parsed endpoint from an OpenAPI spec.
8
+ */
9
+ export interface ParsedEndpoint {
10
+ method: string;
11
+ path: string;
12
+ summary?: string;
13
+ description?: string;
14
+ tags: string[];
15
+ parameters: ParsedParameter[];
16
+ deprecated: boolean;
17
+ }
18
+ export interface ParsedParameter {
19
+ name: string;
20
+ in: 'query' | 'path' | 'header' | 'cookie';
21
+ required: boolean;
22
+ type?: string;
23
+ description?: string;
24
+ }
25
+ /**
26
+ * Parse an OpenAPI 3.0/3.1 spec object into a flat list of endpoints.
27
+ */
28
+ export declare function parseOpenAPISpec(spec: unknown): ParsedEndpoint[];
29
+ /**
30
+ * Fetch an OpenAPI spec from a URL and parse it.
31
+ */
32
+ export declare function fetchAndParseSpec(url: string, auth?: {
33
+ header: string;
34
+ value: string;
35
+ }): Promise<ParsedEndpoint[]>;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ const HTTP_METHODS = new Set(['get', 'post', 'put', 'patch', 'delete', 'head', 'options']);
7
+ /**
8
+ * Parse an OpenAPI 3.0/3.1 spec object into a flat list of endpoints.
9
+ */
10
+ export function parseOpenAPISpec(spec) {
11
+ if (!spec || typeof spec !== 'object') {
12
+ return [];
13
+ }
14
+ const apiSpec = spec;
15
+ if (!apiSpec.paths) {
16
+ return [];
17
+ }
18
+ const version = apiSpec.openapi ?? '';
19
+ if (!version.startsWith('3.')) {
20
+ // Only support OpenAPI 3.x
21
+ return [];
22
+ }
23
+ const endpoints = [];
24
+ for (const [path, pathItem] of Object.entries(apiSpec.paths)) {
25
+ if (!pathItem || typeof pathItem !== 'object')
26
+ continue;
27
+ for (const [method, operation] of Object.entries(pathItem)) {
28
+ if (!HTTP_METHODS.has(method.toLowerCase()))
29
+ continue;
30
+ if (!operation || typeof operation !== 'object')
31
+ continue;
32
+ const op = operation;
33
+ const parameters = [];
34
+ if (Array.isArray(op.parameters)) {
35
+ for (const param of op.parameters) {
36
+ if (param.name && param.in) {
37
+ parameters.push({
38
+ name: param.name,
39
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- SDK boundary
40
+ in: param.in,
41
+ required: param.required ?? false,
42
+ type: param.schema?.type,
43
+ description: param.description,
44
+ });
45
+ }
46
+ }
47
+ }
48
+ endpoints.push({
49
+ method: method.toUpperCase(),
50
+ path,
51
+ summary: op.summary,
52
+ description: op.description,
53
+ tags: op.tags ?? [],
54
+ parameters,
55
+ deprecated: op.deprecated ?? false,
56
+ });
57
+ }
58
+ }
59
+ return endpoints;
60
+ }
61
+ /**
62
+ * Fetch an OpenAPI spec from a URL and parse it.
63
+ */
64
+ export async function fetchAndParseSpec(url, auth) {
65
+ const headers = {
66
+ 'Accept': 'application/json, application/yaml',
67
+ };
68
+ if (auth) {
69
+ headers[auth.header] = auth.value;
70
+ }
71
+ const response = await fetch(url, { headers });
72
+ if (!response.ok) {
73
+ throw new Error(`Failed to fetch spec from ${url}: HTTP ${response.status}`);
74
+ }
75
+ const contentType = response.headers.get('content-type') ?? '';
76
+ const text = await response.text();
77
+ let parsed;
78
+ if (contentType.includes('yaml') || url.endsWith('.yaml') || url.endsWith('.yml')) {
79
+ // Dynamic import for YAML support
80
+ try {
81
+ const yaml = await import('js-yaml');
82
+ parsed = yaml.load(text);
83
+ }
84
+ catch {
85
+ throw new Error('js-yaml is required for YAML spec parsing. Install it with: pnpm add js-yaml');
86
+ }
87
+ }
88
+ else {
89
+ parsed = JSON.parse(text);
90
+ }
91
+ return parseOpenAPISpec(parsed);
92
+ }
93
+ //# sourceMappingURL=openapi-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-parser.js","sourceRoot":"","sources":["../../../src/repo/openapi-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0CH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAE3F;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,MAAM,OAAO,GAAG,IAAmB,CAAC;IAEpC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,2BAA2B;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAqB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAExD,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YACtD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,SAAS;YAG1D,MAAM,EAAE,GAAG,SAAS,CAAC;YAErB,MAAM,UAAU,GAAsB,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;wBAC3B,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,uFAAuF;4BACvF,EAAE,EAAE,KAAK,CAAC,EAA2B;4BACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;4BACjC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI;4BACxB,WAAW,EAAE,KAAK,CAAC,WAAW;yBAC/B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;gBAC5B,IAAI;gBACJ,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE;gBACnB,UAAU;gBACV,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,KAAK;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,IAAsC;IAEtC,MAAM,OAAO,GAA2B;QACtC,QAAQ,EAAE,oCAAoC;KAC/C,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;IAE7C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,UAAU,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,MAAe,CAAC;IAEpB,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClF,kCAAkC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { parseConfigJson } from './config-schema.js';
7
+ import type { AccessConfig, ConnectionSpec } from './connection-schemas.js';
8
+ import type { LoadedConnection } from './connection-types.js';
9
+ import type { LoadedAgent, LoadedAutomation, LoadedEval, LoadedKnowledge, LoadedSkill } from './repo-types.js';
10
+ export { parseConfigJson as parseConfig };
11
+ /**
12
+ * Parse spec.json content into a validated ConnectionSpec.
13
+ */
14
+ export declare function parseSpecJson(jsonString: string): ConnectionSpec;
15
+ /**
16
+ * Parse access.json content into a validated AccessConfig.
17
+ */
18
+ export declare function parseAccessJson(jsonString: string): AccessConfig;
19
+ /**
20
+ * Parse a full connection from raw file contents.
21
+ */
22
+ export declare function parseConnection(name: string, files: {
23
+ specJson: string;
24
+ accessJson: string;
25
+ surfaceMd?: string;
26
+ entitiesMd?: string;
27
+ rulesMd?: string;
28
+ }, location: string): LoadedConnection;
29
+ /**
30
+ * Parse SKILL.md content. Supports both heading-based and frontmatter formats.
31
+ * Returns null if neither format matches.
32
+ */
33
+ export declare function parseSkill(content: string, location: string): LoadedSkill | null;
34
+ /**
35
+ * Parse a knowledge markdown file.
36
+ */
37
+ export declare function parseKnowledge(content: string, name: string, location: string): LoadedKnowledge;
38
+ /**
39
+ * Parse an automation JSON file.
40
+ *
41
+ * Expected format:
42
+ * ```json
43
+ * {
44
+ * "title": "Daily Revenue Digest",
45
+ * "schedule": "0 9 * * 1-5",
46
+ * "prompt": "Pull yesterday's revenue data..."
47
+ * }
48
+ * ```
49
+ *
50
+ * - If `schedule` is present, trigger defaults to `"cron"`.
51
+ * - If `trigger` is `"webhook"`, no schedule is needed.
52
+ * - If neither, trigger defaults to `"manual"`.
53
+ */
54
+ export declare function parseAutomation(content: string, name: string, location: string): LoadedAutomation;
55
+ /**
56
+ * Parse an eval markdown file.
57
+ */
58
+ export declare function parseEval(content: string, name: string, location: string): LoadedEval;
59
+ /**
60
+ * Parse AGENT.md content into a LoadedAgent.
61
+ *
62
+ * Supports heading-based and frontmatter formats (same patterns as skills).
63
+ *
64
+ * Heading-based:
65
+ * ```
66
+ * # Agent: Compliance Checker
67
+ *
68
+ * Checks regulatory compliance across transactions.
69
+ *
70
+ * ## Prompt
71
+ *
72
+ * Load compliance KB docs and check the requested entities...
73
+ * ```
74
+ *
75
+ * Frontmatter:
76
+ * ```
77
+ * ---
78
+ * name: compliance-checker
79
+ * displayName: Compliance Checker
80
+ * description: Checks regulatory compliance
81
+ * tools: [shell_exec, load_knowledge]
82
+ * maxDepth: 1
83
+ * maxToolCalls: 10
84
+ * timeout: 30
85
+ * modelTier: simple
86
+ * ---
87
+ *
88
+ * Load compliance KB docs and check...
89
+ * ```
90
+ */
91
+ export declare function parseAgent(content: string, dirName: string, location: string): LoadedAgent | null;