@skaile/workspaces 0.8.5 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/CHANGELOG.md +75 -1
  2. package/README.md +2 -2
  3. package/dist/asset-manager/index.js +12 -12
  4. package/dist/asset-manager/installer.js +10 -10
  5. package/dist/asset-manager/renderers.js +2 -2
  6. package/dist/asset-manager/scaffold.js +10 -10
  7. package/dist/base-assets/connectors/deploy/adapter.d.ts +21 -19
  8. package/dist/base-assets/connectors/deploy/adapter.d.ts.map +1 -1
  9. package/dist/base-assets/connectors/deploy.js +10 -10
  10. package/dist/base-assets/connectors/devserver/adapter.d.ts +14 -12
  11. package/dist/base-assets/connectors/devserver/adapter.d.ts.map +1 -1
  12. package/dist/base-assets/connectors/devserver.js +10 -10
  13. package/dist/base-assets/connectors/flow/adapter.d.ts +13 -10
  14. package/dist/base-assets/connectors/flow/adapter.d.ts.map +1 -1
  15. package/dist/base-assets/connectors/flow/adapter.js +10 -10
  16. package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts +5 -167
  17. package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -1
  18. package/dist/base-assets/connectors/flow/engine.js +1 -1
  19. package/dist/base-assets/connectors/flow/index.d.ts +1 -1
  20. package/dist/base-assets/connectors/flow/index.d.ts.map +1 -1
  21. package/dist/base-assets/connectors/flow/run-flow.d.ts.map +1 -1
  22. package/dist/base-assets/connectors/flow/run-flow.js +12 -12
  23. package/dist/base-assets/connectors/flow.js +10 -10
  24. package/dist/base-assets/{mounts → connectors}/git/driver.d.ts +34 -32
  25. package/dist/base-assets/connectors/git/driver.d.ts.map +1 -0
  26. package/dist/base-assets/connectors/git.js +20 -0
  27. package/dist/base-assets/connectors/gmail/adapter.d.ts +16 -15
  28. package/dist/base-assets/connectors/gmail/adapter.d.ts.map +1 -1
  29. package/dist/base-assets/connectors/gmail.js +10 -10
  30. package/dist/base-assets/connectors/local/driver.d.ts +28 -0
  31. package/dist/base-assets/connectors/local/driver.d.ts.map +1 -0
  32. package/dist/base-assets/connectors/local.js +20 -0
  33. package/dist/base-assets/connectors/mattermost/adapter.d.ts +23 -22
  34. package/dist/base-assets/connectors/mattermost/adapter.d.ts.map +1 -1
  35. package/dist/base-assets/connectors/mattermost.js +10 -10
  36. package/dist/base-assets/connectors/memory/adapter.d.ts +18 -17
  37. package/dist/base-assets/connectors/memory/adapter.d.ts.map +1 -1
  38. package/dist/base-assets/connectors/memory.js +10 -10
  39. package/dist/base-assets/connectors/minio/adapter.d.ts +17 -16
  40. package/dist/base-assets/connectors/minio/adapter.d.ts.map +1 -1
  41. package/dist/base-assets/connectors/minio.js +10 -10
  42. package/dist/base-assets/connectors/postgres/adapter.d.ts +17 -21
  43. package/dist/base-assets/connectors/postgres/adapter.d.ts.map +1 -1
  44. package/dist/base-assets/connectors/postgres.js +10 -10
  45. package/dist/base-assets/connectors/redis/adapter.d.ts +19 -19
  46. package/dist/base-assets/connectors/redis/adapter.d.ts.map +1 -1
  47. package/dist/base-assets/connectors/redis.js +10 -10
  48. package/dist/base-assets/connectors/s3/driver.d.ts +46 -0
  49. package/dist/base-assets/connectors/s3/driver.d.ts.map +1 -0
  50. package/dist/base-assets/connectors/s3.js +20 -0
  51. package/dist/base-assets/connectors/sharepoint/driver.d.ts +34 -0
  52. package/dist/base-assets/connectors/sharepoint/driver.d.ts.map +1 -0
  53. package/dist/base-assets/connectors/sharepoint.js +20 -0
  54. package/dist/base-assets/connectors/sqlite/adapter.d.ts +16 -16
  55. package/dist/base-assets/connectors/sqlite/adapter.d.ts.map +1 -1
  56. package/dist/base-assets/connectors/sqlite.js +10 -10
  57. package/dist/base-assets/connectors/static-server/adapter.d.ts +16 -12
  58. package/dist/base-assets/connectors/static-server/adapter.d.ts.map +1 -1
  59. package/dist/base-assets/connectors/static-server.js +10 -10
  60. package/dist/base-assets/connectors/tunnel/adapter.d.ts +14 -12
  61. package/dist/base-assets/connectors/tunnel/adapter.d.ts.map +1 -1
  62. package/dist/base-assets/connectors/tunnel.js +10 -10
  63. package/dist/base-assets/connectors/webdav/driver.d.ts +35 -0
  64. package/dist/base-assets/connectors/webdav/driver.d.ts.map +1 -0
  65. package/dist/base-assets/connectors/webdav.js +20 -0
  66. package/dist/base-assets/connectors/xstate/adapter.d.ts +18 -16
  67. package/dist/base-assets/connectors/xstate/adapter.d.ts.map +1 -1
  68. package/dist/base-assets/connectors/xstate-store/adapter.d.ts +20 -19
  69. package/dist/base-assets/connectors/xstate-store/adapter.d.ts.map +1 -1
  70. package/dist/base-assets/connectors/xstate-store.js +10 -10
  71. package/dist/base-assets/connectors/xstate.js +10 -10
  72. package/dist/base-assets/connectors/yjs/adapter.d.ts +22 -21
  73. package/dist/base-assets/connectors/yjs/adapter.d.ts.map +1 -1
  74. package/dist/base-assets/connectors/yjs.js +10 -10
  75. package/dist/base-assets/index.js.map +1 -1
  76. package/dist/bridge/drivers/claude-sdk.js +215 -4
  77. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  78. package/dist/bridge/drivers/codex.js +2 -2
  79. package/dist/bridge/drivers/echo.js +2 -2
  80. package/dist/bridge/drivers/omp.js +2 -2
  81. package/dist/bridge/index.js +3 -3
  82. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  83. package/dist/bridge/src/drivers/scrub-transcript.d.ts +113 -0
  84. package/dist/bridge/src/drivers/scrub-transcript.d.ts.map +1 -0
  85. package/dist/bridge/src/types.d.ts +2 -2
  86. package/dist/bridge/src/types.d.ts.map +1 -1
  87. package/dist/{chunk-V37HONL7.js → chunk-24UIWON4.js} +61 -6
  88. package/dist/chunk-24UIWON4.js.map +1 -0
  89. package/dist/{chunk-JLPC4YWT.js → chunk-37JKX6D7.js} +3 -4
  90. package/dist/chunk-37JKX6D7.js.map +1 -0
  91. package/dist/{chunk-DOMCYP7D.js → chunk-42OQF7UU.js} +227 -21
  92. package/dist/chunk-42OQF7UU.js.map +1 -0
  93. package/dist/{chunk-65CYXYUW.js → chunk-4RUVG5GX.js} +50 -5
  94. package/dist/chunk-4RUVG5GX.js.map +1 -0
  95. package/dist/{chunk-MJHLQRJJ.js → chunk-5IC6CJL4.js} +11 -29
  96. package/dist/chunk-5IC6CJL4.js.map +1 -0
  97. package/dist/{chunk-GVOLEJG5.js → chunk-6DEGWPAR.js} +3 -3
  98. package/dist/{chunk-GVOLEJG5.js.map → chunk-6DEGWPAR.js.map} +1 -1
  99. package/dist/{chunk-7HLNUSNE.js → chunk-6FNCZYJY.js} +3 -3
  100. package/dist/{chunk-7HLNUSNE.js.map → chunk-6FNCZYJY.js.map} +1 -1
  101. package/dist/{chunk-D5IH3QMH.js → chunk-7R6W5EQR.js} +20 -19
  102. package/dist/chunk-7R6W5EQR.js.map +1 -0
  103. package/dist/{chunk-MBBTBKAS.js → chunk-AE6GCXGL.js} +3 -3
  104. package/dist/{chunk-MBBTBKAS.js.map → chunk-AE6GCXGL.js.map} +1 -1
  105. package/dist/{chunk-TS6VCR4W.js → chunk-DIKFRNCS.js} +3 -3
  106. package/dist/{chunk-TS6VCR4W.js.map → chunk-DIKFRNCS.js.map} +1 -1
  107. package/dist/{chunk-7HCGI2GW.js → chunk-DTL7S57T.js} +37 -29
  108. package/dist/chunk-DTL7S57T.js.map +1 -0
  109. package/dist/{chunk-7H7EOIRH.js → chunk-EBMFCF4P.js} +2 -2
  110. package/dist/{chunk-7H7EOIRH.js.map → chunk-EBMFCF4P.js.map} +1 -1
  111. package/dist/{chunk-3W7Z74ZP.js → chunk-EPGHAOEU.js} +5856 -5822
  112. package/dist/chunk-EPGHAOEU.js.map +1 -0
  113. package/dist/{chunk-CSUBFKAN.js → chunk-GAZINYCS.js} +4 -4
  114. package/dist/{chunk-CSUBFKAN.js.map → chunk-GAZINYCS.js.map} +1 -1
  115. package/dist/{chunk-Y46TBPLI.js → chunk-GCJXPUHG.js} +3 -3
  116. package/dist/{chunk-Y46TBPLI.js.map → chunk-GCJXPUHG.js.map} +1 -1
  117. package/dist/{chunk-46T37EBP.js → chunk-GKIA2PU5.js} +7 -35
  118. package/dist/chunk-GKIA2PU5.js.map +1 -0
  119. package/dist/{chunk-EE3XTJ62.js → chunk-I3S4BAAR.js} +7 -7
  120. package/dist/{chunk-EE3XTJ62.js.map → chunk-I3S4BAAR.js.map} +1 -1
  121. package/dist/{chunk-ZUQIXLRJ.js → chunk-ICS76R4T.js} +14 -14
  122. package/dist/chunk-ICS76R4T.js.map +1 -0
  123. package/dist/{chunk-CCKGX5AS.js → chunk-K3TMZI6D.js} +3 -3
  124. package/dist/{chunk-CCKGX5AS.js.map → chunk-K3TMZI6D.js.map} +1 -1
  125. package/dist/{chunk-AIGWF3TJ.js → chunk-LDUNTZB6.js} +46 -4
  126. package/dist/chunk-LDUNTZB6.js.map +1 -0
  127. package/dist/{chunk-UMMBL7SW.js → chunk-M2NLRGIX.js} +5 -5
  128. package/dist/{chunk-UMMBL7SW.js.map → chunk-M2NLRGIX.js.map} +1 -1
  129. package/dist/{chunk-Z3RER6YZ.js → chunk-NELZIQ2E.js} +42 -42
  130. package/dist/chunk-NELZIQ2E.js.map +1 -0
  131. package/dist/chunk-PBWMV5GM.js +171 -0
  132. package/dist/chunk-PBWMV5GM.js.map +1 -0
  133. package/dist/{chunk-NYJKXVG6.js → chunk-QZ6PY73K.js} +160 -188
  134. package/dist/chunk-QZ6PY73K.js.map +1 -0
  135. package/dist/chunk-R7FOF242.js +59 -0
  136. package/dist/chunk-R7FOF242.js.map +1 -0
  137. package/dist/{chunk-XEGHWFAX.js → chunk-SVNFQSU3.js} +5 -10
  138. package/dist/chunk-SVNFQSU3.js.map +1 -0
  139. package/dist/{chunk-44ZICIN4.js → chunk-TODD4VNR.js} +9 -3
  140. package/dist/chunk-TODD4VNR.js.map +1 -0
  141. package/dist/{chunk-77CUYYO3.js → chunk-VAJB2UJ5.js} +5 -5
  142. package/dist/{chunk-77CUYYO3.js.map → chunk-VAJB2UJ5.js.map} +1 -1
  143. package/dist/{chunk-Q5URN24L.js → chunk-W75ASXH4.js} +23 -27
  144. package/dist/chunk-W75ASXH4.js.map +1 -0
  145. package/dist/{chunk-5CSE3QL2.js → chunk-XIVOEUAF.js} +5 -5
  146. package/dist/{chunk-5CSE3QL2.js.map → chunk-XIVOEUAF.js.map} +1 -1
  147. package/dist/{chunk-BVHFSUFM.js → chunk-ZHLRRT5D.js} +4 -25
  148. package/dist/chunk-ZHLRRT5D.js.map +1 -0
  149. package/dist/{chunk-6UQ66R46.js → chunk-ZWIG55ZX.js} +2 -2
  150. package/dist/{chunk-6UQ66R46.js.map → chunk-ZWIG55ZX.js.map} +1 -1
  151. package/dist/cli/index.js +321 -300
  152. package/dist/cli/index.js.map +1 -1
  153. package/dist/cli/src/commands/connector.d.ts +2 -1
  154. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  155. package/dist/cli/src/commands/logs.d.ts.map +1 -1
  156. package/dist/cli/src/commands/project.d.ts +73 -3
  157. package/dist/cli/src/commands/project.d.ts.map +1 -1
  158. package/dist/cli/src/commands/session-logs/local-query.d.ts +3 -4
  159. package/dist/cli/src/commands/session-logs/local-query.d.ts.map +1 -1
  160. package/dist/cli/src/commands/session-logs/local-tail.d.ts +0 -3
  161. package/dist/cli/src/commands/session-logs/local-tail.d.ts.map +1 -1
  162. package/dist/cli/src/commands/session-logs/sqlite-row.d.ts +0 -26
  163. package/dist/cli/src/commands/session-logs/sqlite-row.d.ts.map +1 -1
  164. package/dist/cli/src/index.d.ts +1 -1
  165. package/dist/connectors/config.js +7 -7
  166. package/dist/connectors/index.js +10 -10
  167. package/dist/connectors/rclone.js +1 -1
  168. package/dist/connectors/src/config.d.ts +9 -10
  169. package/dist/connectors/src/config.d.ts.map +1 -1
  170. package/dist/connectors/src/connector-base.d.ts +23 -0
  171. package/dist/connectors/src/connector-base.d.ts.map +1 -0
  172. package/dist/connectors/src/connector-manager.d.ts +158 -58
  173. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  174. package/dist/connectors/src/connector-prompt.d.ts +72 -0
  175. package/dist/connectors/src/connector-prompt.d.ts.map +1 -0
  176. package/dist/connectors/src/connector-registry.d.ts +34 -35
  177. package/dist/connectors/src/connector-registry.d.ts.map +1 -1
  178. package/dist/connectors/src/connector-types.d.ts +147 -60
  179. package/dist/connectors/src/connector-types.d.ts.map +1 -1
  180. package/dist/connectors/src/index.d.ts +17 -23
  181. package/dist/connectors/src/index.d.ts.map +1 -1
  182. package/dist/connectors/src/npm-installer.d.ts +2 -2
  183. package/dist/connectors/src/npm-installer.d.ts.map +1 -1
  184. package/dist/connectors/src/rclone-process-manager.d.ts +1 -1
  185. package/dist/connectors/src/secrets.d.ts +3 -3
  186. package/dist/connectors/src/watcher.d.ts +3 -3
  187. package/dist/connectors/src/watcher.d.ts.map +1 -1
  188. package/dist/connectors-PTCSHCHZ.js +5 -0
  189. package/dist/{connectors-7WS2KOSZ.js.map → connectors-PTCSHCHZ.js.map} +1 -1
  190. package/dist/core/index.js +6 -6
  191. package/dist/core/logging.js +1 -1
  192. package/dist/core/manifest.js +2 -2
  193. package/dist/core/models.js +1 -1
  194. package/dist/core/runtime-assets.js +4 -4
  195. package/dist/core/src/index.d.ts +4 -2
  196. package/dist/core/src/index.d.ts.map +1 -1
  197. package/dist/core/src/logging/index.d.ts +2 -0
  198. package/dist/core/src/logging/index.d.ts.map +1 -1
  199. package/dist/core/src/logging/sinks/sqlite-runtime.d.ts +24 -0
  200. package/dist/core/src/logging/sinks/sqlite-runtime.d.ts.map +1 -0
  201. package/dist/core/src/logging/sinks/sqlite-sink.d.ts.map +1 -1
  202. package/dist/core/src/manifest.d.ts +2 -23
  203. package/dist/core/src/manifest.d.ts.map +1 -1
  204. package/dist/core/src/models.d.ts +1 -1
  205. package/dist/core/src/models.d.ts.map +1 -1
  206. package/dist/core/src/runtime-assets.d.ts +12 -13
  207. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  208. package/dist/core/src/subprocess.d.ts +35 -0
  209. package/dist/core/src/subprocess.d.ts.map +1 -0
  210. package/dist/core/src/workspace-config.d.ts +32 -10
  211. package/dist/core/src/workspace-config.d.ts.map +1 -1
  212. package/dist/core/workspace-config.js +3 -3
  213. package/dist/discovery/index.js +4 -4
  214. package/dist/discovery/src/builtin-providers.d.ts +5 -4
  215. package/dist/discovery/src/builtin-providers.d.ts.map +1 -1
  216. package/dist/discovery/src/index.d.ts +1 -1
  217. package/dist/discovery/src/index.d.ts.map +1 -1
  218. package/dist/discovery/src/source-config.d.ts +24 -233
  219. package/dist/discovery/src/source-config.d.ts.map +1 -1
  220. package/dist/{flows-ZULSVHX5.js → flows-6BNO4GKK.js} +3 -3
  221. package/dist/{flows-ZULSVHX5.js.map → flows-6BNO4GKK.js.map} +1 -1
  222. package/dist/library/index.js +6 -5
  223. package/dist/library/src/config.d.ts +25 -77
  224. package/dist/library/src/config.d.ts.map +1 -1
  225. package/dist/library/src/index.d.ts +2 -0
  226. package/dist/library/src/index.d.ts.map +1 -1
  227. package/dist/library/src/install/install-from-manifest.d.ts +80 -0
  228. package/dist/library/src/install/install-from-manifest.d.ts.map +1 -0
  229. package/dist/library/src/install/source-fetch-github.d.ts +43 -0
  230. package/dist/library/src/install/source-fetch-github.d.ts.map +1 -0
  231. package/dist/library/src/knowledge/knowledge-manifest.d.ts +3 -17
  232. package/dist/library/src/knowledge/knowledge-manifest.d.ts.map +1 -1
  233. package/dist/library/src/library.d.ts +6 -0
  234. package/dist/library/src/library.d.ts.map +1 -1
  235. package/dist/library/src/local/db.d.ts.map +1 -1
  236. package/dist/library/src/local/library.d.ts +41 -0
  237. package/dist/library/src/local/library.d.ts.map +1 -1
  238. package/dist/library/src/local/schema.d.ts +19 -0
  239. package/dist/library/src/local/schema.d.ts.map +1 -1
  240. package/dist/library/src/remote/remote-catalog-source.d.ts +22 -0
  241. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  242. package/dist/library/src/user-library.d.ts +1 -2
  243. package/dist/library/src/user-library.d.ts.map +1 -1
  244. package/dist/library/src/workspace-config.d.ts +45 -243
  245. package/dist/library/src/workspace-config.d.ts.map +1 -1
  246. package/dist/open-library-S6FK4N4S.js +13 -0
  247. package/dist/{open-library-N5T5HRTS.js.map → open-library-S6FK4N4S.js.map} +1 -1
  248. package/dist/{provider-QXKEDXWJ.js → provider-GAWKFQ3T.js} +20 -4
  249. package/dist/provider-GAWKFQ3T.js.map +1 -0
  250. package/dist/runner/index.js +15 -15
  251. package/dist/runner/src/builtin-capabilities.d.ts.map +1 -1
  252. package/dist/runner/src/define-capability.d.ts +1 -1
  253. package/dist/runner/src/define-capability.d.ts.map +1 -1
  254. package/dist/runner/src/refresh-flag-dispatcher.d.ts +20 -20
  255. package/dist/runner/src/refresh-flag-dispatcher.d.ts.map +1 -1
  256. package/dist/runner/src/resource-handler.d.ts +8 -6
  257. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  258. package/dist/runner/src/resources.d.ts +14 -22
  259. package/dist/runner/src/resources.d.ts.map +1 -1
  260. package/dist/runner/src/runner-capabilities.d.ts.map +1 -1
  261. package/dist/runner/src/serve.d.ts.map +1 -1
  262. package/dist/runner/src/session-builder.d.ts +5 -7
  263. package/dist/runner/src/session-builder.d.ts.map +1 -1
  264. package/dist/runner/src/workspace-migration.d.ts +2 -2
  265. package/dist/runner/src/workspace-migration.d.ts.map +1 -1
  266. package/dist/sdk/asset-manager.js +12 -12
  267. package/dist/sdk/bridge.js +3 -3
  268. package/dist/sdk/core.js +6 -6
  269. package/dist/sdk/flow.js +1 -1
  270. package/dist/sdk/index.js +15 -15
  271. package/dist/sdk/runner.js +15 -15
  272. package/dist/sdk/session.js +1 -1
  273. package/dist/sdk/telemetry.js +1 -1
  274. package/dist/sdk/transport/ws/server.js +1 -1
  275. package/dist/sdk/transport/ws.js +1 -1
  276. package/dist/sdk/transport.js +1 -1
  277. package/dist/session/index.js +1 -1
  278. package/dist/session/src/dispatcher.d.ts +4 -1
  279. package/dist/session/src/dispatcher.d.ts.map +1 -1
  280. package/dist/{setup-BMTC562F.js → setup-PHFPBDBI.js} +10 -10
  281. package/dist/{setup-BMTC562F.js.map → setup-PHFPBDBI.js.map} +1 -1
  282. package/dist/source-fetch-github-QN4LLTL5.js +4 -0
  283. package/dist/source-fetch-github-QN4LLTL5.js.map +1 -0
  284. package/dist/store-client-BM3IBDPT.js +14 -0
  285. package/dist/{store-client-X7Y7D5QX.js.map → store-client-BM3IBDPT.js.map} +1 -1
  286. package/dist/telemetry/index.js +1 -1
  287. package/dist/transport/index.js +1 -1
  288. package/dist/transport/src/ws/server.d.ts +11 -8
  289. package/dist/transport/src/ws/server.d.ts.map +1 -1
  290. package/dist/transport/ws/server.js +1 -1
  291. package/dist/transport/ws.js +1 -1
  292. package/dist/tui/index.js +16 -25
  293. package/dist/tui/index.js.map +1 -1
  294. package/dist/tui/src/repl.d.ts.map +1 -1
  295. package/dist/types/manifests.js +1 -1
  296. package/dist/types/src/events.d.ts +6 -1
  297. package/dist/types/src/events.d.ts.map +1 -1
  298. package/dist/types/src/index.d.ts +1 -0
  299. package/dist/types/src/index.d.ts.map +1 -1
  300. package/dist/types/src/install-manifest.d.ts +33 -0
  301. package/dist/types/src/install-manifest.d.ts.map +1 -0
  302. package/dist/types/src/manifests/_shared.d.ts +39 -100
  303. package/dist/types/src/manifests/_shared.d.ts.map +1 -1
  304. package/dist/types/src/manifests/agent.d.ts +43 -248
  305. package/dist/types/src/manifests/agent.d.ts.map +1 -1
  306. package/dist/types/src/manifests/connector.d.ts +7 -107
  307. package/dist/types/src/manifests/connector.d.ts.map +1 -1
  308. package/dist/types/src/manifests/contract.d.ts +10 -75
  309. package/dist/types/src/manifests/contract.d.ts.map +1 -1
  310. package/dist/types/src/manifests/mcp-server.d.ts +9 -29
  311. package/dist/types/src/manifests/mcp-server.d.ts.map +1 -1
  312. package/dist/types/src/manifests/mount.d.ts +4 -76
  313. package/dist/types/src/manifests/mount.d.ts.map +1 -1
  314. package/dist/types/src/manifests/persona.d.ts +10 -75
  315. package/dist/types/src/manifests/persona.d.ts.map +1 -1
  316. package/dist/types/src/manifests/preset.d.ts +82 -642
  317. package/dist/types/src/manifests/preset.d.ts.map +1 -1
  318. package/dist/types/src/manifests/prompt.d.ts +10 -75
  319. package/dist/types/src/manifests/prompt.d.ts.map +1 -1
  320. package/dist/types/src/manifests/ruleset.d.ts +10 -75
  321. package/dist/types/src/manifests/ruleset.d.ts.map +1 -1
  322. package/dist/types/src/manifests/skill.d.ts +46 -2328
  323. package/dist/types/src/manifests/skill.d.ts.map +1 -1
  324. package/dist/validator-47SQUW3J.js +5 -0
  325. package/dist/{validator-764EQNM3.js.map → validator-47SQUW3J.js.map} +1 -1
  326. package/dist/workspace-plugin/adapters/mcp.js +8 -9
  327. package/dist/workspace-plugin/adapters/mcp.js.map +1 -1
  328. package/dist/workspace-plugin/adapters/omp.js +19 -18
  329. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  330. package/dist/workspace-plugin/index.js +2 -2
  331. package/dist/workspace-plugin/src/adapters/mcp.d.ts.map +1 -1
  332. package/dist/workspace-plugin/src/adapters/omp.d.ts.map +1 -1
  333. package/dist/workspace-plugin/src/plugin.d.ts +5 -3
  334. package/dist/workspace-plugin/src/plugin.d.ts.map +1 -1
  335. package/dist/workspace-plugin/src/tools/connectors.d.ts +38 -0
  336. package/dist/workspace-plugin/src/tools/connectors.d.ts.map +1 -1
  337. package/dist/workspace-plugin/src/tools/validator.d.ts +6 -4
  338. package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
  339. package/package.json +217 -117
  340. package/dist/base-assets/mounts/git/driver.d.ts.map +0 -1
  341. package/dist/base-assets/mounts/git.js +0 -20
  342. package/dist/base-assets/mounts/local/driver.d.ts +0 -27
  343. package/dist/base-assets/mounts/local/driver.d.ts.map +0 -1
  344. package/dist/base-assets/mounts/local.js +0 -20
  345. package/dist/base-assets/mounts/s3/driver.d.ts +0 -27
  346. package/dist/base-assets/mounts/s3/driver.d.ts.map +0 -1
  347. package/dist/base-assets/mounts/s3.js +0 -20
  348. package/dist/base-assets/mounts/sharepoint/driver.d.ts +0 -31
  349. package/dist/base-assets/mounts/sharepoint/driver.d.ts.map +0 -1
  350. package/dist/base-assets/mounts/sharepoint.js +0 -20
  351. package/dist/base-assets/mounts/webdav/driver.d.ts +0 -32
  352. package/dist/base-assets/mounts/webdav/driver.d.ts.map +0 -1
  353. package/dist/base-assets/mounts/webdav.js +0 -20
  354. package/dist/chunk-3W7Z74ZP.js.map +0 -1
  355. package/dist/chunk-44ZICIN4.js.map +0 -1
  356. package/dist/chunk-46T37EBP.js.map +0 -1
  357. package/dist/chunk-65CYXYUW.js.map +0 -1
  358. package/dist/chunk-7HCGI2GW.js.map +0 -1
  359. package/dist/chunk-AIGWF3TJ.js.map +0 -1
  360. package/dist/chunk-BVHFSUFM.js.map +0 -1
  361. package/dist/chunk-D5IH3QMH.js.map +0 -1
  362. package/dist/chunk-DOMCYP7D.js.map +0 -1
  363. package/dist/chunk-JLPC4YWT.js.map +0 -1
  364. package/dist/chunk-MJHLQRJJ.js.map +0 -1
  365. package/dist/chunk-NYJKXVG6.js.map +0 -1
  366. package/dist/chunk-Q5URN24L.js.map +0 -1
  367. package/dist/chunk-QT2KQHDT.js +0 -49
  368. package/dist/chunk-QT2KQHDT.js.map +0 -1
  369. package/dist/chunk-V37HONL7.js.map +0 -1
  370. package/dist/chunk-XEGHWFAX.js.map +0 -1
  371. package/dist/chunk-XOSBNBB6.js +0 -155
  372. package/dist/chunk-XOSBNBB6.js.map +0 -1
  373. package/dist/chunk-Z3RER6YZ.js.map +0 -1
  374. package/dist/chunk-ZUQIXLRJ.js.map +0 -1
  375. package/dist/cli/src/commands/mount.d.ts +0 -22
  376. package/dist/cli/src/commands/mount.d.ts.map +0 -1
  377. package/dist/connectors/src/adapters/base.d.ts +0 -66
  378. package/dist/connectors/src/adapters/base.d.ts.map +0 -1
  379. package/dist/connectors/src/connector-tools.d.ts +0 -61
  380. package/dist/connectors/src/connector-tools.d.ts.map +0 -1
  381. package/dist/connectors/src/drivers/base.d.ts +0 -44
  382. package/dist/connectors/src/drivers/base.d.ts.map +0 -1
  383. package/dist/connectors/src/mount-manager.d.ts +0 -147
  384. package/dist/connectors/src/mount-manager.d.ts.map +0 -1
  385. package/dist/connectors/src/mount-prompt.d.ts +0 -13
  386. package/dist/connectors/src/mount-prompt.d.ts.map +0 -1
  387. package/dist/connectors/src/mount-registry.d.ts +0 -61
  388. package/dist/connectors/src/mount-registry.d.ts.map +0 -1
  389. package/dist/connectors/src/mount-types.d.ts +0 -222
  390. package/dist/connectors/src/mount-types.d.ts.map +0 -1
  391. package/dist/connectors-7WS2KOSZ.js +0 -5
  392. package/dist/mounts-PQLFYD2C.js +0 -5
  393. package/dist/mounts-PQLFYD2C.js.map +0 -1
  394. package/dist/open-library-N5T5HRTS.js +0 -12
  395. package/dist/provider-QXKEDXWJ.js.map +0 -1
  396. package/dist/store-client-X7Y7D5QX.js +0 -14
  397. package/dist/validator-764EQNM3.js +0 -5
  398. package/dist/workspace-plugin/src/tools/mounts.d.ts +0 -51
  399. package/dist/workspace-plugin/src/tools/mounts.d.ts.map +0 -1
  400. /package/dist/base-assets/{mounts → connectors}/git.js.map +0 -0
  401. /package/dist/base-assets/{mounts → connectors}/local.js.map +0 -0
  402. /package/dist/base-assets/{mounts → connectors}/s3.js.map +0 -0
  403. /package/dist/base-assets/{mounts → connectors}/sharepoint.js.map +0 -0
  404. /package/dist/base-assets/{mounts → connectors}/webdav.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../core/src/models.ts"],"names":[],"mappings":"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","file":"chunk-JLPC4YWT.js","sourcesContent":["/**\n * Pure data models — no I/O, no side effects.\n */\n\n/**\n * Discriminator for catalog entries and asset references.\n * Used in asset ref strings (e.g. `'skill:my-skill'`, `'agent:my-agent'`).\n * @docLink packages/core/concepts#asset-kind\n */\nexport type AssetKind =\n | \"skill\"\n | \"agent\"\n | \"prompt\"\n | \"bundle\"\n | \"flow\"\n | \"contract\"\n | \"mcp-server\"\n | \"persona\" // identity fragment — replaces SOUL.md in composition\n | \"ruleset\" // behavioral constraints — replaces RULES.md in composition\n | \"knowledge\" // knowledge bundle directory\n | \"connector\" // connector descriptor (CONNECTOR.md)\n | \"mount\"; // mount descriptor (MOUNT.md)\n\n/**\n * All valid AssetKind values as a readonly array.\n * @docLink packages/core/concepts#asset-kinds\n */\nexport const ASSET_KINDS: readonly AssetKind[] = [\n \"skill\",\n \"agent\",\n \"prompt\",\n \"bundle\",\n \"flow\",\n \"contract\",\n \"mcp-server\",\n \"persona\",\n \"ruleset\",\n \"knowledge\",\n \"connector\",\n \"mount\",\n];\n/**\n * Asset kinds that represent individually installable assets (excludes \"bundle\").\n * Note: persona, ruleset, and knowledge are valid AssetKind values but are not\n * individually installable — they are resolved at session creation time via the\n * mixin-resolver, not through the install/deploy pipeline.\n * @docLink packages/core/concepts#individual-kinds\n */\nexport const INDIVIDUAL_KINDS = [\n \"skill\",\n \"agent\",\n \"prompt\",\n \"flow\",\n \"contract\",\n \"mcp-server\",\n] as const satisfies AssetKind[];\n\n// ── Dependency ────────────────────────────────────────────────────────────────\n\n/**\n * Declared dependency on another catalog asset.\n * @docLink packages/core/concepts#dependency\n */\nexport interface Dependency {\n /** Asset kind (e.g. \"skill\", \"agent\", \"contract\"). */\n kind: string;\n /** Asset name within that kind. */\n name: string;\n}\n\n/**\n * Parse a `\"kind:name\"` dependency string, or a bare `\"name\"` (defaults kind to `\"skill\"`).\n *\n * @param s - Dependency string, e.g. `\"skill:use-exa\"` or `\"use-exa\"`\n * @returns Parsed `{ kind, name }` dependency object\n * @docLink packages/core/concepts#parse-dep\n */\nexport function parseDep(s: string): Dependency {\n const i = s.indexOf(\":\");\n if (i !== -1) {\n const kind = s.slice(0, i).trim();\n const name = s.slice(i + 1).trim();\n return { kind, name };\n }\n return { kind: \"skill\", name: s.trim() };\n}\n\n/**\n * Serialize a Dependency back to its `\"kind:name\"` string form.\n *\n * @param d - Dependency to serialize\n * @returns String in `\"kind:name\"` format\n * @docLink packages/core/concepts#dep-to-str\n */\nexport function depToStr(d: Dependency): string {\n return `${d.kind}:${d.name}`;\n}\n\n// ── CatalogEntry ──────────────────────────────────────────────────────────────\n\n/**\n * A resolved catalog entry describing an installable asset.\n * Produced by manifest parsers and stored in the catalog YAML.\n * @docLink packages/core/concepts#catalog-entry\n */\nexport interface CatalogEntry {\n /** Unique asset name within its kind. */\n name: string;\n /** Asset kind discriminator. */\n kind: AssetKind;\n /** Short description of what this asset does. */\n description: string;\n /** Absolute path to manifest file */\n source: string;\n /** Originating repository name */\n repository?: string;\n /** Domain this asset belongs to (top-level directory in the repo root). */\n domain?: string;\n /** Semantic version string (may be empty if not declared in the manifest). */\n version: string;\n /** Skills, agents, or other assets this entry depends on. */\n requires: Dependency[];\n /** Bundle dependencies — asset refs to install (bundles only). */\n dependencies: string[];\n /**\n * Kind-specific metadata extracted from the manifest frontmatter.\n * Used by MCP servers to carry default config (transport, command, args, env, url, headers)\n * so that `mcp:name` dependency refs resolve to a runnable declaration without\n * requiring verbose inline config in `skaile.yaml`.\n */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Construct a CatalogEntry from a raw deserialized record (e.g. from catalog.yaml).\n *\n * @param d - Raw object with loosely typed fields\n * @returns Normalized CatalogEntry\n * @docLink packages/core/concepts#entry-from-raw\n */\nexport function entryFromRaw(d: Record<string, unknown>): CatalogEntry {\n const rawDeps = d.dependencies;\n const deps = Array.isArray(rawDeps) ? (rawDeps as string[]).filter(Boolean) : [];\n const entry: CatalogEntry = {\n name: String(d.name ?? \"\"),\n kind: String(d.kind ?? \"skill\") as AssetKind,\n description: String(d.description ?? \"\"),\n source: String(d.source ?? \"\"),\n repository: d.repository != null ? String(d.repository) : undefined,\n domain: d.domain != null ? String(d.domain) : undefined,\n version: String(d.version ?? \"\"),\n requires: Array.isArray(d.requires)\n ? (d.requires as string[]).filter(Boolean).map(parseDep)\n : [],\n dependencies: deps,\n };\n if (d.metadata != null && typeof d.metadata === \"object\" && !Array.isArray(d.metadata)) {\n entry.metadata = d.metadata as Record<string, unknown>;\n }\n return entry;\n}\n\n/**\n * Serialize a CatalogEntry to a plain record suitable for YAML/JSON persistence.\n *\n * @param e - CatalogEntry to serialize\n * @returns Plain object with string-serialized requires and dependencies\n * @docLink packages/core/concepts#entry-to-raw\n */\nexport function entryToRaw(e: CatalogEntry): Record<string, unknown> {\n const raw: Record<string, unknown> = {\n name: e.name,\n kind: e.kind,\n description: e.description,\n source: e.source,\n repository: e.repository,\n domain: e.domain,\n version: e.version,\n requires: e.requires.map(depToStr),\n dependencies: e.dependencies,\n };\n if (e.metadata) raw.metadata = e.metadata;\n return raw;\n}\n\n// ── AssetRef ─────────────────────────────────────────────────────────────────\n\n/**\n * A parsed asset reference: `kind:name[@repository][#pin]`.\n * Produced by `parseAssetRef`; consumed by `resolveAsset` and `resolveAll`.\n * @docLink packages/core/concepts#asset-ref\n */\nexport interface AssetRef {\n kind: string;\n name: string;\n /** Optional repository qualifier (from skaile.yaml repositories section). */\n repository?: string;\n /** Optional pin: git tag, commit SHA, or branch name. */\n pin?: string;\n}\n\n/**\n * Parse an asset reference string into an `AssetRef` object.\n *\n * Formats:\n * \"skill:overview\" → { kind: \"skill\", name: \"overview\" }\n * \"skill:overview@skaile-ai\" → { kind: \"skill\", name: \"overview\", repository: \"skaile-ai\" }\n * \"skill:overview@skaile-ai#v2.1.0\" → { kind: \"skill\", name: \"overview\", repository: \"skaile-ai\", pin: \"v2.1.0\" }\n * \"overview\" → { kind: \"skill\", name: \"overview\" }\n *\n * The shorthand `mcp:` is normalized to `mcp-server:`.\n *\n * @param s - Asset reference string\n * @returns Parsed `AssetRef`\n * @docLink packages/core/concepts#parse-asset-ref\n */\nexport function parseAssetRef(s: string): AssetRef {\n let rest = s.trim();\n let kind = \"skill\";\n\n // Extract kind: prefix\n const colonIdx = rest.indexOf(\":\");\n if (colonIdx !== -1) {\n kind = rest.slice(0, colonIdx).trim();\n rest = rest.slice(colonIdx + 1).trim();\n }\n\n // Normalize shorthand aliases\n if (kind === \"mcp\") kind = \"mcp-server\";\n\n // Extract #pin suffix\n let pin: string | undefined;\n const hashIdx = rest.indexOf(\"#\");\n if (hashIdx !== -1) {\n pin = rest.slice(hashIdx + 1).trim() || undefined;\n rest = rest.slice(0, hashIdx).trim();\n }\n\n // Extract @repository suffix\n let repository: string | undefined;\n const atIdx = rest.indexOf(\"@\");\n if (atIdx !== -1) {\n repository = rest.slice(atIdx + 1).trim() || undefined;\n rest = rest.slice(0, atIdx).trim();\n }\n\n return { kind, name: rest, repository, pin };\n}\n\n/**\n * Serialize an AssetRef back to its canonical string form.\n *\n * @param ref - AssetRef to serialize\n * @returns String in `\"kind:name[@repository][#pin]\"` format\n * @docLink packages/core/concepts#asset-ref-to-str\n */\nexport function assetRefToStr(ref: AssetRef): string {\n let s = `${ref.kind}:${ref.name}`;\n if (ref.repository) s += `@${ref.repository}`;\n if (ref.pin) s += `#${ref.pin}`;\n return s;\n}\n\n/**\n * Convert an AssetRef to a simple Dependency, dropping the repository and pin qualifiers.\n *\n * @param ref - Full asset reference (may include repository and pin)\n * @returns Dependency with only kind and name\n * @docLink packages/core/concepts#asset-ref-to-dep\n */\nexport function assetRefToDep(ref: AssetRef): Dependency {\n return { kind: ref.kind, name: ref.name };\n}\n\n// ── Lock File ────────────────────────────────────────────────────────────────\n\n/**\n * Repository entry recorded in the lock file.\n * Captures the source URL or path, branch, and resolved HEAD commit.\n * @docLink packages/core/api-reference#lock-repository\n */\nexport interface LockRepository {\n /** Remote git URL (for cloned repos). */\n url?: string;\n /** Local filesystem path (for path repos). */\n path?: string;\n /** Branch that was locked. */\n branch: string;\n /** HEAD commit SHA at lock time. */\n commit?: string;\n}\n\n/**\n * Per-asset entry in the lock file.\n * Records the resolved version, repo source, content integrity hash, and resolution provenance.\n * @docLink packages/core/api-reference#lock-entry\n */\nexport interface LockEntry {\n /** Semver version at lock time. */\n version: string;\n /** Name of the repository this asset was resolved from. */\n repository: string;\n /** Path to manifest relative to repo root. */\n source: string;\n /** Domain this asset belongs to (top-level directory in the repo root). */\n domain?: string;\n /** SHA-256 hash of manifest content. */\n integrity: string;\n /** What caused this asset to be included: \"direct\" or \"kind:name\" of parent. */\n resolved_by: string;\n}\n\n/**\n * Full skaile.lock.yaml structure.\n * Captures the complete resolved state of all asset dependencies at install time.\n * @docLink packages/core/api-reference#lock-file\n */\nexport interface LockFile {\n /** Lock file schema version. */\n lockfile_version: number;\n /** ISO timestamp of when the lock was generated. */\n locked_at: string;\n /** Repositories declared in skaile.yaml, with their locked commits. */\n repositories: Record<string, LockRepository>;\n /** All resolved assets keyed by \"kind:name\". */\n assets: Record<string, LockEntry>;\n}\n\n// ── AgentManifest ────────────────────────────────────────────────────────────\n\n/**\n * Agent package manifest — parsed from `agent.yaml` in an agent directory.\n * Defines the agent's identity, model preferences, capability requirements, and composition mixins.\n * @docLink packages/core/concepts#agent-manifest\n */\nexport interface AgentManifest {\n spec_version?: string;\n name?: string;\n version?: string;\n description?: string;\n model?: {\n preferred?: string;\n fallback?: string[];\n constraints?: { temperature?: number; max_tokens?: number };\n };\n tools?: {\n allowed?: string[];\n denied?: string[];\n };\n delegation?: { mode?: string };\n requires?: Array<{ name: string; source: string; version?: string; mount: string }>;\n tags?: string[];\n author?: string;\n metadata?: Record<string, unknown>;\n /**\n * @deprecated Use `persona`, `rules`, and `knowledge` mixin arrays instead.\n * This field is declared but was never resolved at runtime.\n */\n extends?: string;\n abilities?: string[];\n /**\n * Identity fragments to compose into the agent persona.\n * Each entry is a catalog ref (`persona:name@repo#pin`), a bare name\n * (defaults to kind \"persona\"), or a local path (`./my.persona.md`).\n * Resolved in order — concatenated with \\n\\n---\\n\\n separator.\n */\n persona?: string[];\n /**\n * Behavioral rule sets to compose into the agent's constraints.\n * Each entry is a catalog ref (`ruleset:name@repo#pin`), bare name,\n * or local path. All rules apply (union).\n */\n rules?: string[];\n /**\n * Knowledge bundles to compose into the agent's domain knowledge.\n * Each entry is a catalog ref (`knowledge:name@repo#pin`), bare name,\n * or local path to a knowledge directory. Loaded in declaration order.\n */\n knowledge?: string[];\n contracts?: string[];\n /**\n * v2 composition items. Each entry references an asset (skill, connector,\n * soul, ruleset, etc.) with binding semantics (discoverable, inline-live,\n * inline-snapshot). Resolved at session start via the composition module.\n */\n composes?: Array<{\n kind: string;\n ref: string;\n instance?: string;\n binding?: \"discoverable\" | \"inline-live\" | \"inline-snapshot\";\n }>;\n runtime?: {\n max_turns?: number;\n timeout?: number;\n [key: string]: unknown;\n };\n}\n\n// ── Repository ───────────────────────────────────────────────────────────────\n\ntype RepositoryKind = \"local\" | \"github\";\n\n/**\n * A registered asset repository (local path or cloned GitHub repo).\n * Stored in the catalog; consumed by `repo-manager` for cloning and scanning.\n * @docLink packages/core/concepts#repository\n */\nexport interface Repository {\n /** Logical repository name. */\n name: string;\n /** Storage kind: \"local\" for paths, \"github\" for remote URLs. */\n kind: RepositoryKind;\n /** Absolute path (local) or remote URL (github). */\n path: string;\n /** Active branch. */\n branch: string;\n /** Upstream fork URL (for fork-based workflows). */\n upstream?: string;\n}\n\n/**\n * Construct a `Repository` from a raw deserialized record.\n *\n * @param d - Raw object from YAML/JSON\n * @returns Normalized `Repository`\n * @docLink packages/core/concepts#repository-from-raw\n */\nexport function repositoryFromRaw(d: Record<string, unknown>): Repository {\n return {\n name: String(d.name ?? \"\"),\n kind: String(d.kind ?? \"local\") as RepositoryKind,\n path: String(d.path ?? \"\"),\n branch: String(d.branch ?? \"main\"),\n upstream: d.upstream != null ? String(d.upstream) : undefined,\n };\n}\n\n/**\n * Serialize a `Repository` to a plain record for YAML/JSON persistence.\n * Omits the `branch` field when it equals `\"main\"` to keep serialized output clean.\n *\n * @param r - Repository to serialize\n * @returns Plain object suitable for YAML/JSON\n * @docLink packages/core/concepts#repository-to-raw\n */\nexport function repositoryToRaw(r: Repository): Record<string, unknown> {\n const d: Record<string, unknown> = {\n name: r.name,\n kind: r.kind,\n path: r.path,\n };\n if (r.branch !== \"main\") d.branch = r.branch;\n if (r.upstream != null) d.upstream = r.upstream;\n return d;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../workspace-plugin/src/adapters/claude-code.ts","../workspace-plugin/src/store.ts","../workspace-plugin/src/plugin.ts","../workspace-plugin/src/utils/project-dir.ts"],"names":["err"],"mappings":"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","file":"chunk-MJHLQRJJ.js","sourcesContent":["// ── Claude Code plugin-directory generator (STATELESS) ──────────────────────\n// Generates the contents of a Claude Code plugin directory\n// (`.claude/plugins/skaile/`) as an in-memory file map. No plugin instance or\n// boot() is required — safe to call from install commands.\n//\n// The previous standalone `@skaile/workspace-plugin-claude` package shipped\n// these as static files plus loose `.mjs` hook scripts; they are now\n// CLI-owned templates. Hooks invoke the `skaile` binary directly\n// (`skaile plugin hook <event>`) and MCP runs via `skaile mcp-server` — no\n// generated script files, no shebang, no runtime assumption.\n\n/**\n * The Claude Code plugin manifest. `name` is `skaile`; `hooks` and\n * `mcpServers` point at sibling files in the generated directory.\n */\nconst PLUGIN_JSON = {\n name: \"skaile\",\n version: \"0.1.0\",\n description: \"Skaile workspace — connectors, mounts, skills, flows, shared state\",\n author: { name: \"skaile-ai\", url: \"https://github.com/skaile-ai\" },\n repository: \"https://github.com/skaile-ai/workspaces\",\n keywords: [\"skaile\", \"connectors\", \"workspace\", \"ai-assets\"],\n hooks: \"./hooks/hooks.json\",\n mcpServers: \"./.mcp.json\",\n userConfig: {\n skaile_yaml_path: {\n type: \"string\",\n title: \"skaile.yaml path\",\n description: \"Override path to skaile.yaml (default: auto-detect from project root)\",\n },\n },\n};\n\n/**\n * Hook wiring. Each lifecycle event invokes the `skaile` binary directly —\n * no loose `.mjs` scripts. `skaile plugin hook <event>` resolves the project\n * directory itself (`CLAUDE_PROJECT_DIR` / cwd) and always exits 0.\n */\nconst HOOKS_JSON = {\n hooks: {\n SessionStart: [{ hooks: [{ type: \"command\", command: \"skaile plugin hook session-start\" }] }],\n SessionEnd: [{ hooks: [{ type: \"command\", command: \"skaile plugin hook session-end\" }] }],\n UserPromptSubmit: [\n { hooks: [{ type: \"command\", command: \"skaile plugin hook user-prompt-submit\" }] },\n ],\n },\n};\n\n/**\n * MCP server wiring. Spawns `skaile mcp-server` — a stdio MCP subprocess that\n * runs on plain Node (no Claude Agent SDK).\n */\nconst MCP_JSON = {\n mcpServers: {\n \"skaile-workspace\": {\n command: \"skaile\",\n args: [\"mcp-server\"],\n env: {},\n },\n },\n};\n\n/**\n * Build the Claude Code plugin directory as an in-memory file map.\n *\n * Returns `{ relativePath: contents }` for every file the installer must\n * write under `<projectDir>/.claude/plugins/skaile/`. The installer is also\n * responsible for populating `skills/` from the project's `.skaile/skills/`.\n *\n * Stateless — no plugin instance, no `boot()`. The generated artifacts carry\n * no project-specific paths: hooks and the MCP server resolve the project\n * directory themselves at runtime.\n *\n * @returns A map of plugin-relative file paths to their string contents.\n *\n * @docLink packages/workspace-plugin/concepts#adapters\n */\nexport function buildClaudePluginFiles(): Record<string, string> {\n return {\n \".claude-plugin/plugin.json\": `${JSON.stringify(PLUGIN_JSON, null, 2)}\\n`,\n \"hooks/hooks.json\": `${JSON.stringify(HOOKS_JSON, null, 2)}\\n`,\n \".mcp.json\": `${JSON.stringify(MCP_JSON, null, 2)}\\n`,\n \"skills/.gitkeep\": \"\",\n };\n}\n","import { readFile, writeFile, mkdir } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\n\ninterface Subscriber {\n regex: RegExp;\n handler: (key: string, value: unknown) => void;\n}\n\n/**\n * Disk-backed reactive key-value store for plugin state.\n *\n * Keeps an in-memory map that can be flushed to / loaded from a JSON file.\n * Supports glob-style subscriptions (`connector:*`, `*`).\n *\n * State is persisted to `<projectDir>/.skaile/plugin-state.json`.\n * The instance is available on {@link WorkspacePlugin} as the public `store`\n * field after `boot()` resolves.\n *\n * @docLink packages/workspace-plugin/concepts#plugin-store\n */\nexport class PluginStore {\n private readonly statePath: string;\n private data: Map<string, unknown> = new Map();\n private subscribers: Subscriber[] = [];\n\n constructor(statePath: string) {\n this.statePath = statePath;\n }\n\n /** Synchronous read from in-memory map. */\n get<T>(key: string): T | undefined {\n return this.data.get(key) as T | undefined;\n }\n\n /** Write to in-memory map and notify matching subscribers. */\n set<T>(key: string, value: T): void {\n this.data.set(key, value);\n this.notify(key, value);\n }\n\n /** Remove key and notify matching subscribers. */\n delete(key: string): void {\n this.data.delete(key);\n this.notify(key, undefined);\n }\n\n /**\n * Subscribe to changes matching a glob-style pattern.\n * `*` matches any sequence of characters.\n * Returns an unsubscribe function.\n */\n subscribe(pattern: string, handler: (key: string, value: unknown) => void): () => void {\n const escaped = pattern.replace(/[.+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const regexStr = `^${escaped.replace(/\\*/g, \".*\")}$`;\n const sub: Subscriber = { regex: new RegExp(regexStr), handler };\n this.subscribers.push(sub);\n\n return () => {\n const idx = this.subscribers.indexOf(sub);\n if (idx !== -1) this.subscribers.splice(idx, 1);\n };\n }\n\n /** Rehydrate from disk JSON. Missing file = empty store (no throw). */\n async load(): Promise<void> {\n try {\n const raw = await readFile(this.statePath, \"utf-8\");\n const parsed = JSON.parse(raw);\n if (parsed && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n this.data = new Map(Object.entries(parsed));\n }\n } catch (e: unknown) {\n // Missing file or invalid JSON — start with empty store\n }\n }\n\n /** Write entire store to disk as JSON. Creates parent dirs if needed. */\n async flush(): Promise<void> {\n const obj = Object.fromEntries(this.data);\n const json = JSON.stringify(obj, null, 2);\n await mkdir(dirname(this.statePath), { recursive: true });\n await writeFile(this.statePath, json, \"utf-8\");\n }\n\n private notify(key: string, value: unknown): void {\n for (const sub of this.subscribers) {\n if (sub.regex.test(key)) {\n sub.handler(key, value);\n }\n }\n }\n}\n","import { readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { ConnectorManager, MountManager } from \"@skaile/workspaces/connectors\";\nimport { createLogger } from \"@skaile/workspaces/core/logging\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport { PluginStore } from \"./store.js\";\n\n/**\n * Construction options for {@link WorkspacePlugin}.\n *\n * At minimum `projectDir` must be supplied. All other fields are optional\n * and are pre-resolved by the caller when available (e.g. the runner already\n * knows `driver`/`provider`/`model` from its own settings resolution).\n *\n * @docLink packages/workspace-plugin/concepts#workspaceplugin-lifecycle\n */\nexport interface WorkspacePluginOpts {\n projectDir: string;\n mountManager?: MountManager;\n connectorManager?: ConnectorManager;\n bootOwned?: boolean;\n onLog?: (msg: string) => void;\n /** Pre-resolved driver type (avoids needing boot() to read settings). */\n driver?: string;\n /** Pre-resolved provider. */\n provider?: string;\n /** Pre-resolved model. */\n model?: string;\n}\n\n/**\n * Shared runtime core for the skaile workspace plugin.\n *\n * Manages the full lifecycle (`boot` → tools available → `shutdown`) and\n * surfaces workspace capabilities — mounts, connectors, flows, skills,\n * sessions, and config validation — through two adapter backends:\n *\n * - **MCP, in-process** (runner): call {@link buildWorkspaceMcpServer} for the\n * Claude Agent SDK server the runner embeds into its `query()` call.\n * - **MCP, stdio** (`skaile mcp-server`): call {@link runMcpServerStdio} for a\n * raw `@modelcontextprotocol/sdk` server — no Claude Agent SDK.\n * - **OMP**: call {@link buildOmpToolSet} for the 13-tool native subset and\n * {@link buildOmpExtensionSource} for the generated extension file.\n *\n * Two boot modes are supported via {@link WorkspacePluginOpts.bootOwned}:\n * - `bootOwned: false` (default) — managers injected externally by the runner.\n * - `bootOwned: true` — plugin owns the full manager lifecycle (standalone MCP\n * subprocess or OMP extension).\n *\n * @docLink packages/workspace-plugin/concepts#workspaceplugin-lifecycle\n */\nexport class WorkspacePlugin {\n readonly projectDir: string;\n mountManager: MountManager | null;\n connectorManager: ConnectorManager | null;\n readonly store: PluginStore;\n private readonly bootOwned: boolean;\n private readonly onLog: (msg: string) => void;\n private readonly log: Logger = createLogger({\n kind: \"mcp\",\n subkind: \"skaile-workspace\",\n });\n driver?: string;\n provider?: string;\n model?: string;\n\n constructor(opts: WorkspacePluginOpts) {\n this.projectDir = opts.projectDir;\n this.mountManager = opts.mountManager ?? null;\n this.connectorManager = opts.connectorManager ?? null;\n this.store = new PluginStore(join(opts.projectDir, \".skaile\", \"plugin-state.json\"));\n this.bootOwned = opts.bootOwned ?? false;\n if (opts.driver) this.driver = opts.driver;\n if (opts.provider) this.provider = opts.provider;\n if (opts.model) this.model = opts.model;\n this.onLog = opts.onLog ?? (() => {});\n this.log.debug(\"plugin constructed\", {\n driver: opts.driver,\n hasMounts: !!opts.mountManager,\n hasConnectors: !!opts.connectorManager,\n provider: opts.provider,\n model: opts.model,\n bootOwned: this.bootOwned,\n });\n }\n\n async boot(): Promise<void> {\n if (!this.bootOwned) {\n // Managers were injected externally — resolve settings only (non-fatal)\n try {\n const { resolveSettings } = await import(\"@skaile/workspaces/core\");\n const settings = await resolveSettings(this.projectDir);\n this.driver = settings.driver ?? \"omp\";\n this.provider = settings.provider;\n this.model = settings.model;\n } catch {\n /* non-fatal */\n }\n await this.store.load();\n return;\n }\n\n // bootOwned: we own the managers lifecycle\n try {\n const { resolveSettings } = await import(\"@skaile/workspaces/core\");\n const settings = await resolveSettings(this.projectDir);\n this.driver = settings.driver ?? \"omp\";\n this.provider = settings.provider;\n this.model = settings.model;\n } catch {\n /* non-fatal */\n }\n\n try {\n const {\n MountManager,\n ConnectorManager,\n loadMountDeclarations,\n loadConnectorDeclarations,\n registerBuiltinMountDrivers,\n registerBuiltinConnectorAdapters,\n createCliSecretProviderChain,\n } = await import(\"@skaile/workspaces/connectors\");\n\n registerBuiltinMountDrivers();\n registerBuiltinConnectorAdapters();\n\n const secrets = createCliSecretProviderChain();\n\n const mountDecls = await loadMountDeclarations(this.projectDir);\n const vm = new MountManager(this.projectDir, secrets);\n await vm.mountAll(mountDecls);\n this.mountManager = vm;\n\n const connectorDecls = await loadConnectorDeclarations(this.projectDir);\n const cm = new ConnectorManager(secrets);\n await cm.connectAll(connectorDecls);\n this.connectorManager = cm;\n\n this.log.info(\"workspace plugin booted\", {\n mounts: mountDecls.length,\n connectors: connectorDecls.length,\n });\n this.onLog(\n `WorkspacePlugin booted: ${mountDecls.length} mounts, ${connectorDecls.length} connectors`,\n );\n } catch (err) {\n this.log.warn(\"workspace plugin boot warning\", {\n error: err instanceof Error ? err.message : String(err),\n });\n this.onLog(`WorkspacePlugin boot warning: ${err}`);\n }\n\n await this.store.load();\n }\n\n async reload(): Promise<void> {\n if (!this.bootOwned) return;\n await this.shutdown();\n await this.boot();\n }\n\n async shutdown(): Promise<void> {\n this.log.info(\"workspace plugin shutdown\");\n await this.store.flush();\n if (!this.bootOwned) return;\n try {\n await (this.mountManager as any)?.unmountAll?.();\n } catch {\n /* best-effort */\n }\n try {\n await (this.connectorManager as any)?.disconnectAll?.();\n } catch {\n /* best-effort */\n }\n this.mountManager = null;\n this.connectorManager = null;\n }\n\n buildSystemPromptSection(driver?: string): string {\n const d = driver ?? this.driver ?? \"unknown\";\n const mounts = this.mountManager?.listMounts() ?? [];\n const connectors = (this.connectorManager as any)?.listConnectors?.() ?? [];\n const lines = [\"## Workspace (skaile)\", \"\", `Driver: ${d}`, `Project: ${this.projectDir}`];\n if (mounts.length > 0) {\n lines.push(\"\", \"Mounts:\");\n for (const v of mounts as any[]) {\n lines.push(` · ${v.id} (${v.driver}) → ${v.mountPath ?? \"(unmounted)\"}`);\n }\n }\n if (connectors.length > 0) {\n lines.push(\"\", \"Connectors:\");\n for (const c of connectors as any[]) {\n lines.push(` · ${c.id} (${c.adapter ?? c.driver})`);\n }\n }\n lines.push(\"\", \"Use workspace_info for full details. Use workspace_validate to check health.\");\n\n for (const name of [\"SOUL.md\", \"RULES.md\"]) {\n const skaileOverride = join(this.projectDir, \".skaile\", name);\n const rootFile = join(this.projectDir, name);\n for (const candidate of [skaileOverride, rootFile]) {\n try {\n const content = readFileSync(candidate, \"utf-8\").trim();\n if (content) {\n lines.push(\"\", `## ${name.replace(\".md\", \"\")}`, \"\", content);\n break;\n }\n } catch {\n // file not found, try next\n }\n }\n }\n\n return lines.join(\"\\n\");\n }\n\n /**\n * Build the in-process Claude Agent SDK MCP server (runner embedding).\n * Returns `null` when `@anthropic-ai/claude-agent-sdk` is unavailable.\n */\n async buildWorkspaceMcpServer(): Promise<unknown | null> {\n this.log.info(\"building workspace MCP server\");\n try {\n const { buildWorkspaceMcpServer } = await import(\"./adapters/mcp.js\");\n const server = await buildWorkspaceMcpServer(this);\n if (server) this.log.info(\"workspace MCP server ready\");\n else this.log.debug(\"workspace MCP server skipped (no tools)\");\n return server;\n } catch (err) {\n this.log.error(\"workspace MCP server build failed\", err);\n throw err;\n }\n }\n\n /**\n * Build the raw `@modelcontextprotocol/sdk` stdio MCP server — no Claude\n * Agent SDK. Used by the `skaile mcp-server` subprocess. The returned\n * server is not yet connected to a transport.\n */\n async buildWorkspaceMcpStdioServer(): Promise<unknown> {\n this.log.info(\"building workspace stdio MCP server\");\n const { buildWorkspaceMcpStdioServer } = await import(\"./adapters/mcp.js\");\n return buildWorkspaceMcpStdioServer(this);\n }\n\n /**\n * Build and run the stdio MCP server: builds the raw\n * `@modelcontextprotocol/sdk` server and connects a `StdioServerTransport`.\n * Used by the `skaile mcp-server` subprocess.\n */\n async runMcpServerStdio(): Promise<void> {\n this.log.info(\"starting workspace stdio MCP server\");\n const { runMcpServerStdio } = await import(\"./adapters/mcp.js\");\n await runMcpServerStdio(this);\n }\n\n async buildOmpToolSet(): Promise<unknown[]> {\n const { buildOmpToolSet } = await import(\"./adapters/omp.js\");\n return buildOmpToolSet(this);\n }\n\n async buildOmpExtensionSource(): Promise<string> {\n const { buildOmpExtensionSource } = await import(\"./adapters/omp.js\");\n return buildOmpExtensionSource(this.projectDir);\n }\n\n async handleSlashCommand(group: string, args: string[]): Promise<string> {\n const { handleSlashCommand } = await import(\"./adapters/omp.js\");\n return handleSlashCommand(this, group, args);\n }\n}\n","// utils/project-dir.ts\n// Centralised project-directory resolution used by all plugin entry points.\n\n/**\n * Resolve the skaile project directory from environment variables.\n *\n * Resolution order:\n * 1. `SKAILE_PROJECT_DIR` (always checked first)\n * 2. Any additional env var keys supplied by the caller (in order)\n * 3. `process.cwd()` as final fallback\n *\n * @param additionalEnvVars - Optional list of extra environment variable names\n * to check before falling back to `process.cwd()`.\n * @returns Absolute path to the resolved project directory.\n *\n * @example\n * // Claude Code — also checks CLAUDE_PROJECT_DIR\n * const projectDir = resolveProjectDir([\"CLAUDE_PROJECT_DIR\"]);\n *\n * // OMP / standalone — SKAILE_PROJECT_DIR or cwd only\n * const projectDir = resolveProjectDir();\n *\n * @docLink packages/workspace-plugin/concepts#workspaceplugin-lifecycle\n */\nexport function resolveProjectDir(additionalEnvVars?: string[]): string {\n if (process.env.SKAILE_PROJECT_DIR) return process.env.SKAILE_PROJECT_DIR;\n for (const key of additionalEnvVars ?? []) {\n const val = process.env[key];\n if (val) return val;\n }\n return process.cwd();\n}\n"]}