@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
@@ -1,97 +1,94 @@
1
- import { randomUUID } from "node:crypto";
2
- import { readJson, writeJson } from "../runtime/state.js";
1
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
3
  export class TaskQueue {
4
+ teamDir;
4
5
  tasks = [];
5
- filePath;
6
+ nextId = 1;
6
7
  constructor(teamDir) {
7
- this.filePath = `${teamDir}/tasks.json`;
8
+ this.teamDir = teamDir;
8
9
  }
9
- async load() {
10
- this.tasks = await readJson(this.filePath, []);
10
+ get path() {
11
+ return join(this.teamDir, "tasks.json");
11
12
  }
12
- async save() {
13
- await writeJson(this.filePath, this.tasks);
13
+ async load() {
14
+ await mkdir(this.teamDir, { recursive: true });
15
+ try {
16
+ const raw = await readFile(this.path, "utf-8");
17
+ const data = JSON.parse(raw);
18
+ this.tasks = data.tasks ?? [];
19
+ this.nextId = this.tasks.length + 1;
20
+ }
21
+ catch {
22
+ this.tasks = [];
23
+ this.nextId = 1;
24
+ await this.persist();
25
+ }
14
26
  }
15
27
  async create(task) {
16
- const now = new Date().toISOString();
17
28
  const newTask = {
18
29
  ...task,
19
- id: randomUUID().slice(0, 8),
30
+ id: `task-${this.nextId++}`,
20
31
  status: "pending",
21
- createdAt: now,
22
- updatedAt: now,
23
32
  };
24
33
  this.tasks.push(newTask);
25
- await this.save();
34
+ await this.persist();
26
35
  return newTask;
27
36
  }
28
- async claim(taskId, workerId) {
29
- const task = this.tasks.find((t) => t.id === taskId);
30
- if (!task)
31
- throw new Error(`Task not found: ${taskId}`);
32
- if (task.status !== "pending")
33
- throw new Error(`Task ${taskId} is not claimable (status: ${task.status})`);
34
- const token = randomUUID();
37
+ list(filter) {
38
+ if (!filter?.status) {
39
+ return [...this.tasks];
40
+ }
41
+ return this.tasks.filter((task) => task.status === filter.status);
42
+ }
43
+ getById(id) {
44
+ return this.tasks.find((task) => task.id === id);
45
+ }
46
+ getReady() {
47
+ return this.tasks.filter((task) => task.status === "pending" || task.status === "claimed");
48
+ }
49
+ async claim(id, workerId) {
50
+ const task = this.requireTask(id);
51
+ if (task.status !== "pending") {
52
+ throw new Error(`Task ${id} is not pending`);
53
+ }
35
54
  task.status = "claimed";
36
55
  task.assignee = workerId;
37
- task.claimToken = token;
38
- task.updatedAt = new Date().toISOString();
39
- await this.save();
40
- return { task, token };
56
+ task.claimToken = `${id}-${workerId}-${Date.now()}`;
57
+ await this.persist();
58
+ return { task, token: task.claimToken };
41
59
  }
42
- async transition(taskId, token, newStatus) {
43
- const task = this.tasks.find((t) => t.id === taskId);
44
- if (!task)
45
- throw new Error(`Task not found: ${taskId}`);
46
- if (task.claimToken !== token)
47
- throw new Error(`Invalid claim token for task ${taskId}`);
48
- task.status = newStatus;
49
- task.updatedAt = new Date().toISOString();
50
- if (newStatus === "completed" || newStatus === "failed") {
51
- task.claimToken = undefined;
60
+ async transition(id, token, status) {
61
+ const task = this.requireTask(id);
62
+ if (task.claimToken !== token) {
63
+ throw new Error(`Invalid claim token for task ${id}`);
64
+ }
65
+ task.status = status;
66
+ if (status === "completed" || status === "failed") {
67
+ delete task.claimToken;
52
68
  }
53
- await this.save();
69
+ await this.persist();
54
70
  return task;
55
71
  }
56
- async release(taskId, token) {
57
- const task = this.tasks.find((t) => t.id === taskId);
58
- if (!task)
59
- throw new Error(`Task not found: ${taskId}`);
60
- if (task.claimToken !== token)
61
- throw new Error(`Invalid claim token for task ${taskId}`);
72
+ async release(id, token) {
73
+ const task = this.requireTask(id);
74
+ if (task.claimToken !== token) {
75
+ throw new Error(`Invalid claim token for task ${id}`);
76
+ }
62
77
  task.status = "pending";
63
- task.assignee = undefined;
64
- task.claimToken = undefined;
65
- task.updatedAt = new Date().toISOString();
66
- await this.save();
67
- }
68
- list(filter) {
69
- if (!filter?.status)
70
- return [...this.tasks];
71
- return this.tasks.filter((t) => t.status === filter.status);
72
- }
73
- getBlocked() {
74
- return this.tasks.filter((t) => t.status === "pending" &&
75
- t.dependencies.length > 0 &&
76
- t.dependencies.some((dep) => {
77
- const depTask = this.tasks.find((d) => d.id === dep);
78
- return !depTask || depTask.status !== "completed";
79
- }));
78
+ delete task.assignee;
79
+ delete task.claimToken;
80
+ await this.persist();
81
+ return task;
80
82
  }
81
- getReady() {
82
- return this.tasks.filter((t) => {
83
- if (t.status !== "pending")
84
- return false;
85
- if (t.dependencies.length === 0)
86
- return true;
87
- return t.dependencies.every((dep) => {
88
- const depTask = this.tasks.find((d) => d.id === dep);
89
- return depTask?.status === "completed";
90
- });
91
- });
83
+ requireTask(id) {
84
+ const task = this.getById(id);
85
+ if (!task) {
86
+ throw new Error(`Task ${id} not found`);
87
+ }
88
+ return task;
92
89
  }
93
- getById(taskId) {
94
- return this.tasks.find((t) => t.id === taskId);
90
+ async persist() {
91
+ await writeFile(this.path, JSON.stringify({ tasks: this.tasks }, null, 2), "utf-8");
95
92
  }
96
93
  }
97
94
  //# sourceMappingURL=task-queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/team/task-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/team/task-queue.ts"],"names":[],"mappings":"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"}
@@ -3,52 +3,29 @@ import { WorktreeManager } from "../runtime/worktree-manager.js";
3
3
  export interface WorkerInfo {
4
4
  id: string;
5
5
  cli: string;
6
- status: "idle" | "busy" | "dead";
7
- paneId: string;
8
- worktree: string;
9
- branch: string;
10
- pid?: number;
6
+ status: "idle" | "busy";
11
7
  currentTask?: string;
8
+ paneId?: string;
9
+ worktreePath?: string;
10
+ exitCode?: number;
11
+ }
12
+ export interface WorkerTaskState {
13
+ status: "running" | "completed" | "failed";
14
+ exitCode?: number;
12
15
  }
13
16
  export declare class WorkerManager {
14
17
  private readonly teamName;
15
18
  private readonly sessionManager;
16
19
  private readonly worktreeManager;
17
20
  private workers;
21
+ private taskState;
18
22
  constructor(teamName: string, sessionManager: SessionManager, worktreeManager: WorktreeManager);
19
- /**
20
- * Create a new worker: create worktree + tmux pane, cd into worktree
21
- */
22
23
  spawnWorker(id: string, cli: string): Promise<WorkerInfo>;
23
- /**
24
- * Assign a task to a worker: start CLI in its tmux pane
25
- */
26
- assignTask(workerId: string, taskId: string, prompt: string, model?: string): Promise<void>;
27
- /**
28
- * Get worker's current output via tmux capture
29
- */
30
- getOutput(workerId: string): Promise<string>;
31
- /**
32
- * Check if a worker's tmux pane is still alive
33
- */
34
- healthCheck(workerId: string): Promise<boolean>;
35
- /**
36
- * Kill a single worker: destroy pane, remove worktree
37
- */
38
- killWorker(workerId: string): Promise<void>;
39
- /**
40
- * Shutdown all workers and kill the tmux session
41
- */
42
- shutdownAll(): Promise<void>;
43
- /**
44
- * List all workers
45
- */
46
24
  listWorkers(): WorkerInfo[];
47
- /**
48
- * Get all idle workers
49
- */
50
25
  getIdleWorkers(): WorkerInfo[];
51
- private getWorkerOrThrow;
52
- private buildCliCommand;
26
+ assignTask(id: string, taskId: string, prompt: string, model?: string): Promise<void>;
27
+ getTaskState(id: string): Promise<WorkerTaskState>;
28
+ markIdle(id: string, exitCode?: number): void;
29
+ shutdownAll(): Promise<void>;
53
30
  }
54
31
  //# sourceMappingURL=worker-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-manager.d.ts","sourceRoot":"","sources":["../../src/team/worker-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IALlC,OAAO,CAAC,OAAO,CAAiC;gBAG7B,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe;IAGnD;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkC/D;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IA2BhB;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrD;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;IAI3B;;OAEG;IACH,cAAc,IAAI,UAAU,EAAE;IAM9B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,eAAe;CAwBxB"}
1
+ {"version":3,"file":"worker-manager.d.ts","sourceRoot":"","sources":["../../src/team/worker-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAa;IAKtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IANlC,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,SAAS,CAAsC;gBAGpC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe;IAG7C,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAc/D,WAAW,IAAI,UAAU,EAAE;IAI3B,cAAc,IAAI,UAAU,EAAE;IAIxB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrF,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAQvC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAWnC"}
@@ -1,159 +1,64 @@
1
- import { getAdapter } from "../adapters/types.js";
2
1
  export class WorkerManager {
3
2
  teamName;
4
3
  sessionManager;
5
4
  worktreeManager;
6
5
  workers = new Map();
6
+ taskState = new Map();
7
7
  constructor(teamName, sessionManager, worktreeManager) {
8
8
  this.teamName = teamName;
9
9
  this.sessionManager = sessionManager;
10
10
  this.worktreeManager = worktreeManager;
11
11
  }
12
- /**
13
- * Create a new worker: create worktree + tmux pane, cd into worktree
14
- */
15
12
  async spawnWorker(id, cli) {
16
- if (this.workers.has(id)) {
17
- throw new Error(`Worker "${id}" already exists`);
18
- }
19
- // Validate CLI adapter exists
20
- const adapter = getAdapter(cli);
21
- if (!adapter) {
22
- throw new Error(`Unknown CLI adapter: "${cli}"`);
23
- }
24
- // Create git worktree
25
- const worktreePath = await this.worktreeManager.create(id, this.teamName);
26
- const branch = `zc/${this.teamName}/${id}`;
27
- // Create tmux pane and cd into worktree
28
- const paneId = await this.sessionManager.createPane(`zc-${this.teamName}`, `cd "${worktreePath}"`);
29
- const info = {
13
+ const worktreePath = await this.worktreeManager.create(`${this.teamName}-${id}`);
14
+ const paneId = await this.sessionManager.createPane(`zc-${this.teamName}`, `${cli} --workdir ${worktreePath}`);
15
+ const worker = {
30
16
  id,
31
17
  cli,
32
18
  status: "idle",
33
19
  paneId,
34
- worktree: worktreePath,
35
- branch,
20
+ worktreePath,
36
21
  };
37
- this.workers.set(id, info);
38
- return { ...info };
22
+ this.workers.set(id, worker);
23
+ return worker;
39
24
  }
40
- /**
41
- * Assign a task to a worker: start CLI in its tmux pane
42
- */
43
- async assignTask(workerId, taskId, prompt, model) {
44
- const worker = this.getWorkerOrThrow(workerId);
45
- if (worker.status === "dead") {
46
- throw new Error(`Worker "${workerId}" is dead`);
47
- }
48
- if (worker.status === "busy") {
49
- throw new Error(`Worker "${workerId}" is already busy`);
50
- }
51
- const adapter = getAdapter(worker.cli);
52
- if (!adapter) {
53
- throw new Error(`CLI adapter "${worker.cli}" not found`);
25
+ listWorkers() {
26
+ return [...this.workers.values()];
27
+ }
28
+ getIdleWorkers() {
29
+ return this.listWorkers().filter((worker) => worker.status === "idle");
30
+ }
31
+ async assignTask(id, taskId, prompt, model) {
32
+ const worker = this.workers.get(id);
33
+ if (!worker) {
34
+ throw new Error(`Worker ${id} not found`);
54
35
  }
55
- // Build CLI command string based on adapter name
56
- const cmd = this.buildCliCommand(worker.cli, prompt, model);
57
- // Send command to tmux pane
58
- await this.sessionManager.sendKeys(worker.paneId, cmd);
59
- // Update worker status
60
36
  worker.status = "busy";
61
37
  worker.currentTask = taskId;
38
+ this.taskState.set(id, { status: "running" });
39
+ await this.sessionManager.sendKeys(worker.paneId ?? "", [prompt, model ? `--model ${model}` : ""].filter(Boolean).join(" "));
62
40
  }
63
- /**
64
- * Get worker's current output via tmux capture
65
- */
66
- async getOutput(workerId) {
67
- const worker = this.getWorkerOrThrow(workerId);
68
- return this.sessionManager.captureOutput(worker.paneId);
69
- }
70
- /**
71
- * Check if a worker's tmux pane is still alive
72
- */
73
- async healthCheck(workerId) {
74
- const worker = this.getWorkerOrThrow(workerId);
75
- try {
76
- await this.sessionManager.captureOutput(worker.paneId, 1);
77
- return true;
78
- }
79
- catch {
80
- worker.status = "dead";
81
- return false;
82
- }
41
+ async getTaskState(id) {
42
+ return this.taskState.get(id) ?? { status: "completed", exitCode: 0 };
83
43
  }
84
- /**
85
- * Kill a single worker: destroy pane, remove worktree
86
- */
87
- async killWorker(workerId) {
88
- const worker = this.workers.get(workerId);
44
+ markIdle(id, exitCode) {
45
+ const worker = this.workers.get(id);
89
46
  if (!worker)
90
47
  return;
91
- // Kill tmux pane
92
- await this.sessionManager.killPane(worker.paneId);
93
- // Remove worktree
94
- try {
95
- await this.worktreeManager.remove(worker.worktree);
96
- }
97
- catch {
98
- // worktree may already be removed
99
- }
100
- worker.status = "dead";
101
- this.workers.delete(workerId);
48
+ worker.status = "idle";
49
+ delete worker.currentTask;
50
+ worker.exitCode = exitCode;
102
51
  }
103
- /**
104
- * Shutdown all workers and kill the tmux session
105
- */
106
52
  async shutdownAll() {
107
- const ids = Array.from(this.workers.keys());
108
- for (const id of ids) {
109
- await this.killWorker(id);
110
- }
111
- // Kill the team session
112
- await this.sessionManager.killSession(`zc-${this.teamName}`);
113
- }
114
- /**
115
- * List all workers
116
- */
117
- listWorkers() {
118
- return Array.from(this.workers.values()).map((w) => ({ ...w }));
119
- }
120
- /**
121
- * Get all idle workers
122
- */
123
- getIdleWorkers() {
124
- return this.listWorkers().filter((w) => w.status === "idle");
125
- }
126
- // --- private helpers ---
127
- getWorkerOrThrow(workerId) {
128
- const worker = this.workers.get(workerId);
129
- if (!worker) {
130
- throw new Error(`Worker "${workerId}" not found`);
131
- }
132
- return worker;
133
- }
134
- buildCliCommand(cli, prompt, model) {
135
- // Escape prompt for shell
136
- const escaped = prompt.replace(/'/g, "'\\''");
137
- if (cli === "codex") {
138
- const parts = ["codex", "--quiet"];
139
- if (model)
140
- parts.push("--model", model);
141
- parts.push(`'${escaped}'`);
142
- return parts.join(" ");
143
- }
144
- if (cli === "qwen-code") {
145
- const parts = ["qwen", "chat", "--agent"];
146
- if (model)
147
- parts.push("--model", model);
148
- parts.push("--message", `'${escaped}'`);
149
- return parts.join(" ");
53
+ for (const worker of this.workers.values()) {
54
+ if (worker.paneId) {
55
+ await this.sessionManager.killPane(worker.paneId);
56
+ }
57
+ if (worker.worktreePath) {
58
+ await this.worktreeManager.remove(`${this.teamName}-${worker.id}`);
59
+ }
150
60
  }
151
- // Fallback: just use cli name with prompt
152
- const parts = [cli];
153
- if (model)
154
- parts.push("--model", model);
155
- parts.push(`'${escaped}'`);
156
- return parts.join(" ");
61
+ this.workers.clear();
157
62
  }
158
63
  }
159
64
  //# sourceMappingURL=worker-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-manager.js","sourceRoot":"","sources":["../../src/team/worker-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-manager.js","sourceRoot":"","sources":["../../src/team/worker-manager.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,16 @@
1
- export {};
1
+ export interface ZcConfig {
2
+ /** 默认 CLI 工具 (codex | qwen-code) */
3
+ defaultCli: string;
4
+ /** 默认模型 */
5
+ model: string;
6
+ /** Skills 目录路径 */
7
+ skillsDir: string;
8
+ /** 日志级别 */
9
+ logLevel: "debug" | "info" | "warn" | "error";
10
+ }
11
+ /**
12
+ * 从 ~/.zc/config.json 加载配置,支持环境变量覆盖(ZC_ 前缀)。
13
+ * 配置文件不存在时返回默认值,不会报错。
14
+ */
15
+ export declare function loadConfig(): Promise<ZcConfig>;
2
16
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC/C;AAgBD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,CAsBpD"}
@@ -1,2 +1,40 @@
1
- export {};
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { homedir } from "node:os";
4
+ const DEFAULT_CONFIG = {
5
+ defaultCli: "codex",
6
+ model: "",
7
+ skillsDir: "",
8
+ logLevel: "info",
9
+ };
10
+ const ENV_MAP = {
11
+ ZC_DEFAULT_CLI: "defaultCli",
12
+ ZC_MODEL: "model",
13
+ ZC_SKILLS_DIR: "skillsDir",
14
+ ZC_LOG_LEVEL: "logLevel",
15
+ };
16
+ /**
17
+ * 从 ~/.zc/config.json 加载配置,支持环境变量覆盖(ZC_ 前缀)。
18
+ * 配置文件不存在时返回默认值,不会报错。
19
+ */
20
+ export async function loadConfig() {
21
+ const configPath = join(homedir(), ".zc", "config.json");
22
+ let fileConfig = {};
23
+ try {
24
+ const raw = await readFile(configPath, "utf-8");
25
+ fileConfig = JSON.parse(raw);
26
+ }
27
+ catch {
28
+ // config file doesn't exist or is invalid — use defaults
29
+ }
30
+ const merged = { ...DEFAULT_CONFIG, ...fileConfig };
31
+ // 环境变量覆盖
32
+ for (const [envKey, configKey] of Object.entries(ENV_MAP)) {
33
+ const val = process.env[envKey];
34
+ if (val !== undefined && val !== "") {
35
+ merged[configKey] = val;
36
+ }
37
+ }
38
+ return merged;
39
+ }
2
40
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAalC,MAAM,cAAc,GAAa;IAC/B,UAAU,EAAE,OAAO;IACnB,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,OAAO,GAAmC;IAC9C,cAAc,EAAE,YAAY;IAC5B,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,WAAW;IAC1B,YAAY,EAAE,UAAU;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAEzD,IAAI,UAAU,GAAsB,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,GAAG,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;IAE9D,SAAS;IACT,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACnC,MAA4C,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,23 @@
1
+ type PlatformName = "qwen" | "codex" | "qoder";
2
+ type ProjectRootMarker = ".git" | "pnpm-workspace.yaml" | "package.json";
3
+ type InstallSelectorMode = "project" | "global" | "dir";
4
+ export interface InstallTargetResolution {
5
+ root: string;
6
+ source: "explicit" | "project-root" | "cwd" | "official-global";
7
+ marker?: ProjectRootMarker;
8
+ hint?: string;
9
+ }
10
+ export interface InstallSelectorInput {
11
+ dir?: string;
12
+ cwd?: string;
13
+ project?: boolean;
14
+ global?: boolean;
15
+ }
16
+ export interface InstallSelector {
17
+ dir?: string;
18
+ mode: InstallSelectorMode;
19
+ }
20
+ export declare function normalizeInstallSelector(options: InstallSelectorInput): InstallSelector;
21
+ export declare function resolveInstallTarget(_platform: PlatformName, options: InstallSelectorInput): Promise<InstallTargetResolution>;
22
+ export {};
23
+ //# sourceMappingURL=install-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-target.d.ts","sourceRoot":"","sources":["../../src/utils/install-target.ts"],"names":[],"mappings":"AAIA,KAAK,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAC/C,KAAK,iBAAiB,GAAG,MAAM,GAAG,qBAAqB,GAAG,cAAc,CAAC;AACzE,KAAK,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAChE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AA0DD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,eAAe,CAoBvF;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAyBlC"}