@xemahq/biome-sdk 0.1.1

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 (383) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +62 -0
  3. package/dist/adapter/index.d.ts +7 -0
  4. package/dist/adapter/index.d.ts.map +1 -0
  5. package/dist/adapter/index.js +23 -0
  6. package/dist/adapter/index.js.map +1 -0
  7. package/dist/adapter/lib/action.d.ts +25 -0
  8. package/dist/adapter/lib/action.d.ts.map +1 -0
  9. package/dist/adapter/lib/action.js +3 -0
  10. package/dist/adapter/lib/action.js.map +1 -0
  11. package/dist/adapter/lib/provider-module.d.ts +41 -0
  12. package/dist/adapter/lib/provider-module.d.ts.map +1 -0
  13. package/dist/adapter/lib/provider-module.js +7 -0
  14. package/dist/adapter/lib/provider-module.js.map +1 -0
  15. package/dist/adapter/lib/resource.d.ts +25 -0
  16. package/dist/adapter/lib/resource.d.ts.map +1 -0
  17. package/dist/adapter/lib/resource.js +3 -0
  18. package/dist/adapter/lib/resource.js.map +1 -0
  19. package/dist/adapter/lib/result.d.ts +18 -0
  20. package/dist/adapter/lib/result.d.ts.map +1 -0
  21. package/dist/adapter/lib/result.js +12 -0
  22. package/dist/adapter/lib/result.js.map +1 -0
  23. package/dist/adapter/lib/sidecar-contract.d.ts +91 -0
  24. package/dist/adapter/lib/sidecar-contract.d.ts.map +1 -0
  25. package/dist/adapter/lib/sidecar-contract.js +19 -0
  26. package/dist/adapter/lib/sidecar-contract.js.map +1 -0
  27. package/dist/adapter/lib/webhook.d.ts +49 -0
  28. package/dist/adapter/lib/webhook.d.ts.map +1 -0
  29. package/dist/adapter/lib/webhook.js +3 -0
  30. package/dist/adapter/lib/webhook.js.map +1 -0
  31. package/dist/agent-workspace/index.d.ts +8 -0
  32. package/dist/agent-workspace/index.d.ts.map +1 -0
  33. package/dist/agent-workspace/index.js +24 -0
  34. package/dist/agent-workspace/index.js.map +1 -0
  35. package/dist/agent-workspace/lib/errors/error-codes.d.ts +16 -0
  36. package/dist/agent-workspace/lib/errors/error-codes.d.ts.map +1 -0
  37. package/dist/agent-workspace/lib/errors/error-codes.js +37 -0
  38. package/dist/agent-workspace/lib/errors/error-codes.js.map +1 -0
  39. package/dist/agent-workspace/lib/errors/index.d.ts +4 -0
  40. package/dist/agent-workspace/lib/errors/index.d.ts.map +1 -0
  41. package/dist/agent-workspace/lib/errors/index.js +20 -0
  42. package/dist/agent-workspace/lib/errors/index.js.map +1 -0
  43. package/dist/agent-workspace/lib/errors/mount-plan-error.d.ts +16 -0
  44. package/dist/agent-workspace/lib/errors/mount-plan-error.d.ts.map +1 -0
  45. package/dist/agent-workspace/lib/errors/mount-plan-error.js +26 -0
  46. package/dist/agent-workspace/lib/errors/mount-plan-error.js.map +1 -0
  47. package/dist/agent-workspace/lib/errors/mount-resolver-error.d.ts +34 -0
  48. package/dist/agent-workspace/lib/errors/mount-resolver-error.d.ts.map +1 -0
  49. package/dist/agent-workspace/lib/errors/mount-resolver-error.js +50 -0
  50. package/dist/agent-workspace/lib/errors/mount-resolver-error.js.map +1 -0
  51. package/dist/agent-workspace/lib/mount-resolver.d.ts +10 -0
  52. package/dist/agent-workspace/lib/mount-resolver.d.ts.map +1 -0
  53. package/dist/agent-workspace/lib/mount-resolver.js +3 -0
  54. package/dist/agent-workspace/lib/mount-resolver.js.map +1 -0
  55. package/dist/agent-workspace/lib/mount-source.d.ts +4 -0
  56. package/dist/agent-workspace/lib/mount-source.d.ts.map +1 -0
  57. package/dist/agent-workspace/lib/mount-source.js +3 -0
  58. package/dist/agent-workspace/lib/mount-source.js.map +1 -0
  59. package/dist/agent-workspace/lib/refid-resolver.d.ts +23 -0
  60. package/dist/agent-workspace/lib/refid-resolver.d.ts.map +1 -0
  61. package/dist/agent-workspace/lib/refid-resolver.js +103 -0
  62. package/dist/agent-workspace/lib/refid-resolver.js.map +1 -0
  63. package/dist/agent-workspace/lib/registries.d.ts +30 -0
  64. package/dist/agent-workspace/lib/registries.d.ts.map +1 -0
  65. package/dist/agent-workspace/lib/registries.js +88 -0
  66. package/dist/agent-workspace/lib/registries.js.map +1 -0
  67. package/dist/agent-workspace/lib/resolvers/agent-definition.resolver.d.ts +13 -0
  68. package/dist/agent-workspace/lib/resolvers/agent-definition.resolver.d.ts.map +1 -0
  69. package/dist/agent-workspace/lib/resolvers/agent-definition.resolver.js +25 -0
  70. package/dist/agent-workspace/lib/resolvers/agent-definition.resolver.js.map +1 -0
  71. package/dist/agent-workspace/lib/resolvers/artifact-store-collection.resolver.d.ts +13 -0
  72. package/dist/agent-workspace/lib/resolvers/artifact-store-collection.resolver.d.ts.map +1 -0
  73. package/dist/agent-workspace/lib/resolvers/artifact-store-collection.resolver.js +28 -0
  74. package/dist/agent-workspace/lib/resolvers/artifact-store-collection.resolver.js.map +1 -0
  75. package/dist/agent-workspace/lib/resolvers/artifact-version.resolver.d.ts +13 -0
  76. package/dist/agent-workspace/lib/resolvers/artifact-version.resolver.d.ts.map +1 -0
  77. package/dist/agent-workspace/lib/resolvers/artifact-version.resolver.js +25 -0
  78. package/dist/agent-workspace/lib/resolvers/artifact-version.resolver.js.map +1 -0
  79. package/dist/agent-workspace/lib/resolvers/clients.d.ts +122 -0
  80. package/dist/agent-workspace/lib/resolvers/clients.d.ts.map +1 -0
  81. package/dist/agent-workspace/lib/resolvers/clients.js +3 -0
  82. package/dist/agent-workspace/lib/resolvers/clients.js.map +1 -0
  83. package/dist/agent-workspace/lib/resolvers/deliverable-specs.resolver.d.ts +13 -0
  84. package/dist/agent-workspace/lib/resolvers/deliverable-specs.resolver.d.ts.map +1 -0
  85. package/dist/agent-workspace/lib/resolvers/deliverable-specs.resolver.js +24 -0
  86. package/dist/agent-workspace/lib/resolvers/deliverable-specs.resolver.js.map +1 -0
  87. package/dist/agent-workspace/lib/resolvers/deliverables.resolver.d.ts +13 -0
  88. package/dist/agent-workspace/lib/resolvers/deliverables.resolver.d.ts.map +1 -0
  89. package/dist/agent-workspace/lib/resolvers/deliverables.resolver.js +28 -0
  90. package/dist/agent-workspace/lib/resolvers/deliverables.resolver.js.map +1 -0
  91. package/dist/agent-workspace/lib/resolvers/index.d.ts +20 -0
  92. package/dist/agent-workspace/lib/resolvers/index.d.ts.map +1 -0
  93. package/dist/agent-workspace/lib/resolvers/index.js +36 -0
  94. package/dist/agent-workspace/lib/resolvers/index.js.map +1 -0
  95. package/dist/agent-workspace/lib/resolvers/instruction-section.resolver.d.ts +13 -0
  96. package/dist/agent-workspace/lib/resolvers/instruction-section.resolver.d.ts.map +1 -0
  97. package/dist/agent-workspace/lib/resolvers/instruction-section.resolver.js +22 -0
  98. package/dist/agent-workspace/lib/resolvers/instruction-section.resolver.js.map +1 -0
  99. package/dist/agent-workspace/lib/resolvers/kb-pages.resolver.d.ts +13 -0
  100. package/dist/agent-workspace/lib/resolvers/kb-pages.resolver.d.ts.map +1 -0
  101. package/dist/agent-workspace/lib/resolvers/kb-pages.resolver.js +36 -0
  102. package/dist/agent-workspace/lib/resolvers/kb-pages.resolver.js.map +1 -0
  103. package/dist/agent-workspace/lib/resolvers/kb-space.resolver.d.ts +13 -0
  104. package/dist/agent-workspace/lib/resolvers/kb-space.resolver.d.ts.map +1 -0
  105. package/dist/agent-workspace/lib/resolvers/kb-space.resolver.js +26 -0
  106. package/dist/agent-workspace/lib/resolvers/kb-space.resolver.js.map +1 -0
  107. package/dist/agent-workspace/lib/resolvers/rendered-agents-md.resolver.d.ts +13 -0
  108. package/dist/agent-workspace/lib/resolvers/rendered-agents-md.resolver.d.ts.map +1 -0
  109. package/dist/agent-workspace/lib/resolvers/rendered-agents-md.resolver.js +23 -0
  110. package/dist/agent-workspace/lib/resolvers/rendered-agents-md.resolver.js.map +1 -0
  111. package/dist/agent-workspace/lib/resolvers/rendered-context-json.resolver.d.ts +13 -0
  112. package/dist/agent-workspace/lib/resolvers/rendered-context-json.resolver.d.ts.map +1 -0
  113. package/dist/agent-workspace/lib/resolvers/rendered-context-json.resolver.js +24 -0
  114. package/dist/agent-workspace/lib/resolvers/rendered-context-json.resolver.js.map +1 -0
  115. package/dist/agent-workspace/lib/resolvers/rendered-system-overlay.resolver.d.ts +13 -0
  116. package/dist/agent-workspace/lib/resolvers/rendered-system-overlay.resolver.d.ts.map +1 -0
  117. package/dist/agent-workspace/lib/resolvers/rendered-system-overlay.resolver.js +23 -0
  118. package/dist/agent-workspace/lib/resolvers/rendered-system-overlay.resolver.js.map +1 -0
  119. package/dist/agent-workspace/lib/resolvers/scm-repo.resolver.d.ts +13 -0
  120. package/dist/agent-workspace/lib/resolvers/scm-repo.resolver.d.ts.map +1 -0
  121. package/dist/agent-workspace/lib/resolvers/scm-repo.resolver.js +28 -0
  122. package/dist/agent-workspace/lib/resolvers/scm-repo.resolver.js.map +1 -0
  123. package/dist/agent-workspace/lib/resolvers/session-attachment.resolver.d.ts +13 -0
  124. package/dist/agent-workspace/lib/resolvers/session-attachment.resolver.d.ts.map +1 -0
  125. package/dist/agent-workspace/lib/resolvers/session-attachment.resolver.js +28 -0
  126. package/dist/agent-workspace/lib/resolvers/session-attachment.resolver.js.map +1 -0
  127. package/dist/agent-workspace/lib/resolvers/skill-bundle.resolver.d.ts +13 -0
  128. package/dist/agent-workspace/lib/resolvers/skill-bundle.resolver.d.ts.map +1 -0
  129. package/dist/agent-workspace/lib/resolvers/skill-bundle.resolver.js +29 -0
  130. package/dist/agent-workspace/lib/resolvers/skill-bundle.resolver.js.map +1 -0
  131. package/dist/agent-workspace/lib/resolvers/static-literal.resolver.d.ts +11 -0
  132. package/dist/agent-workspace/lib/resolvers/static-literal.resolver.d.ts.map +1 -0
  133. package/dist/agent-workspace/lib/resolvers/static-literal.resolver.js +33 -0
  134. package/dist/agent-workspace/lib/resolvers/static-literal.resolver.js.map +1 -0
  135. package/dist/agent-workspace/lib/resolvers/types.d.ts +35 -0
  136. package/dist/agent-workspace/lib/resolvers/types.d.ts.map +1 -0
  137. package/dist/agent-workspace/lib/resolvers/types.js +3 -0
  138. package/dist/agent-workspace/lib/resolvers/types.js.map +1 -0
  139. package/dist/agent-workspace/lib/resolvers/utils/agent-run-context-cache.d.ts +70 -0
  140. package/dist/agent-workspace/lib/resolvers/utils/agent-run-context-cache.d.ts.map +1 -0
  141. package/dist/agent-workspace/lib/resolvers/utils/agent-run-context-cache.js +90 -0
  142. package/dist/agent-workspace/lib/resolvers/utils/agent-run-context-cache.js.map +1 -0
  143. package/dist/agent-workspace/lib/resolvers/utils/auth.d.ts +5 -0
  144. package/dist/agent-workspace/lib/resolvers/utils/auth.d.ts.map +1 -0
  145. package/dist/agent-workspace/lib/resolvers/utils/auth.js +19 -0
  146. package/dist/agent-workspace/lib/resolvers/utils/auth.js.map +1 -0
  147. package/dist/agent-workspace/lib/resolvers/utils/size-cap.d.ts +3 -0
  148. package/dist/agent-workspace/lib/resolvers/utils/size-cap.d.ts.map +1 -0
  149. package/dist/agent-workspace/lib/resolvers/utils/size-cap.js +23 -0
  150. package/dist/agent-workspace/lib/resolvers/utils/size-cap.js.map +1 -0
  151. package/dist/agent-workspace/lib/resolvers/utils/streaming.d.ts +3 -0
  152. package/dist/agent-workspace/lib/resolvers/utils/streaming.d.ts.map +1 -0
  153. package/dist/agent-workspace/lib/resolvers/utils/streaming.js +11 -0
  154. package/dist/agent-workspace/lib/resolvers/utils/streaming.js.map +1 -0
  155. package/dist/agent-workspace/lib/workspace-renderer.d.ts +13 -0
  156. package/dist/agent-workspace/lib/workspace-renderer.d.ts.map +1 -0
  157. package/dist/agent-workspace/lib/workspace-renderer.js +3 -0
  158. package/dist/agent-workspace/lib/workspace-renderer.js.map +1 -0
  159. package/dist/api/index.d.ts +11 -0
  160. package/dist/api/index.d.ts.map +1 -0
  161. package/dist/api/index.js +27 -0
  162. package/dist/api/index.js.map +1 -0
  163. package/dist/api/lib/api-manifest.d.ts +29 -0
  164. package/dist/api/lib/api-manifest.d.ts.map +1 -0
  165. package/dist/api/lib/api-manifest.js +28 -0
  166. package/dist/api/lib/api-manifest.js.map +1 -0
  167. package/dist/api/lib/biome-db.d.ts +2 -0
  168. package/dist/api/lib/biome-db.d.ts.map +1 -0
  169. package/dist/api/lib/biome-db.js +13 -0
  170. package/dist/api/lib/biome-db.js.map +1 -0
  171. package/dist/api/lib/code-tool-context.d.ts +16 -0
  172. package/dist/api/lib/code-tool-context.d.ts.map +1 -0
  173. package/dist/api/lib/code-tool-context.js +12 -0
  174. package/dist/api/lib/code-tool-context.js.map +1 -0
  175. package/dist/api/lib/code-tool-descriptor.d.ts +49 -0
  176. package/dist/api/lib/code-tool-descriptor.d.ts.map +1 -0
  177. package/dist/api/lib/code-tool-descriptor.js +3 -0
  178. package/dist/api/lib/code-tool-descriptor.js.map +1 -0
  179. package/dist/api/lib/code-tool.decorator.d.ts +17 -0
  180. package/dist/api/lib/code-tool.decorator.d.ts.map +1 -0
  181. package/dist/api/lib/code-tool.decorator.js +38 -0
  182. package/dist/api/lib/code-tool.decorator.js.map +1 -0
  183. package/dist/api/lib/mutation-context.d.ts +16 -0
  184. package/dist/api/lib/mutation-context.d.ts.map +1 -0
  185. package/dist/api/lib/mutation-context.js +17 -0
  186. package/dist/api/lib/mutation-context.js.map +1 -0
  187. package/dist/api/lib/pagination.d.ts +8 -0
  188. package/dist/api/lib/pagination.d.ts.map +1 -0
  189. package/dist/api/lib/pagination.js +7 -0
  190. package/dist/api/lib/pagination.js.map +1 -0
  191. package/dist/api/lib/provider-kind-mirror.d.ts +7 -0
  192. package/dist/api/lib/provider-kind-mirror.d.ts.map +1 -0
  193. package/dist/api/lib/provider-kind-mirror.js +11 -0
  194. package/dist/api/lib/provider-kind-mirror.js.map +1 -0
  195. package/dist/api/lib/request-context.d.ts +21 -0
  196. package/dist/api/lib/request-context.d.ts.map +1 -0
  197. package/dist/api/lib/request-context.js +51 -0
  198. package/dist/api/lib/request-context.js.map +1 -0
  199. package/dist/api/lib/route-registry-entry.d.ts +11 -0
  200. package/dist/api/lib/route-registry-entry.d.ts.map +1 -0
  201. package/dist/api/lib/route-registry-entry.js +3 -0
  202. package/dist/api/lib/route-registry-entry.js.map +1 -0
  203. package/dist/api/nest/controller-base.d.ts +6 -0
  204. package/dist/api/nest/controller-base.d.ts.map +1 -0
  205. package/dist/api/nest/controller-base.js +28 -0
  206. package/dist/api/nest/controller-base.js.map +1 -0
  207. package/dist/api/nest/events/events.controller.d.ts +10 -0
  208. package/dist/api/nest/events/events.controller.d.ts.map +1 -0
  209. package/dist/api/nest/events/events.controller.js +56 -0
  210. package/dist/api/nest/events/events.controller.js.map +1 -0
  211. package/dist/api/nest/health/health.controller.d.ts +19 -0
  212. package/dist/api/nest/health/health.controller.d.ts.map +1 -0
  213. package/dist/api/nest/health/health.controller.js +63 -0
  214. package/dist/api/nest/health/health.controller.js.map +1 -0
  215. package/dist/api/nest/health/health.module.d.ts +6 -0
  216. package/dist/api/nest/health/health.module.d.ts.map +1 -0
  217. package/dist/api/nest/health/health.module.js +29 -0
  218. package/dist/api/nest/health/health.module.js.map +1 -0
  219. package/dist/api/nest/index.d.ts +7 -0
  220. package/dist/api/nest/index.d.ts.map +1 -0
  221. package/dist/api/nest/index.js +23 -0
  222. package/dist/api/nest/index.js.map +1 -0
  223. package/dist/api/nest/module.d.ts +6 -0
  224. package/dist/api/nest/module.d.ts.map +1 -0
  225. package/dist/api/nest/module.js +34 -0
  226. package/dist/api/nest/module.js.map +1 -0
  227. package/dist/api/nest/request-context.d.ts +17 -0
  228. package/dist/api/nest/request-context.d.ts.map +1 -0
  229. package/dist/api/nest/request-context.js +75 -0
  230. package/dist/api/nest/request-context.js.map +1 -0
  231. package/dist/builder/index.d.ts +7 -0
  232. package/dist/builder/index.d.ts.map +1 -0
  233. package/dist/builder/index.js +23 -0
  234. package/dist/builder/index.js.map +1 -0
  235. package/dist/builder/lib/content-walker.d.ts +27 -0
  236. package/dist/builder/lib/content-walker.d.ts.map +1 -0
  237. package/dist/builder/lib/content-walker.js +274 -0
  238. package/dist/builder/lib/content-walker.js.map +1 -0
  239. package/dist/builder/lib/contribution-schemas.d.ts +348 -0
  240. package/dist/builder/lib/contribution-schemas.d.ts.map +1 -0
  241. package/dist/builder/lib/contribution-schemas.js +301 -0
  242. package/dist/builder/lib/contribution-schemas.js.map +1 -0
  243. package/dist/builder/lib/define-biome.d.ts +17 -0
  244. package/dist/builder/lib/define-biome.d.ts.map +1 -0
  245. package/dist/builder/lib/define-biome.js +11 -0
  246. package/dist/builder/lib/define-biome.js.map +1 -0
  247. package/dist/builder/lib/define-helpers.d.ts +6 -0
  248. package/dist/builder/lib/define-helpers.d.ts.map +1 -0
  249. package/dist/builder/lib/define-helpers.js +20 -0
  250. package/dist/builder/lib/define-helpers.js.map +1 -0
  251. package/dist/builder/lib/extends-precedence.d.ts +14 -0
  252. package/dist/builder/lib/extends-precedence.d.ts.map +1 -0
  253. package/dist/builder/lib/extends-precedence.js +113 -0
  254. package/dist/builder/lib/extends-precedence.js.map +1 -0
  255. package/dist/builder/lib/workflow-phase-config-loader.d.ts +18 -0
  256. package/dist/builder/lib/workflow-phase-config-loader.d.ts.map +1 -0
  257. package/dist/builder/lib/workflow-phase-config-loader.js +78 -0
  258. package/dist/builder/lib/workflow-phase-config-loader.js.map +1 -0
  259. package/dist/host/index.d.ts +11 -0
  260. package/dist/host/index.d.ts.map +1 -0
  261. package/dist/host/index.js +38 -0
  262. package/dist/host/index.js.map +1 -0
  263. package/dist/host/lib/agents-cross-validate.d.ts +7 -0
  264. package/dist/host/lib/agents-cross-validate.d.ts.map +1 -0
  265. package/dist/host/lib/agents-cross-validate.js +157 -0
  266. package/dist/host/lib/agents-cross-validate.js.map +1 -0
  267. package/dist/host/lib/biome-manifest.d.ts +808 -0
  268. package/dist/host/lib/biome-manifest.d.ts.map +1 -0
  269. package/dist/host/lib/biome-manifest.js +490 -0
  270. package/dist/host/lib/biome-manifest.js.map +1 -0
  271. package/dist/host/lib/bootstrap-contributions-service.d.ts +35 -0
  272. package/dist/host/lib/bootstrap-contributions-service.d.ts.map +1 -0
  273. package/dist/host/lib/bootstrap-contributions-service.js +79 -0
  274. package/dist/host/lib/bootstrap-contributions-service.js.map +1 -0
  275. package/dist/host/lib/default-state.d.ts +3 -0
  276. package/dist/host/lib/default-state.d.ts.map +1 -0
  277. package/dist/host/lib/default-state.js +20 -0
  278. package/dist/host/lib/default-state.js.map +1 -0
  279. package/dist/host/lib/integration-cross-validate.d.ts +12 -0
  280. package/dist/host/lib/integration-cross-validate.d.ts.map +1 -0
  281. package/dist/host/lib/integration-cross-validate.js +66 -0
  282. package/dist/host/lib/integration-cross-validate.js.map +1 -0
  283. package/dist/host/lib/system-overlay-contribution.d.ts +14 -0
  284. package/dist/host/lib/system-overlay-contribution.d.ts.map +1 -0
  285. package/dist/host/lib/system-overlay-contribution.js +3 -0
  286. package/dist/host/lib/system-overlay-contribution.js.map +1 -0
  287. package/dist/host/lib/topology.d.ts +7 -0
  288. package/dist/host/lib/topology.d.ts.map +1 -0
  289. package/dist/host/lib/topology.js +105 -0
  290. package/dist/host/lib/topology.js.map +1 -0
  291. package/dist/index.d.ts +9 -0
  292. package/dist/index.d.ts.map +1 -0
  293. package/dist/index.js +37 -0
  294. package/dist/index.js.map +1 -0
  295. package/dist/orchestrator-adapter/index.d.ts +3 -0
  296. package/dist/orchestrator-adapter/index.d.ts.map +1 -0
  297. package/dist/orchestrator-adapter/index.js +19 -0
  298. package/dist/orchestrator-adapter/index.js.map +1 -0
  299. package/dist/orchestrator-adapter/lib/orchestrator-adapter-registry.d.ts +6 -0
  300. package/dist/orchestrator-adapter/lib/orchestrator-adapter-registry.d.ts.map +1 -0
  301. package/dist/orchestrator-adapter/lib/orchestrator-adapter-registry.js +11 -0
  302. package/dist/orchestrator-adapter/lib/orchestrator-adapter-registry.js.map +1 -0
  303. package/dist/orchestrator-adapter/lib/orchestrator-adapter.d.ts +11 -0
  304. package/dist/orchestrator-adapter/lib/orchestrator-adapter.d.ts.map +1 -0
  305. package/dist/orchestrator-adapter/lib/orchestrator-adapter.js +3 -0
  306. package/dist/orchestrator-adapter/lib/orchestrator-adapter.js.map +1 -0
  307. package/package.json +110 -0
  308. package/src/adapter/index.ts +6 -0
  309. package/src/adapter/lib/action.ts +60 -0
  310. package/src/adapter/lib/provider-module.ts +140 -0
  311. package/src/adapter/lib/resource.ts +52 -0
  312. package/src/adapter/lib/result.ts +53 -0
  313. package/src/adapter/lib/sidecar-contract.ts +169 -0
  314. package/src/adapter/lib/webhook.ts +142 -0
  315. package/src/agent-workspace/index.ts +7 -0
  316. package/src/agent-workspace/lib/errors/error-codes.ts +44 -0
  317. package/src/agent-workspace/lib/errors/index.ts +3 -0
  318. package/src/agent-workspace/lib/errors/mount-plan-error.ts +29 -0
  319. package/src/agent-workspace/lib/errors/mount-resolver-error.ts +56 -0
  320. package/src/agent-workspace/lib/mount-resolver.ts +35 -0
  321. package/src/agent-workspace/lib/mount-source.ts +11 -0
  322. package/src/agent-workspace/lib/refid-resolver.ts +135 -0
  323. package/src/agent-workspace/lib/registries.ts +150 -0
  324. package/src/agent-workspace/lib/resolvers/agent-definition.resolver.ts +45 -0
  325. package/src/agent-workspace/lib/resolvers/artifact-store-collection.resolver.ts +43 -0
  326. package/src/agent-workspace/lib/resolvers/artifact-version.resolver.ts +52 -0
  327. package/src/agent-workspace/lib/resolvers/clients.ts +297 -0
  328. package/src/agent-workspace/lib/resolvers/deliverable-specs.resolver.ts +33 -0
  329. package/src/agent-workspace/lib/resolvers/deliverables.resolver.ts +41 -0
  330. package/src/agent-workspace/lib/resolvers/index.ts +19 -0
  331. package/src/agent-workspace/lib/resolvers/instruction-section.resolver.ts +36 -0
  332. package/src/agent-workspace/lib/resolvers/kb-pages.resolver.ts +62 -0
  333. package/src/agent-workspace/lib/resolvers/kb-space.resolver.ts +34 -0
  334. package/src/agent-workspace/lib/resolvers/rendered-agents-md.resolver.ts +40 -0
  335. package/src/agent-workspace/lib/resolvers/rendered-context-json.resolver.ts +41 -0
  336. package/src/agent-workspace/lib/resolvers/rendered-system-overlay.resolver.ts +39 -0
  337. package/src/agent-workspace/lib/resolvers/scm-repo.resolver.ts +43 -0
  338. package/src/agent-workspace/lib/resolvers/session-attachment.resolver.ts +37 -0
  339. package/src/agent-workspace/lib/resolvers/skill-bundle.resolver.ts +42 -0
  340. package/src/agent-workspace/lib/resolvers/static-literal.resolver.ts +69 -0
  341. package/src/agent-workspace/lib/resolvers/types.ts +94 -0
  342. package/src/agent-workspace/lib/resolvers/utils/agent-run-context-cache.ts +206 -0
  343. package/src/agent-workspace/lib/resolvers/utils/auth.ts +39 -0
  344. package/src/agent-workspace/lib/resolvers/utils/size-cap.ts +38 -0
  345. package/src/agent-workspace/lib/resolvers/utils/streaming.ts +22 -0
  346. package/src/agent-workspace/lib/workspace-renderer.ts +25 -0
  347. package/src/api/index.ts +10 -0
  348. package/src/api/lib/api-manifest.ts +54 -0
  349. package/src/api/lib/biome-db.ts +28 -0
  350. package/src/api/lib/code-tool-context.ts +45 -0
  351. package/src/api/lib/code-tool-descriptor.ts +102 -0
  352. package/src/api/lib/code-tool.decorator.ts +111 -0
  353. package/src/api/lib/mutation-context.ts +49 -0
  354. package/src/api/lib/pagination.ts +17 -0
  355. package/src/api/lib/provider-kind-mirror.ts +16 -0
  356. package/src/api/lib/request-context.ts +90 -0
  357. package/src/api/lib/route-registry-entry.ts +35 -0
  358. package/src/api/nest/controller-base.ts +59 -0
  359. package/src/api/nest/events/events.controller.ts +48 -0
  360. package/src/api/nest/health/health.controller.ts +36 -0
  361. package/src/api/nest/health/health.module.ts +29 -0
  362. package/src/api/nest/index.ts +6 -0
  363. package/src/api/nest/module.ts +51 -0
  364. package/src/api/nest/request-context.ts +166 -0
  365. package/src/builder/index.ts +26 -0
  366. package/src/builder/lib/content-walker.ts +383 -0
  367. package/src/builder/lib/contribution-schemas.ts +572 -0
  368. package/src/builder/lib/define-biome.ts +84 -0
  369. package/src/builder/lib/define-helpers.ts +42 -0
  370. package/src/builder/lib/extends-precedence.ts +195 -0
  371. package/src/builder/lib/workflow-phase-config-loader.ts +163 -0
  372. package/src/host/index.ts +39 -0
  373. package/src/host/lib/agents-cross-validate.ts +283 -0
  374. package/src/host/lib/biome-manifest.ts +1060 -0
  375. package/src/host/lib/bootstrap-contributions-service.ts +233 -0
  376. package/src/host/lib/default-state.ts +40 -0
  377. package/src/host/lib/integration-cross-validate.ts +140 -0
  378. package/src/host/lib/system-overlay-contribution.ts +53 -0
  379. package/src/host/lib/topology.ts +174 -0
  380. package/src/index.ts +58 -0
  381. package/src/orchestrator-adapter/index.ts +2 -0
  382. package/src/orchestrator-adapter/lib/orchestrator-adapter-registry.ts +8 -0
  383. package/src/orchestrator-adapter/lib/orchestrator-adapter.ts +20 -0
@@ -0,0 +1,56 @@
1
+ import { MountResolverErrorCode } from './error-codes';
2
+
3
+ /**
4
+ * Resolver / proxy faults — surfaced during apply. Distinct hierarchy
5
+ * from `MountPlanError` so the proxy can map them to different HTTP
6
+ * statuses without sniffing message strings.
7
+ *
8
+ * Subclass per error code. `details` is a structured, scrubbable bag —
9
+ * NEVER includes JWTs, signed URLs, or upstream payload bodies.
10
+ */
11
+ export abstract class MountResolverError extends Error {
12
+ abstract readonly code: MountResolverErrorCode;
13
+ readonly details: Readonly<Record<string, unknown>>;
14
+
15
+ constructor(message: string, details: Readonly<Record<string, unknown>> = {}) {
16
+ super(message);
17
+ this.name = new.target.name;
18
+ this.details = details;
19
+ }
20
+ }
21
+
22
+ export class MountActorUnauthorizedError extends MountResolverError {
23
+ readonly code = MountResolverErrorCode.ActorUnauthorized;
24
+ }
25
+
26
+ export class MountActorForbiddenError extends MountResolverError {
27
+ readonly code = MountResolverErrorCode.ActorForbidden;
28
+ }
29
+
30
+ export class MountSourceNotFoundError extends MountResolverError {
31
+ readonly code = MountResolverErrorCode.SourceNotFound;
32
+ }
33
+
34
+ export class MountSourcePayloadTooLargeError extends MountResolverError {
35
+ readonly code = MountResolverErrorCode.PayloadTooLarge;
36
+ }
37
+
38
+ export class MountSourceUpstreamError extends MountResolverError {
39
+ readonly code = MountResolverErrorCode.UpstreamBadGateway;
40
+ }
41
+
42
+ export class MountSourceUpstreamUnavailableError extends MountResolverError {
43
+ readonly code = MountResolverErrorCode.UpstreamUnavailable;
44
+ }
45
+
46
+ export class MountSourceUpstreamTimeoutError extends MountResolverError {
47
+ readonly code = MountResolverErrorCode.UpstreamTimeout;
48
+ }
49
+
50
+ export class MountInsufficientStorageError extends MountResolverError {
51
+ readonly code = MountResolverErrorCode.InsufficientStorage;
52
+ }
53
+
54
+ export class MountInternalError extends MountResolverError {
55
+ readonly code = MountResolverErrorCode.Internal;
56
+ }
@@ -0,0 +1,35 @@
1
+ import type { MountSource, MountSourceKind } from './mount-source';
2
+ import type {
3
+ ResolveContext,
4
+ ResolveSlotContext,
5
+ ResolvedMountEntries,
6
+ } from './resolvers/types';
7
+
8
+ /**
9
+ * One adapter per `MountSource.kind`. Resolvers stream files into the
10
+ * writer phase, which writes them through `workspace-proxy` into the
11
+ * agent's `/workspace/` tree.
12
+ *
13
+ * Biomes ship their own `MountResolver` and register it with the
14
+ * `MountSourceKindRegistry` at platform boot. No core code changes when
15
+ * a new mount-source kind lands.
16
+ *
17
+ * Implementations MUST:
18
+ * - Forward `ctx.authHeaders` verbatim to upstream Orval clients.
19
+ * Cross-tenant access depends on the upstream service's
20
+ * `RequestContextMiddleware` enforcing org-scoping; the resolver
21
+ * must not silently strip headers.
22
+ * - Yield streamed bodies for any payload that may exceed ~1 MB.
23
+ * - Throw a `MountResolverError` subclass on any upstream failure —
24
+ * never swallow errors or return partial results.
25
+ */
26
+ export interface MountResolver<K extends MountSourceKind = MountSourceKind> {
27
+ readonly kind: K;
28
+ resolve(
29
+ source: Extract<MountSource, { kind: K }>,
30
+ slotCtx: ResolveSlotContext,
31
+ ctx: ResolveContext,
32
+ ): ResolvedMountEntries;
33
+ }
34
+
35
+ export type { ResolveContext, ResolveSlotContext, ResolvedMountEntries } from './resolvers/types';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `MountSource` is the canonical contract owned by `@xemahq/kernel-contracts/workflow`.
3
+ * Re-exported here so SDK consumers have a single import surface.
4
+ *
5
+ * Biomes extend the closed set via TS module augmentation +
6
+ * `MountSourceKindRegistry.register`.
7
+ */
8
+ export type { MountSource } from '@xemahq/kernel-contracts/workflow';
9
+
10
+ import type { MountSource } from '@xemahq/kernel-contracts/workflow';
11
+ export type MountSourceKind = MountSource['kind'];
@@ -0,0 +1,135 @@
1
+ import type { MountSource } from './mount-source';
2
+
3
+ /**
4
+ * Closed prefix table — every refId carried in DSL outputs has exactly
5
+ * one matching entry. Adding a new prefix requires extending both this
6
+ * enum AND `PREFIX_PARSERS`; an unmatched prefix throws fail-fast.
7
+ */
8
+ export enum RefIdPrefix {
9
+ ArtifactStoreCollection = 'art',
10
+ KnowledgeBaseSpace = 'kb',
11
+ ScmRepo = 'scm',
12
+ SessionAttachment = 'att',
13
+ Deliverables = 'dlv',
14
+ DeliverableSpecs = 'dlv-spec',
15
+ StaticLiteral = 'lit',
16
+ }
17
+
18
+ /**
19
+ * Converts the short refId form carried in DSL outputs (`art:<id>`,
20
+ * `kb:<id>`, `scm:<repo>@<ref>`, `att:<sessionId>`,
21
+ * `dlv:<contractKey>`, `dlv-spec:<contractKey>`, `lit:<inline>`) into a
22
+ * concrete `MountSource` the renderer can dispatch to a `MountResolver`.
23
+ *
24
+ * Short prefixes are the wire form (DSL author + agent visible); full
25
+ * URIs stay internal to resolvers and `workspace-proxy`.
26
+ */
27
+ export interface RefIdResolver {
28
+ resolve(refId: string): MountSource;
29
+ canResolve(refId: string): boolean;
30
+ }
31
+
32
+ export class RefIdSchemeError extends Error {
33
+ readonly refId: string;
34
+
35
+ constructor(refId: string, message: string) {
36
+ super(`[refId "${refId}"] ${message}`);
37
+ this.name = 'RefIdSchemeError';
38
+ this.refId = refId;
39
+ }
40
+ }
41
+
42
+ type PrefixParser = (refId: string, body: string) => MountSource;
43
+
44
+ const PREFIX_PARSERS: Readonly<Record<RefIdPrefix, PrefixParser>> = {
45
+ [RefIdPrefix.ArtifactStoreCollection]: (refId, body) => {
46
+ if (body.length === 0) {
47
+ throw new RefIdSchemeError(refId, 'artifact-store collection id is empty');
48
+ }
49
+ return { kind: 'artifact-store-collection', collectionId: body };
50
+ },
51
+ [RefIdPrefix.KnowledgeBaseSpace]: (refId, body) => {
52
+ if (body.length === 0) {
53
+ throw new RefIdSchemeError(refId, 'kb space id is empty');
54
+ }
55
+ return { kind: 'kb-space', spaceId: body };
56
+ },
57
+ [RefIdPrefix.ScmRepo]: (refId, body) => {
58
+ const at = body.indexOf('@');
59
+ if (at < 1 || at === body.length - 1) {
60
+ throw new RefIdSchemeError(
61
+ refId,
62
+ "scm refId must be of the form 'scm:<repoRef>@<ref>'",
63
+ );
64
+ }
65
+ const repoRef = body.slice(0, at);
66
+ const ref = body.slice(at + 1);
67
+ return { kind: 'scm-repo', repoRef, ref };
68
+ },
69
+ [RefIdPrefix.SessionAttachment]: (refId, body) => {
70
+ if (body.length === 0) {
71
+ throw new RefIdSchemeError(refId, 'session id is empty');
72
+ }
73
+ return { kind: 'session-attachment', sessionId: body };
74
+ },
75
+ [RefIdPrefix.Deliverables]: (refId, body) => {
76
+ if (body.length === 0) {
77
+ throw new RefIdSchemeError(refId, 'deliverable contract key is empty');
78
+ }
79
+ return { kind: 'deliverables', contractKey: body };
80
+ },
81
+ [RefIdPrefix.DeliverableSpecs]: (refId, body) => {
82
+ if (body.length === 0) {
83
+ throw new RefIdSchemeError(refId, 'deliverable-spec contract key is empty');
84
+ }
85
+ return { kind: 'deliverable-specs', contractKey: body };
86
+ },
87
+ [RefIdPrefix.StaticLiteral]: (refId, body) => {
88
+ // `lit:<pathWithinWorkspace>=<base64-bytes>` — both segments required.
89
+ const eq = body.indexOf('=');
90
+ if (eq < 1 || eq === body.length - 1) {
91
+ throw new RefIdSchemeError(
92
+ refId,
93
+ "literal refId must be of the form 'lit:<pathWithinWorkspace>=<base64-bytes>'",
94
+ );
95
+ }
96
+ const pathWithinWorkspace = body.slice(0, eq);
97
+ const bytes = body.slice(eq + 1);
98
+ return { kind: 'static-literal', pathWithinWorkspace, bytes };
99
+ },
100
+ };
101
+
102
+ const KNOWN_PREFIXES: ReadonlySet<string> = new Set(Object.values(RefIdPrefix));
103
+
104
+ function splitPrefix(refId: string): { prefix: string; body: string } {
105
+ // dlv-spec contains a dash; we still split on the FIRST `:` only.
106
+ const colon = refId.indexOf(':');
107
+ if (colon < 1) {
108
+ throw new RefIdSchemeError(refId, 'expected `<prefix>:<body>` form');
109
+ }
110
+ return { prefix: refId.slice(0, colon), body: refId.slice(colon + 1) };
111
+ }
112
+
113
+ export class RefIdResolverImpl implements RefIdResolver {
114
+ canResolve(refId: string): boolean {
115
+ if (typeof refId !== 'string' || refId.length === 0) return false;
116
+ const colon = refId.indexOf(':');
117
+ if (colon < 1) return false;
118
+ return KNOWN_PREFIXES.has(refId.slice(0, colon));
119
+ }
120
+
121
+ resolve(refId: string): MountSource {
122
+ if (typeof refId !== 'string' || refId.length === 0) {
123
+ throw new RefIdSchemeError(String(refId), 'refId must be a non-empty string');
124
+ }
125
+ const { prefix, body } = splitPrefix(refId);
126
+ if (!KNOWN_PREFIXES.has(prefix)) {
127
+ throw new RefIdSchemeError(
128
+ refId,
129
+ `unknown refId prefix '${prefix}' — expected one of: ${Object.values(RefIdPrefix).join(', ')}`,
130
+ );
131
+ }
132
+ const parser = PREFIX_PARSERS[prefix as RefIdPrefix];
133
+ return parser(refId, body);
134
+ }
135
+ }
@@ -0,0 +1,150 @@
1
+ import { Registry } from '@xemahq/registry';
2
+ import type { MountResolver } from './mount-resolver';
3
+ import type { MountSourceKind } from './mount-source';
4
+ import type {
5
+ ArtifactStoreClient,
6
+ KbClient,
7
+ LlmRegistryClient,
8
+ ScmClient,
9
+ SessionAttachmentClient,
10
+ DeliverableSpecsClient,
11
+ SkillRegistryClient,
12
+ } from './resolvers/clients';
13
+ import { AgentDefinitionResolver } from './resolvers/agent-definition.resolver';
14
+ import { ArtifactStoreCollectionResolver } from './resolvers/artifact-store-collection.resolver';
15
+ import { ArtifactVersionResolver } from './resolvers/artifact-version.resolver';
16
+ import { DeliverablesResolver } from './resolvers/deliverables.resolver';
17
+ import { DeliverableSpecsResolver } from './resolvers/deliverable-specs.resolver';
18
+ import { InstructionSectionResolver } from './resolvers/instruction-section.resolver';
19
+ import { KbSpaceResolver } from './resolvers/kb-space.resolver';
20
+ import { KbPagesResolver } from './resolvers/kb-pages.resolver';
21
+ import { RenderedAgentsMdResolver } from './resolvers/rendered-agents-md.resolver';
22
+ import { RenderedContextJsonResolver } from './resolvers/rendered-context-json.resolver';
23
+ import { RenderedSystemOverlayResolver } from './resolvers/rendered-system-overlay.resolver';
24
+ import { RenderedAgentRunContextCache } from './resolvers/utils/agent-run-context-cache';
25
+ import { ScmRepoResolver } from './resolvers/scm-repo.resolver';
26
+ import { SessionAttachmentResolver } from './resolvers/session-attachment.resolver';
27
+ import { SkillBundleResolver } from './resolvers/skill-bundle.resolver';
28
+ import { StaticLiteralResolver } from './resolvers/static-literal.resolver';
29
+
30
+ export interface MountSourceKindRegistration {
31
+ readonly key: MountSourceKind;
32
+ readonly resolver: MountResolver;
33
+ }
34
+
35
+ /**
36
+ * Runtime dispatch table for `MountSource.kind` → `MountResolver`. Built-in
37
+ * kinds register at platform boot; biomes extend it via the same API.
38
+ */
39
+ export class MountSourceKindRegistry extends Registry<MountSourceKind, MountSourceKindRegistration> {
40
+ constructor(seed?: readonly MountSourceKindRegistration[]) {
41
+ super(seed ? { name: 'MountSourceKindRegistry', seed } : { name: 'MountSourceKindRegistry' });
42
+ }
43
+ }
44
+
45
+ /**
46
+ * Constructor deps for the built-in resolver set. Each client is
47
+ * **per-call auth aware** — workspace-proxy threads the actor's
48
+ * `authHeaders` into every call, so a single client instance services
49
+ * many actors safely. Static service-token clients MUST NOT be used.
50
+ *
51
+ * The interface is kept narrow on purpose: each resolver claims exactly
52
+ * the upstream client it needs, no global "platform clients" bag.
53
+ */
54
+ export interface MountSourceKindResolverDeps {
55
+ readonly artifactStoreClient: ArtifactStoreClient;
56
+ readonly kbClient: KbClient;
57
+ readonly scmClient: ScmClient;
58
+ readonly sessionAttachmentClient: SessionAttachmentClient;
59
+ readonly deliverableSpecsClient: DeliverableSpecsClient;
60
+ readonly llmRegistryClient: LlmRegistryClient;
61
+ readonly skillRegistryClient: SkillRegistryClient;
62
+ }
63
+
64
+ /**
65
+ * Boot-time factory: returns a fully-populated registry containing the
66
+ * seven built-in resolvers. Biomes register their own kinds via
67
+ * `registry.register()` after this is built.
68
+ *
69
+ * Each resolver is a constructor-injected pure class — no I/O at
70
+ * construction time, no global singletons. Adding a new built-in kind
71
+ * = extending `MountSource` + appending a registration here.
72
+ */
73
+ export function buildBuiltinMountSourceKindRegistry(
74
+ deps: MountSourceKindResolverDeps,
75
+ ): MountSourceKindRegistry {
76
+ const registry = new MountSourceKindRegistry();
77
+ registry.registerMany([
78
+ {
79
+ key: 'artifact-store-collection',
80
+ resolver: new ArtifactStoreCollectionResolver(deps.artifactStoreClient),
81
+ },
82
+ {
83
+ key: 'artifact-version',
84
+ resolver: new ArtifactVersionResolver(deps.artifactStoreClient),
85
+ },
86
+ { key: 'kb-space', resolver: new KbSpaceResolver(deps.kbClient) },
87
+ { key: 'kb-pages', resolver: new KbPagesResolver(deps.kbClient) },
88
+ { key: 'scm-repo', resolver: new ScmRepoResolver(deps.scmClient) },
89
+ {
90
+ key: 'session-attachment',
91
+ resolver: new SessionAttachmentResolver(deps.sessionAttachmentClient),
92
+ },
93
+ {
94
+ key: 'deliverable-specs',
95
+ resolver: new DeliverableSpecsResolver(deps.deliverableSpecsClient),
96
+ },
97
+ { key: 'deliverables', resolver: new DeliverablesResolver(deps.artifactStoreClient) },
98
+ { key: 'static-literal', resolver: new StaticLiteralResolver() },
99
+ // ── Platform-rendered (mount-apply pipeline for `.opencode/` and
100
+ // AGENTS.md / context.json) ──
101
+ {
102
+ key: 'agent-definition',
103
+ resolver: new AgentDefinitionResolver(deps.llmRegistryClient),
104
+ },
105
+ {
106
+ key: 'skill-bundle',
107
+ resolver: new SkillBundleResolver(deps.skillRegistryClient),
108
+ },
109
+ {
110
+ key: 'instruction-section',
111
+ resolver: new InstructionSectionResolver(deps.llmRegistryClient),
112
+ },
113
+ ]);
114
+ // Three rendered-* resolvers share one cache so a single mount-apply
115
+ // hits `agent-run-context/render` once for AGENTS.md + context.json +
116
+ // system-overlay.
117
+ const renderCache = new RenderedAgentRunContextCache(deps.llmRegistryClient);
118
+ registry.registerMany([
119
+ {
120
+ key: 'rendered-agents-md',
121
+ resolver: new RenderedAgentsMdResolver(renderCache),
122
+ },
123
+ {
124
+ key: 'rendered-context-json',
125
+ resolver: new RenderedContextJsonResolver(renderCache),
126
+ },
127
+ {
128
+ key: 'rendered-system-overlay',
129
+ resolver: new RenderedSystemOverlayResolver(renderCache),
130
+ },
131
+ ]);
132
+ return registry;
133
+ }
134
+
135
+ export interface RuntimeMountKindRegistration {
136
+ readonly key: string;
137
+ readonly displayName: string;
138
+ readonly apply: (ctx: unknown) => Promise<void>;
139
+ }
140
+
141
+ /**
142
+ * Replaces the hardcoded `RuntimeMountKind` switch in
143
+ * `agent-session-api`. Each agent-session profile (and any
144
+ * biome-defined profile) registers its mount strategy here.
145
+ */
146
+ export class RuntimeMountKindRegistry extends Registry<string, RuntimeMountKindRegistration> {
147
+ constructor(seed?: readonly RuntimeMountKindRegistration[]) {
148
+ super(seed ? { name: 'RuntimeMountKindRegistry', seed } : { name: 'RuntimeMountKindRegistry' });
149
+ }
150
+ }
@@ -0,0 +1,45 @@
1
+ import type { MountResolver } from '../mount-resolver';
2
+ import type { MountSource } from '../mount-source';
3
+ import type { LlmRegistryClient } from './clients';
4
+ import type { ResolveContext, ResolveSlotContext, ResolvedMountEntries } from './types';
5
+ import { assertAuthHeaders } from './utils/auth';
6
+
7
+ /**
8
+ * `agent-definition` mount kind — emits one `<slug>.md` file under the
9
+ * `agent-bundles` slot (`/workspace/.opencode/agents/`). Per OpenCode
10
+ * convention, primary agents and sub-agents share the same directory
11
+ * and are differentiated by frontmatter `mode`.
12
+ *
13
+ * Source data lives in llm-registry-api's `AgentDefinition` table and
14
+ * is rendered with frontmatter by the `BundleFileService`. This
15
+ * resolver simply forwards the actor's auth headers and writes the
16
+ * bytes into the slot.
17
+ */
18
+ export class AgentDefinitionResolver implements MountResolver<'agent-definition'> {
19
+ readonly kind = 'agent-definition' as const;
20
+
21
+ constructor(private readonly client: LlmRegistryClient) {}
22
+
23
+ async *resolve(
24
+ source: Extract<MountSource, { kind: 'agent-definition' }>,
25
+ slotCtx: ResolveSlotContext,
26
+ ctx: ResolveContext,
27
+ ): ResolvedMountEntries {
28
+ const headers = assertAuthHeaders(ctx);
29
+ const file = await this.client.fetchAgentBundleFile(
30
+ {
31
+ slug: source.agentSlug,
32
+ agentMode: source.agentMode,
33
+ },
34
+ headers,
35
+ );
36
+ yield {
37
+ // Writer composes slot + entryRelPath + relPath. The mount plan
38
+ // already sets entryRelPath to "<slug>.md", so resolver relPath
39
+ // must stay empty to avoid duplicate nesting.
40
+ relPath: '',
41
+ mode: slotCtx.mode,
42
+ body: { kind: 'literal', bytes: Buffer.from(file.content, 'utf8') },
43
+ };
44
+ }
45
+ }
@@ -0,0 +1,43 @@
1
+ import type { MountResolver } from '../mount-resolver';
2
+ import type { MountSource } from '../mount-source';
3
+ import type { ResolveContext, ResolveSlotContext, ResolvedMountEntries } from './types';
4
+ import type { ArtifactStoreClient } from './clients';
5
+ import { assertAuthHeaders } from './utils/auth';
6
+
7
+ /**
8
+ * `artifact-store-collection` mount kind — streams every blob in a
9
+ * collection into the slot. Each blob lands at the path the upstream
10
+ * service declares in its metadata (typically the relative path the
11
+ * blob was emitted with).
12
+ *
13
+ * Bytes are streamed end-to-end: the resolver yields `MountEntry`
14
+ * objects with `body.kind = 'stream'`, never buffering blob contents
15
+ * in memory.
16
+ */
17
+ export class ArtifactStoreCollectionResolver
18
+ implements MountResolver<'artifact-store-collection'>
19
+ {
20
+ readonly kind = 'artifact-store-collection' as const;
21
+
22
+ constructor(private readonly client: ArtifactStoreClient) {}
23
+
24
+ async *resolve(
25
+ source: Extract<MountSource, { kind: 'artifact-store-collection' }>,
26
+ slotCtx: ResolveSlotContext,
27
+ ctx: ResolveContext,
28
+ ): ResolvedMountEntries {
29
+ const headers = assertAuthHeaders(ctx);
30
+ const collection = await this.client.streamCollection(source.collectionId, headers);
31
+ for await (const blob of collection.blobs) {
32
+ yield {
33
+ relPath: blob.metadata.relPath,
34
+ mode: slotCtx.mode,
35
+ body: {
36
+ kind: 'stream',
37
+ readable: blob.stream,
38
+ sizeHint: blob.metadata.sizeBytes,
39
+ },
40
+ };
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,52 @@
1
+ import type { MountResolver } from '../mount-resolver';
2
+ import type { MountSource } from '../mount-source';
3
+ import type { ResolveContext, ResolveSlotContext, ResolvedMountEntries } from './types';
4
+ import type { ArtifactStoreClient } from './clients';
5
+ import { assertAuthHeaders } from './utils/auth';
6
+
7
+ /**
8
+ * `artifact-version` mount kind — materialises one artifact-store version
9
+ * as a single file at the entry's path.
10
+ *
11
+ * Powers the "produce-then-mount" hand-off pattern: an upstream activity
12
+ * (e.g. `xema/http@v1` with `outputMode: artifact`) emits a versioned
13
+ * artifact; the downstream agent declares an `inputArtifacts` entry that
14
+ * lands the bytes inside `/workspace/<slot>/<fileName>`. The agent reads
15
+ * the file via its tool surface instead of receiving the bytes inline
16
+ * through the agent-run-context prompt, avoiding the 1.2 MB blow-up that
17
+ * killed demo-06.
18
+ *
19
+ * The resolver intentionally yields a `literal` body (full bytes in
20
+ * memory) rather than a `stream`: artifact-store inline payloads are
21
+ * already memory-resident on the upstream and capped by the platform
22
+ * 10 MB body limit, so streaming would add complexity without saving
23
+ * RSS. Larger artifacts should use the blob storage path with a
24
+ * dedicated streaming kind — not retrofitted onto this resolver.
25
+ */
26
+ export class ArtifactVersionResolver implements MountResolver<'artifact-version'> {
27
+ readonly kind = 'artifact-version' as const;
28
+
29
+ constructor(private readonly client: ArtifactStoreClient) {}
30
+
31
+ async *resolve(
32
+ source: Extract<MountSource, { kind: 'artifact-version' }>,
33
+ slotCtx: ResolveSlotContext,
34
+ ctx: ResolveContext,
35
+ ): ResolvedMountEntries {
36
+ const headers = assertAuthHeaders(ctx);
37
+ const content = await this.client.fetchVersionContent(
38
+ source.artifactId,
39
+ source.version,
40
+ source.payloadField,
41
+ headers,
42
+ );
43
+ yield {
44
+ relPath: source.fileName,
45
+ mode: slotCtx.mode,
46
+ body: {
47
+ kind: 'literal',
48
+ bytes: content.bytes,
49
+ },
50
+ };
51
+ }
52
+ }