@skaile/workspaces 4.35.0 → 4.37.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 (256) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/app-sdk/index.js +1 -1
  3. package/dist/{asset-feeds-NL3526ZV.js → asset-feeds-KTRFFJYM.js} +10 -10
  4. package/dist/{asset-feeds-NL3526ZV.js.map → asset-feeds-KTRFFJYM.js.map} +1 -1
  5. package/dist/asset-manager/catalog-deployer.js +5 -5
  6. package/dist/asset-manager/index.js +10 -10
  7. package/dist/asset-manager/installer.js +7 -7
  8. package/dist/asset-manager/renderers.js +2 -2
  9. package/dist/asset-manager/src/index.d.ts +18 -0
  10. package/dist/asset-manager/src/index.d.ts.map +1 -1
  11. package/dist/asset-manager/src/mcp-config.d.ts.map +1 -1
  12. package/dist/bridge/drivers/claude-sdk.js +14 -11
  13. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  14. package/dist/bridge/drivers/codex.js +7 -7
  15. package/dist/bridge/drivers/continue.js +8 -8
  16. package/dist/bridge/drivers/echo.js +3 -3
  17. package/dist/bridge/drivers/gemini.js +6 -6
  18. package/dist/bridge/drivers/goose.js +8 -8
  19. package/dist/bridge/drivers/omp.js +9 -6
  20. package/dist/bridge/drivers/omp.js.map +1 -1
  21. package/dist/bridge/drivers/opencode.js +8 -8
  22. package/dist/bridge/drivers/qwen.js +6 -6
  23. package/dist/bridge/index.js +11 -11
  24. package/dist/bridge/src/drivers/claude-sdk.d.ts +1 -0
  25. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  26. package/dist/bridge/src/drivers/omp.d.ts +3 -2
  27. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  28. package/dist/bridge/src/types.d.ts +8 -0
  29. package/dist/bridge/src/types.d.ts.map +1 -1
  30. package/dist/{chunk-TGE33MKN.js → chunk-2D3C4AJP.js} +4 -2
  31. package/dist/chunk-2D3C4AJP.js.map +1 -0
  32. package/dist/{chunk-ZWTCXL3H.js → chunk-2QYQOJ2F.js} +3 -3
  33. package/dist/{chunk-ZWTCXL3H.js.map → chunk-2QYQOJ2F.js.map} +1 -1
  34. package/dist/{chunk-T3YUSWVK.js → chunk-3SUWLY3H.js} +3 -3
  35. package/dist/{chunk-T3YUSWVK.js.map → chunk-3SUWLY3H.js.map} +1 -1
  36. package/dist/{chunk-Q6NDQ6BH.js → chunk-5JAO4MXA.js} +3 -3
  37. package/dist/{chunk-Q6NDQ6BH.js.map → chunk-5JAO4MXA.js.map} +1 -1
  38. package/dist/{chunk-NVQLE4MK.js → chunk-5SGS5SN2.js} +4 -4
  39. package/dist/{chunk-NVQLE4MK.js.map → chunk-5SGS5SN2.js.map} +1 -1
  40. package/dist/{chunk-RHESVS7V.js → chunk-7YCPY6NC.js} +6 -6
  41. package/dist/{chunk-RHESVS7V.js.map → chunk-7YCPY6NC.js.map} +1 -1
  42. package/dist/{chunk-N2UGG6WV.js → chunk-A5RRXBLI.js} +5 -5
  43. package/dist/{chunk-N2UGG6WV.js.map → chunk-A5RRXBLI.js.map} +1 -1
  44. package/dist/{chunk-DOF77WEV.js → chunk-BSIHJZKN.js} +6 -6
  45. package/dist/{chunk-DOF77WEV.js.map → chunk-BSIHJZKN.js.map} +1 -1
  46. package/dist/{chunk-VOXFI3XS.js → chunk-DFZDL62S.js} +4 -4
  47. package/dist/{chunk-VOXFI3XS.js.map → chunk-DFZDL62S.js.map} +1 -1
  48. package/dist/{chunk-XTOTP7MJ.js → chunk-ENXE4BKS.js} +2 -2
  49. package/dist/{chunk-XTOTP7MJ.js.map → chunk-ENXE4BKS.js.map} +1 -1
  50. package/dist/{chunk-3ELIPWCH.js → chunk-FJYOQMXT.js} +4 -4
  51. package/dist/{chunk-3ELIPWCH.js.map → chunk-FJYOQMXT.js.map} +1 -1
  52. package/dist/{chunk-7HJ6SFFF.js → chunk-FLGLODDF.js} +3 -3
  53. package/dist/{chunk-7HJ6SFFF.js.map → chunk-FLGLODDF.js.map} +1 -1
  54. package/dist/{chunk-TGJIX77V.js → chunk-FZFCOQTI.js} +3 -3
  55. package/dist/{chunk-TGJIX77V.js.map → chunk-FZFCOQTI.js.map} +1 -1
  56. package/dist/{chunk-P2DLXBZK.js → chunk-H3KXUUYQ.js} +4 -4
  57. package/dist/{chunk-P2DLXBZK.js.map → chunk-H3KXUUYQ.js.map} +1 -1
  58. package/dist/{chunk-AKO6XHGV.js → chunk-KN5Y5BXK.js} +5 -5
  59. package/dist/{chunk-AKO6XHGV.js.map → chunk-KN5Y5BXK.js.map} +1 -1
  60. package/dist/{chunk-QJOOD3OV.js → chunk-L7R52OOV.js} +3 -3
  61. package/dist/{chunk-QJOOD3OV.js.map → chunk-L7R52OOV.js.map} +1 -1
  62. package/dist/{chunk-TB3LJ6NA.js → chunk-MDBAEEY5.js} +3 -3
  63. package/dist/{chunk-TB3LJ6NA.js.map → chunk-MDBAEEY5.js.map} +1 -1
  64. package/dist/{chunk-TUTVTGMG.js → chunk-MIRWAK5C.js} +4 -4
  65. package/dist/{chunk-TUTVTGMG.js.map → chunk-MIRWAK5C.js.map} +1 -1
  66. package/dist/{chunk-C3256F2F.js → chunk-MRS5YHPI.js} +3 -3
  67. package/dist/{chunk-C3256F2F.js.map → chunk-MRS5YHPI.js.map} +1 -1
  68. package/dist/{chunk-7LBPHRRP.js → chunk-NFECHLV6.js} +3 -3
  69. package/dist/{chunk-7LBPHRRP.js.map → chunk-NFECHLV6.js.map} +1 -1
  70. package/dist/{chunk-LX3FKVLL.js → chunk-NTASYPDN.js} +3 -3
  71. package/dist/{chunk-LX3FKVLL.js.map → chunk-NTASYPDN.js.map} +1 -1
  72. package/dist/{chunk-7IH3RKKK.js → chunk-OEBAXTQ4.js} +3 -3
  73. package/dist/{chunk-7IH3RKKK.js.map → chunk-OEBAXTQ4.js.map} +1 -1
  74. package/dist/{chunk-7LZJRVKJ.js → chunk-OKGUDNDT.js} +94 -16
  75. package/dist/chunk-OKGUDNDT.js.map +1 -0
  76. package/dist/{chunk-Z2QI42YH.js → chunk-OPBGV4DX.js} +30 -9
  77. package/dist/chunk-OPBGV4DX.js.map +1 -0
  78. package/dist/{chunk-T762W5CI.js → chunk-QABZZROM.js} +3 -3
  79. package/dist/{chunk-T762W5CI.js.map → chunk-QABZZROM.js.map} +1 -1
  80. package/dist/{chunk-LRCSWOZO.js → chunk-QKXDRBLL.js} +5 -3
  81. package/dist/chunk-QKXDRBLL.js.map +1 -0
  82. package/dist/{chunk-66A35U4V.js → chunk-R2SYODNK.js} +64 -8
  83. package/dist/chunk-R2SYODNK.js.map +1 -0
  84. package/dist/{chunk-TTITGVXV.js → chunk-RZXP5ZER.js} +3 -3
  85. package/dist/{chunk-TTITGVXV.js.map → chunk-RZXP5ZER.js.map} +1 -1
  86. package/dist/{chunk-DHLE66FV.js → chunk-S63H4HDH.js} +8 -4
  87. package/dist/chunk-S63H4HDH.js.map +1 -0
  88. package/dist/{chunk-J4ANCOQ4.js → chunk-SGMCSVTO.js} +7 -7
  89. package/dist/{chunk-J4ANCOQ4.js.map → chunk-SGMCSVTO.js.map} +1 -1
  90. package/dist/{chunk-IGNY4C6K.js → chunk-SOFPA4S4.js} +7 -7
  91. package/dist/{chunk-IGNY4C6K.js.map → chunk-SOFPA4S4.js.map} +1 -1
  92. package/dist/{chunk-2FBPAR2V.js → chunk-SQ7IN7KR.js} +3 -2
  93. package/dist/chunk-SQ7IN7KR.js.map +1 -0
  94. package/dist/{chunk-GORUF3YZ.js → chunk-U4CNCL7Q.js} +10 -10
  95. package/dist/{chunk-GORUF3YZ.js.map → chunk-U4CNCL7Q.js.map} +1 -1
  96. package/dist/{chunk-75LXFKQR.js → chunk-UFBURH6K.js} +4 -4
  97. package/dist/{chunk-75LXFKQR.js.map → chunk-UFBURH6K.js.map} +1 -1
  98. package/dist/{chunk-AO7TCPOS.js → chunk-USJWXEXS.js} +311 -32
  99. package/dist/chunk-USJWXEXS.js.map +1 -0
  100. package/dist/{chunk-GKTFGCQZ.js → chunk-UTZEHXYT.js} +3 -3
  101. package/dist/{chunk-GKTFGCQZ.js.map → chunk-UTZEHXYT.js.map} +1 -1
  102. package/dist/{chunk-JS7DCCDA.js → chunk-V2OQ3BI6.js} +4 -4
  103. package/dist/chunk-V2OQ3BI6.js.map +1 -0
  104. package/dist/{chunk-5YXKEM7Q.js → chunk-VCLN2IUM.js} +5 -5
  105. package/dist/{chunk-5YXKEM7Q.js.map → chunk-VCLN2IUM.js.map} +1 -1
  106. package/dist/{chunk-JRIU5GA7.js → chunk-VRFKCF3R.js} +4 -4
  107. package/dist/{chunk-JRIU5GA7.js.map → chunk-VRFKCF3R.js.map} +1 -1
  108. package/dist/{chunk-MTWZ7KHZ.js → chunk-WQULDAH2.js} +11 -2
  109. package/dist/chunk-WQULDAH2.js.map +1 -0
  110. package/dist/{chunk-IFUQ6XBQ.js → chunk-WTBXGJCD.js} +207 -19
  111. package/dist/chunk-WTBXGJCD.js.map +1 -0
  112. package/dist/{chunk-7ERHZQ7O.js → chunk-XN7DAZB7.js} +3 -3
  113. package/dist/{chunk-7ERHZQ7O.js.map → chunk-XN7DAZB7.js.map} +1 -1
  114. package/dist/{chunk-24X2GGSC.js → chunk-YU433JEL.js} +6 -6
  115. package/dist/{chunk-24X2GGSC.js.map → chunk-YU433JEL.js.map} +1 -1
  116. package/dist/cli/index.js +72 -64
  117. package/dist/cli/index.js.map +1 -1
  118. package/dist/cli/src/commands/catalog.d.ts +7 -0
  119. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  120. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  121. package/dist/connectors/config.js +3 -3
  122. package/dist/connectors/index.js +15 -15
  123. package/dist/connectors/src/config.d.ts.map +1 -1
  124. package/dist/connectors/src/connector-types.d.ts +7 -0
  125. package/dist/connectors/src/connector-types.d.ts.map +1 -1
  126. package/dist/connectors/src/materialized-connectors.d.ts.map +1 -1
  127. package/dist/connectors-shared/index.js +2 -2
  128. package/dist/core/index.js +4 -4
  129. package/dist/core/manifest.js +1 -1
  130. package/dist/core/runtime-assets.js +3 -3
  131. package/dist/core/src/manifest.d.ts.map +1 -1
  132. package/dist/core/src/workspace-config.d.ts +7 -0
  133. package/dist/core/src/workspace-config.d.ts.map +1 -1
  134. package/dist/core/workspace-config.js +2 -2
  135. package/dist/deploy/index.js +4 -4
  136. package/dist/discovery/index.js +3 -3
  137. package/dist/{ensure-sources-DVPPPCBS.js → ensure-sources-IGU65O72.js} +13 -13
  138. package/dist/{ensure-sources-DVPPPCBS.js.map → ensure-sources-IGU65O72.js.map} +1 -1
  139. package/dist/factory-assets/connectors/box.js +15 -15
  140. package/dist/factory-assets/connectors/deploy.js +15 -15
  141. package/dist/factory-assets/connectors/devserver.js +15 -15
  142. package/dist/factory-assets/connectors/flow/adapter.js +15 -15
  143. package/dist/factory-assets/connectors/flow/engine.js +5 -5
  144. package/dist/factory-assets/connectors/flow/run-flow.js +17 -17
  145. package/dist/factory-assets/connectors/flow.js +15 -15
  146. package/dist/factory-assets/connectors/git/CONNECTOR.md +1 -0
  147. package/dist/factory-assets/connectors/git/driver.d.ts +29 -0
  148. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
  149. package/dist/factory-assets/connectors/git.js +15 -15
  150. package/dist/factory-assets/connectors/gmail.js +15 -15
  151. package/dist/factory-assets/connectors/googledrive.js +15 -15
  152. package/dist/factory-assets/connectors/local.js +15 -15
  153. package/dist/factory-assets/connectors/mattermost.js +15 -15
  154. package/dist/factory-assets/connectors/memory.js +15 -15
  155. package/dist/factory-assets/connectors/minio.js +15 -15
  156. package/dist/factory-assets/connectors/postgres.js +15 -15
  157. package/dist/factory-assets/connectors/s3.js +15 -15
  158. package/dist/factory-assets/connectors/sharepoint.js +15 -15
  159. package/dist/factory-assets/connectors/sqlite.js +15 -15
  160. package/dist/factory-assets/connectors/static-server.js +15 -15
  161. package/dist/factory-assets/connectors/tunnel.js +15 -15
  162. package/dist/factory-assets/connectors/webdav.js +15 -15
  163. package/dist/factory-assets/connectors/xstate-store.js +15 -15
  164. package/dist/factory-assets/connectors/xstate.js +15 -15
  165. package/dist/{flows-X7JFAVRR.js → flows-6MDMBQUZ.js} +9 -9
  166. package/dist/{flows-X7JFAVRR.js.map → flows-6MDMBQUZ.js.map} +1 -1
  167. package/dist/{helpers-KLO5VUVZ.js → helpers-IELIL4YR.js} +13 -13
  168. package/dist/{helpers-KLO5VUVZ.js.map → helpers-IELIL4YR.js.map} +1 -1
  169. package/dist/library/index.js +7 -7
  170. package/dist/{library-publish-X6JGR7K3.js → library-publish-YKBYHZ43.js} +17 -17
  171. package/dist/{library-publish-X6JGR7K3.js.map → library-publish-YKBYHZ43.js.map} +1 -1
  172. package/dist/{open-library-S2ZFKJUK.js → open-library-ULRYWTEA.js} +15 -15
  173. package/dist/{open-library-S2ZFKJUK.js.map → open-library-ULRYWTEA.js.map} +1 -1
  174. package/dist/{paths-OI5IIS22.js → paths-4MTICP3T.js} +7 -7
  175. package/dist/{paths-OI5IIS22.js.map → paths-4MTICP3T.js.map} +1 -1
  176. package/dist/{plugin-store-C67RLSPD.js → plugin-store-GQ4WQZJ2.js} +6 -6
  177. package/dist/{plugin-store-C67RLSPD.js.map → plugin-store-GQ4WQZJ2.js.map} +1 -1
  178. package/dist/{project-7VOTYB7O.js → project-VKYNDEB6.js} +14 -14
  179. package/dist/{project-7VOTYB7O.js.map → project-VKYNDEB6.js.map} +1 -1
  180. package/dist/resolver/index.js +5 -5
  181. package/dist/runner/index.js +24 -24
  182. package/dist/runner/src/capability-registry.d.ts +13 -0
  183. package/dist/runner/src/capability-registry.d.ts.map +1 -1
  184. package/dist/runner/src/compaction/orchestrator.d.ts +8 -0
  185. package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
  186. package/dist/runner/src/compaction-gate.d.ts +64 -1
  187. package/dist/runner/src/compaction-gate.d.ts.map +1 -1
  188. package/dist/runner/src/driver-swap-gate.d.ts +17 -0
  189. package/dist/runner/src/driver-swap-gate.d.ts.map +1 -1
  190. package/dist/runner/src/external-mcp.d.ts +6 -0
  191. package/dist/runner/src/external-mcp.d.ts.map +1 -1
  192. package/dist/runner/src/mcp-pinned-ca.d.ts +8 -0
  193. package/dist/runner/src/mcp-pinned-ca.d.ts.map +1 -0
  194. package/dist/runner/src/prompt-turn-queue.d.ts +51 -0
  195. package/dist/runner/src/prompt-turn-queue.d.ts.map +1 -0
  196. package/dist/runner/src/serve.d.ts.map +1 -1
  197. package/dist/sdk/asset-manager.js +10 -10
  198. package/dist/sdk/bridge.js +11 -11
  199. package/dist/sdk/core.js +4 -4
  200. package/dist/sdk/flow.js +5 -5
  201. package/dist/sdk/index.js +24 -24
  202. package/dist/sdk/resolver.js +5 -5
  203. package/dist/sdk/runner.js +24 -24
  204. package/dist/sdk/session.js +2 -2
  205. package/dist/sdk/store.js +1 -1
  206. package/dist/sdk/types.js +1 -1
  207. package/dist/session/index.js +2 -2
  208. package/dist/session/src/bounded-subscriber-transport.d.ts +11 -4
  209. package/dist/session/src/bounded-subscriber-transport.d.ts.map +1 -1
  210. package/dist/session/src/dispatcher.d.ts +5 -0
  211. package/dist/session/src/dispatcher.d.ts.map +1 -1
  212. package/dist/session/src/index.d.ts +1 -1
  213. package/dist/session/src/index.d.ts.map +1 -1
  214. package/dist/session/src/types.d.ts +20 -1
  215. package/dist/session/src/types.d.ts.map +1 -1
  216. package/dist/{setup-RO3PGJYS.js → setup-INJFK3VJ.js} +20 -20
  217. package/dist/{setup-RO3PGJYS.js.map → setup-INJFK3VJ.js.map} +1 -1
  218. package/dist/{skills-4YTVHMOH.js → skills-JHUY4DFE.js} +10 -10
  219. package/dist/{skills-4YTVHMOH.js.map → skills-JHUY4DFE.js.map} +1 -1
  220. package/dist/{source-ZZLLOP2U.js → source-IZXICUBU.js} +16 -16
  221. package/dist/{source-ZZLLOP2U.js.map → source-IZXICUBU.js.map} +1 -1
  222. package/dist/{source-manifest-publish-7WRQDIXO.js → source-manifest-publish-4JHOT4PA.js} +18 -18
  223. package/dist/{source-manifest-publish-7WRQDIXO.js.map → source-manifest-publish-4JHOT4PA.js.map} +1 -1
  224. package/dist/store/index.js +1 -1
  225. package/dist/store/src/store.d.ts +30 -1
  226. package/dist/store/src/store.d.ts.map +1 -1
  227. package/dist/store/src/types.d.ts +17 -0
  228. package/dist/store/src/types.d.ts.map +1 -1
  229. package/dist/tui/index.js +24 -24
  230. package/dist/types/index.js +1 -1
  231. package/dist/types/manifests.js +1 -1
  232. package/dist/types/src/events.d.ts +24 -1
  233. package/dist/types/src/events.d.ts.map +1 -1
  234. package/dist/types/src/index.d.ts +1 -1
  235. package/dist/types/src/index.d.ts.map +1 -1
  236. package/dist/types/src/manifests/mcp-server.d.ts +1 -0
  237. package/dist/types/src/manifests/mcp-server.d.ts.map +1 -1
  238. package/dist/types/src/protocol.d.ts +2 -0
  239. package/dist/types/src/protocol.d.ts.map +1 -1
  240. package/dist/types/src/version.d.ts +12 -1
  241. package/dist/types/src/version.d.ts.map +1 -1
  242. package/dist/workspace-plugin/adapters/mcp.js +11 -11
  243. package/dist/workspace-plugin/adapters/omp.js +7 -7
  244. package/dist/workspace-plugin/index.js +1 -1
  245. package/package.json +2 -2
  246. package/dist/chunk-2FBPAR2V.js.map +0 -1
  247. package/dist/chunk-66A35U4V.js.map +0 -1
  248. package/dist/chunk-7LZJRVKJ.js.map +0 -1
  249. package/dist/chunk-AO7TCPOS.js.map +0 -1
  250. package/dist/chunk-DHLE66FV.js.map +0 -1
  251. package/dist/chunk-IFUQ6XBQ.js.map +0 -1
  252. package/dist/chunk-JS7DCCDA.js.map +0 -1
  253. package/dist/chunk-LRCSWOZO.js.map +0 -1
  254. package/dist/chunk-MTWZ7KHZ.js.map +0 -1
  255. package/dist/chunk-TGE33MKN.js.map +0 -1
  256. package/dist/chunk-Z2QI42YH.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/plugin-store/paths.ts","../cli/src/plugin-store/spec.ts","../cli/src/plugin-store/load.ts","../cli/src/plugin-store/reconcile.ts","../cli/src/plugin-store/index.ts"],"names":[],"mappings":"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","file":"plugin-store-C67RLSPD.js","sourcesContent":["/**\n * Pure path helpers for the project-local plugin store.\n *\n * The store is a self-contained npm workspace owned by the CLI under\n * `<projectDir>/.skaile/plugins/`. Nothing here touches the filesystem.\n */\n\nimport { join } from \"node:path\";\n\n/** `<projectDir>/.skaile/plugins` — the store root. */\nexport function pluginsDir(projectDir: string): string {\n return join(projectDir, \".skaile\", \"plugins\");\n}\n\n/** `<store>/package.json` — generated, never user-edited. */\nexport function pluginsPkgJson(projectDir: string): string {\n return join(pluginsDir(projectDir), \"package.json\");\n}\n\n/** `<store>/node_modules` — where reconciled plugin packages land. */\nexport function nodeModulesDir(projectDir: string): string {\n return join(pluginsDir(projectDir), \"node_modules\");\n}\n\n/** `<store>/.reconcile-hash` — SHA of plugins-list + lock slice; skip reinstall when unchanged. */\nexport function reconcileHashFile(projectDir: string): string {\n return join(pluginsDir(projectDir), \".reconcile-hash\");\n}\n\n/**\n * Absolute path to a plugin package's entry directory under the store's\n * `node_modules`. Dynamic `import()` against this absolute path works inside\n * compiled binaries via `pathToFileURL`.\n */\nexport function resolvePluginEntry(projectDir: string, pkgName: string): string {\n return join(nodeModulesDir(projectDir), pkgName);\n}\n","/**\n * Parse npm package specifiers from the `plugins:` list into name + range.\n *\n * The leading `@` of a scope is NOT a separator: only the last `@` at a\n * non-zero index splits the package name from its semver range.\n * \"@skaile/provider-fly@^0.1.0\" → { name: \"@skaile/provider-fly\", range: \"^0.1.0\" }\n * \"@skaile/connector-redis\" → { name: \"@skaile/connector-redis\", range: \"*\" }\n * \"lodash@^4\" → { name: \"lodash\", range: \"^4\" }\n */\n\n/** A parsed plugin specifier: package name plus a semver range (`\"*\"` when omitted). */\nexport interface PluginSpec {\n name: string;\n range: string;\n}\n\n/**\n * Parse a single plugin specifier into `{ name, range }`.\n *\n * @param spec - An npm specifier, e.g. `\"@skaile/provider-fly@^0.1.0\"` or `\"lodash\"`.\n * @returns The package name and semver range (range defaults to `\"*\"`).\n * @throws Error when the specifier is empty.\n */\nexport function parseSpec(spec: string): PluginSpec {\n const trimmed = spec.trim();\n if (!trimmed) throw new Error(\"parseSpec: empty specifier\");\n\n // Find the version-separating `@` — the last one that is not the scope `@`\n // at index 0. A bare `@scope/name` has its only `@` at index 0 (no range).\n const at = trimmed.lastIndexOf(\"@\");\n if (at <= 0) {\n return { name: trimmed, range: \"*\" };\n }\n const name = trimmed.slice(0, at);\n const range = trimmed.slice(at + 1);\n return { name, range: range.length > 0 ? range : \"*\" };\n}\n\n/** Convenience: just the package name of a specifier. */\nexport function specName(spec: string): string {\n return parseSpec(spec).name;\n}\n","/**\n * Runtime plugin loader: dynamic-import each reconciled plugin and let it\n * self-register into the `pluginRegistry`.\n *\n * Each plugin specifier resolves to an absolute path under the store's\n * `node_modules`; we import it via a `file://` URL so the import works inside\n * `bun --compile` binaries (which bundle only the literal-string switches, but\n * can still execute a `file://` import against the unpacked store on disk).\n * Failures are caught per-plugin so one broken plugin never aborts the rest.\n */\n\nimport { pathToFileURL } from \"node:url\";\nimport { type PluginRegistry, pluginRegistry } from \"@skaile/workspaces/plugin-registry\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport { resolvePluginEntry } from \"./paths.js\";\nimport { parseSpec } from \"./spec.js\";\n\n/** Options for {@link loadPlugins}. */\nexport interface LoadOptions {\n log?: Logger;\n}\n\n/** Result of a load pass: which specs registered and which failed. */\nexport interface LoadResult {\n loaded: string[];\n failed: { spec: string; error: string }[];\n}\n\n/** The self-registration entrypoint a plugin module is expected to export. */\ntype PluginModule = { register?: (registry: PluginRegistry) => void };\n\n/**\n * Load and register each plugin in `plugins` into `registry`.\n *\n * @param projectDir - Project root holding `.skaile/plugins/node_modules`.\n * @param plugins - The `skaile.yaml` `plugins:` list (npm specifiers).\n * @param registry - Registry to register into. Defaults to the process-wide `pluginRegistry`.\n * @param opts - Optional logger.\n * @returns Loaded specs + per-plugin failures (never throws).\n */\nexport async function loadPlugins(\n projectDir: string,\n plugins: string[],\n registry: PluginRegistry = pluginRegistry,\n opts: LoadOptions = {},\n): Promise<LoadResult> {\n const loaded: string[] = [];\n const failed: { spec: string; error: string }[] = [];\n\n for (const spec of plugins) {\n try {\n const { name } = parseSpec(spec);\n const entry = resolvePluginEntry(projectDir, name);\n const mod = (await import(pathToFileURL(entry).href)) as PluginModule;\n if (typeof mod.register !== \"function\") {\n throw new Error(`plugin \"${name}\" does not export a register() function`);\n }\n mod.register(registry);\n loaded.push(spec);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n failed.push({ spec, error: `failed to load plugin \"${spec}\": ${message}` });\n opts.log?.warn(`plugin load failed: ${spec}`, { error: message });\n }\n }\n\n return { loaded, failed };\n}\n","/**\n * Reconcile the project-local plugin store (`<projectDir>/.skaile/plugins/`).\n *\n * The reconciler is hash-skipped: it computes a SHA-256 over the sorted plugin\n * list plus the lock file's `plugins` slice and compares it to the stored\n * `.reconcile-hash`. On a match it returns with zero further I/O; otherwise it\n * regenerates the store's `package.json` and runs `bun install` against it.\n *\n * The install step is injectable (`InstallFn`) so tests stay hermetic — they\n * pass a fake installer that records calls and writes a stub `node_modules`.\n */\n\nimport { createHash } from \"node:crypto\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { readPluginsLockSlice } from \"@skaile/workspaces/core\";\nimport { pluginsDir, pluginsPkgJson, reconcileHashFile } from \"./paths.js\";\nimport { parseSpec } from \"./spec.js\";\n\n/**\n * Installs the store's dependencies. Returns `ok: false` (never throws) on a\n * failed install so the reconciler can surface the captured `output`.\n */\nexport type InstallFn = (pluginsDir: string) => Promise<{ ok: boolean; output: string }>;\n\n/** Options for {@link reconcilePlugins}. */\nexport interface ReconcileOptions {\n /** Injectable installer. Defaults to a real `bun install` of the store. */\n runInstall?: InstallFn;\n /**\n * Lock slice to fold into the reconcile-hash. Defaults to\n * `readPluginsLockSlice(projectDir)` so a lock edit invalidates the hash.\n */\n lockSlice?: unknown;\n}\n\n/** Result of a reconcile pass. */\nexport interface ReconcileResult {\n changed: boolean;\n reason: \"no-plugins\" | \"up-to-date\" | \"reconciled\";\n}\n\n/**\n * The default real installer: `bun install` inside the store directory.\n * Frozen on subsequent runs (a `bun.lock`/`bun.lockb` already exists), and\n * non-frozen on the first run so a lock can be generated.\n */\nexport const defaultInstall: InstallFn = async (dir) => {\n const { portableSpawn } = await import(\"@skaile/workspaces/core\");\n const hasLock =\n existsSync(`${dir}/bun.lock`) ||\n existsSync(`${dir}/bun.lockb`) ||\n existsSync(`${dir}/package-lock.json`);\n const args = hasLock ? [\"bun\", \"install\", \"--frozen-lockfile\"] : [\"bun\", \"install\"];\n const proc = portableSpawn(args, { cwd: dir });\n const chunks: string[] = [];\n const decoder = new TextDecoder();\n const pump = async (stream: ReadableStream<Uint8Array>) => {\n const reader = stream.getReader();\n for (;;) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value) chunks.push(decoder.decode(value, { stream: true }));\n }\n };\n await Promise.all([pump(proc.stdout), pump(proc.stderr)]);\n const code = await proc.exited;\n return { ok: code === 0, output: chunks.join(\"\") };\n};\n\n/** Generate the store's `package.json` from the plugin specs. */\nfunction writePackageJson(projectDir: string, plugins: string[]): void {\n const dependencies: Record<string, string> = {};\n for (const spec of plugins) {\n const { name, range } = parseSpec(spec);\n dependencies[name] = range;\n }\n const pkg = {\n name: \"skaile-project-plugins\",\n private: true,\n dependencies,\n };\n mkdirSync(pluginsDir(projectDir), { recursive: true });\n writeFileSync(pluginsPkgJson(projectDir), `${JSON.stringify(pkg, null, 2)}\\n`);\n}\n\n/**\n * Reconcile the plugin store for a project.\n *\n * @param projectDir - Project root containing `skaile.yaml` / `skaile.lock.yaml`.\n * @param plugins - The `skaile.yaml` `plugins:` list (npm specifiers).\n * @param opts - Optional injectable installer + lock slice override.\n * @returns Whether the store changed and why.\n */\nexport async function reconcilePlugins(\n projectDir: string,\n plugins: string[],\n opts: ReconcileOptions = {},\n): Promise<ReconcileResult> {\n if (plugins.length === 0) {\n return { changed: false, reason: \"no-plugins\" };\n }\n\n const lockSlice = opts.lockSlice ?? readPluginsLockSlice(projectDir);\n const wantHash = createHash(\"sha256\")\n .update(JSON.stringify({ plugins: [...plugins].sort(), lock: lockSlice }))\n .digest(\"hex\");\n\n const hashFile = reconcileHashFile(projectDir);\n if (existsSync(hashFile)) {\n const have = readFileSync(hashFile, \"utf8\").trim();\n if (have === wantHash) {\n return { changed: false, reason: \"up-to-date\" };\n }\n }\n\n writePackageJson(projectDir, plugins);\n\n const install = opts.runInstall ?? defaultInstall;\n const result = await install(pluginsDir(projectDir));\n if (!result.ok) {\n throw new Error(`plugin install failed:\\n${result.output}`);\n }\n\n writeFileSync(hashFile, wantHash);\n return { changed: true, reason: \"reconciled\" };\n}\n","/**\n * The project-local plugin store: reconcile (`<projectDir>/.skaile/plugins/`)\n * then load the reconciled plugins into the `pluginRegistry`.\n *\n * `ensurePluginsLoaded` is the single entrypoint commands wire in. It is a\n * guarded no-op when `plugins` is empty/undefined — zero overhead for the\n * common case where no project declares `plugins:` in `skaile.yaml`.\n */\n\nimport { type PluginRegistry, pluginRegistry } from \"@skaile/workspaces/plugin-registry\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport { type LoadResult, loadPlugins } from \"./load.js\";\nimport { type ReconcileOptions, reconcilePlugins } from \"./reconcile.js\";\n\nexport type { LoadResult } from \"./load.js\";\nexport { loadPlugins } from \"./load.js\";\nexport type { ReconcileOptions } from \"./reconcile.js\";\nexport { reconcilePlugins } from \"./reconcile.js\";\nexport { specName } from \"./spec.js\";\n\n/** Options for {@link ensurePluginsLoaded}. */\nexport interface EnsurePluginsOptions extends ReconcileOptions {\n log?: Logger;\n}\n\n/**\n * Reconcile the plugin store then load each plugin into `registry`.\n *\n * No-op (returns immediately) when `plugins` is empty/undefined, so the common\n * no-plugins path costs nothing.\n *\n * @param projectDir - Project root.\n * @param plugins - The `skaile.yaml` `plugins:` list (may be undefined).\n * @param registry - Registry to register into. Defaults to `pluginRegistry`.\n * @param opts - Injectable installer / lock slice + optional logger.\n * @returns The load result, or an empty result when there are no plugins.\n */\nexport async function ensurePluginsLoaded(\n projectDir: string,\n plugins: string[] | undefined,\n registry: PluginRegistry = pluginRegistry,\n opts: EnsurePluginsOptions = {},\n): Promise<LoadResult> {\n if (!plugins || plugins.length === 0) {\n return { loaded: [], failed: [] };\n }\n await reconcilePlugins(projectDir, plugins, opts);\n return loadPlugins(projectDir, plugins, registry, { log: opts.log });\n}\n"]}
1
+ {"version":3,"sources":["../cli/src/plugin-store/paths.ts","../cli/src/plugin-store/spec.ts","../cli/src/plugin-store/load.ts","../cli/src/plugin-store/reconcile.ts","../cli/src/plugin-store/index.ts"],"names":[],"mappings":"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","file":"plugin-store-GQ4WQZJ2.js","sourcesContent":["/**\n * Pure path helpers for the project-local plugin store.\n *\n * The store is a self-contained npm workspace owned by the CLI under\n * `<projectDir>/.skaile/plugins/`. Nothing here touches the filesystem.\n */\n\nimport { join } from \"node:path\";\n\n/** `<projectDir>/.skaile/plugins` — the store root. */\nexport function pluginsDir(projectDir: string): string {\n return join(projectDir, \".skaile\", \"plugins\");\n}\n\n/** `<store>/package.json` — generated, never user-edited. */\nexport function pluginsPkgJson(projectDir: string): string {\n return join(pluginsDir(projectDir), \"package.json\");\n}\n\n/** `<store>/node_modules` — where reconciled plugin packages land. */\nexport function nodeModulesDir(projectDir: string): string {\n return join(pluginsDir(projectDir), \"node_modules\");\n}\n\n/** `<store>/.reconcile-hash` — SHA of plugins-list + lock slice; skip reinstall when unchanged. */\nexport function reconcileHashFile(projectDir: string): string {\n return join(pluginsDir(projectDir), \".reconcile-hash\");\n}\n\n/**\n * Absolute path to a plugin package's entry directory under the store's\n * `node_modules`. Dynamic `import()` against this absolute path works inside\n * compiled binaries via `pathToFileURL`.\n */\nexport function resolvePluginEntry(projectDir: string, pkgName: string): string {\n return join(nodeModulesDir(projectDir), pkgName);\n}\n","/**\n * Parse npm package specifiers from the `plugins:` list into name + range.\n *\n * The leading `@` of a scope is NOT a separator: only the last `@` at a\n * non-zero index splits the package name from its semver range.\n * \"@skaile/provider-fly@^0.1.0\" → { name: \"@skaile/provider-fly\", range: \"^0.1.0\" }\n * \"@skaile/connector-redis\" → { name: \"@skaile/connector-redis\", range: \"*\" }\n * \"lodash@^4\" → { name: \"lodash\", range: \"^4\" }\n */\n\n/** A parsed plugin specifier: package name plus a semver range (`\"*\"` when omitted). */\nexport interface PluginSpec {\n name: string;\n range: string;\n}\n\n/**\n * Parse a single plugin specifier into `{ name, range }`.\n *\n * @param spec - An npm specifier, e.g. `\"@skaile/provider-fly@^0.1.0\"` or `\"lodash\"`.\n * @returns The package name and semver range (range defaults to `\"*\"`).\n * @throws Error when the specifier is empty.\n */\nexport function parseSpec(spec: string): PluginSpec {\n const trimmed = spec.trim();\n if (!trimmed) throw new Error(\"parseSpec: empty specifier\");\n\n // Find the version-separating `@` — the last one that is not the scope `@`\n // at index 0. A bare `@scope/name` has its only `@` at index 0 (no range).\n const at = trimmed.lastIndexOf(\"@\");\n if (at <= 0) {\n return { name: trimmed, range: \"*\" };\n }\n const name = trimmed.slice(0, at);\n const range = trimmed.slice(at + 1);\n return { name, range: range.length > 0 ? range : \"*\" };\n}\n\n/** Convenience: just the package name of a specifier. */\nexport function specName(spec: string): string {\n return parseSpec(spec).name;\n}\n","/**\n * Runtime plugin loader: dynamic-import each reconciled plugin and let it\n * self-register into the `pluginRegistry`.\n *\n * Each plugin specifier resolves to an absolute path under the store's\n * `node_modules`; we import it via a `file://` URL so the import works inside\n * `bun --compile` binaries (which bundle only the literal-string switches, but\n * can still execute a `file://` import against the unpacked store on disk).\n * Failures are caught per-plugin so one broken plugin never aborts the rest.\n */\n\nimport { pathToFileURL } from \"node:url\";\nimport { type PluginRegistry, pluginRegistry } from \"@skaile/workspaces/plugin-registry\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport { resolvePluginEntry } from \"./paths.js\";\nimport { parseSpec } from \"./spec.js\";\n\n/** Options for {@link loadPlugins}. */\nexport interface LoadOptions {\n log?: Logger;\n}\n\n/** Result of a load pass: which specs registered and which failed. */\nexport interface LoadResult {\n loaded: string[];\n failed: { spec: string; error: string }[];\n}\n\n/** The self-registration entrypoint a plugin module is expected to export. */\ntype PluginModule = { register?: (registry: PluginRegistry) => void };\n\n/**\n * Load and register each plugin in `plugins` into `registry`.\n *\n * @param projectDir - Project root holding `.skaile/plugins/node_modules`.\n * @param plugins - The `skaile.yaml` `plugins:` list (npm specifiers).\n * @param registry - Registry to register into. Defaults to the process-wide `pluginRegistry`.\n * @param opts - Optional logger.\n * @returns Loaded specs + per-plugin failures (never throws).\n */\nexport async function loadPlugins(\n projectDir: string,\n plugins: string[],\n registry: PluginRegistry = pluginRegistry,\n opts: LoadOptions = {},\n): Promise<LoadResult> {\n const loaded: string[] = [];\n const failed: { spec: string; error: string }[] = [];\n\n for (const spec of plugins) {\n try {\n const { name } = parseSpec(spec);\n const entry = resolvePluginEntry(projectDir, name);\n const mod = (await import(pathToFileURL(entry).href)) as PluginModule;\n if (typeof mod.register !== \"function\") {\n throw new Error(`plugin \"${name}\" does not export a register() function`);\n }\n mod.register(registry);\n loaded.push(spec);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n failed.push({ spec, error: `failed to load plugin \"${spec}\": ${message}` });\n opts.log?.warn(`plugin load failed: ${spec}`, { error: message });\n }\n }\n\n return { loaded, failed };\n}\n","/**\n * Reconcile the project-local plugin store (`<projectDir>/.skaile/plugins/`).\n *\n * The reconciler is hash-skipped: it computes a SHA-256 over the sorted plugin\n * list plus the lock file's `plugins` slice and compares it to the stored\n * `.reconcile-hash`. On a match it returns with zero further I/O; otherwise it\n * regenerates the store's `package.json` and runs `bun install` against it.\n *\n * The install step is injectable (`InstallFn`) so tests stay hermetic — they\n * pass a fake installer that records calls and writes a stub `node_modules`.\n */\n\nimport { createHash } from \"node:crypto\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { readPluginsLockSlice } from \"@skaile/workspaces/core\";\nimport { pluginsDir, pluginsPkgJson, reconcileHashFile } from \"./paths.js\";\nimport { parseSpec } from \"./spec.js\";\n\n/**\n * Installs the store's dependencies. Returns `ok: false` (never throws) on a\n * failed install so the reconciler can surface the captured `output`.\n */\nexport type InstallFn = (pluginsDir: string) => Promise<{ ok: boolean; output: string }>;\n\n/** Options for {@link reconcilePlugins}. */\nexport interface ReconcileOptions {\n /** Injectable installer. Defaults to a real `bun install` of the store. */\n runInstall?: InstallFn;\n /**\n * Lock slice to fold into the reconcile-hash. Defaults to\n * `readPluginsLockSlice(projectDir)` so a lock edit invalidates the hash.\n */\n lockSlice?: unknown;\n}\n\n/** Result of a reconcile pass. */\nexport interface ReconcileResult {\n changed: boolean;\n reason: \"no-plugins\" | \"up-to-date\" | \"reconciled\";\n}\n\n/**\n * The default real installer: `bun install` inside the store directory.\n * Frozen on subsequent runs (a `bun.lock`/`bun.lockb` already exists), and\n * non-frozen on the first run so a lock can be generated.\n */\nexport const defaultInstall: InstallFn = async (dir) => {\n const { portableSpawn } = await import(\"@skaile/workspaces/core\");\n const hasLock =\n existsSync(`${dir}/bun.lock`) ||\n existsSync(`${dir}/bun.lockb`) ||\n existsSync(`${dir}/package-lock.json`);\n const args = hasLock ? [\"bun\", \"install\", \"--frozen-lockfile\"] : [\"bun\", \"install\"];\n const proc = portableSpawn(args, { cwd: dir });\n const chunks: string[] = [];\n const decoder = new TextDecoder();\n const pump = async (stream: ReadableStream<Uint8Array>) => {\n const reader = stream.getReader();\n for (;;) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value) chunks.push(decoder.decode(value, { stream: true }));\n }\n };\n await Promise.all([pump(proc.stdout), pump(proc.stderr)]);\n const code = await proc.exited;\n return { ok: code === 0, output: chunks.join(\"\") };\n};\n\n/** Generate the store's `package.json` from the plugin specs. */\nfunction writePackageJson(projectDir: string, plugins: string[]): void {\n const dependencies: Record<string, string> = {};\n for (const spec of plugins) {\n const { name, range } = parseSpec(spec);\n dependencies[name] = range;\n }\n const pkg = {\n name: \"skaile-project-plugins\",\n private: true,\n dependencies,\n };\n mkdirSync(pluginsDir(projectDir), { recursive: true });\n writeFileSync(pluginsPkgJson(projectDir), `${JSON.stringify(pkg, null, 2)}\\n`);\n}\n\n/**\n * Reconcile the plugin store for a project.\n *\n * @param projectDir - Project root containing `skaile.yaml` / `skaile.lock.yaml`.\n * @param plugins - The `skaile.yaml` `plugins:` list (npm specifiers).\n * @param opts - Optional injectable installer + lock slice override.\n * @returns Whether the store changed and why.\n */\nexport async function reconcilePlugins(\n projectDir: string,\n plugins: string[],\n opts: ReconcileOptions = {},\n): Promise<ReconcileResult> {\n if (plugins.length === 0) {\n return { changed: false, reason: \"no-plugins\" };\n }\n\n const lockSlice = opts.lockSlice ?? readPluginsLockSlice(projectDir);\n const wantHash = createHash(\"sha256\")\n .update(JSON.stringify({ plugins: [...plugins].sort(), lock: lockSlice }))\n .digest(\"hex\");\n\n const hashFile = reconcileHashFile(projectDir);\n if (existsSync(hashFile)) {\n const have = readFileSync(hashFile, \"utf8\").trim();\n if (have === wantHash) {\n return { changed: false, reason: \"up-to-date\" };\n }\n }\n\n writePackageJson(projectDir, plugins);\n\n const install = opts.runInstall ?? defaultInstall;\n const result = await install(pluginsDir(projectDir));\n if (!result.ok) {\n throw new Error(`plugin install failed:\\n${result.output}`);\n }\n\n writeFileSync(hashFile, wantHash);\n return { changed: true, reason: \"reconciled\" };\n}\n","/**\n * The project-local plugin store: reconcile (`<projectDir>/.skaile/plugins/`)\n * then load the reconciled plugins into the `pluginRegistry`.\n *\n * `ensurePluginsLoaded` is the single entrypoint commands wire in. It is a\n * guarded no-op when `plugins` is empty/undefined — zero overhead for the\n * common case where no project declares `plugins:` in `skaile.yaml`.\n */\n\nimport { type PluginRegistry, pluginRegistry } from \"@skaile/workspaces/plugin-registry\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport { type LoadResult, loadPlugins } from \"./load.js\";\nimport { type ReconcileOptions, reconcilePlugins } from \"./reconcile.js\";\n\nexport type { LoadResult } from \"./load.js\";\nexport { loadPlugins } from \"./load.js\";\nexport type { ReconcileOptions } from \"./reconcile.js\";\nexport { reconcilePlugins } from \"./reconcile.js\";\nexport { specName } from \"./spec.js\";\n\n/** Options for {@link ensurePluginsLoaded}. */\nexport interface EnsurePluginsOptions extends ReconcileOptions {\n log?: Logger;\n}\n\n/**\n * Reconcile the plugin store then load each plugin into `registry`.\n *\n * No-op (returns immediately) when `plugins` is empty/undefined, so the common\n * no-plugins path costs nothing.\n *\n * @param projectDir - Project root.\n * @param plugins - The `skaile.yaml` `plugins:` list (may be undefined).\n * @param registry - Registry to register into. Defaults to `pluginRegistry`.\n * @param opts - Injectable installer / lock slice + optional logger.\n * @returns The load result, or an empty result when there are no plugins.\n */\nexport async function ensurePluginsLoaded(\n projectDir: string,\n plugins: string[] | undefined,\n registry: PluginRegistry = pluginRegistry,\n opts: EnsurePluginsOptions = {},\n): Promise<LoadResult> {\n if (!plugins || plugins.length === 0) {\n return { loaded: [], failed: [] };\n }\n await reconcilePlugins(projectDir, plugins, opts);\n return loadPlugins(projectDir, plugins, registry, { log: opts.log });\n}\n"]}
@@ -1,23 +1,23 @@
1
- export { makeCheckCommand, makeCleanCommand, makeInstallCommand, reportInstalledSoftDeps, runPointerOnlyInstall, supportsInstallManifest } from './chunk-IGNY4C6K.js';
2
- import './chunk-QJOOD3OV.js';
3
- import './chunk-66A35U4V.js';
4
- import './chunk-DOF77WEV.js';
5
- import './chunk-VOXFI3XS.js';
1
+ export { makeCheckCommand, makeCleanCommand, makeInstallCommand, reportInstalledSoftDeps, runPointerOnlyInstall, supportsInstallManifest } from './chunk-SOFPA4S4.js';
2
+ import './chunk-L7R52OOV.js';
3
+ import './chunk-R2SYODNK.js';
4
+ import './chunk-BSIHJZKN.js';
5
+ import './chunk-DFZDL62S.js';
6
6
  import './chunk-VOEBLPXO.js';
7
7
  import './chunk-R7FOF242.js';
8
8
  import './chunk-JXT46QFC.js';
9
- import './chunk-5YXKEM7Q.js';
9
+ import './chunk-VCLN2IUM.js';
10
10
  import './chunk-CGYEHQOX.js';
11
- import './chunk-3ELIPWCH.js';
11
+ import './chunk-FJYOQMXT.js';
12
12
  import './chunk-4GY63JU6.js';
13
- import './chunk-JRIU5GA7.js';
13
+ import './chunk-VRFKCF3R.js';
14
14
  import './chunk-KIFJWSNC.js';
15
15
  import './chunk-K5GBV4SA.js';
16
16
  import './chunk-QVZA2MDT.js';
17
- import './chunk-LRCSWOZO.js';
17
+ import './chunk-QKXDRBLL.js';
18
18
  import './chunk-EB4ZTESQ.js';
19
19
  import './chunk-P4VHQA4N.js';
20
- import './chunk-2FBPAR2V.js';
20
+ import './chunk-SQ7IN7KR.js';
21
21
  import './chunk-GEEW6SY2.js';
22
22
  import './chunk-JMKB7IB4.js';
23
23
  import './chunk-ICSCSM5D.js';
@@ -26,8 +26,8 @@ import './chunk-C3CAXQMA.js';
26
26
  import './chunk-BOFL7GIF.js';
27
27
  import './chunk-KTBKW2FI.js';
28
28
  import './chunk-UQ6LFBPZ.js';
29
- import './chunk-7LBPHRRP.js';
30
- import './chunk-TGE33MKN.js';
29
+ import './chunk-NFECHLV6.js';
30
+ import './chunk-2D3C4AJP.js';
31
31
  import './chunk-NSBPE2FW.js';
32
- //# sourceMappingURL=project-7VOTYB7O.js.map
33
- //# sourceMappingURL=project-7VOTYB7O.js.map
32
+ //# sourceMappingURL=project-VKYNDEB6.js.map
33
+ //# sourceMappingURL=project-VKYNDEB6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"project-7VOTYB7O.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"project-VKYNDEB6.js"}
@@ -1,14 +1,14 @@
1
- export { buildRequiresPreamble, parseCompactionDirectives, parseSkillFrontmatter, parseSkillRequirements, validateConnectorRequirements, validateFlowVersions, validateRequirements } from '../chunk-T3YUSWVK.js';
2
- import '../chunk-3ELIPWCH.js';
1
+ export { buildRequiresPreamble, parseCompactionDirectives, parseSkillFrontmatter, parseSkillRequirements, validateConnectorRequirements, validateFlowVersions, validateRequirements } from '../chunk-3SUWLY3H.js';
2
+ import '../chunk-FJYOQMXT.js';
3
3
  import '../chunk-4GY63JU6.js';
4
- import '../chunk-JRIU5GA7.js';
4
+ import '../chunk-VRFKCF3R.js';
5
5
  import '../chunk-KIFJWSNC.js';
6
6
  import '../chunk-K5GBV4SA.js';
7
7
  import '../chunk-QVZA2MDT.js';
8
- import '../chunk-LRCSWOZO.js';
8
+ import '../chunk-QKXDRBLL.js';
9
9
  import '../chunk-EB4ZTESQ.js';
10
10
  import '../chunk-P4VHQA4N.js';
11
- import '../chunk-2FBPAR2V.js';
11
+ import '../chunk-SQ7IN7KR.js';
12
12
  import '../chunk-GEEW6SY2.js';
13
13
  import '../chunk-JMKB7IB4.js';
14
14
  import '../chunk-ICSCSM5D.js';
@@ -1,9 +1,9 @@
1
- export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CONNECTOR_MUTATE_NOT_READY, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, DEFAULT_FLOW_MUTATE_CONNECTOR_WAIT_MS, MOUNT_LIST_MAX_DEPTH, MOUNT_LIST_MAX_ENTRIES, MOUNT_READ_DEADLINE_FACTOR, MOUNT_READ_MAX_CHUNK_BYTES, MOUNT_STAT_BUDGET_MS, MOUNT_STAT_MAX_ENTRIES, MOUNT_TREE_OP_DEADLINE_FACTOR, MarkdownStreamer, PreInitRingSink, ResourceOperationError, SESSION_ROOT_WRITABLE_DIRS, SESSION_ROOT_WRITABLE_FILES, WS_AUTH_TOKEN_ENV, WS_AUTH_TOKEN_FILE_ENV, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildConnectorTokenMediator, buildContextSection, buildEnvironmentSection, buildResourcesAvailablePayload, buildStoreSnapshotReplay, builtinCapabilities, capabilityLogInstance, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, computeDirectoryTotals, connectorRefreshKind, createAgentSession, createFlowConnectorReadiness, createManagedCodexSubpromptDriver, createSessionStimulusBus, defineCapability, deleteSession, dispatchResourceRequest, dispatchRunnerCapabilityInvocation, driverActiveAfterTurnEnd, emitSystemPromptComposed, ensureClaudeSettingsDisablesConnectors, ensureGitConfigInclude, executeConnectorMutate, extractClaudeAiOauthExpiresAt, flowRunDrivesTurns, flowStartNeedsDriverRestart, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, handleSessionRootResourceRequest, hasNonTerminalFlow, hostOpResumeStimulus, installPreInitRingSink, isSessionRootPathAllowed, isTerminalFlowStatus, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadManagedCodexHostConfig, loadSession, loadSessionById, mcpAuthSecretKey, newSession, nulTailPaddingLength, pickChatFlowTarget, pickFlowToolTarget, pickRepointedManager, planFlowMutate, prepareCodexTools, reconcilePendingDecisions, reconnectedRunNeedsAgentTurn, recreateKeepingLiveFlows, registerActiveFlow, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, rejectPendingCapabilityCallsOnDisconnect, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveFlowMutateConnectorWaitMs, resolveMixin, restoredRunHasWorkToResume, runAgentChat, saveSession, setCurrentSession, setUpFlowConnector, startAgentServer, stimulusFromMetas, supportsLiveToolUpdates, takeRunnerWsAuthToken, toActiveFlowTarget, touchSession, validateInputResponse, writeClaudeCodeCredentialsFile } from '../chunk-AO7TCPOS.js';
2
- import '../chunk-XTOTP7MJ.js';
3
- import '../chunk-N2UGG6WV.js';
4
- import '../chunk-C3256F2F.js';
5
- import '../chunk-P2DLXBZK.js';
6
- import '../chunk-7IH3RKKK.js';
1
+ export { CLAUDE_CODE_CREDENTIALS_KEY, COMPILE_MANIFEST_FILENAME, CONNECTOR_MUTATE_NOT_READY, CapabilityRegistry, DEFAULT_CAPABILITY_CALL_TIMEOUT_MS, DEFAULT_COALESCE_MS, DEFAULT_FLOW_MUTATE_CONNECTOR_WAIT_MS, MOUNT_LIST_MAX_DEPTH, MOUNT_LIST_MAX_ENTRIES, MOUNT_READ_DEADLINE_FACTOR, MOUNT_READ_MAX_CHUNK_BYTES, MOUNT_STAT_BUDGET_MS, MOUNT_STAT_MAX_ENTRIES, MOUNT_TREE_OP_DEADLINE_FACTOR, MarkdownStreamer, PreInitRingSink, ResourceOperationError, SESSION_ROOT_WRITABLE_DIRS, SESSION_ROOT_WRITABLE_FILES, WS_AUTH_TOKEN_ENV, WS_AUTH_TOKEN_FILE_ENV, agentDefinitionExists, bootstrapCapabilityRegistry, bootstrapRunnerLogStore, buildAgentResources, buildClientCapabilityHandler, buildConnectorTokenMediator, buildContextSection, buildEnvironmentSection, buildResourcesAvailablePayload, buildStoreSnapshotReplay, builtinCapabilities, capabilityLogInstance, capabilitySignatureInputs, clearPreInitRingSink, clearSession, compileComposition, computeCapabilitySignature, computeDirectoryTotals, connectorRefreshKind, createAgentSession, createFlowConnectorReadiness, createManagedCodexSubpromptDriver, createSessionStimulusBus, defineCapability, deleteSession, dispatchResourceRequest, dispatchRunnerCapabilityInvocation, driverActiveAfterTurnEnd, emitSystemPromptComposed, ensureClaudeSettingsDisablesConnectors, ensureGitConfigInclude, executeConnectorMutate, extractClaudeAiOauthExpiresAt, flowRunDrivesTurns, flowStartNeedsDriverRestart, getPreInitRingSink, handleMountResourceRequest, handleResourceRequest, handleSessionRootResourceRequest, hasNonTerminalFlow, hostOpResumeStimulus, installPreInitRingSink, isSessionRootPathAllowed, isTerminalFlowStatus, listSessions, loadAgentManifest, loadCompileManifest, loadCompileManifestFromDir, loadManagedCodexHostConfig, loadSession, loadSessionById, mcpAuthSecretKey, newSession, nulTailPaddingLength, pickChatFlowTarget, pickFlowToolTarget, pickRepointedManager, planFlowMutate, prepareCodexTools, reconcilePendingDecisions, reconnectedRunNeedsAgentTurn, recreateKeepingLiveFlows, registerActiveFlow, registerCompositionCapabilities, rejectCapabilityOnApprovalDeny, rejectPendingCapabilityCallsOnDisconnect, resetRunnerLogStore, resolveAgentComposition, resolveAgentMixins, resolveBinding, resolveCapabilityCallTimeoutMs, resolveCapabilityResult, resolveComposition, resolveFlowMutateConnectorWaitMs, resolveMixin, restoredRunHasWorkToResume, runAgentChat, saveSession, setCurrentSession, setUpFlowConnector, startAgentServer, stimulusFromMetas, supportsLiveToolUpdates, takeRunnerWsAuthToken, toActiveFlowTarget, touchSession, validateInputResponse, writeClaudeCodeCredentialsFile } from '../chunk-USJWXEXS.js';
2
+ import '../chunk-ENXE4BKS.js';
3
+ import '../chunk-A5RRXBLI.js';
4
+ import '../chunk-MRS5YHPI.js';
5
+ import '../chunk-H3KXUUYQ.js';
6
+ import '../chunk-OEBAXTQ4.js';
7
7
  import '../chunk-4ZTPYIBE.js';
8
8
  import '../chunk-35G4M33T.js';
9
9
  import '../chunk-R6O6YWU7.js';
@@ -15,49 +15,49 @@ import '../chunk-5LKOAX7I.js';
15
15
  import '../chunk-32NA4TVC.js';
16
16
  export { assembleSystemPrompt, buildCapabilitiesPromptSection, buildLinkedPeersPromptSection } from '../chunk-W3UDISS2.js';
17
17
  import '../chunk-HCYS7GFP.js';
18
- import '../chunk-J4ANCOQ4.js';
18
+ import '../chunk-SGMCSVTO.js';
19
19
  import '../chunk-4R6DROGN.js';
20
- import '../chunk-T3YUSWVK.js';
21
- import '../chunk-Q6NDQ6BH.js';
20
+ import '../chunk-3SUWLY3H.js';
21
+ import '../chunk-5JAO4MXA.js';
22
22
  import '../chunk-6X4DHKHP.js';
23
- import '../chunk-IFUQ6XBQ.js';
24
- import '../chunk-ZWTCXL3H.js';
25
- import '../chunk-DHLE66FV.js';
26
- import '../chunk-NVQLE4MK.js';
27
- import '../chunk-LX3FKVLL.js';
23
+ import '../chunk-WTBXGJCD.js';
24
+ import '../chunk-2QYQOJ2F.js';
25
+ import '../chunk-S63H4HDH.js';
26
+ import '../chunk-5SGS5SN2.js';
27
+ import '../chunk-NTASYPDN.js';
28
28
  import '../chunk-EINLFFP6.js';
29
29
  import '../chunk-LOO5CB5M.js';
30
- import '../chunk-TTITGVXV.js';
31
- import '../chunk-75LXFKQR.js';
30
+ import '../chunk-RZXP5ZER.js';
31
+ import '../chunk-UFBURH6K.js';
32
32
  import '../chunk-XBSQ4KMC.js';
33
33
  import '../chunk-YROR332M.js';
34
- import '../chunk-MTWZ7KHZ.js';
34
+ import '../chunk-WQULDAH2.js';
35
35
  import '../chunk-6E6PKKAD.js';
36
36
  import '../chunk-IFGTRL2I.js';
37
- import '../chunk-7HJ6SFFF.js';
37
+ import '../chunk-FLGLODDF.js';
38
38
  import '../chunk-YYH5EVPM.js';
39
39
  import '../chunk-DIQDYNXZ.js';
40
40
  import '../chunk-K3IBZ2UZ.js';
41
41
  import '../chunk-UDFWBALP.js';
42
42
  import '../chunk-ORH2BZEM.js';
43
- import '../chunk-JS7DCCDA.js';
44
- export { globalSettingsPath, loadSettings, mapLegacyFields, projectSettingsPath, resolveSettings, saveSettings } from '../chunk-3ELIPWCH.js';
43
+ import '../chunk-V2OQ3BI6.js';
44
+ export { globalSettingsPath, loadSettings, mapLegacyFields, projectSettingsPath, resolveSettings, saveSettings } from '../chunk-FJYOQMXT.js';
45
45
  import '../chunk-4GY63JU6.js';
46
- import '../chunk-JRIU5GA7.js';
46
+ import '../chunk-VRFKCF3R.js';
47
47
  import '../chunk-KIFJWSNC.js';
48
48
  export { DRIVER_DEFAULTS, resolveDriverPaths } from '../chunk-K5GBV4SA.js';
49
49
  import '../chunk-QVZA2MDT.js';
50
- import '../chunk-LRCSWOZO.js';
50
+ import '../chunk-QKXDRBLL.js';
51
51
  export { DRIVER_TARGETS, SUPPORTED_DRIVER_TARGETS } from '../chunk-EB4ZTESQ.js';
52
52
  import '../chunk-P4VHQA4N.js';
53
- import '../chunk-2FBPAR2V.js';
53
+ import '../chunk-SQ7IN7KR.js';
54
54
  import '../chunk-GEEW6SY2.js';
55
55
  import '../chunk-JMKB7IB4.js';
56
56
  import '../chunk-ICSCSM5D.js';
57
57
  import '../chunk-MJHSLODD.js';
58
58
  import '../chunk-C3CAXQMA.js';
59
59
  import '../chunk-BOFL7GIF.js';
60
- import '../chunk-TGE33MKN.js';
60
+ import '../chunk-2D3C4AJP.js';
61
61
  import '../chunk-NSBPE2FW.js';
62
62
  //# sourceMappingURL=index.js.map
63
63
  //# sourceMappingURL=index.js.map
@@ -243,6 +243,12 @@ export declare class CapabilityRegistry {
243
243
  * what the LLM can call.
244
244
  * - `description` and `outputSchema` — text/shape changes that don't
245
245
  * alter the call surface.
246
+ * - Embedded-app capabilities (`app` origin or the `app.` namespace). They
247
+ * belong to the app's back-connection, not to the session: the app
248
+ * re-registers them whenever it reconnects, which after a wake lands before
249
+ * or after the resume check by chance, and they come and go mid-session
250
+ * with no check at all. Hashing them made tier-1 resume a coin flip.
251
+ * {@link CapabilityRegistry.hydrate} skips them for the same reason.
246
252
  *
247
253
  * Spec: `_devlog/specs/2026-05-05-session-resume-restart-design.md`
248
254
  * § "Capability signature".
@@ -254,4 +260,11 @@ export declare class CapabilityRegistry {
254
260
  * @docLink packages/runner/capabilities#compute-capability-signature
255
261
  */
256
262
  export declare function computeCapabilitySignature(caps: readonly Capability[]): string;
263
+ /**
264
+ * The `name:originKind` pairs {@link computeCapabilitySignature} hashes, sorted.
265
+ * Logged when a tier-1 resume is rejected so two wakes can be diffed by name.
266
+ *
267
+ * @category Resume
268
+ */
269
+ export declare function capabilitySignatureInputs(caps: readonly Capability[]): string[];
257
270
  //# sourceMappingURL=capability-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../../runner/src/capability-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../../runner/src/capability-registry.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,14 @@ export interface CompactionOrchestratorOptions {
88
88
  * Guaranteed on every exit, including a throw.
89
89
  */
90
90
  onCompactionSettled?: () => void;
91
+ /**
92
+ * Take the driver before the compaction starts. Resolves to a release, which
93
+ * the orchestrator calls after {@link onCompactionSettled}, or to `null` to
94
+ * skip this compaction: no start callback, no attempt, no cooldown. The host
95
+ * waits here for user turns that already hold the driver, so a compaction
96
+ * never prompts it under one of them.
97
+ */
98
+ claimDriver?: (trigger: CompactionTrigger) => Promise<(() => void) | null>;
91
99
  onLog?: (line: string) => void;
92
100
  /**
93
101
  * Phase 3 (resume cascade): supplies the current capability registry
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../runner/src/compaction/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../runner/src/compaction/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentEvent } from "@skaile/workspaces/types";
1
+ import type { AgentEvent, CompactionTrigger } from "@skaile/workspaces/types";
2
2
  /** Opaque handle for one in-flight compaction. See {@link CompactionGate.begin}. */
3
3
  export type CompactionHold = symbol;
4
4
  /**
@@ -72,6 +72,69 @@ export declare class CompactionGate {
72
72
  * `SKAILE_COMPACTION_GATE_TIMEOUT_MS` after this module is imported.
73
73
  */
74
74
  export declare function compactionGateTimeoutMs(): number;
75
+ /**
76
+ * How long a compaction waits for user turns that already hold the driver.
77
+ * Read per call so a test (or an operator) can set
78
+ * `SKAILE_COMPACTION_TURN_WAIT_MS` after this module is imported.
79
+ */
80
+ export declare function compactionTurnWaitMs(): number;
81
+ /**
82
+ * The bound for a `manual` or `hibernate` compaction the platform asked for.
83
+ * Short, because a turn paused on a question holds its slot until the user
84
+ * answers, and the platform call waits for this one. A skip there leaves the
85
+ * session uncompacted, which the platform already handles: it also skips a
86
+ * pre-hibernate compaction below its fill threshold.
87
+ */
88
+ export declare const PLATFORM_COMPACTION_TURN_WAIT_MS = 30000;
89
+ /** The turn-wait bound for a compaction with this trigger. */
90
+ export declare function compactionTurnWaitFor(trigger: CompactionTrigger): number;
91
+ export interface ClaimDriverForCompactionDeps {
92
+ gate: CompactionGate;
93
+ /** Resolves once every turn that already claimed a slot has settled. Must not reject. */
94
+ awaitClaimedTurns: () => Promise<void>;
95
+ log: (line: string) => void;
96
+ /** Defaults to {@link compactionTurnWaitMs}. */
97
+ timeoutMs?: number;
98
+ }
99
+ /**
100
+ * Take the driver for a compaction, the way a driver swap takes it.
101
+ *
102
+ * Arms the gate first, so no turn can claim a slot from here on (see
103
+ * {@link beginTurnClearOfCompaction}), and only then waits for the turns that
104
+ * already did. Arming first is what bounds the wait: the turns it waits for
105
+ * are a closed set, not a FIFO that every new prompt extends.
106
+ *
107
+ * Returns the release (idempotent; call it once the compaction has settled),
108
+ * or `null` when a turn still held the driver at the bound. The caller then
109
+ * skips the compaction and the next turn end checks again. Proceeding instead
110
+ * would drop that turn's reply, which is the defect this gate exists for.
111
+ */
112
+ export declare function claimDriverForCompaction(deps: ClaimDriverForCompactionDeps): Promise<(() => void) | null>;
113
+ /** How often a turn yields to a compaction that overtook its pre-flight before giving up. */
114
+ export declare const TURN_COMPACTION_YIELD_ATTEMPTS = 3;
115
+ export interface BeginTurnClearOfCompactionDeps {
116
+ gate: CompactionGate;
117
+ /** Wait out any compaction; `false` means abandon the turn (already reported). */
118
+ awaitIdle: () => Promise<boolean>;
119
+ /** Run the turn's pre-flight and claim its slot, e.g. `DriverSwapGate.beginTurnOnLiveDriver`. */
120
+ claimTurn: () => Promise<() => void>;
121
+ }
122
+ /**
123
+ * Claim a turn slot while no compaction holds the driver.
124
+ *
125
+ * A turn that passed the gate is still in its pre-flight (skill restage,
126
+ * driver start) when a compaction can arm. That compaction waits only for
127
+ * turns that hold a slot, and this one does not hold one yet. So the turn
128
+ * checks the gate again after it claims its slot: a compaction armed before
129
+ * that check owns the driver, and the turn yields its slot and waits. A
130
+ * compaction armed after the check waits for this turn instead, through
131
+ * {@link claimDriverForCompaction}.
132
+ *
133
+ * Returns `endTurn`, or `null` when `awaitIdle` refused the turn. Throws after
134
+ * {@link TURN_COMPACTION_YIELD_ATTEMPTS} yields; that needs compactions back to
135
+ * back past their cooldown, which is pathological.
136
+ */
137
+ export declare function beginTurnClearOfCompaction(deps: BeginTurnClearOfCompactionDeps, maxAttempts?: number): Promise<(() => void) | null>;
75
138
  /** The message a caller sends when it abandons a turn rather than race a compaction. */
76
139
  export declare const COMPACTION_GATE_TIMEOUT_MESSAGE = "The session is still compacting its history and could not take this message. Send it again in a moment.";
77
140
  export interface GuardTurnDeps {
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-gate.d.ts","sourceRoot":"","sources":["../../../runner/src/compaction-gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc;IACzB;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,CAA6B;IACzC,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;OAGG;IACH,KAAK,IAAI,cAAc;IAWvB;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IASrD,wDAAwD;IACxD,MAAM,IAAI,OAAO;IAIjB;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAe3E;AA2BD;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAGhD;AAED,wFAAwF;AACxF,eAAO,MAAM,+BAA+B,4GAC+D,CAAC;AAE5G,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAOtF"}
1
+ {"version":3,"file":"compaction-gate.d.ts","sourceRoot":"","sources":["../../../runner/src/compaction-gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE9E,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc;IACzB;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,CAA6B;IACzC,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;OAGG;IACH,KAAK,IAAI,cAAc;IAWvB;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IASrD,wDAAwD;IACxD,MAAM,IAAI,OAAO;IAIjB;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAe3E;AA2BD;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAGhD;AAKD;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAEvD,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAExE;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,cAAc,CAAC;IACrB,yFAAyF;IACzF,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAe9B;AAED,6FAA6F;AAC7F,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,cAAc,CAAC;IACrB,kFAAkF;IAClF,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,iGAAiG;IACjG,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,8BAA8B,EACpC,WAAW,SAAiC,GAC3C,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAQ9B;AAED,wFAAwF;AACxF,eAAO,MAAM,+BAA+B,4GAC+D,CAAC;AAE5G,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAOtF"}
@@ -1,3 +1,5 @@
1
+ /** How often a turn re-prepares after a swap overtook its pre-flight before giving up. */
2
+ export declare const TURN_BIND_ATTEMPTS = 3;
1
3
  /**
2
4
  * Coordinates the two directions of the driver-swap / prompt-turn race:
3
5
  *
@@ -7,6 +9,9 @@
7
9
  * driver instead of one being disposed.
8
10
  * - swap-during-swap: {@link runSwap} queues a swap behind every earlier one, so
9
11
  * two recreates never interleave their reassignment of the live session.
12
+ * - swap-during-pre-flight: {@link beginTurnOnLiveDriver} re-checks after the
13
+ * turn's async pre-flight, so a swap registered meanwhile cannot kill the
14
+ * driver the turn then dispatches onto.
10
15
  *
11
16
  * A single instance is scoped to one agent server. All methods are safe to call
12
17
  * even when nothing is in flight (they resolve immediately).
@@ -36,6 +41,18 @@ export declare class DriverSwapGate {
36
41
  * pending, or the swap and this turn wait on each other.
37
42
  */
38
43
  beginQueuedTurn(): Promise<() => void>;
44
+ /**
45
+ * Claim a turn slot on a driver no swap is about to replace. `prepare` is the
46
+ * turn's async pre-flight (the driver start); a swap that registers during it
47
+ * has already passed its turn wait, so the prompt waits that swap out and
48
+ * prepares again on the fresh driver instead of dispatching onto the one being
49
+ * killed. The slot is claimed in the same tick as the final check, so any later
50
+ * swap waits for the turn. A failed swap releases the waiter; a throwing
51
+ * `prepare` rejects with no slot claimed. Returns `endTurn`, as `beginTurn` does.
52
+ * Bounded like the driver start: swaps overtaking every attempt is pathological,
53
+ * and failing loudly beats spinning.
54
+ */
55
+ beginTurnOnLiveDriver(prepare: () => Promise<void>, maxAttempts?: number): Promise<() => void>;
39
56
  /** Whether a driver swap is registered and has not settled yet. */
40
57
  isSwapping(): boolean;
41
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"driver-swap-gate.d.ts","sourceRoot":"","sources":["../../../runner/src/driver-swap-gate.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAA8B;IACtD,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAoC;IACpD,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAoC;IAEpD;;;;;OAKG;IACH,SAAS,IAAI,MAAM,IAAI;IAcvB;;;;;;;;;OASG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;IAW5C,mEAAmE;IACnE,UAAU,IAAI,OAAO;IAIrB;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtC;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAgB9C;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAQxC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CASjC"}
1
+ {"version":3,"file":"driver-swap-gate.d.ts","sourceRoot":"","sources":["../../../runner/src/driver-swap-gate.ts"],"names":[],"mappings":"AAIA,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IACzB,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAA8B;IACtD,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAoC;IACpD,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAoC;IAEpD;;;;;OAKG;IACH,SAAS,IAAI,MAAM,IAAI;IAcvB;;;;;;;;;OASG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;IAW5C;;;;;;;;;;OAUG;IACG,qBAAqB,CACzB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC5B,WAAW,SAAqB,GAC/B,OAAO,CAAC,MAAM,IAAI,CAAC;IAStB,mEAAmE;IACnE,UAAU,IAAI,OAAO;IAIrB;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtC;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAgB9C;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAQxC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CASjC"}
@@ -40,6 +40,12 @@ export declare function resolveRecordSecretsStrict(record: Record<string, string
40
40
  * parse error, and the log redactor does not catch a key in a path segment.
41
41
  */
42
42
  export declare function resolveMcpUrl(decl: Pick<McpServerDeclaration, "id" | "url">, secrets: SecretProviderLike | undefined): URL;
43
+ /**
44
+ * Resolve a remote MCP server's `ca` (a PEM CA certificate, or a secret ref to
45
+ * one) into the PEM its connections must trust. `undefined` when no CA is
46
+ * pinned. Errors never carry the value: the PEM arrives like the token.
47
+ */
48
+ export declare function resolveMcpCa(decl: Pick<McpServerDeclaration, "id" | "ca">, secrets: SecretProviderLike | undefined): string | undefined;
43
49
  /**
44
50
  * Load the declarative MCP servers from `skaile.yaml` and resolve any
45
51
  * `recipe:` bindings into absolute `/nix/store` paths, substituting
@@ -1 +1 @@
1
- {"version":3,"file":"external-mcp.d.ts","sourceRoot":"","sources":["../../../runner/src/external-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external-mcp.d.ts","sourceRoot":"","sources":["../../../runner/src/external-mcp.ts"],"names":[],"mappings":"AAoCA,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAgBnE,wFAAwF;AACxF,qBAAa,+BAAgC,SAAQ,KAAK;aAC5B,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM;CAIvC;AAMD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAA;CAAE,GAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,KAAK,CAAC,EAC9C,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,GAAG,CAcL;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAC,EAC7C,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,MAAM,GAAG,SAAS,CAapB;AAaD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,UAAQ,GACnB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAwDjC;AA2GD,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC,CAAC;IACrD,QAAQ,CACN,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,EACD,YAAY,CAAC,EAAE,SAAS,EACxB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAExF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAQpD;AA+FD;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAkB;IAmB3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAlB3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAkB;IAE/C;;;;;;;;;;;OAWG;gBAEgB,QAAQ,EAAE,kBAAkB,EAC7C,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,kBAAkB,EAC5B,WAAW,CAAC,EAAE,eAAe;IAW/B,6EAA6E;IAC7E,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACG,KAAK,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAchE;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA2CzF;;;;;;;OAOG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C,uDAAuD;IACvD,WAAW,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ5F;;;;OAIG;YACW,iBAAiB;IAc/B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;YAOZ,oBAAoB;IAgClC;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAgE3B;;;;;;;;;OASG;IACG,OAAO,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBjE"}
@@ -0,0 +1,8 @@
1
+ import type { FetchLike } from "@modelcontextprotocol/sdk/shared/transport.js";
2
+ /**
3
+ * Build a fetch that trusts exactly `ca` for TLS. Only `https:` URLs are
4
+ * accepted: a CA pin on a plain-HTTP URL is a configuration error, not
5
+ * something to drop silently.
6
+ */
7
+ export declare function createPinnedCaFetch(ca: string): FetchLike;
8
+ //# sourceMappingURL=mcp-pinned-ca.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-pinned-ca.d.ts","sourceRoot":"","sources":["../../../runner/src/mcp-pinned-ca.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAO/E;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAczD"}
@@ -0,0 +1,51 @@
1
+ /** Who sent a chat prompt, as the `prompt` command named it. */
2
+ export interface PromptTurnOwner {
3
+ /** The sender's user id; a prompt without one is never dropped. */
4
+ readonly senderId?: string;
5
+ /** The prompt's receipt token, reported back when the prompt is dropped. */
6
+ readonly messageId?: string;
7
+ }
8
+ /** A waiting prompt that {@link PromptTurnQueue.dropQueuedFrom} removed. */
9
+ export interface DroppedPrompt {
10
+ readonly messageId?: string;
11
+ }
12
+ /** One chat prompt's place in the {@link PromptTurnQueue}. */
13
+ export interface PromptTurnPlace {
14
+ /** Whether an earlier prompt still held its place when this one joined. */
15
+ readonly queued: boolean;
16
+ /**
17
+ * Resolves once every earlier prompt has left the queue, or at once when
18
+ * this prompt is dropped. Never rejects. Check {@link dropped} after it.
19
+ */
20
+ readonly ready: Promise<void>;
21
+ /** True once a cancel dropped this prompt while it waited; it must not run. */
22
+ readonly dropped: boolean;
23
+ /** Leave the queue, so the next prompt may run. Idempotent. */
24
+ leave(): void;
25
+ }
26
+ /**
27
+ * FIFO of chat prompts on one agent server. A prompt joins synchronously on
28
+ * receipt, so the order is the arrival order, and waits for every earlier one
29
+ * to leave before its pre-flight (skill restage, driver start) and its turn.
30
+ *
31
+ * Only chat prompts join. Anything a running turn waits on (question replies,
32
+ * approvals, capability results, cancel) bypasses the queue, or the turn would
33
+ * wait on a command that waits on the turn. Flow turns keep the stimulus bus,
34
+ * which coalesces; a prompt routed to a flow leaves before it signals the bus.
35
+ */
36
+ export declare class PromptTurnQueue {
37
+ private readonly entries;
38
+ /** Take the next place. Call before the first `await` of the prompt's handler. */
39
+ join(owner?: PromptTurnOwner): PromptTurnPlace;
40
+ /**
41
+ * Drop every waiting prompt `senderId` sent, in queue order. The head is not
42
+ * waiting (its turn is the one a cancel aborts), and a prompt with no sender
43
+ * belongs to nobody a cancel can name, so neither is dropped.
44
+ */
45
+ dropQueuedFrom(senderId: string): DroppedPrompt[];
46
+ /** Prompts that joined and have not left yet; for diagnostics and tests. */
47
+ get size(): number;
48
+ private activate;
49
+ private remove;
50
+ }
51
+ //# sourceMappingURL=prompt-turn-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-turn-queue.d.ts","sourceRoot":"","sources":["../../../runner/src/prompt-turn-queue.ts"],"names":[],"mappings":"AAIA,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,KAAK,IAAI,IAAI,CAAC;CACf;AAUD;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,kFAAkF;IAClF,IAAI,CAAC,KAAK,GAAE,eAAoB,GAAG,eAAe;IAmBlD;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAYjD,4EAA4E;IAC5E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,MAAM;CAOf"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../runner/src/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../runner/src/serve.ts"],"names":[],"mappings":"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"}