@skaile/workspaces 1.16.0 → 2.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 (291) hide show
  1. package/CHANGELOG.md +309 -0
  2. package/dist/{asset-feeds-WIBEP37F.js → asset-feeds-FBGBQEYD.js} +25 -24
  3. package/dist/asset-feeds-FBGBQEYD.js.map +1 -0
  4. package/dist/asset-manager/catalog-deployer.js +13 -1
  5. package/dist/asset-manager/index.js +10 -9
  6. package/dist/asset-manager/installer.js +7 -6
  7. package/dist/asset-manager/src/catalog-deployer.d.ts +70 -5
  8. package/dist/asset-manager/src/catalog-deployer.d.ts.map +1 -1
  9. package/dist/asset-manager/src/index.d.ts +41 -17
  10. package/dist/asset-manager/src/index.d.ts.map +1 -1
  11. package/dist/asset-manager/src/mcp-config.d.ts +58 -0
  12. package/dist/asset-manager/src/mcp-config.d.ts.map +1 -0
  13. package/dist/bridge/drivers/claude-sdk.js +108 -56
  14. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  15. package/dist/bridge/drivers/codex.js +3 -2
  16. package/dist/bridge/drivers/codex.js.map +1 -1
  17. package/dist/bridge/drivers/continue.js +4 -3
  18. package/dist/bridge/drivers/continue.js.map +1 -1
  19. package/dist/bridge/drivers/echo.js +3 -2
  20. package/dist/bridge/drivers/echo.js.map +1 -1
  21. package/dist/bridge/drivers/gemini.js +5 -4
  22. package/dist/bridge/drivers/goose.js +4 -3
  23. package/dist/bridge/drivers/goose.js.map +1 -1
  24. package/dist/bridge/drivers/omp.js +3 -2
  25. package/dist/bridge/drivers/omp.js.map +1 -1
  26. package/dist/bridge/drivers/opencode.js +4 -3
  27. package/dist/bridge/drivers/opencode.js.map +1 -1
  28. package/dist/bridge/drivers/qwen.js +5 -4
  29. package/dist/bridge/drivers/qwen.js.map +1 -1
  30. package/dist/bridge/index.js +4 -3
  31. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  32. package/dist/bridge/src/drivers/scrub-transcript.d.ts +21 -1
  33. package/dist/bridge/src/drivers/scrub-transcript.d.ts.map +1 -1
  34. package/dist/{chunk-MO43URUI.js → chunk-2BSXXTUP.js} +7 -7
  35. package/dist/{chunk-MO43URUI.js.map → chunk-2BSXXTUP.js.map} +1 -1
  36. package/dist/{chunk-FIUGSIKC.js → chunk-43TAGQ3Z.js} +19 -11
  37. package/dist/chunk-43TAGQ3Z.js.map +1 -0
  38. package/dist/{chunk-7J7LQP6T.js → chunk-5BGEYZ7I.js} +31 -19
  39. package/dist/chunk-5BGEYZ7I.js.map +1 -0
  40. package/dist/chunk-7GOCNYUV.js +300 -0
  41. package/dist/chunk-7GOCNYUV.js.map +1 -0
  42. package/dist/{chunk-KY5NY7LB.js → chunk-BCTU4TN7.js} +11 -11
  43. package/dist/chunk-BCTU4TN7.js.map +1 -0
  44. package/dist/chunk-BEAIJRVF.js +159 -0
  45. package/dist/chunk-BEAIJRVF.js.map +1 -0
  46. package/dist/{chunk-2TSSCHCQ.js → chunk-BHLNQ4L5.js} +5 -5
  47. package/dist/{chunk-2TSSCHCQ.js.map → chunk-BHLNQ4L5.js.map} +1 -1
  48. package/dist/chunk-BK3WL3QK.js +10 -0
  49. package/dist/chunk-BK3WL3QK.js.map +1 -0
  50. package/dist/{chunk-TFIFNDT2.js → chunk-BTR3ZJ7S.js} +4 -4
  51. package/dist/{chunk-TFIFNDT2.js.map → chunk-BTR3ZJ7S.js.map} +1 -1
  52. package/dist/{chunk-BI2NKPA4.js → chunk-CA5CWLGN.js} +3 -2
  53. package/dist/chunk-CA5CWLGN.js.map +1 -0
  54. package/dist/{chunk-STQOPWPS.js → chunk-CTWE7I7Z.js} +4 -4
  55. package/dist/{chunk-STQOPWPS.js.map → chunk-CTWE7I7Z.js.map} +1 -1
  56. package/dist/{chunk-GXC3TYMQ.js → chunk-CZZRDYT4.js} +70 -32
  57. package/dist/chunk-CZZRDYT4.js.map +1 -0
  58. package/dist/chunk-DYMWJAL4.js +552 -0
  59. package/dist/chunk-DYMWJAL4.js.map +1 -0
  60. package/dist/{chunk-ACXLKNIM.js → chunk-E7HKNQTH.js} +10 -4
  61. package/dist/chunk-E7HKNQTH.js.map +1 -0
  62. package/dist/{chunk-2BQBWWFX.js → chunk-GUKMNUQK.js} +6 -6
  63. package/dist/chunk-GUKMNUQK.js.map +1 -0
  64. package/dist/{chunk-6POODADP.js → chunk-HOL5KD7U.js} +453 -250
  65. package/dist/chunk-HOL5KD7U.js.map +1 -0
  66. package/dist/{chunk-C4KVFALU.js → chunk-L26NGI43.js} +3 -3
  67. package/dist/{chunk-C4KVFALU.js.map → chunk-L26NGI43.js.map} +1 -1
  68. package/dist/{chunk-MZV6WCF3.js → chunk-MAN7AGQJ.js} +3 -3
  69. package/dist/{chunk-MZV6WCF3.js.map → chunk-MAN7AGQJ.js.map} +1 -1
  70. package/dist/{chunk-YULV7UTU.js → chunk-MLYV6WEM.js} +10 -10
  71. package/dist/{chunk-YULV7UTU.js.map → chunk-MLYV6WEM.js.map} +1 -1
  72. package/dist/{chunk-O5VCUU6D.js → chunk-N6TYW6EB.js} +4 -4
  73. package/dist/{chunk-O5VCUU6D.js.map → chunk-N6TYW6EB.js.map} +1 -1
  74. package/dist/{chunk-EPWY2ABE.js → chunk-PSVF3LDU.js} +5 -5
  75. package/dist/{chunk-EPWY2ABE.js.map → chunk-PSVF3LDU.js.map} +1 -1
  76. package/dist/{chunk-M5GJT3D7.js → chunk-PYYL5XMA.js} +3 -3
  77. package/dist/{chunk-M5GJT3D7.js.map → chunk-PYYL5XMA.js.map} +1 -1
  78. package/dist/{chunk-BG4XVMG2.js → chunk-RBOPTTTK.js} +286 -151
  79. package/dist/chunk-RBOPTTTK.js.map +1 -0
  80. package/dist/{chunk-2IJFUAZB.js → chunk-RK3HU3H3.js} +123 -18
  81. package/dist/chunk-RK3HU3H3.js.map +1 -0
  82. package/dist/{chunk-5NZ56R63.js → chunk-RTLQAZAE.js} +18 -6
  83. package/dist/chunk-RTLQAZAE.js.map +1 -0
  84. package/dist/{chunk-MNKUZUN2.js → chunk-SGLGA2AZ.js} +3 -3
  85. package/dist/{chunk-MNKUZUN2.js.map → chunk-SGLGA2AZ.js.map} +1 -1
  86. package/dist/{chunk-JB35MVBN.js → chunk-U5POE4BA.js} +4 -298
  87. package/dist/chunk-U5POE4BA.js.map +1 -0
  88. package/dist/{chunk-A22KZ7GZ.js → chunk-VPXBAEWE.js} +274 -40
  89. package/dist/chunk-VPXBAEWE.js.map +1 -0
  90. package/dist/{chunk-ACWCVB5Q.js → chunk-WVPL4OGD.js} +3 -3
  91. package/dist/{chunk-ACWCVB5Q.js.map → chunk-WVPL4OGD.js.map} +1 -1
  92. package/dist/{chunk-MB6563TL.js → chunk-XQVP6XWR.js} +3 -3
  93. package/dist/{chunk-MB6563TL.js.map → chunk-XQVP6XWR.js.map} +1 -1
  94. package/dist/{chunk-344DEXZS.js → chunk-XSIXGVH6.js} +4 -4
  95. package/dist/{chunk-344DEXZS.js.map → chunk-XSIXGVH6.js.map} +1 -1
  96. package/dist/{chunk-BYS6JDZB.js → chunk-Y6VSFX2A.js} +3 -3
  97. package/dist/{chunk-BYS6JDZB.js.map → chunk-Y6VSFX2A.js.map} +1 -1
  98. package/dist/{chunk-ISA7R7PK.js → chunk-YODP3STD.js} +90 -40
  99. package/dist/chunk-YODP3STD.js.map +1 -0
  100. package/dist/{chunk-WSTY3AWY.js → chunk-ZWFLEMI4.js} +4 -4
  101. package/dist/{chunk-WSTY3AWY.js.map → chunk-ZWFLEMI4.js.map} +1 -1
  102. package/dist/cli/index.js +347 -127
  103. package/dist/cli/index.js.map +1 -1
  104. package/dist/cli/src/asset-feeds.d.ts +2 -2
  105. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  106. package/dist/cli/src/commands/catalog.d.ts +51 -2
  107. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  108. package/dist/cli/src/commands/connector.d.ts +1 -1
  109. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  110. package/dist/cli/src/commands/logs.d.ts.map +1 -1
  111. package/dist/cli/src/commands/manage.d.ts +30 -3
  112. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  113. package/dist/cli/src/commands/project.d.ts +5 -2
  114. package/dist/cli/src/commands/project.d.ts.map +1 -1
  115. package/dist/connectors/config.js +7 -6
  116. package/dist/connectors/index.js +8 -7
  117. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  118. package/dist/connectors/src/watcher.d.ts.map +1 -1
  119. package/dist/connectors/src/worktree.d.ts +20 -2
  120. package/dist/connectors/src/worktree.d.ts.map +1 -1
  121. package/dist/core/index.js +6 -5
  122. package/dist/core/logging.js +2 -1
  123. package/dist/core/manifest.js +2 -1
  124. package/dist/core/runtime-assets.js +4 -3
  125. package/dist/core/src/fs-deadline.d.ts +84 -0
  126. package/dist/core/src/fs-deadline.d.ts.map +1 -0
  127. package/dist/core/src/index.d.ts +4 -3
  128. package/dist/core/src/index.d.ts.map +1 -1
  129. package/dist/core/src/manifest.d.ts +142 -18
  130. package/dist/core/src/manifest.d.ts.map +1 -1
  131. package/dist/core/src/repo-manager.d.ts +2 -2
  132. package/dist/core/src/repo-manager.d.ts.map +1 -1
  133. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  134. package/dist/core/src/subprocess.d.ts +33 -1
  135. package/dist/core/src/subprocess.d.ts.map +1 -1
  136. package/dist/core/src/walker.d.ts +1 -1
  137. package/dist/core/src/walker.d.ts.map +1 -1
  138. package/dist/core/src/workspace-config.d.ts +19 -2
  139. package/dist/core/src/workspace-config.d.ts.map +1 -1
  140. package/dist/core/workspace-config.js +3 -2
  141. package/dist/deploy/index.js +12 -7
  142. package/dist/deploy/index.js.map +1 -1
  143. package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -1
  144. package/dist/discovery/index.js +3 -2
  145. package/dist/{ensure-sources-RSTZONIE.js → ensure-sources-AVCVX7CV.js} +13 -12
  146. package/dist/ensure-sources-AVCVX7CV.js.map +1 -0
  147. package/dist/factory-assets/connectors/box.js +8 -7
  148. package/dist/factory-assets/connectors/deploy/CONNECTOR.md +19 -0
  149. package/dist/factory-assets/connectors/deploy/adapter.d.ts.map +1 -1
  150. package/dist/factory-assets/connectors/deploy.js +8 -7
  151. package/dist/factory-assets/connectors/devserver/adapter.d.ts.map +1 -1
  152. package/dist/factory-assets/connectors/devserver.js +8 -7
  153. package/dist/factory-assets/connectors/flow/adapter.js +8 -7
  154. package/dist/factory-assets/connectors/flow/engine.js +6 -5
  155. package/dist/factory-assets/connectors/flow/run-flow.js +10 -9
  156. package/dist/factory-assets/connectors/flow.js +8 -7
  157. package/dist/factory-assets/connectors/git/driver.d.ts +12 -1
  158. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
  159. package/dist/factory-assets/connectors/git.js +8 -7
  160. package/dist/factory-assets/connectors/gmail.js +8 -7
  161. package/dist/factory-assets/connectors/googledrive.js +8 -7
  162. package/dist/factory-assets/connectors/local/driver.d.ts +25 -1
  163. package/dist/factory-assets/connectors/local/driver.d.ts.map +1 -1
  164. package/dist/factory-assets/connectors/local.js +8 -7
  165. package/dist/factory-assets/connectors/mattermost.js +8 -7
  166. package/dist/factory-assets/connectors/memory.js +8 -7
  167. package/dist/factory-assets/connectors/minio.js +8 -7
  168. package/dist/factory-assets/connectors/postgres.js +8 -7
  169. package/dist/factory-assets/connectors/s3/driver.d.ts +15 -0
  170. package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -1
  171. package/dist/factory-assets/connectors/s3.js +8 -7
  172. package/dist/factory-assets/connectors/sharepoint.js +8 -7
  173. package/dist/factory-assets/connectors/sqlite/adapter.d.ts +8 -1
  174. package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -1
  175. package/dist/factory-assets/connectors/sqlite.js +8 -7
  176. package/dist/factory-assets/connectors/static-server/adapter.d.ts.map +1 -1
  177. package/dist/factory-assets/connectors/static-server.js +8 -7
  178. package/dist/factory-assets/connectors/tunnel.js +8 -7
  179. package/dist/factory-assets/connectors/webdav.js +8 -7
  180. package/dist/factory-assets/connectors/xstate/adapter.d.ts +6 -0
  181. package/dist/factory-assets/connectors/xstate/adapter.d.ts.map +1 -1
  182. package/dist/factory-assets/connectors/xstate-store.js +8 -7
  183. package/dist/factory-assets/connectors/xstate.js +8 -7
  184. package/dist/flows-CXVFGR27.js +20 -0
  185. package/dist/{flows-FHWBCLXF.js.map → flows-CXVFGR27.js.map} +1 -1
  186. package/dist/{helpers-GUUWPPAX.js → helpers-M5SXB4LL.js} +13 -12
  187. package/dist/{helpers-GUUWPPAX.js.map → helpers-M5SXB4LL.js.map} +1 -1
  188. package/dist/library/index.js +8 -7
  189. package/dist/library/install.js +6 -5
  190. package/dist/{library-publish-UKKSJP7V.js → library-publish-HVIIQMI6.js} +16 -15
  191. package/dist/library-publish-HVIIQMI6.js.map +1 -0
  192. package/dist/{open-library-VALRYGFV.js → open-library-EJQISBWV.js} +14 -13
  193. package/dist/{open-library-VALRYGFV.js.map → open-library-EJQISBWV.js.map} +1 -1
  194. package/dist/{paths-5QJJBAND.js → paths-2HMHL25W.js} +11 -10
  195. package/dist/{paths-5QJJBAND.js.map → paths-2HMHL25W.js.map} +1 -1
  196. package/dist/plugin-registry/src/deploy-helpers.d.ts +1 -1
  197. package/dist/{plugin-store-ZBJZ7F6D.js → plugin-store-TLBQ5XRS.js} +8 -7
  198. package/dist/plugin-store-TLBQ5XRS.js.map +1 -0
  199. package/dist/{project-IRUJLIVX.js → project-M2COJFPZ.js} +14 -13
  200. package/dist/{project-IRUJLIVX.js.map → project-M2COJFPZ.js.map} +1 -1
  201. package/dist/resolver/index.js +13 -1
  202. package/dist/resolver/src/types.d.ts +7 -0
  203. package/dist/resolver/src/types.d.ts.map +1 -1
  204. package/dist/resolver/src/validator.d.ts +8 -1
  205. package/dist/resolver/src/validator.d.ts.map +1 -1
  206. package/dist/runner/index.js +13 -12
  207. package/dist/runner/src/external-mcp.d.ts +1 -1
  208. package/dist/runner/src/external-mcp.d.ts.map +1 -1
  209. package/dist/runner/src/mcp-prompt.d.ts +7 -3
  210. package/dist/runner/src/mcp-prompt.d.ts.map +1 -1
  211. package/dist/runner/src/mcp-runtime-handlers.d.ts +12 -0
  212. package/dist/runner/src/mcp-runtime-handlers.d.ts.map +1 -1
  213. package/dist/runner/src/mixin-resolver.d.ts.map +1 -1
  214. package/dist/runner/src/recipe-resolver.d.ts +20 -6
  215. package/dist/runner/src/recipe-resolver.d.ts.map +1 -1
  216. package/dist/runner/src/resource-handler.d.ts +43 -0
  217. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  218. package/dist/runner/src/resources.d.ts +12 -5
  219. package/dist/runner/src/resources.d.ts.map +1 -1
  220. package/dist/runner/src/serve.d.ts +31 -5
  221. package/dist/runner/src/serve.d.ts.map +1 -1
  222. package/dist/runner/src/session-builder.d.ts +9 -0
  223. package/dist/runner/src/session-builder.d.ts.map +1 -1
  224. package/dist/runner/src/session-capability-wiring.d.ts +5 -0
  225. package/dist/runner/src/session-capability-wiring.d.ts.map +1 -1
  226. package/dist/runner/src/workspace-migration.d.ts +37 -3
  227. package/dist/runner/src/workspace-migration.d.ts.map +1 -1
  228. package/dist/sdk/asset-manager.js +10 -9
  229. package/dist/sdk/bridge.js +4 -3
  230. package/dist/sdk/core.js +6 -5
  231. package/dist/sdk/flow.js +6 -5
  232. package/dist/sdk/index.js +13 -12
  233. package/dist/sdk/index.js.map +1 -1
  234. package/dist/sdk/resolver.js +13 -1
  235. package/dist/sdk/runner.js +13 -12
  236. package/dist/sdk/session.js +1 -1
  237. package/dist/sdk/store.js +1 -1
  238. package/dist/session/index.js +1 -1
  239. package/dist/session/src/dispatcher.d.ts.map +1 -1
  240. package/dist/{setup-WJPNUE32.js → setup-GWXEG3G2.js} +10 -9
  241. package/dist/setup-GWXEG3G2.js.map +1 -0
  242. package/dist/skills-YTMGG23D.js +20 -0
  243. package/dist/{skills-BMI6H7HI.js.map → skills-YTMGG23D.js.map} +1 -1
  244. package/dist/{source-5KDURFBS.js → source-WMXH2OBW.js} +15 -14
  245. package/dist/{source-5KDURFBS.js.map → source-WMXH2OBW.js.map} +1 -1
  246. package/dist/{source-manifest-publish-DPQI44D3.js → source-manifest-publish-MTHUGBAY.js} +17 -16
  247. package/dist/source-manifest-publish-MTHUGBAY.js.map +1 -0
  248. package/dist/store/index.js +1 -1
  249. package/dist/store/src/store.d.ts +9 -0
  250. package/dist/store/src/store.d.ts.map +1 -1
  251. package/dist/tui/index.js +13 -12
  252. package/dist/tui/index.js.map +1 -1
  253. package/dist/validator-RN64BKFW.js +5 -0
  254. package/dist/{validator-VF5M764T.js.map → validator-RN64BKFW.js.map} +1 -1
  255. package/dist/workspace-plugin/adapters/mcp.js +18 -5
  256. package/dist/workspace-plugin/adapters/mcp.js.map +1 -1
  257. package/dist/workspace-plugin/adapters/omp.js +10 -10
  258. package/dist/workspace-plugin/index.js +3 -2
  259. package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
  260. package/dist/workspace-plugin/src/utils/ai-assets.d.ts +11 -6
  261. package/dist/workspace-plugin/src/utils/ai-assets.d.ts.map +1 -1
  262. package/package.json +1 -1
  263. package/dist/asset-feeds-WIBEP37F.js.map +0 -1
  264. package/dist/chunk-2BQBWWFX.js.map +0 -1
  265. package/dist/chunk-2IJFUAZB.js.map +0 -1
  266. package/dist/chunk-5NZ56R63.js.map +0 -1
  267. package/dist/chunk-6POODADP.js.map +0 -1
  268. package/dist/chunk-7J7LQP6T.js.map +0 -1
  269. package/dist/chunk-A22KZ7GZ.js.map +0 -1
  270. package/dist/chunk-ACXLKNIM.js.map +0 -1
  271. package/dist/chunk-BG4XVMG2.js.map +0 -1
  272. package/dist/chunk-BI2NKPA4.js.map +0 -1
  273. package/dist/chunk-BQCGFPHW.js +0 -345
  274. package/dist/chunk-BQCGFPHW.js.map +0 -1
  275. package/dist/chunk-FIUGSIKC.js.map +0 -1
  276. package/dist/chunk-GXC3TYMQ.js.map +0 -1
  277. package/dist/chunk-ISA7R7PK.js.map +0 -1
  278. package/dist/chunk-JB35MVBN.js.map +0 -1
  279. package/dist/chunk-KY5NY7LB.js.map +0 -1
  280. package/dist/chunk-LV2HPH3C.js +0 -73
  281. package/dist/chunk-LV2HPH3C.js.map +0 -1
  282. package/dist/chunk-XCBG2KDC.js +0 -23
  283. package/dist/chunk-XCBG2KDC.js.map +0 -1
  284. package/dist/ensure-sources-RSTZONIE.js.map +0 -1
  285. package/dist/flows-FHWBCLXF.js +0 -7
  286. package/dist/library-publish-UKKSJP7V.js.map +0 -1
  287. package/dist/plugin-store-ZBJZ7F6D.js.map +0 -1
  288. package/dist/setup-WJPNUE32.js.map +0 -1
  289. package/dist/skills-BMI6H7HI.js +0 -7
  290. package/dist/source-manifest-publish-DPQI44D3.js.map +0 -1
  291. package/dist/validator-VF5M764T.js +0 -5
@@ -83,6 +83,64 @@ export interface DeployResult {
83
83
  /** Error messages for entries that could not be deployed. */
84
84
  errors: string[];
85
85
  }
86
+ /**
87
+ * Env override for the workspace-mount path(s), comma-separated.
88
+ *
89
+ * Set it when the runner binds the mount somewhere other than
90
+ * {@link DEFAULT_WORKSPACE_MOUNT_DIR}; set it to the empty string to disable
91
+ * the guard entirely (single-machine dev, where nothing is a network mount).
92
+ */
93
+ export declare const WORKSPACE_MOUNT_ENV_VAR = "SKAILE_WORKSPACE_MOUNT_DIR";
94
+ /**
95
+ * Resolve the directories treated as network mounts.
96
+ *
97
+ * Read per call rather than cached: the runner mutates `process.env` while
98
+ * wiring a session, so a module-load snapshot would pin a pre-configuration
99
+ * value.
100
+ *
101
+ * @returns Absolute mount paths; empty when the guard is disabled.
102
+ * @docLink packages/asset-manager/concepts#catalog-deployer
103
+ */
104
+ export declare function workspaceMountDirs(): string[];
105
+ /**
106
+ * Is `candidate` at, or inside, one of the known workspace mount paths?
107
+ *
108
+ * Pure path arithmetic — deliberately no filesystem access, because the whole
109
+ * point is to decide *before* touching a path that might be unresponsive.
110
+ *
111
+ * @param candidate - Path to test.
112
+ * @param mountDirs - Mount roots; defaults to {@link workspaceMountDirs}.
113
+ * @docLink packages/asset-manager/concepts#catalog-deployer
114
+ */
115
+ export declare function isUnderWorkspaceMount(candidate: string, mountDirs?: string[]): boolean;
116
+ /**
117
+ * Walk upward from `startDir` looking for an `ai-assets/` directory.
118
+ *
119
+ * Two properties matter beyond "find the folder":
120
+ *
121
+ * 1. **Never synchronous.** The walk probes up to six directories; any one of
122
+ * them can be on a FUSE mount, and the former `existsSync` chain blocked the
123
+ * event loop on the first unresponsive probe. Each probe is now awaited and
124
+ * deadline-bounded, so a wedged mount costs one skipped candidate.
125
+ * 2. **Never resolves onto a mount.** A hit under the workspace mount is
126
+ * skipped with a warning rather than returned: accepting it would wire every
127
+ * later skill deploy — a recursive copy — to a remote filesystem. The walk
128
+ * continues upward, so a legitimate `ai-assets/` in a parent still wins.
129
+ *
130
+ * Only a **directory** counts. An `ai-assets` file would otherwise be returned
131
+ * as a root and every later `join(root, source_path)` would fail with ENOTDIR.
132
+ *
133
+ * @param startDir - Directory to start from (typically the project dir).
134
+ * @param opts - `levels` caps the upward walk; `mountDirs` overrides the mount
135
+ * roots (defaults to {@link workspaceMountDirs}).
136
+ * @returns Absolute path to the `ai-assets/` directory, or `null` if none is
137
+ * reachable within `levels`.
138
+ * @docLink packages/asset-manager/concepts#catalog-deployer
139
+ */
140
+ export declare function findAiAssetsRoot(startDir: string, opts?: {
141
+ levels?: number;
142
+ mountDirs?: string[];
143
+ }): Promise<string | null>;
86
144
  /**
87
145
  * Deploy a single catalog entry to the session skills directory.
88
146
  *
@@ -92,24 +150,31 @@ export interface DeployResult {
92
150
  *
93
151
  * Only `skill` entries are deployable; other kinds return an error.
94
152
  *
153
+ * **Async by necessity.** This runs from the `session_init` command handler
154
+ * with the WebSocket live, and both `assetsRoot` and `skillsDir` can sit on a
155
+ * network mount. The former `cpSync`/`rmSync` pair parked the event loop for
156
+ * the whole copy; every call is now awaited and deadline-bounded, so an
157
+ * unresponsive mount fails one deployment instead of the session.
158
+ *
95
159
  * @param entry - Compiled catalog entry to deploy.
96
160
  * @param options - Deployment target and optional context.
97
161
  * @returns `{ success: true }` on success, `{ success: false, error }` on failure.
98
162
  * @docLink packages/asset-manager/concepts#catalog-deployer
99
163
  */
100
- export declare function deployCatalogEntry(entry: CatalogEntryCompiled, options: DeployFromCatalogOptions): {
164
+ export declare function deployCatalogEntry(entry: CatalogEntryCompiled, options: DeployFromCatalogOptions): Promise<{
101
165
  success: boolean;
102
166
  error?: string;
103
- };
167
+ }>;
104
168
  /**
105
169
  * Remove a deployed skill directory from the session skills directory.
106
170
  *
107
171
  * @param name - Skill name (directory basename under `skillsDir`).
108
172
  * @param skillsDir - Absolute path to the session skills directory.
109
- * @returns `true` if the skill was found and removed; `false` if it was not deployed.
173
+ * @returns `true` if the skill was found and removed; `false` if it was not
174
+ * deployed, or if the directory could not be reached within the deadline.
110
175
  * @docLink packages/asset-manager/concepts#catalog-deployer
111
176
  */
112
- export declare function undeployCatalogEntry(name: string, skillsDir: string): boolean;
177
+ export declare function undeployCatalogEntry(name: string, skillsDir: string): Promise<boolean>;
113
178
  /**
114
179
  * Deploy multiple catalog entries in a single batch operation.
115
180
  *
@@ -122,7 +187,7 @@ export declare function undeployCatalogEntry(name: string, skillsDir: string): b
122
187
  * @returns Aggregated {@link DeployResult} with deployed, skipped, and error lists.
123
188
  * @docLink packages/asset-manager/concepts#catalog-deployer
124
189
  */
125
- export declare function deployAll(entries: CatalogEntryCompiled[], options: DeployFromCatalogOptions): DeployResult;
190
+ export declare function deployAll(entries: CatalogEntryCompiled[], options: DeployFromCatalogOptions): Promise<DeployResult>;
126
191
  /**
127
192
  * Resolve a flow's skill dependencies from the full catalog entry list.
128
193
  *
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-deployer.d.ts","sourceRoot":"","sources":["../../../asset-manager/src/catalog-deployer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,uFAAuF;IACvF,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wCAAwC;IACxC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,wBAAwB,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA8BtC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,oBAAoB,EAAE,EAC/B,OAAO,EAAE,wBAAwB,GAChC,YAAY,CAkBd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,oBAAoB,EAC1B,UAAU,EAAE,oBAAoB,EAAE,GACjC;IAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuB3F"}
1
+ {"version":3,"file":"catalog-deployer.d.ts","sourceRoot":"","sources":["../../../asset-manager/src/catalog-deployer.ts"],"names":[],"mappings":"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"}
@@ -20,10 +20,12 @@ import type { HistoryEntry } from "./history.js";
20
20
  */
21
21
  export declare function normalizeRepoUrl(url: string): string;
22
22
  /**
23
- * Asset kinds that are never deployed to a driver target as files — bundles
24
- * resolve to their members, mcp-servers are wired at session startup, and the
25
- * mixin kinds are resolved at session creation. Store bytes are not staged for
26
- * these (mirrors the skip set in `deployAll`).
23
+ * Asset kinds that are never **copied into a driver target dir** as files —
24
+ * bundles resolve to their members, mcp-servers are wired at session startup,
25
+ * and the mixin kinds are resolved at session creation. Mirrors the skip set in
26
+ * `deployAll`, and says nothing about whether store bytes are fetched:
27
+ * `mcp-server` IS staged into the store cache (see `stageStoreAssets`), because
28
+ * its wiring reads a real `MCP.md` off disk.
27
29
  */
28
30
  export declare const NON_DEPLOYABLE_KINDS: Set<string>;
29
31
  /**
@@ -126,6 +128,8 @@ export type { HistoryEntry } from "./history.js";
126
128
  export { appendHistory, clearHistory, getRecentHistory, loadHistory, } from "./history.js";
127
129
  export type { DeployOptions } from "./installer.js";
128
130
  export { createScaffold, deployAll, removeAsset } from "./installer.js";
131
+ export type { RenderMcpConfigOptions, RenderMcpConfigResult, SkippedMcpServer, } from "./mcp-config.js";
132
+ export { renderMcpServerConfig } from "./mcp-config.js";
129
133
  export type { Log } from "./renderers.js";
130
134
  export { renderAgentToFramework } from "./renderers.js";
131
135
  /**
@@ -406,6 +410,17 @@ export declare class AssetManager {
406
410
  /** Deploy options for one backend. In global mode, `driverTarget` is the
407
411
  * fan-out target (not the constructor's `driverTarget`, which is project-only). */
408
412
  private deployOptsFor;
413
+ /**
414
+ * Render the project's declared MCP servers into the driver target's own
415
+ * native MCP config (`<project>/.mcp.json` for `claude-code`), so the coding
416
+ * agent sees the same servers skaile's agent loop wires up.
417
+ *
418
+ * Project scope only: a `--global` install has no project-scope config to
419
+ * write, and the coding agent's user scope is a large user-state file this
420
+ * must not touch. Never fails an install — a render error is warned and
421
+ * swallowed.
422
+ */
423
+ private renderDriverMcpConfig;
409
424
  private loadConfig;
410
425
  /** Build provenance-index clones from the resolved source declarations. */
411
426
  private buildClones;
@@ -462,9 +477,10 @@ export declare class AssetManager {
462
477
  */
463
478
  private buildCatalogEntries;
464
479
  /**
465
- * Fetch + SHA-verify the bytes of every store-resolved deployable candidate
466
- * into `.skaile/cache/store/`, reusing the same verified-fetch path the
467
- * pointer-only `library.install` uses (`installFromManifest` flat mode).
480
+ * Fetch + SHA-verify the bytes of every store-resolved candidate that needs
481
+ * bytes on disk into `.skaile/cache/store/`, reusing the same verified-fetch
482
+ * path the pointer-only `library.install` uses (`installFromManifest` flat
483
+ * mode). That is the deployable kinds plus `mcp-server` — see the skip guard.
468
484
  *
469
485
  * @returns Map of candidate key → staged primary-manifest path.
470
486
  */
@@ -646,6 +662,12 @@ export declare class AssetManager {
646
662
  /**
647
663
  * Remove a deployed asset and unregister it from `skaile.yaml`.
648
664
  *
665
+ * Deliberately does NOT re-render the driver target's MCP config: the render
666
+ * step is async (the declaration resolver is), and making this synchronous
667
+ * method async would break every external caller. A removed MCP server's
668
+ * generated entry is dropped by the next {@link AssetManager.install} — see
669
+ * {@link renderMcpServerConfig}.
670
+ *
649
671
  * @param ref - Asset ref in `kind:name` form (e.g. `skill:my-skill`).
650
672
  * @returns `true` if the asset was found and removed, `false` if it was not deployed.
651
673
  */
@@ -665,7 +687,7 @@ export declare class AssetManager {
665
687
  * Omit to return all kinds.
666
688
  * @returns Array of matching {@link CatalogEntry} objects from all accessible repositories.
667
689
  */
668
- search(query?: string, kind?: string): CatalogEntry[];
690
+ search(query?: string, kind?: string): Promise<CatalogEntry[]>;
669
691
  /**
670
692
  * On-disk root + config slug for every declared (and the implicit factory)
671
693
  * source that has a local clone. Companion to {@link search}: callers that
@@ -687,7 +709,7 @@ export declare class AssetManager {
687
709
  * @param ref - Asset ref in `kind:name`, `kind:@publisher/name`, or `repo/kind:name` form.
688
710
  * @returns The matching {@link CatalogEntry}, or `null` when not found.
689
711
  */
690
- info(ref: string): CatalogEntry | null;
712
+ info(ref: string): Promise<CatalogEntry | null>;
691
713
  /**
692
714
  * List all assets currently deployed in the workspace (or global cache).
693
715
  *
@@ -704,8 +726,10 @@ export declare class AssetManager {
704
726
  *
705
727
  * - `declared` — in `skaile.yaml`, not yet resolved into the lock.
706
728
  * - `installed` — declared + locked, and (for deployable kinds) materialized on
707
- * disk. Non-deployable kinds ({@link NON_DEPLOYABLE_KINDS}) count as installed
708
- * once locked they are wired at session start, never written to the target dir.
729
+ * disk. An `mcp-server` is instead checked against the declarations the runner
730
+ * would actually wire (store-staged or materialized `MCP.md`); the remaining
731
+ * non-deployable kinds ({@link NON_DEPLOYABLE_KINDS}) count as installed once
732
+ * locked — they are resolved at session start with no on-disk footprint here.
709
733
  * - `drift` — declared + locked but the deployed files are missing on disk.
710
734
  * - `invalid` — the `dependencies:` entry isn't a parseable canonical ref. Only
711
735
  * surfaced in the unfiltered listing (a `kind` filter can't classify it).
@@ -718,7 +742,7 @@ export declare class AssetManager {
718
742
  * @throws {MissingManifestError} when the project has no `skaile.yaml`.
719
743
  * @throws {Error} with a `migrate-skaile-manifest` hint on legacy `repositories:` / `ai_resources:` keys.
720
744
  */
721
- listDeclared(kind?: string): DeclaredAsset[];
745
+ listDeclared(kind?: string): Promise<DeclaredAsset[]>;
722
746
  /**
723
747
  * Per-backend reconciliation of the **global** declared deps
724
748
  * (`~/.skaile/skaile.yaml`) against each global backend's deploy dir. The
@@ -787,7 +811,7 @@ export declare class AssetManager {
787
811
  * @returns Unified diff string, or `null` when there are no differences or the
788
812
  * asset is not deployed/resolvable.
789
813
  */
790
- diff(ref: string): string | null;
814
+ diff(ref: string): Promise<string | null>;
791
815
  /**
792
816
  * Resolve all declared dependencies and write (or overwrite) `skaile.lock.yaml`.
793
817
  *
@@ -807,7 +831,7 @@ export declare class AssetManager {
807
831
  * @returns Absolute path to the patch working directory.
808
832
  * @throws When the asset cannot be found in the catalog.
809
833
  */
810
- patch(ref: string): string;
834
+ patch(ref: string): Promise<string>;
811
835
  /**
812
836
  * Generate a `.patch` file from changes made in the patch working directory.
813
837
  *
@@ -818,7 +842,7 @@ export declare class AssetManager {
818
842
  * @returns Absolute path to the generated `.patch` file.
819
843
  * @throws When the patch working directory does not exist or no differences are found.
820
844
  */
821
- patchCommit(ref: string): string;
845
+ patchCommit(ref: string): Promise<string>;
822
846
  /**
823
847
  * Apply the committed patch file to the repository clone and open a contribution branch.
824
848
  *
@@ -828,7 +852,7 @@ export declare class AssetManager {
828
852
  * @param ref - Asset ref in `kind:name` form.
829
853
  * @throws When the asset is not found, has no repository, or the patch file is missing.
830
854
  */
831
- patchSubmit(ref: string): void;
855
+ patchSubmit(ref: string): Promise<void>;
832
856
  /**
833
857
  * Delete the patch working directory and patch file for an asset.
834
858
  *
@@ -844,7 +868,7 @@ export declare class AssetManager {
844
868
  *
845
869
  * @returns Array of {@link DepIssue} objects. An empty array means the workspace is healthy.
846
870
  */
847
- doctor(): DepIssue[];
871
+ doctor(): Promise<DepIssue[]>;
848
872
  /**
849
873
  * Create a minimal asset scaffold directory (delegates to {@link createScaffold}).
850
874
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../asset-manager/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../asset-manager/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Render the workspace's declared MCP servers into the **coding agent's own**
3
+ * native MCP config, so a developer who runs `skaile install` in a project and
4
+ * then opens their coding agent in that folder gets the same MCP servers
5
+ * skaile's own agent loop wires up.
6
+ *
7
+ * This is the sibling of skill deployment (`.claude/skills/`): skills already
8
+ * render into the driver target's native tree, MCP servers now do too.
9
+ *
10
+ * Declarations come from the single resolver `loadMcpServerDeclarations()` in
11
+ * `@skaile/workspaces/core` — the same one the runner uses. There is no second
12
+ * resolver here.
13
+ */
14
+ import type { DriverTarget } from "@skaile/workspaces/core";
15
+ /** A skipped declaration and the human-readable reason it was not rendered. */
16
+ export interface SkippedMcpServer {
17
+ id: string;
18
+ reason: string;
19
+ }
20
+ /** Outcome of one {@link renderMcpServerConfig} pass. */
21
+ export interface RenderMcpConfigResult {
22
+ /** Absolute path to the config file, when the target is supported. */
23
+ path?: string;
24
+ /** Whether the config file was actually written. */
25
+ written: boolean;
26
+ /** IDs skaile wrote (and now owns) in this pass. */
27
+ servers: string[];
28
+ /** Previously-owned IDs removed in this pass. */
29
+ removed: string[];
30
+ /** Declarations deliberately not rendered, with reasons. */
31
+ skipped: SkippedMcpServer[];
32
+ }
33
+ /** Options for {@link renderMcpServerConfig}. */
34
+ export interface RenderMcpConfigOptions {
35
+ /** Warning sink. Defaults to `console.warn` prefixed with `skaile:`. */
36
+ warn?: (message: string) => void;
37
+ }
38
+ /**
39
+ * Render every MCP server declared for `projectDir` into `driverTarget`'s
40
+ * native project-scope MCP config.
41
+ *
42
+ * Merge rules, in short:
43
+ * - Entries skaile previously wrote (tracked in `.skaile/mcp-managed.json`) are
44
+ * refreshed, or deleted once their declaration disappears.
45
+ * - A hand-written entry with the same id is left untouched and warned about.
46
+ * - Every other key of the config file survives verbatim.
47
+ * - A project with no renderable servers and no prior state writes nothing.
48
+ *
49
+ * Unsupported driver targets (`codex`, `omp`) are a silent no-op.
50
+ *
51
+ * @param projectDir - Workspace root where `skaile.yaml` lives.
52
+ * @param driverTarget - Coding agent whose native MCP config to write.
53
+ * @param opts - Optional warning sink.
54
+ * @returns What was written, removed and skipped.
55
+ * @docLink packages/asset-manager/concepts#coding-agent-mcp-config
56
+ */
57
+ export declare function renderMcpServerConfig(projectDir: string, driverTarget: DriverTarget, opts?: RenderMcpConfigOptions): Promise<RenderMcpConfigResult>;
58
+ //# sourceMappingURL=mcp-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../asset-manager/src/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,yBAAyB,CAAC;AAuDlF,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4DAA4D;IAC5D,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAkOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA6DhC"}
@@ -2,16 +2,29 @@ import { SUPPORTED_CLOUDS, buildClaudeCloudEnv } from '../../chunk-ISQWMBKD.js';
2
2
  import { dispatchCapability } from '../../chunk-RRVQAE5D.js';
3
3
  import { fetchProviderModels } from '../../chunk-BMQKMOQY.js';
4
4
  import { AuthError, classifyClaudeSdkError, reclassifyAuthAsAccountUnavailable, AccountUnavailableError } from '../../chunk-GAH4YRCI.js';
5
- import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-ACWCVB5Q.js';
5
+ import { BUILTIN_DRIVER_CATALOG, AgentDriver, getBridgeLogger } from '../../chunk-WVPL4OGD.js';
6
6
  import '../../chunk-6E6PKKAD.js';
7
- import '../../chunk-JB35MVBN.js';
7
+ import '../../chunk-RTLQAZAE.js';
8
+ import '../../chunk-K5GBV4SA.js';
9
+ import '../../chunk-ZAP2BDHG.js';
10
+ import '../../chunk-5BGEYZ7I.js';
11
+ import '../../chunk-YODP3STD.js';
12
+ import '../../chunk-P4VHQA4N.js';
13
+ import { fsDeadlineMs, withFsDeadline, tryWithFsDeadline } from '../../chunk-DYMWJAL4.js';
14
+ import '../../chunk-GEEW6SY2.js';
15
+ import '../../chunk-F3HNW354.js';
16
+ import '../../chunk-MENCWIHW.js';
17
+ import '../../chunk-U5POE4BA.js';
18
+ import '../../chunk-7GOCNYUV.js';
8
19
  import '../../chunk-NSBPE2FW.js';
9
20
  import { spawnSync } from 'child_process';
10
- import { existsSync, readFileSync, readdirSync, writeFileSync, renameSync } from 'fs';
21
+ import { existsSync, createReadStream, createWriteStream } from 'fs';
11
22
  import { createRequire } from 'module';
12
23
  import { homedir } from 'os';
13
24
  import { join } from 'path';
14
25
  import * as zNS from 'zod';
26
+ import { readdir, stat, rename, unlink } from 'fs/promises';
27
+ import { pipeline } from 'stream/promises';
15
28
 
16
29
  // bridge/src/drivers/sanitize-assistant-text.ts
17
30
  var NS = "(?:[a-z][a-z0-9]*:)?";
@@ -168,27 +181,65 @@ function scrubBlock(block, counters) {
168
181
  }
169
182
  return block;
170
183
  }
171
- function locateTranscript(configDir, sessionId) {
184
+ async function locateTranscript(configDir, sessionId, timeoutMs) {
172
185
  const projectsDir = join(configDir, "projects");
173
- if (!existsSync(projectsDir)) {
174
- return null;
175
- }
176
- let entries;
177
- try {
178
- entries = readdirSync(projectsDir);
179
- } catch {
180
- return null;
181
- }
186
+ const entries = await tryWithFsDeadline(
187
+ `readdir ${projectsDir}`,
188
+ () => readdir(projectsDir),
189
+ null,
190
+ timeoutMs
191
+ );
192
+ if (!entries) return null;
182
193
  for (const entry of entries) {
183
194
  const candidate = join(projectsDir, entry, `${sessionId}.jsonl`);
184
- if (existsSync(candidate)) {
185
- return candidate;
186
- }
195
+ const found = await tryWithFsDeadline(
196
+ `stat ${candidate}`,
197
+ async () => (await stat(candidate)).isFile(),
198
+ false,
199
+ timeoutMs
200
+ );
201
+ if (found) return candidate;
187
202
  }
188
203
  return null;
189
204
  }
190
- function scrubPoisonedTranscript(opts) {
205
+ async function* streamLines(filePath) {
206
+ const stream = createReadStream(filePath, { encoding: "utf8" });
207
+ let pending = "";
208
+ try {
209
+ for await (const chunk of stream) {
210
+ pending += chunk;
211
+ let idx = pending.indexOf("\n");
212
+ while (idx !== -1) {
213
+ yield pending.slice(0, idx);
214
+ pending = pending.slice(idx + 1);
215
+ idx = pending.indexOf("\n");
216
+ }
217
+ }
218
+ yield pending;
219
+ } finally {
220
+ stream.destroy();
221
+ }
222
+ }
223
+ function repairLine(line, counters) {
224
+ if (line.trim() === "") return line;
225
+ const eol = line.endsWith("\r") ? "\r" : "";
226
+ const body = eol === "" ? line : line.slice(0, -1);
227
+ let entry;
228
+ try {
229
+ entry = JSON.parse(body);
230
+ } catch {
231
+ return line;
232
+ }
233
+ const content = entry.message?.content;
234
+ if (!Array.isArray(content)) return line;
235
+ const before = totalChanges(counters);
236
+ const scrubbed = content.map((block) => scrubBlock(block, counters));
237
+ if (totalChanges(counters) === before) return line;
238
+ return `${JSON.stringify({ ...entry, message: { ...entry.message, content: scrubbed } })}${eol}`;
239
+ }
240
+ async function scrubPoisonedTranscript(opts) {
191
241
  const { configDir, sessionId, log } = opts;
242
+ const timeoutMs = fsDeadlineMs();
192
243
  const result = {
193
244
  filePath: null,
194
245
  corrected: 0,
@@ -196,15 +247,21 @@ function scrubPoisonedTranscript(opts) {
196
247
  cacheStripped: 0,
197
248
  changed: false
198
249
  };
199
- const filePath = locateTranscript(configDir, sessionId);
250
+ const filePath = await locateTranscript(configDir, sessionId, timeoutMs);
200
251
  if (!filePath) {
201
252
  log?.warn("scrub-transcript: no transcript found", { configDir, sessionId });
202
253
  return result;
203
254
  }
204
255
  result.filePath = filePath;
205
- let raw;
256
+ const counters = { corrected: 0, stubbed: 0, cacheStripped: 0 };
206
257
  try {
207
- raw = readFileSync(filePath, "utf8");
258
+ await withFsDeadline(
259
+ `scan transcript ${filePath}`,
260
+ async () => {
261
+ for await (const line of streamLines(filePath)) repairLine(line, counters);
262
+ },
263
+ timeoutMs
264
+ );
208
265
  } catch (err) {
209
266
  log?.warn("scrub-transcript: failed to read transcript", {
210
267
  filePath,
@@ -212,46 +269,39 @@ function scrubPoisonedTranscript(opts) {
212
269
  });
213
270
  return result;
214
271
  }
215
- const counters = { corrected: 0, stubbed: 0, cacheStripped: 0 };
216
- const lines = raw.split("\n");
217
- let dirty = false;
218
- const repaired = lines.map((line) => {
219
- if (line.trim() === "") {
220
- return line;
221
- }
222
- let entry;
223
- try {
224
- entry = JSON.parse(line);
225
- } catch {
226
- return line;
227
- }
228
- const content = entry.message?.content;
229
- if (!Array.isArray(content)) {
230
- return line;
231
- }
232
- const before = totalChanges(counters);
233
- const scrubbed = content.map((block) => scrubBlock(block, counters));
234
- if (totalChanges(counters) === before) {
235
- return line;
236
- }
237
- dirty = true;
238
- return JSON.stringify({ ...entry, message: { ...entry.message, content: scrubbed } });
239
- });
240
272
  result.corrected = counters.corrected;
241
273
  result.stubbed = counters.stubbed;
242
274
  result.cacheStripped = counters.cacheStripped;
243
- if (!dirty) {
275
+ if (totalChanges(counters) === 0) {
244
276
  return result;
245
277
  }
246
278
  const tmpPath = `${filePath}.scrub-tmp`;
247
279
  try {
248
- writeFileSync(tmpPath, repaired.join("\n"), "utf8");
249
- renameSync(tmpPath, filePath);
280
+ await withFsDeadline(
281
+ `rewrite transcript ${filePath}`,
282
+ async () => {
283
+ const discard = { corrected: 0, stubbed: 0, cacheStripped: 0 };
284
+ await pipeline(
285
+ (async function* () {
286
+ let first = true;
287
+ for await (const line of streamLines(filePath)) {
288
+ yield first ? repairLine(line, discard) : `
289
+ ${repairLine(line, discard)}`;
290
+ first = false;
291
+ }
292
+ })(),
293
+ createWriteStream(tmpPath, { encoding: "utf8" })
294
+ );
295
+ await rename(tmpPath, filePath);
296
+ },
297
+ timeoutMs
298
+ );
250
299
  } catch (err) {
251
300
  log?.warn("scrub-transcript: failed to rewrite transcript", {
252
301
  filePath,
253
302
  error: err instanceof Error ? err.message : String(err)
254
303
  });
304
+ await tryWithFsDeadline(`unlink ${tmpPath}`, () => unlink(tmpPath), void 0, timeoutMs);
255
305
  return result;
256
306
  }
257
307
  result.changed = true;
@@ -515,7 +565,7 @@ var ClaudeSdkDriver = class extends AgentDriver {
515
565
  const isPoisonedHistory = !_budget.poison && /invalid_request_error/i.test(errMsg) && /media[_ ]?type|could not process image|image exceeds|cache_control/i.test(errMsg);
516
566
  const poisonSessionId = this.config.resumeSessionId || this.sessionId;
517
567
  if (isPoisonedHistory && poisonSessionId) {
518
- if (this.attemptPoisonScrubRetry(poisonSessionId)) {
568
+ if (await this.attemptPoisonScrubRetry(poisonSessionId)) {
519
569
  retrying = true;
520
570
  return this.runPrompt(message, { ..._budget, poison: true });
521
571
  }
@@ -638,8 +688,8 @@ var ClaudeSdkDriver = class extends AgentDriver {
638
688
  * to recurse — this only performs the scrub + state mutation, never control
639
689
  * flow.
640
690
  */
641
- attemptPoisonScrubRetry(poisonSessionId) {
642
- const scrub = scrubPoisonedTranscript({
691
+ async attemptPoisonScrubRetry(poisonSessionId) {
692
+ const scrub = await scrubPoisonedTranscript({
643
693
  configDir: this.resolveClaudeConfigDir(),
644
694
  sessionId: poisonSessionId,
645
695
  log: this.log
@@ -754,13 +804,13 @@ var ClaudeSdkDriver = class extends AgentDriver {
754
804
  * clean transcript is left byte-for-byte untouched. The reactive path remains
755
805
  * the safety net for poison introduced mid-turn within the current lifetime.
756
806
  */
757
- preventivelyScrubTranscript() {
807
+ async preventivelyScrubTranscript() {
758
808
  const sessionId = this.config.resumeSessionId || this.sessionId;
759
809
  if (!sessionId) {
760
810
  return;
761
811
  }
762
812
  try {
763
- const scrub = scrubPoisonedTranscript({
813
+ const scrub = await scrubPoisonedTranscript({
764
814
  configDir: this.resolveClaudeConfigDir(),
765
815
  sessionId,
766
816
  log: this.log
@@ -795,7 +845,7 @@ var ClaudeSdkDriver = class extends AgentDriver {
795
845
  }
796
846
  async startQuery(message) {
797
847
  this.abortController = new AbortController();
798
- this.preventivelyScrubTranscript();
848
+ await this.preventivelyScrubTranscript();
799
849
  const cloud = this.resolveCloud();
800
850
  const apiKey = cloud === "default" ? this.config.apiKeys?.anthropic || this.config.env?.ANTHROPIC_API_KEY || process.env.ANTHROPIC_API_KEY : void 0;
801
851
  this.usingOauthCredential = cloud === "default" && !apiKey;
@@ -896,7 +946,9 @@ var ClaudeSdkDriver = class extends AgentDriver {
896
946
  };
897
947
  if (apiKey) queryArgs.apiKey = apiKey;
898
948
  this.query = query(queryArgs);
899
- this.consumeMessages();
949
+ this.consumeMessages().catch((err) => {
950
+ this.log.error("message loop terminated unexpectedly", err);
951
+ });
900
952
  }
901
953
  getSlashCommands() {
902
954
  return this.cachedCommands;
@@ -1073,7 +1125,7 @@ var ClaudeSdkDriver = class extends AgentDriver {
1073
1125
  * If it ends unexpectedly, query is nulled so the next prompt() restarts.
1074
1126
  */
1075
1127
  async consumeMessages() {
1076
- this.fetchSlashCommands();
1128
+ void this.fetchSlashCommands();
1077
1129
  try {
1078
1130
  for await (const msg of this.query) {
1079
1131
  if (this.abortController?.signal.aborted) break;