@zmice/zc 0.1.0 → 0.2.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 (561) hide show
  1. package/README.md +153 -87
  2. package/dist/adapters/codex.d.ts.map +1 -1
  3. package/dist/adapters/codex.js +4 -2
  4. package/dist/adapters/codex.js.map +1 -1
  5. package/dist/adapters/qwen-code.d.ts.map +1 -1
  6. package/dist/adapters/qwen-code.js +7 -5
  7. package/dist/adapters/qwen-code.js.map +1 -1
  8. package/dist/cli/__tests__/i18n.test.d.ts +2 -0
  9. package/dist/cli/__tests__/i18n.test.d.ts.map +1 -0
  10. package/dist/cli/__tests__/i18n.test.js +45 -0
  11. package/dist/cli/__tests__/i18n.test.js.map +1 -0
  12. package/dist/cli/__tests__/platform.test.d.ts +2 -0
  13. package/dist/cli/__tests__/platform.test.d.ts.map +1 -0
  14. package/dist/cli/__tests__/platform.test.js +483 -0
  15. package/dist/cli/__tests__/platform.test.js.map +1 -0
  16. package/dist/cli/__tests__/surface.test.d.ts +2 -0
  17. package/dist/cli/__tests__/surface.test.d.ts.map +1 -0
  18. package/dist/cli/__tests__/surface.test.js +15 -0
  19. package/dist/cli/__tests__/surface.test.js.map +1 -0
  20. package/dist/cli/__tests__/toolkit.test.d.ts +2 -0
  21. package/dist/cli/__tests__/toolkit.test.d.ts.map +1 -0
  22. package/dist/cli/__tests__/toolkit.test.js +72 -0
  23. package/dist/cli/__tests__/toolkit.test.js.map +1 -0
  24. package/dist/cli/__tests__/upstream.test.d.ts +2 -0
  25. package/dist/cli/__tests__/upstream.test.d.ts.map +1 -0
  26. package/dist/cli/__tests__/upstream.test.js +163 -0
  27. package/dist/cli/__tests__/upstream.test.js.map +1 -0
  28. package/dist/cli/doctor.js +21 -21
  29. package/dist/cli/doctor.js.map +1 -1
  30. package/dist/cli/index.d.ts +2 -1
  31. package/dist/cli/index.d.ts.map +1 -1
  32. package/dist/cli/index.js +34 -14
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/msg.d.ts.map +1 -1
  35. package/dist/cli/msg.js +73 -5
  36. package/dist/cli/msg.js.map +1 -1
  37. package/dist/cli/platform.d.ts +32 -0
  38. package/dist/cli/platform.d.ts.map +1 -0
  39. package/dist/cli/platform.js +635 -0
  40. package/dist/cli/platform.js.map +1 -0
  41. package/dist/cli/run.js +7 -7
  42. package/dist/cli/run.js.map +1 -1
  43. package/dist/cli/setup.js +7 -7
  44. package/dist/cli/setup.js.map +1 -1
  45. package/dist/cli/task.d.ts.map +1 -1
  46. package/dist/cli/task.js +108 -8
  47. package/dist/cli/task.js.map +1 -1
  48. package/dist/cli/team.d.ts +12 -0
  49. package/dist/cli/team.d.ts.map +1 -1
  50. package/dist/cli/team.js +82 -39
  51. package/dist/cli/team.js.map +1 -1
  52. package/dist/cli/toolkit.d.ts +3 -0
  53. package/dist/cli/toolkit.d.ts.map +1 -0
  54. package/dist/cli/toolkit.js +160 -0
  55. package/dist/cli/toolkit.js.map +1 -0
  56. package/dist/cli/upstream.d.ts +19 -0
  57. package/dist/cli/upstream.d.ts.map +1 -0
  58. package/dist/cli/upstream.js +705 -0
  59. package/dist/cli/upstream.js.map +1 -0
  60. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts +72 -0
  61. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -0
  62. package/dist/node_modules/@zmice/platform-core/dist/index.js +105 -0
  63. package/dist/node_modules/@zmice/platform-core/dist/index.js.map +1 -0
  64. package/dist/node_modules/@zmice/platform-core/dist/index.test.d.ts +2 -0
  65. package/dist/node_modules/@zmice/platform-core/dist/index.test.d.ts.map +1 -0
  66. package/dist/node_modules/@zmice/platform-core/dist/index.test.js +104 -0
  67. package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -0
  68. package/dist/node_modules/@zmice/platform-core/package.json +34 -0
  69. package/dist/platform-state/index.d.ts +4 -0
  70. package/dist/platform-state/index.d.ts.map +1 -0
  71. package/dist/platform-state/index.js +3 -0
  72. package/dist/platform-state/index.js.map +1 -0
  73. package/dist/platform-state/receipt.d.ts +11 -0
  74. package/dist/platform-state/receipt.d.ts.map +1 -0
  75. package/dist/platform-state/receipt.js +27 -0
  76. package/dist/platform-state/receipt.js.map +1 -0
  77. package/dist/platform-state/status.d.ts +3 -0
  78. package/dist/platform-state/status.d.ts.map +1 -0
  79. package/dist/platform-state/status.js +82 -0
  80. package/dist/platform-state/status.js.map +1 -0
  81. package/dist/platform-state/status.test.d.ts +2 -0
  82. package/dist/platform-state/status.test.d.ts.map +1 -0
  83. package/dist/platform-state/status.test.js +120 -0
  84. package/dist/platform-state/status.test.js.map +1 -0
  85. package/dist/platform-state/types.d.ts +58 -0
  86. package/dist/platform-state/types.d.ts.map +1 -0
  87. package/dist/platform-state/types.js +2 -0
  88. package/dist/platform-state/types.js.map +1 -0
  89. package/dist/runtime/__tests__/logger.test.d.ts +2 -0
  90. package/dist/runtime/__tests__/logger.test.d.ts.map +1 -0
  91. package/dist/runtime/__tests__/logger.test.js +11 -0
  92. package/dist/runtime/__tests__/logger.test.js.map +1 -0
  93. package/dist/runtime/__tests__/session-manager.test.d.ts +2 -0
  94. package/dist/runtime/__tests__/session-manager.test.d.ts.map +1 -0
  95. package/dist/runtime/__tests__/session-manager.test.js +11 -0
  96. package/dist/runtime/__tests__/session-manager.test.js.map +1 -0
  97. package/dist/runtime/__tests__/worktree-manager.test.d.ts +2 -0
  98. package/dist/runtime/__tests__/worktree-manager.test.d.ts.map +1 -0
  99. package/dist/runtime/__tests__/worktree-manager.test.js +11 -0
  100. package/dist/runtime/__tests__/worktree-manager.test.js.map +1 -0
  101. package/dist/runtime/logger.d.ts +5 -1
  102. package/dist/runtime/logger.d.ts.map +1 -1
  103. package/dist/runtime/logger.js +11 -1
  104. package/dist/runtime/logger.js.map +1 -1
  105. package/dist/runtime/state.d.ts +2 -8
  106. package/dist/runtime/state.d.ts.map +1 -1
  107. package/dist/runtime/state.js +7 -15
  108. package/dist/runtime/state.js.map +1 -1
  109. package/dist/runtime/worktree-manager.d.ts +5 -26
  110. package/dist/runtime/worktree-manager.d.ts.map +1 -1
  111. package/dist/runtime/worktree-manager.js +34 -98
  112. package/dist/runtime/worktree-manager.js.map +1 -1
  113. package/dist/team/__tests__/mailbox.test.d.ts +2 -0
  114. package/dist/team/__tests__/mailbox.test.d.ts.map +1 -0
  115. package/dist/team/__tests__/mailbox.test.js +22 -0
  116. package/dist/team/__tests__/mailbox.test.js.map +1 -0
  117. package/dist/team/__tests__/orchestrator.test.d.ts +2 -0
  118. package/dist/team/__tests__/orchestrator.test.d.ts.map +1 -0
  119. package/dist/team/__tests__/orchestrator.test.js +13 -0
  120. package/dist/team/__tests__/orchestrator.test.js.map +1 -0
  121. package/dist/team/__tests__/task-queue.test.d.ts +2 -0
  122. package/dist/team/__tests__/task-queue.test.d.ts.map +1 -0
  123. package/dist/team/__tests__/task-queue.test.js +28 -0
  124. package/dist/team/__tests__/task-queue.test.js.map +1 -0
  125. package/dist/team/__tests__/worker-manager.test.d.ts +2 -0
  126. package/dist/team/__tests__/worker-manager.test.d.ts.map +1 -0
  127. package/dist/team/__tests__/worker-manager.test.js +13 -0
  128. package/dist/team/__tests__/worker-manager.test.js.map +1 -0
  129. package/dist/team/mailbox.d.ts +12 -10
  130. package/dist/team/mailbox.d.ts.map +1 -1
  131. package/dist/team/mailbox.js +40 -27
  132. package/dist/team/mailbox.js.map +1 -1
  133. package/dist/team/orchestrator.d.ts +1 -6
  134. package/dist/team/orchestrator.d.ts.map +1 -1
  135. package/dist/team/orchestrator.js +27 -67
  136. package/dist/team/orchestrator.js.map +1 -1
  137. package/dist/team/task-queue.d.ts +18 -17
  138. package/dist/team/task-queue.d.ts.map +1 -1
  139. package/dist/team/task-queue.js +68 -71
  140. package/dist/team/task-queue.js.map +1 -1
  141. package/dist/team/worker-manager.d.ts +13 -36
  142. package/dist/team/worker-manager.d.ts.map +1 -1
  143. package/dist/team/worker-manager.js +34 -129
  144. package/dist/team/worker-manager.js.map +1 -1
  145. package/dist/utils/config.d.ts +15 -1
  146. package/dist/utils/config.d.ts.map +1 -1
  147. package/dist/utils/config.js +39 -1
  148. package/dist/utils/config.js.map +1 -1
  149. package/dist/utils/install-target.d.ts +23 -0
  150. package/dist/utils/install-target.d.ts.map +1 -0
  151. package/dist/utils/install-target.js +89 -0
  152. package/dist/utils/install-target.js.map +1 -0
  153. package/dist/utils/install-target.test.d.ts +2 -0
  154. package/dist/utils/install-target.test.d.ts.map +1 -0
  155. package/dist/utils/install-target.test.js +71 -0
  156. package/dist/utils/install-target.test.js.map +1 -0
  157. package/dist/utils/platform-install-receipt.d.ts +11 -0
  158. package/dist/utils/platform-install-receipt.d.ts.map +1 -0
  159. package/dist/utils/platform-install-receipt.js +62 -0
  160. package/dist/utils/platform-install-receipt.js.map +1 -0
  161. package/dist/utils/platform-install-receipt.test.d.ts +2 -0
  162. package/dist/utils/platform-install-receipt.test.d.ts.map +1 -0
  163. package/dist/utils/platform-install-receipt.test.js +74 -0
  164. package/dist/utils/platform-install-receipt.test.js.map +1 -0
  165. package/dist/utils/skill-loader.d.ts +0 -9
  166. package/dist/utils/skill-loader.d.ts.map +1 -1
  167. package/dist/utils/skill-loader.js +19 -26
  168. package/dist/utils/skill-loader.js.map +1 -1
  169. package/dist/utils/workspace.d.ts +28 -0
  170. package/dist/utils/workspace.d.ts.map +1 -0
  171. package/dist/utils/workspace.js +103 -0
  172. package/dist/utils/workspace.js.map +1 -0
  173. package/dist/utils/workspace.test.d.ts +2 -0
  174. package/dist/utils/workspace.test.d.ts.map +1 -0
  175. package/dist/utils/workspace.test.js +50 -0
  176. package/dist/utils/workspace.test.js.map +1 -0
  177. package/package.json +48 -36
  178. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts +72 -0
  179. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -0
  180. package/vendor/node_modules/@zmice/platform-core/dist/index.js +105 -0
  181. package/vendor/node_modules/@zmice/platform-core/dist/index.js.map +1 -0
  182. package/vendor/node_modules/@zmice/platform-core/dist/index.test.d.ts +2 -0
  183. package/vendor/node_modules/@zmice/platform-core/dist/index.test.d.ts.map +1 -0
  184. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +104 -0
  185. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -0
  186. package/vendor/node_modules/@zmice/platform-core/package.json +34 -0
  187. package/vendor/packages/platform-codex/dist/generate.d.ts +2 -0
  188. package/vendor/packages/platform-codex/dist/generate.d.ts.map +1 -0
  189. package/vendor/packages/platform-codex/dist/generate.js +2 -0
  190. package/vendor/packages/platform-codex/dist/generate.js.map +1 -0
  191. package/vendor/packages/platform-codex/dist/index.d.ts +15 -0
  192. package/vendor/packages/platform-codex/dist/index.d.ts.map +1 -0
  193. package/vendor/packages/platform-codex/dist/index.js +46 -0
  194. package/vendor/packages/platform-codex/dist/index.js.map +1 -0
  195. package/vendor/packages/platform-codex/dist/index.test.d.ts +2 -0
  196. package/vendor/packages/platform-codex/dist/index.test.d.ts.map +1 -0
  197. package/vendor/packages/platform-codex/dist/index.test.js +38 -0
  198. package/vendor/packages/platform-codex/dist/index.test.js.map +1 -0
  199. package/vendor/packages/platform-codex/dist/install.d.ts +2 -0
  200. package/vendor/packages/platform-codex/dist/install.d.ts.map +1 -0
  201. package/vendor/packages/platform-codex/dist/install.js +2 -0
  202. package/vendor/packages/platform-codex/dist/install.js.map +1 -0
  203. package/vendor/packages/platform-codex/package.json +46 -0
  204. package/vendor/packages/platform-codex/templates/AGENTS.md +7 -0
  205. package/vendor/packages/platform-qoder/dist/generate.d.ts +2 -0
  206. package/vendor/packages/platform-qoder/dist/generate.d.ts.map +1 -0
  207. package/vendor/packages/platform-qoder/dist/generate.js +2 -0
  208. package/vendor/packages/platform-qoder/dist/generate.js.map +1 -0
  209. package/vendor/packages/platform-qoder/dist/index.d.ts +15 -0
  210. package/vendor/packages/platform-qoder/dist/index.d.ts.map +1 -0
  211. package/vendor/packages/platform-qoder/dist/index.js +46 -0
  212. package/vendor/packages/platform-qoder/dist/index.js.map +1 -0
  213. package/vendor/packages/platform-qoder/dist/index.test.d.ts +2 -0
  214. package/vendor/packages/platform-qoder/dist/index.test.d.ts.map +1 -0
  215. package/vendor/packages/platform-qoder/dist/index.test.js +38 -0
  216. package/vendor/packages/platform-qoder/dist/index.test.js.map +1 -0
  217. package/vendor/packages/platform-qoder/dist/install.d.ts +2 -0
  218. package/vendor/packages/platform-qoder/dist/install.d.ts.map +1 -0
  219. package/vendor/packages/platform-qoder/dist/install.js +2 -0
  220. package/vendor/packages/platform-qoder/dist/install.js.map +1 -0
  221. package/vendor/packages/platform-qoder/package.json +46 -0
  222. package/vendor/packages/platform-qoder/templates/instructions.md +7 -0
  223. package/vendor/packages/platform-qwen/dist/generate.d.ts +2 -0
  224. package/vendor/packages/platform-qwen/dist/generate.d.ts.map +1 -0
  225. package/vendor/packages/platform-qwen/dist/generate.js +2 -0
  226. package/vendor/packages/platform-qwen/dist/generate.js.map +1 -0
  227. package/vendor/packages/platform-qwen/dist/index.d.ts +16 -0
  228. package/vendor/packages/platform-qwen/dist/index.d.ts.map +1 -0
  229. package/vendor/packages/platform-qwen/dist/index.js +60 -0
  230. package/vendor/packages/platform-qwen/dist/index.js.map +1 -0
  231. package/vendor/packages/platform-qwen/dist/index.test.d.ts +2 -0
  232. package/vendor/packages/platform-qwen/dist/index.test.d.ts.map +1 -0
  233. package/vendor/packages/platform-qwen/dist/index.test.js +46 -0
  234. package/vendor/packages/platform-qwen/dist/index.test.js.map +1 -0
  235. package/vendor/packages/platform-qwen/dist/install.d.ts +2 -0
  236. package/vendor/packages/platform-qwen/dist/install.d.ts.map +1 -0
  237. package/vendor/packages/platform-qwen/dist/install.js +2 -0
  238. package/vendor/packages/platform-qwen/dist/install.js.map +1 -0
  239. package/vendor/packages/platform-qwen/package.json +46 -0
  240. package/vendor/packages/platform-qwen/templates/QWEN.md +7 -0
  241. package/vendor/packages/platform-qwen/templates/qwen-extension.json +7 -0
  242. package/vendor/packages/toolkit/dist/content-lint.test.d.ts +2 -0
  243. package/vendor/packages/toolkit/dist/content-lint.test.d.ts.map +1 -0
  244. package/vendor/packages/toolkit/dist/content-lint.test.js +252 -0
  245. package/vendor/packages/toolkit/dist/content-lint.test.js.map +1 -0
  246. package/vendor/packages/toolkit/dist/governance/index.d.ts +2 -0
  247. package/vendor/packages/toolkit/dist/governance/index.d.ts.map +1 -0
  248. package/vendor/packages/toolkit/dist/governance/index.js +2 -0
  249. package/vendor/packages/toolkit/dist/governance/index.js.map +1 -0
  250. package/vendor/packages/toolkit/dist/governance/upstreams.d.ts +6 -0
  251. package/vendor/packages/toolkit/dist/governance/upstreams.d.ts.map +1 -0
  252. package/vendor/packages/toolkit/dist/governance/upstreams.js +31 -0
  253. package/vendor/packages/toolkit/dist/governance/upstreams.js.map +1 -0
  254. package/vendor/packages/toolkit/dist/governance/upstreams.test.d.ts +2 -0
  255. package/vendor/packages/toolkit/dist/governance/upstreams.test.d.ts.map +1 -0
  256. package/vendor/packages/toolkit/dist/governance/upstreams.test.js +23 -0
  257. package/vendor/packages/toolkit/dist/governance/upstreams.test.js.map +1 -0
  258. package/vendor/packages/toolkit/dist/index.d.ts +8 -0
  259. package/vendor/packages/toolkit/dist/index.d.ts.map +1 -0
  260. package/vendor/packages/toolkit/dist/index.js +8 -0
  261. package/vendor/packages/toolkit/dist/index.js.map +1 -0
  262. package/vendor/packages/toolkit/dist/lint/content-lint.d.ts +21 -0
  263. package/vendor/packages/toolkit/dist/lint/content-lint.d.ts.map +1 -0
  264. package/vendor/packages/toolkit/dist/lint/content-lint.js +250 -0
  265. package/vendor/packages/toolkit/dist/lint/content-lint.js.map +1 -0
  266. package/vendor/packages/toolkit/dist/lint/index.d.ts +2 -0
  267. package/vendor/packages/toolkit/dist/lint/index.d.ts.map +1 -0
  268. package/vendor/packages/toolkit/dist/lint/index.js +2 -0
  269. package/vendor/packages/toolkit/dist/lint/index.js.map +1 -0
  270. package/vendor/packages/toolkit/dist/loaders/asset-unit.d.ts +4 -0
  271. package/vendor/packages/toolkit/dist/loaders/asset-unit.d.ts.map +1 -0
  272. package/vendor/packages/toolkit/dist/loaders/asset-unit.js +95 -0
  273. package/vendor/packages/toolkit/dist/loaders/asset-unit.js.map +1 -0
  274. package/vendor/packages/toolkit/dist/loaders/content-tree.d.ts +2 -0
  275. package/vendor/packages/toolkit/dist/loaders/content-tree.d.ts.map +1 -0
  276. package/vendor/packages/toolkit/dist/loaders/content-tree.js +2 -0
  277. package/vendor/packages/toolkit/dist/loaders/content-tree.js.map +1 -0
  278. package/vendor/packages/toolkit/dist/loaders/fs.d.ts +6 -0
  279. package/vendor/packages/toolkit/dist/loaders/fs.d.ts.map +1 -0
  280. package/vendor/packages/toolkit/dist/loaders/fs.js +19 -0
  281. package/vendor/packages/toolkit/dist/loaders/fs.js.map +1 -0
  282. package/vendor/packages/toolkit/dist/loaders/index.d.ts +4 -0
  283. package/vendor/packages/toolkit/dist/loaders/index.d.ts.map +1 -0
  284. package/vendor/packages/toolkit/dist/loaders/index.js +4 -0
  285. package/vendor/packages/toolkit/dist/loaders/index.js.map +1 -0
  286. package/vendor/packages/toolkit/dist/loaders/simple-yaml.d.ts +2 -0
  287. package/vendor/packages/toolkit/dist/loaders/simple-yaml.d.ts.map +1 -0
  288. package/vendor/packages/toolkit/dist/loaders/simple-yaml.js +125 -0
  289. package/vendor/packages/toolkit/dist/loaders/simple-yaml.js.map +1 -0
  290. package/vendor/packages/toolkit/dist/loaders.test.d.ts +2 -0
  291. package/vendor/packages/toolkit/dist/loaders.test.d.ts.map +1 -0
  292. package/vendor/packages/toolkit/dist/loaders.test.js +84 -0
  293. package/vendor/packages/toolkit/dist/loaders.test.js.map +1 -0
  294. package/vendor/packages/toolkit/dist/manifests/index.d.ts +2 -0
  295. package/vendor/packages/toolkit/dist/manifests/index.d.ts.map +1 -0
  296. package/vendor/packages/toolkit/dist/manifests/index.js +2 -0
  297. package/vendor/packages/toolkit/dist/manifests/index.js.map +1 -0
  298. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.d.ts +7 -0
  299. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.d.ts.map +1 -0
  300. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.js +72 -0
  301. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.js.map +1 -0
  302. package/vendor/packages/toolkit/dist/manifests.test.d.ts +2 -0
  303. package/vendor/packages/toolkit/dist/manifests.test.d.ts.map +1 -0
  304. package/vendor/packages/toolkit/dist/manifests.test.js +75 -0
  305. package/vendor/packages/toolkit/dist/manifests.test.js.map +1 -0
  306. package/vendor/packages/toolkit/dist/query/index.d.ts +2 -0
  307. package/vendor/packages/toolkit/dist/query/index.d.ts.map +1 -0
  308. package/vendor/packages/toolkit/dist/query/index.js +2 -0
  309. package/vendor/packages/toolkit/dist/query/index.js.map +1 -0
  310. package/vendor/packages/toolkit/dist/query/toolkit-query.d.ts +10 -0
  311. package/vendor/packages/toolkit/dist/query/toolkit-query.d.ts.map +1 -0
  312. package/vendor/packages/toolkit/dist/query/toolkit-query.js +49 -0
  313. package/vendor/packages/toolkit/dist/query/toolkit-query.js.map +1 -0
  314. package/vendor/packages/toolkit/dist/query.test.d.ts +2 -0
  315. package/vendor/packages/toolkit/dist/query.test.d.ts.map +1 -0
  316. package/vendor/packages/toolkit/dist/query.test.js +30 -0
  317. package/vendor/packages/toolkit/dist/query.test.js.map +1 -0
  318. package/vendor/packages/toolkit/dist/schema/asset-meta.d.ts +3 -0
  319. package/vendor/packages/toolkit/dist/schema/asset-meta.d.ts.map +1 -0
  320. package/vendor/packages/toolkit/dist/schema/asset-meta.js +130 -0
  321. package/vendor/packages/toolkit/dist/schema/asset-meta.js.map +1 -0
  322. package/vendor/packages/toolkit/dist/schema/asset-unit.d.ts +3 -0
  323. package/vendor/packages/toolkit/dist/schema/asset-unit.d.ts.map +1 -0
  324. package/vendor/packages/toolkit/dist/schema/asset-unit.js +22 -0
  325. package/vendor/packages/toolkit/dist/schema/asset-unit.js.map +1 -0
  326. package/vendor/packages/toolkit/dist/schema/index.d.ts +5 -0
  327. package/vendor/packages/toolkit/dist/schema/index.d.ts.map +1 -0
  328. package/vendor/packages/toolkit/dist/schema/index.js +5 -0
  329. package/vendor/packages/toolkit/dist/schema/index.js.map +1 -0
  330. package/vendor/packages/toolkit/dist/schema/kinds.d.ts +6 -0
  331. package/vendor/packages/toolkit/dist/schema/kinds.d.ts.map +1 -0
  332. package/vendor/packages/toolkit/dist/schema/kinds.js +24 -0
  333. package/vendor/packages/toolkit/dist/schema/kinds.js.map +1 -0
  334. package/vendor/packages/toolkit/dist/schema/manifest.d.ts +3 -0
  335. package/vendor/packages/toolkit/dist/schema/manifest.d.ts.map +1 -0
  336. package/vendor/packages/toolkit/dist/schema/manifest.js +30 -0
  337. package/vendor/packages/toolkit/dist/schema/manifest.js.map +1 -0
  338. package/vendor/packages/toolkit/dist/types.d.ts +80 -0
  339. package/vendor/packages/toolkit/dist/types.d.ts.map +1 -0
  340. package/vendor/packages/toolkit/dist/types.js +6 -0
  341. package/vendor/packages/toolkit/dist/types.js.map +1 -0
  342. package/vendor/packages/toolkit/package.json +35 -0
  343. package/vendor/packages/toolkit/src/content/agents/architect/assets/.gitkeep +0 -0
  344. package/vendor/packages/toolkit/src/content/agents/architect/body.md +34 -0
  345. package/vendor/packages/toolkit/src/content/agents/architect/meta.yaml +25 -0
  346. package/vendor/packages/toolkit/src/content/agents/backend-specialist/assets/.gitkeep +0 -0
  347. package/vendor/packages/toolkit/src/content/agents/backend-specialist/body.md +30 -0
  348. package/vendor/packages/toolkit/src/content/agents/backend-specialist/meta.yaml +24 -0
  349. package/vendor/packages/toolkit/src/content/agents/code-reviewer/assets/.gitkeep +0 -0
  350. package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +31 -0
  351. package/vendor/packages/toolkit/src/content/agents/code-reviewer/meta.yaml +26 -0
  352. package/vendor/packages/toolkit/src/content/agents/frontend-specialist/assets/.gitkeep +0 -0
  353. package/vendor/packages/toolkit/src/content/agents/frontend-specialist/body.md +31 -0
  354. package/vendor/packages/toolkit/src/content/agents/frontend-specialist/meta.yaml +24 -0
  355. package/vendor/packages/toolkit/src/content/agents/performance-engineer/assets/.gitkeep +0 -0
  356. package/vendor/packages/toolkit/src/content/agents/performance-engineer/body.md +72 -0
  357. package/vendor/packages/toolkit/src/content/agents/performance-engineer/meta.yaml +24 -0
  358. package/vendor/packages/toolkit/src/content/agents/product-owner/assets/.gitkeep +0 -0
  359. package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +32 -0
  360. package/vendor/packages/toolkit/src/content/agents/product-owner/meta.yaml +24 -0
  361. package/vendor/packages/toolkit/src/content/agents/security-auditor/assets/.gitkeep +0 -0
  362. package/vendor/packages/toolkit/src/content/agents/security-auditor/body.md +83 -0
  363. package/vendor/packages/toolkit/src/content/agents/security-auditor/meta.yaml +24 -0
  364. package/vendor/packages/toolkit/src/content/agents/test-engineer/assets/.gitkeep +0 -0
  365. package/vendor/packages/toolkit/src/content/agents/test-engineer/body.md +30 -0
  366. package/vendor/packages/toolkit/src/content/agents/test-engineer/meta.yaml +28 -0
  367. package/vendor/packages/toolkit/src/content/commands/api/assets/.gitkeep +0 -0
  368. package/vendor/packages/toolkit/src/content/commands/api/body.md +24 -0
  369. package/vendor/packages/toolkit/src/content/commands/api/meta.yaml +19 -0
  370. package/vendor/packages/toolkit/src/content/commands/build/assets/.gitkeep +0 -0
  371. package/vendor/packages/toolkit/src/content/commands/build/body.md +37 -0
  372. package/vendor/packages/toolkit/src/content/commands/build/meta.yaml +26 -0
  373. package/vendor/packages/toolkit/src/content/commands/careful/assets/.gitkeep +0 -0
  374. package/vendor/packages/toolkit/src/content/commands/careful/body.md +18 -0
  375. package/vendor/packages/toolkit/src/content/commands/careful/meta.yaml +17 -0
  376. package/vendor/packages/toolkit/src/content/commands/ci/assets/.gitkeep +0 -0
  377. package/vendor/packages/toolkit/src/content/commands/ci/body.md +27 -0
  378. package/vendor/packages/toolkit/src/content/commands/ci/meta.yaml +19 -0
  379. package/vendor/packages/toolkit/src/content/commands/commit/assets/.gitkeep +0 -0
  380. package/vendor/packages/toolkit/src/content/commands/commit/body.md +26 -0
  381. package/vendor/packages/toolkit/src/content/commands/commit/meta.yaml +19 -0
  382. package/vendor/packages/toolkit/src/content/commands/ctx-health/assets/.gitkeep +0 -0
  383. package/vendor/packages/toolkit/src/content/commands/ctx-health/body.md +22 -0
  384. package/vendor/packages/toolkit/src/content/commands/ctx-health/meta.yaml +19 -0
  385. package/vendor/packages/toolkit/src/content/commands/debug/assets/.gitkeep +0 -0
  386. package/vendor/packages/toolkit/src/content/commands/debug/body.md +24 -0
  387. package/vendor/packages/toolkit/src/content/commands/debug/meta.yaml +19 -0
  388. package/vendor/packages/toolkit/src/content/commands/doc/assets/.gitkeep +0 -0
  389. package/vendor/packages/toolkit/src/content/commands/doc/body.md +23 -0
  390. package/vendor/packages/toolkit/src/content/commands/doc/meta.yaml +19 -0
  391. package/vendor/packages/toolkit/src/content/commands/freeze/assets/.gitkeep +0 -0
  392. package/vendor/packages/toolkit/src/content/commands/freeze/body.md +17 -0
  393. package/vendor/packages/toolkit/src/content/commands/freeze/meta.yaml +17 -0
  394. package/vendor/packages/toolkit/src/content/commands/guard/assets/.gitkeep +0 -0
  395. package/vendor/packages/toolkit/src/content/commands/guard/body.md +17 -0
  396. package/vendor/packages/toolkit/src/content/commands/guard/meta.yaml +20 -0
  397. package/vendor/packages/toolkit/src/content/commands/idea/assets/.gitkeep +0 -0
  398. package/vendor/packages/toolkit/src/content/commands/idea/body.md +23 -0
  399. package/vendor/packages/toolkit/src/content/commands/idea/meta.yaml +19 -0
  400. package/vendor/packages/toolkit/src/content/commands/learn/assets/.gitkeep +0 -0
  401. package/vendor/packages/toolkit/src/content/commands/learn/body.md +37 -0
  402. package/vendor/packages/toolkit/src/content/commands/learn/meta.yaml +19 -0
  403. package/vendor/packages/toolkit/src/content/commands/migrate/assets/.gitkeep +0 -0
  404. package/vendor/packages/toolkit/src/content/commands/migrate/body.md +24 -0
  405. package/vendor/packages/toolkit/src/content/commands/migrate/meta.yaml +20 -0
  406. package/vendor/packages/toolkit/src/content/commands/onboard/assets/.gitkeep +0 -0
  407. package/vendor/packages/toolkit/src/content/commands/onboard/body.md +24 -0
  408. package/vendor/packages/toolkit/src/content/commands/onboard/meta.yaml +19 -0
  409. package/vendor/packages/toolkit/src/content/commands/perf/assets/.gitkeep +0 -0
  410. package/vendor/packages/toolkit/src/content/commands/perf/body.md +23 -0
  411. package/vendor/packages/toolkit/src/content/commands/perf/meta.yaml +19 -0
  412. package/vendor/packages/toolkit/src/content/commands/plan-review/assets/.gitkeep +0 -0
  413. package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +28 -0
  414. package/vendor/packages/toolkit/src/content/commands/plan-review/meta.yaml +20 -0
  415. package/vendor/packages/toolkit/src/content/commands/qa/assets/.gitkeep +0 -0
  416. package/vendor/packages/toolkit/src/content/commands/qa/body.md +24 -0
  417. package/vendor/packages/toolkit/src/content/commands/qa/meta.yaml +19 -0
  418. package/vendor/packages/toolkit/src/content/commands/quality-review/assets/.gitkeep +0 -0
  419. package/vendor/packages/toolkit/src/content/commands/quality-review/body.md +38 -0
  420. package/vendor/packages/toolkit/src/content/commands/quality-review/meta.yaml +22 -0
  421. package/vendor/packages/toolkit/src/content/commands/retro/assets/.gitkeep +0 -0
  422. package/vendor/packages/toolkit/src/content/commands/retro/body.md +25 -0
  423. package/vendor/packages/toolkit/src/content/commands/retro/meta.yaml +20 -0
  424. package/vendor/packages/toolkit/src/content/commands/sdd-tdd/assets/.gitkeep +0 -0
  425. package/vendor/packages/toolkit/src/content/commands/sdd-tdd/body.md +39 -0
  426. package/vendor/packages/toolkit/src/content/commands/sdd-tdd/meta.yaml +23 -0
  427. package/vendor/packages/toolkit/src/content/commands/secure/assets/.gitkeep +0 -0
  428. package/vendor/packages/toolkit/src/content/commands/secure/body.md +23 -0
  429. package/vendor/packages/toolkit/src/content/commands/secure/meta.yaml +19 -0
  430. package/vendor/packages/toolkit/src/content/commands/ship/assets/.gitkeep +0 -0
  431. package/vendor/packages/toolkit/src/content/commands/ship/body.md +17 -0
  432. package/vendor/packages/toolkit/src/content/commands/ship/meta.yaml +21 -0
  433. package/vendor/packages/toolkit/src/content/commands/simplify/assets/.gitkeep +0 -0
  434. package/vendor/packages/toolkit/src/content/commands/simplify/body.md +24 -0
  435. package/vendor/packages/toolkit/src/content/commands/simplify/meta.yaml +19 -0
  436. package/vendor/packages/toolkit/src/content/commands/spec/assets/.gitkeep +0 -0
  437. package/vendor/packages/toolkit/src/content/commands/spec/body.md +32 -0
  438. package/vendor/packages/toolkit/src/content/commands/spec/meta.yaml +23 -0
  439. package/vendor/packages/toolkit/src/content/commands/task-plan/assets/.gitkeep +0 -0
  440. package/vendor/packages/toolkit/src/content/commands/task-plan/body.md +32 -0
  441. package/vendor/packages/toolkit/src/content/commands/task-plan/meta.yaml +23 -0
  442. package/vendor/packages/toolkit/src/content/commands/ui/assets/.gitkeep +0 -0
  443. package/vendor/packages/toolkit/src/content/commands/ui/body.md +24 -0
  444. package/vendor/packages/toolkit/src/content/commands/ui/meta.yaml +20 -0
  445. package/vendor/packages/toolkit/src/content/commands/verify/assets/.gitkeep +0 -0
  446. package/vendor/packages/toolkit/src/content/commands/verify/body.md +32 -0
  447. package/vendor/packages/toolkit/src/content/commands/verify/meta.yaml +19 -0
  448. package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/assets/.gitkeep +0 -0
  449. package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/body.md +289 -0
  450. package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/meta.yaml +21 -0
  451. package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/assets/.gitkeep +0 -0
  452. package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/body.md +129 -0
  453. package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/meta.yaml +18 -0
  454. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +155 -0
  455. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/meta.yaml +17 -0
  456. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/assets/.gitkeep +0 -0
  457. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +554 -0
  458. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/meta.yaml +20 -0
  459. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/assets/.gitkeep +0 -0
  460. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +417 -0
  461. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/meta.yaml +21 -0
  462. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/assets/.gitkeep +0 -0
  463. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +130 -0
  464. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/meta.yaml +21 -0
  465. package/vendor/packages/toolkit/src/content/skills/code-simplification/assets/.gitkeep +0 -0
  466. package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +326 -0
  467. package/vendor/packages/toolkit/src/content/skills/code-simplification/meta.yaml +21 -0
  468. package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/assets/.gitkeep +0 -0
  469. package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/body.md +40 -0
  470. package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/meta.yaml +20 -0
  471. package/vendor/packages/toolkit/src/content/skills/context-budget-audit/assets/.gitkeep +0 -0
  472. package/vendor/packages/toolkit/src/content/skills/context-budget-audit/body.md +38 -0
  473. package/vendor/packages/toolkit/src/content/skills/context-budget-audit/meta.yaml +17 -0
  474. package/vendor/packages/toolkit/src/content/skills/context-engineering/assets/.gitkeep +0 -0
  475. package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +55 -0
  476. package/vendor/packages/toolkit/src/content/skills/context-engineering/meta.yaml +17 -0
  477. package/vendor/packages/toolkit/src/content/skills/continuous-learning/assets/.gitkeep +0 -0
  478. package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +367 -0
  479. package/vendor/packages/toolkit/src/content/skills/continuous-learning/meta.yaml +18 -0
  480. package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/assets/.gitkeep +0 -0
  481. package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/body.md +43 -0
  482. package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/meta.yaml +21 -0
  483. package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/assets/.gitkeep +0 -0
  484. package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/body.md +201 -0
  485. package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/meta.yaml +21 -0
  486. package/vendor/packages/toolkit/src/content/skills/developer-experience-audit/body.md +49 -0
  487. package/vendor/packages/toolkit/src/content/skills/developer-experience-audit/meta.yaml +17 -0
  488. package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/assets/.gitkeep +0 -0
  489. package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/body.md +61 -0
  490. package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/meta.yaml +21 -0
  491. package/vendor/packages/toolkit/src/content/skills/engineering-principles/body.md +54 -0
  492. package/vendor/packages/toolkit/src/content/skills/engineering-principles/meta.yaml +18 -0
  493. package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/assets/.gitkeep +0 -0
  494. package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/body.md +324 -0
  495. package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/meta.yaml +21 -0
  496. package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/assets/.gitkeep +0 -0
  497. package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/body.md +319 -0
  498. package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/meta.yaml +21 -0
  499. package/vendor/packages/toolkit/src/content/skills/idea-refine/assets/.gitkeep +0 -0
  500. package/vendor/packages/toolkit/src/content/skills/idea-refine/body.md +173 -0
  501. package/vendor/packages/toolkit/src/content/skills/idea-refine/meta.yaml +17 -0
  502. package/vendor/packages/toolkit/src/content/skills/incremental-implementation/assets/.gitkeep +0 -0
  503. package/vendor/packages/toolkit/src/content/skills/incremental-implementation/body.md +43 -0
  504. package/vendor/packages/toolkit/src/content/skills/incremental-implementation/meta.yaml +20 -0
  505. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/assets/.gitkeep +0 -0
  506. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +52 -0
  507. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/meta.yaml +18 -0
  508. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/assets/.gitkeep +0 -0
  509. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +351 -0
  510. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/meta.yaml +19 -0
  511. package/vendor/packages/toolkit/src/content/skills/performance-optimization/assets/.gitkeep +0 -0
  512. package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +345 -0
  513. package/vendor/packages/toolkit/src/content/skills/performance-optimization/meta.yaml +20 -0
  514. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/assets/.gitkeep +0 -0
  515. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +48 -0
  516. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/meta.yaml +20 -0
  517. package/vendor/packages/toolkit/src/content/skills/release-documentation-sync/body.md +54 -0
  518. package/vendor/packages/toolkit/src/content/skills/release-documentation-sync/meta.yaml +15 -0
  519. package/vendor/packages/toolkit/src/content/skills/review-response-and-resolution/body.md +61 -0
  520. package/vendor/packages/toolkit/src/content/skills/review-response-and-resolution/meta.yaml +18 -0
  521. package/vendor/packages/toolkit/src/content/skills/safety-guardrails/assets/.gitkeep +0 -0
  522. package/vendor/packages/toolkit/src/content/skills/safety-guardrails/body.md +43 -0
  523. package/vendor/packages/toolkit/src/content/skills/safety-guardrails/meta.yaml +17 -0
  524. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/assets/.gitkeep +0 -0
  525. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +371 -0
  526. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/meta.yaml +25 -0
  527. package/vendor/packages/toolkit/src/content/skills/security-and-hardening/assets/.gitkeep +0 -0
  528. package/vendor/packages/toolkit/src/content/skills/security-and-hardening/body.md +344 -0
  529. package/vendor/packages/toolkit/src/content/skills/security-and-hardening/meta.yaml +21 -0
  530. package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/assets/.gitkeep +0 -0
  531. package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/body.md +55 -0
  532. package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/meta.yaml +22 -0
  533. package/vendor/packages/toolkit/src/content/skills/source-driven-development/assets/.gitkeep +0 -0
  534. package/vendor/packages/toolkit/src/content/skills/source-driven-development/body.md +186 -0
  535. package/vendor/packages/toolkit/src/content/skills/source-driven-development/meta.yaml +18 -0
  536. package/vendor/packages/toolkit/src/content/skills/spec-driven-development/assets/.gitkeep +0 -0
  537. package/vendor/packages/toolkit/src/content/skills/spec-driven-development/body.md +49 -0
  538. package/vendor/packages/toolkit/src/content/skills/spec-driven-development/meta.yaml +20 -0
  539. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/assets/.gitkeep +0 -0
  540. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +336 -0
  541. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/meta.yaml +17 -0
  542. package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/assets/.gitkeep +0 -0
  543. package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/body.md +228 -0
  544. package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/meta.yaml +19 -0
  545. package/vendor/packages/toolkit/src/content/skills/team-orchestration/assets/.gitkeep +0 -0
  546. package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +372 -0
  547. package/vendor/packages/toolkit/src/content/skills/team-orchestration/meta.yaml +20 -0
  548. package/vendor/packages/toolkit/src/content/skills/test-driven-development/assets/.gitkeep +0 -0
  549. package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +374 -0
  550. package/vendor/packages/toolkit/src/content/skills/test-driven-development/meta.yaml +20 -0
  551. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/assets/.gitkeep +0 -0
  552. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +169 -0
  553. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/meta.yaml +23 -0
  554. package/vendor/packages/toolkit/src/content/skills/verification-before-completion/assets/.gitkeep +0 -0
  555. package/vendor/packages/toolkit/src/content/skills/verification-before-completion/body.md +68 -0
  556. package/vendor/packages/toolkit/src/content/skills/verification-before-completion/meta.yaml +20 -0
  557. package/vendor/packages/toolkit/templates/README.md +12 -0
  558. package/vendor/packages/toolkit/templates/asset-unit/assets/.gitkeep +1 -0
  559. package/vendor/packages/toolkit/templates/asset-unit/body.md +3 -0
  560. package/vendor/packages/toolkit/templates/asset-unit/meta.yaml +6 -0
  561. package/vendor/references/upstreams.yaml +89 -0
@@ -0,0 +1,120 @@
1
+ import assert from "node:assert/strict";
2
+ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
3
+ import { dirname, join } from "node:path";
4
+ import { tmpdir } from "node:os";
5
+ import { afterEach, describe, it } from "vitest";
6
+ import { hashPlatformArtifactContent } from "./receipt.js";
7
+ import { resolvePlatformInstallStatus } from "./status.js";
8
+ import { writePlatformInstallReceiptForPlan } from "../utils/platform-install-receipt.js";
9
+ const tempDirs = [];
10
+ async function createTempDir() {
11
+ const dir = await mkdtemp(join(tmpdir(), "ai-coding-platform-status-"));
12
+ tempDirs.push(dir);
13
+ return dir;
14
+ }
15
+ async function writeArtifact(path, content) {
16
+ await mkdir(dirname(path), { recursive: true });
17
+ await writeFile(path, content, "utf8");
18
+ }
19
+ afterEach(async () => {
20
+ await Promise.all(tempDirs.splice(0, tempDirs.length).map((dir) => rm(dir, { recursive: true, force: true })));
21
+ });
22
+ describe("resolvePlatformInstallStatus", () => {
23
+ it("reports not-installed when no receipt exists even if files happen to be present", async () => {
24
+ const root = await createTempDir();
25
+ const plan = {
26
+ platform: "codex",
27
+ destinationRoot: root,
28
+ manifestSource: "packages/toolkit/src/content",
29
+ overwrite: "error",
30
+ artifacts: [{ path: join(root, "AGENTS.md"), content: "# agents\n" }],
31
+ };
32
+ await writeArtifact(plan.artifacts[0].path, plan.artifacts[0].content);
33
+ const status = await resolvePlatformInstallStatus(plan);
34
+ assert.equal(status.kind, "not-installed");
35
+ assert.equal(status.receipt, null);
36
+ assert.equal(status.receiptPath, join(root, ".zc", "platform-state", "codex.install-receipt.json"));
37
+ });
38
+ it("reports up-to-date when disk content and current plan both match the receipt", async () => {
39
+ const root = await createTempDir();
40
+ const artifactContent = "# agents\n";
41
+ const expectedDigest = hashPlatformArtifactContent(artifactContent);
42
+ const plan = {
43
+ platform: "codex",
44
+ destinationRoot: root,
45
+ manifestSource: "packages/toolkit/src/content",
46
+ overwrite: "error",
47
+ artifacts: [{ path: join(root, "AGENTS.md"), content: artifactContent }],
48
+ };
49
+ await writeArtifact(plan.artifacts[0].path, plan.artifacts[0].content);
50
+ await writePlatformInstallReceiptForPlan(plan, { installedAt: "2026-04-19T10:11:12.000Z" });
51
+ const status = await resolvePlatformInstallStatus(plan);
52
+ assert.equal(status.kind, "up-to-date");
53
+ assert.deepEqual(status.summary, {
54
+ trackedArtifacts: 1,
55
+ driftedArtifacts: 0,
56
+ missingArtifacts: 0,
57
+ plannedChanges: 0,
58
+ });
59
+ assert.deepEqual(status.artifacts, [
60
+ {
61
+ path: join(root, "AGENTS.md"),
62
+ receiptSha256: expectedDigest,
63
+ actualSha256: expectedDigest,
64
+ plannedSha256: expectedDigest,
65
+ matchesReceiptOnDisk: true,
66
+ differsFromPlan: false,
67
+ },
68
+ ]);
69
+ });
70
+ it("reports update-available when the installed files still match the receipt but the current plan changed", async () => {
71
+ const root = await createTempDir();
72
+ const installedPlan = {
73
+ platform: "codex",
74
+ destinationRoot: root,
75
+ manifestSource: "packages/toolkit/src/content",
76
+ overwrite: "error",
77
+ artifacts: [{ path: join(root, "AGENTS.md"), content: "# agents\n" }],
78
+ };
79
+ await writeArtifact(installedPlan.artifacts[0].path, installedPlan.artifacts[0].content);
80
+ await writePlatformInstallReceiptForPlan(installedPlan, { installedAt: "2026-04-19T10:11:12.000Z" });
81
+ const updatedPlan = {
82
+ ...installedPlan,
83
+ artifacts: [{ path: join(root, "AGENTS.md"), content: "# agents v2\n" }],
84
+ };
85
+ const status = await resolvePlatformInstallStatus(updatedPlan);
86
+ assert.equal(status.kind, "update-available");
87
+ assert.deepEqual(status.summary, {
88
+ trackedArtifacts: 1,
89
+ driftedArtifacts: 0,
90
+ missingArtifacts: 0,
91
+ plannedChanges: 1,
92
+ });
93
+ assert.equal(status.artifacts[0]?.matchesReceiptOnDisk, true);
94
+ assert.equal(status.artifacts[0]?.differsFromPlan, true);
95
+ });
96
+ it("reports drifted when disk content diverges from the recorded receipt", async () => {
97
+ const root = await createTempDir();
98
+ const plan = {
99
+ platform: "codex",
100
+ destinationRoot: root,
101
+ manifestSource: "packages/toolkit/src/content",
102
+ overwrite: "error",
103
+ artifacts: [{ path: join(root, "AGENTS.md"), content: "# agents\n" }],
104
+ };
105
+ await writeArtifact(plan.artifacts[0].path, plan.artifacts[0].content);
106
+ await writePlatformInstallReceiptForPlan(plan, { installedAt: "2026-04-19T10:11:12.000Z" });
107
+ await writeArtifact(plan.artifacts[0].path, "# manually changed\n");
108
+ const status = await resolvePlatformInstallStatus(plan);
109
+ assert.equal(status.kind, "drifted");
110
+ assert.deepEqual(status.summary, {
111
+ trackedArtifacts: 1,
112
+ driftedArtifacts: 1,
113
+ missingArtifacts: 0,
114
+ plannedChanges: 0,
115
+ });
116
+ assert.equal(status.artifacts[0]?.matchesReceiptOnDisk, false);
117
+ assert.equal(status.artifacts[0]?.differsFromPlan, false);
118
+ });
119
+ });
120
+ //# sourceMappingURL=status.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../src/platform-state/status.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { OverwriteMode, PlatformArtifact, PlatformName } from "@zmice/platform-core";
2
+ export interface PlatformInstallPlanLike {
3
+ readonly platform: PlatformName;
4
+ readonly destinationRoot: string;
5
+ readonly manifestSource: string;
6
+ readonly overwrite?: OverwriteMode;
7
+ readonly artifacts: readonly PlatformArtifact[];
8
+ readonly metadata?: {
9
+ readonly fingerprint: {
10
+ readonly algorithm: "sha256";
11
+ readonly value: string;
12
+ };
13
+ };
14
+ }
15
+ export interface PlatformInstallReceiptArtifact {
16
+ readonly path: string;
17
+ readonly sha256: string;
18
+ readonly bytes: number;
19
+ }
20
+ export interface PlatformInstallReceipt {
21
+ readonly schemaVersion: 1;
22
+ readonly platform: PlatformName;
23
+ readonly destinationRoot: string;
24
+ readonly manifestSource: string;
25
+ readonly overwrite: OverwriteMode;
26
+ readonly installedAt: string;
27
+ readonly zcVersion?: string;
28
+ readonly contentFingerprint?: string;
29
+ readonly artifacts: readonly PlatformInstallReceiptArtifact[];
30
+ }
31
+ export type PlatformInstallStatusKind = "not-installed" | "up-to-date" | "update-available" | "drifted";
32
+ export interface PlatformInstallArtifactStatus {
33
+ readonly path: string;
34
+ readonly receiptSha256: string | null;
35
+ readonly actualSha256: string | null;
36
+ readonly plannedSha256: string | null;
37
+ readonly matchesReceiptOnDisk: boolean | null;
38
+ readonly differsFromPlan: boolean;
39
+ }
40
+ export interface PlatformInstallStatusSummary {
41
+ readonly trackedArtifacts: number;
42
+ readonly driftedArtifacts: number;
43
+ readonly missingArtifacts: number;
44
+ readonly plannedChanges: number;
45
+ }
46
+ export interface PlatformInstallStatusResult {
47
+ readonly kind: PlatformInstallStatusKind;
48
+ readonly platform: PlatformName;
49
+ readonly receiptPath: string;
50
+ readonly receipt: PlatformInstallReceipt | null;
51
+ readonly zcVersion?: string;
52
+ readonly installedZcVersion?: string;
53
+ readonly contentFingerprint?: string;
54
+ readonly installedContentFingerprint?: string;
55
+ readonly summary: PlatformInstallStatusSummary;
56
+ readonly artifacts: readonly PlatformInstallArtifactStatus[];
57
+ }
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/platform-state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE1F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,WAAW,EAAE;YACpB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;SACxB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAC/D;AAED,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,YAAY,GACZ,kBAAkB,GAClB,SAAS,CAAC;AAEd,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAC9D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/platform-state/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/__tests__/logger.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { Logger } from "../logger.js";
3
+ describe("Logger", () => {
4
+ it("creates an instance with logging methods", () => {
5
+ const logger = new Logger();
6
+ expect(typeof logger.info).toBe("function");
7
+ expect(typeof logger.warn).toBe("function");
8
+ expect(typeof logger.error).toBe("function");
9
+ });
10
+ });
11
+ //# sourceMappingURL=logger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../src/runtime/__tests__/logger.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/__tests__/session-manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { SessionManager } from "../session-manager.js";
3
+ describe("SessionManager", () => {
4
+ it("creates an instance with the expected methods", () => {
5
+ const session = new SessionManager();
6
+ expect(typeof session.createSession).toBe("function");
7
+ expect(typeof session.createPane).toBe("function");
8
+ expect(typeof session.killSession).toBe("function");
9
+ });
10
+ });
11
+ //# sourceMappingURL=session-manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.test.js","sourceRoot":"","sources":["../../../src/runtime/__tests__/session-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worktree-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-manager.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/__tests__/worktree-manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { WorktreeManager } from "../worktree-manager.js";
3
+ describe("WorktreeManager", () => {
4
+ it("creates an instance with the expected methods", () => {
5
+ const manager = new WorktreeManager("/tmp/repo");
6
+ expect(typeof manager.create).toBe("function");
7
+ expect(typeof manager.remove).toBe("function");
8
+ expect(typeof manager.list).toBe("function");
9
+ });
10
+ });
11
+ //# sourceMappingURL=worktree-manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-manager.test.js","sourceRoot":"","sources":["../../../src/runtime/__tests__/worktree-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +1,6 @@
1
- export {};
1
+ export declare class Logger {
2
+ info(message: string): void;
3
+ warn(message: string): void;
4
+ error(message: string): void;
5
+ }
2
6
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/runtime/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/runtime/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG7B"}
@@ -1,2 +1,12 @@
1
- export {};
1
+ export class Logger {
2
+ info(message) {
3
+ console.log(message);
4
+ }
5
+ warn(message) {
6
+ console.warn(message);
7
+ }
8
+ error(message) {
9
+ console.error(message);
10
+ }
11
+ }
2
12
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/runtime/logger.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/runtime/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACjB,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -1,9 +1,3 @@
1
- /**
2
- * 读取 JSON 文件,不存在时返回默认值
3
- */
4
- export declare function readJson<T>(filePath: string, defaultValue: T): Promise<T>;
5
- /**
6
- * 写入 JSON 文件,自动创建目录
7
- */
8
- export declare function writeJson<T>(filePath: string, data: T): Promise<void>;
1
+ export declare function readJson<T>(path: string, fallback: T): Promise<T>;
2
+ export declare function writeJson(path: string, value: unknown): Promise<void>;
9
3
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO/E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"AAEA,wBAAsB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOvE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E"}
@@ -1,22 +1,14 @@
1
- import { readFile, writeFile, mkdir } from "node:fs/promises";
2
- import { dirname } from "node:path";
3
- /**
4
- * 读取 JSON 文件,不存在时返回默认值
5
- */
6
- export async function readJson(filePath, defaultValue) {
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ export async function readJson(path, fallback) {
7
3
  try {
8
- const content = await readFile(filePath, "utf-8");
9
- return JSON.parse(content);
4
+ const raw = await readFile(path, "utf-8");
5
+ return JSON.parse(raw);
10
6
  }
11
7
  catch {
12
- return defaultValue;
8
+ return fallback;
13
9
  }
14
10
  }
15
- /**
16
- * 写入 JSON 文件,自动创建目录
17
- */
18
- export async function writeJson(filePath, data) {
19
- await mkdir(dirname(filePath), { recursive: true });
20
- await writeFile(filePath, JSON.stringify(data, null, 2), "utf-8");
11
+ export async function writeJson(path, value) {
12
+ await writeFile(path, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
21
13
  }
22
14
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,QAAgB,EAAE,YAAe;IACjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,QAAgB,EAAE,IAAO;IAC1D,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,IAAY,EAAE,QAAW;IACzD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,KAAc;IAC1D,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC"}
@@ -1,39 +1,18 @@
1
1
  export interface WorktreeInfo {
2
+ name: string;
2
3
  path: string;
3
- branch: string;
4
- head: string;
5
4
  }
6
5
  export declare class WorktreeManager {
7
6
  private readonly repoRoot;
8
7
  constructor(repoRoot: string);
9
- /**
10
- * 创建一个新的 git worktree + 分支
11
- * @returns worktree 绝对路径
12
- */
13
- create(workerName: string, teamName: string): Promise<string>;
14
- /**
15
- * 移除一个 worktree
16
- */
17
- remove(worktreePath: string): Promise<void>;
18
- /**
19
- * 列出所有 worktree
20
- */
8
+ create(name: string): Promise<string>;
9
+ remove(name: string): Promise<void>;
21
10
  list(): Promise<WorktreeInfo[]>;
22
- /**
23
- * 将 worktree 分支合并到目标分支
24
- */
25
- mergeTo(worktreePath: string, targetBranch: string): Promise<{
11
+ mergeTo(_name: string): Promise<{
26
12
  success: boolean;
27
13
  message: string;
28
14
  }>;
29
- /**
30
- * 清理团队的所有 worktree 和分支
31
- */
32
- cleanup(teamName: string): Promise<void>;
33
- /**
34
- * 剪枝已失效的 worktree 引用
35
- */
15
+ cleanup(name: string): Promise<void>;
36
16
  prune(): Promise<void>;
37
- private getRepoName;
38
17
  }
39
18
  //# sourceMappingURL=worktree-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/worktree-manager.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C;;;OAGG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnE;;OAEG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAuBrC;;OAEG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmBzG;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B9C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"worktree-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/worktree-manager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQrC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAe/B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAItE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B"}
@@ -1,123 +1,59 @@
1
1
  import { execFile } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
- import { resolve, dirname } from "node:path";
4
3
  const execFileAsync = promisify(execFile);
5
- /**
6
- * Validate that a name contains only safe characters to prevent injection.
7
- */
8
- function validateName(name, label) {
9
- if (!/^[a-zA-Z0-9_-]+$/.test(name)) {
10
- throw new Error(`Invalid ${label}: "${name}". Only alphanumeric, underscore and hyphen allowed.`);
11
- }
12
- }
13
4
  export class WorktreeManager {
14
5
  repoRoot;
15
6
  constructor(repoRoot) {
16
7
  this.repoRoot = repoRoot;
17
8
  }
18
- /**
19
- * 创建一个新的 git worktree + 分支
20
- * @returns worktree 绝对路径
21
- */
22
- async create(workerName, teamName) {
23
- validateName(teamName, "team name");
24
- validateName(workerName, "worker name");
25
- const branch = `zc/${teamName}/${workerName}`;
26
- const parentDir = dirname(this.repoRoot);
27
- const worktreePath = resolve(parentDir, `${this.getRepoName()}-zc-${workerName}`);
28
- // Get current branch as base
29
- const { stdout: currentBranch } = await execFileAsync("git", ["rev-parse", "--abbrev-ref", "HEAD"], { cwd: this.repoRoot });
30
- // Create worktree with new branch
31
- await execFileAsync("git", ["worktree", "add", "-b", branch, worktreePath, currentBranch.trim()], { cwd: this.repoRoot });
32
- return worktreePath;
33
- }
34
- /**
35
- * 移除一个 worktree
36
- */
37
- async remove(worktreePath) {
38
- await execFileAsync("git", ["worktree", "remove", worktreePath, "--force"], {
9
+ async create(name) {
10
+ const path = `${this.repoRoot}/.worktrees/${name}`;
11
+ await execFileAsync("git", ["worktree", "add", path, "-b", `zc/${name}`], {
39
12
  cwd: this.repoRoot,
40
13
  });
14
+ return path;
15
+ }
16
+ async remove(name) {
17
+ const path = `${this.repoRoot}/.worktrees/${name}`;
18
+ try {
19
+ await execFileAsync("git", ["worktree", "remove", "--force", path], {
20
+ cwd: this.repoRoot,
21
+ });
22
+ }
23
+ catch {
24
+ // worktree may already be gone
25
+ }
41
26
  }
42
- /**
43
- * 列出所有 worktree
44
- */
45
27
  async list() {
46
28
  const { stdout } = await execFileAsync("git", ["worktree", "list", "--porcelain"], {
47
29
  cwd: this.repoRoot,
48
30
  });
31
+ const lines = stdout.trim().split("\n");
49
32
  const worktrees = [];
50
- let current = {};
51
- for (const line of stdout.split("\n")) {
52
- if (line.startsWith("worktree ")) {
53
- if (current.path)
54
- worktrees.push(current);
55
- current = { path: line.slice(9) };
56
- }
57
- else if (line.startsWith("HEAD ")) {
58
- current.head = line.slice(5);
59
- }
60
- else if (line.startsWith("branch ")) {
61
- current.branch = line.slice(7).replace("refs/heads/", "");
62
- }
33
+ for (let i = 0; i < lines.length; i += 3) {
34
+ const path = lines[i]?.replace(/^worktree /, "");
35
+ if (!path)
36
+ continue;
37
+ const name = path.split("/").pop() ?? path;
38
+ worktrees.push({ name, path });
63
39
  }
64
- if (current.path)
65
- worktrees.push(current);
66
40
  return worktrees;
67
41
  }
68
- /**
69
- * worktree 分支合并到目标分支
70
- */
71
- async mergeTo(worktreePath, targetBranch) {
72
- try {
73
- // Get the branch name of the worktree
74
- const { stdout: branch } = await execFileAsync("git", ["rev-parse", "--abbrev-ref", "HEAD"], { cwd: worktreePath });
75
- // Switch to target branch in main repo and merge
76
- await execFileAsync("git", ["checkout", targetBranch], { cwd: this.repoRoot });
77
- await execFileAsync("git", ["merge", branch.trim(), "--no-edit"], { cwd: this.repoRoot });
78
- return { success: true, message: `Merged ${branch.trim()} into ${targetBranch}` };
79
- }
80
- catch (err) {
81
- const message = err instanceof Error ? err.message : String(err);
82
- return { success: false, message };
83
- }
42
+ async mergeTo(_name) {
43
+ return { success: true, message: "" };
84
44
  }
85
- /**
86
- * 清理团队的所有 worktree 和分支
87
- */
88
- async cleanup(teamName) {
89
- validateName(teamName, "team name");
90
- const worktrees = await this.list();
91
- const teamWorktrees = worktrees.filter((wt) => wt.branch?.includes(`zc/${teamName}/`));
92
- for (const wt of teamWorktrees) {
93
- try {
94
- await this.remove(wt.path);
95
- }
96
- catch {
97
- // continue cleanup even if one fails
98
- }
99
- }
100
- // Clean up branches
101
- try {
102
- const { stdout } = await execFileAsync("git", ["branch", "--list", `zc/${teamName}/*`], { cwd: this.repoRoot });
103
- const branches = stdout.trim().split("\n").filter(Boolean).map((b) => b.trim());
104
- for (const branch of branches) {
105
- try {
106
- await execFileAsync("git", ["branch", "-D", branch], { cwd: this.repoRoot });
107
- }
108
- catch { /* ignore */ }
109
- }
110
- }
111
- catch { /* ignore */ }
45
+ async cleanup(name) {
46
+ await this.remove(name);
112
47
  }
113
- /**
114
- * 剪枝已失效的 worktree 引用
115
- */
116
48
  async prune() {
117
- await execFileAsync("git", ["worktree", "prune"], { cwd: this.repoRoot });
118
- }
119
- getRepoName() {
120
- return this.repoRoot.split(/[/\\]/).pop() ?? "repo";
49
+ try {
50
+ await execFileAsync("git", ["worktree", "prune"], {
51
+ cwd: this.repoRoot,
52
+ });
53
+ }
54
+ catch {
55
+ // ignore
56
+ }
121
57
  }
122
58
  }
123
59
  //# sourceMappingURL=worktree-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-manager.js","sourceRoot":"","sources":["../../src/runtime/worktree-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-manager.js","sourceRoot":"","sources":["../../src/runtime/worktree-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAO1C,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,eAAe,IAAI,EAAE,CAAC;QACnD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE;YACxE,GAAG,EAAE,IAAI,CAAC,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,eAAe,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClE,GAAG,EAAE,IAAI,CAAC,QAAQ;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE;YACjF,GAAG,EAAE,IAAI,CAAC,QAAQ;SACnB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,SAAS,GAAmB,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;YAC3C,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAChD,GAAG,EAAE,IAAI,CAAC,QAAQ;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mailbox.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailbox.test.d.ts","sourceRoot":"","sources":["../../../src/team/__tests__/mailbox.test.ts"],"names":[],"mappings":""}