@thiagodiogo/pastelsdd 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +3 -0
  3. package/bin/pastelsdd.js +5 -0
  4. package/dist/cli/index.d.ts +5 -0
  5. package/dist/cli/index.js +526 -0
  6. package/dist/commands/change.d.ts +35 -0
  7. package/dist/commands/change.js +277 -0
  8. package/dist/commands/completion.d.ts +72 -0
  9. package/dist/commands/completion.js +264 -0
  10. package/dist/commands/config.d.ts +36 -0
  11. package/dist/commands/config.js +611 -0
  12. package/dist/commands/context-store.d.ts +3 -0
  13. package/dist/commands/context-store.js +282 -0
  14. package/dist/commands/feedback.d.ts +9 -0
  15. package/dist/commands/feedback.js +183 -0
  16. package/dist/commands/initiative.d.ts +13 -0
  17. package/dist/commands/initiative.js +318 -0
  18. package/dist/commands/schema.d.ts +6 -0
  19. package/dist/commands/schema.js +869 -0
  20. package/dist/commands/show.d.ts +14 -0
  21. package/dist/commands/show.js +132 -0
  22. package/dist/commands/spec.d.ts +15 -0
  23. package/dist/commands/spec.js +225 -0
  24. package/dist/commands/validate.d.ts +24 -0
  25. package/dist/commands/validate.js +294 -0
  26. package/dist/commands/workflow/index.d.ts +19 -0
  27. package/dist/commands/workflow/index.js +13 -0
  28. package/dist/commands/workflow/initiative-link.d.ts +24 -0
  29. package/dist/commands/workflow/initiative-link.js +47 -0
  30. package/dist/commands/workflow/instructions.d.ts +29 -0
  31. package/dist/commands/workflow/instructions.js +344 -0
  32. package/dist/commands/workflow/new-change.d.ts +17 -0
  33. package/dist/commands/workflow/new-change.js +141 -0
  34. package/dist/commands/workflow/schemas.d.ts +10 -0
  35. package/dist/commands/workflow/schemas.js +34 -0
  36. package/dist/commands/workflow/set-change.d.ts +13 -0
  37. package/dist/commands/workflow/set-change.js +87 -0
  38. package/dist/commands/workflow/shared.d.ts +59 -0
  39. package/dist/commands/workflow/shared.js +116 -0
  40. package/dist/commands/workflow/status.d.ts +14 -0
  41. package/dist/commands/workflow/status.js +90 -0
  42. package/dist/commands/workflow/templates.d.ts +16 -0
  43. package/dist/commands/workflow/templates.js +69 -0
  44. package/dist/commands/workspace/context-status.d.ts +4 -0
  45. package/dist/commands/workspace/context-status.js +59 -0
  46. package/dist/commands/workspace/open-view.d.ts +62 -0
  47. package/dist/commands/workspace/open-view.js +228 -0
  48. package/dist/commands/workspace/open.d.ts +37 -0
  49. package/dist/commands/workspace/open.js +102 -0
  50. package/dist/commands/workspace/opener-selection.d.ts +11 -0
  51. package/dist/commands/workspace/opener-selection.js +93 -0
  52. package/dist/commands/workspace/operations.d.ts +28 -0
  53. package/dist/commands/workspace/operations.js +543 -0
  54. package/dist/commands/workspace/prompt-theme.d.ts +29 -0
  55. package/dist/commands/workspace/prompt-theme.js +24 -0
  56. package/dist/commands/workspace/registration.d.ts +13 -0
  57. package/dist/commands/workspace/registration.js +84 -0
  58. package/dist/commands/workspace/selection.d.ts +6 -0
  59. package/dist/commands/workspace/selection.js +122 -0
  60. package/dist/commands/workspace/types.d.ts +103 -0
  61. package/dist/commands/workspace/types.js +36 -0
  62. package/dist/commands/workspace.d.ts +6 -0
  63. package/dist/commands/workspace.js +678 -0
  64. package/dist/core/archive.d.ts +11 -0
  65. package/dist/core/archive.js +318 -0
  66. package/dist/core/artifact-graph/graph.d.ts +56 -0
  67. package/dist/core/artifact-graph/graph.js +141 -0
  68. package/dist/core/artifact-graph/index.d.ts +9 -0
  69. package/dist/core/artifact-graph/index.js +14 -0
  70. package/dist/core/artifact-graph/instruction-loader.d.ts +183 -0
  71. package/dist/core/artifact-graph/instruction-loader.js +256 -0
  72. package/dist/core/artifact-graph/outputs.d.ts +14 -0
  73. package/dist/core/artifact-graph/outputs.js +39 -0
  74. package/dist/core/artifact-graph/resolver.d.ts +81 -0
  75. package/dist/core/artifact-graph/resolver.js +257 -0
  76. package/dist/core/artifact-graph/schema.d.ts +13 -0
  77. package/dist/core/artifact-graph/schema.js +108 -0
  78. package/dist/core/artifact-graph/state.d.ts +12 -0
  79. package/dist/core/artifact-graph/state.js +31 -0
  80. package/dist/core/artifact-graph/types.d.ts +40 -0
  81. package/dist/core/artifact-graph/types.js +29 -0
  82. package/dist/core/available-tools.d.ts +17 -0
  83. package/dist/core/available-tools.js +43 -0
  84. package/dist/core/change-metadata/index.d.ts +2 -0
  85. package/dist/core/change-metadata/index.js +2 -0
  86. package/dist/core/change-metadata/schema.d.ts +18 -0
  87. package/dist/core/change-metadata/schema.js +28 -0
  88. package/dist/core/change-status-policy.d.ts +50 -0
  89. package/dist/core/change-status-policy.js +70 -0
  90. package/dist/core/collections/index.d.ts +3 -0
  91. package/dist/core/collections/index.js +3 -0
  92. package/dist/core/collections/initiatives/collection.d.ts +4 -0
  93. package/dist/core/collections/initiatives/collection.js +17 -0
  94. package/dist/core/collections/initiatives/index.d.ts +6 -0
  95. package/dist/core/collections/initiatives/index.js +6 -0
  96. package/dist/core/collections/initiatives/operations.d.ts +49 -0
  97. package/dist/core/collections/initiatives/operations.js +175 -0
  98. package/dist/core/collections/initiatives/resolution.d.ts +87 -0
  99. package/dist/core/collections/initiatives/resolution.js +374 -0
  100. package/dist/core/collections/initiatives/schema.d.ts +41 -0
  101. package/dist/core/collections/initiatives/schema.js +134 -0
  102. package/dist/core/collections/initiatives/templates.d.ts +12 -0
  103. package/dist/core/collections/initiatives/templates.js +90 -0
  104. package/dist/core/collections/runtime.d.ts +46 -0
  105. package/dist/core/collections/runtime.js +194 -0
  106. package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
  107. package/dist/core/command-generation/adapters/amazon-q.js +26 -0
  108. package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
  109. package/dist/core/command-generation/adapters/antigravity.js +26 -0
  110. package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
  111. package/dist/core/command-generation/adapters/auggie.js +27 -0
  112. package/dist/core/command-generation/adapters/bob.d.ts +14 -0
  113. package/dist/core/command-generation/adapters/bob.js +45 -0
  114. package/dist/core/command-generation/adapters/claude.d.ts +13 -0
  115. package/dist/core/command-generation/adapters/claude.js +50 -0
  116. package/dist/core/command-generation/adapters/cline.d.ts +14 -0
  117. package/dist/core/command-generation/adapters/cline.js +27 -0
  118. package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
  119. package/dist/core/command-generation/adapters/codebuddy.js +28 -0
  120. package/dist/core/command-generation/adapters/codex.d.ts +16 -0
  121. package/dist/core/command-generation/adapters/codex.js +39 -0
  122. package/dist/core/command-generation/adapters/continue.d.ts +13 -0
  123. package/dist/core/command-generation/adapters/continue.js +28 -0
  124. package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
  125. package/dist/core/command-generation/adapters/costrict.js +27 -0
  126. package/dist/core/command-generation/adapters/crush.d.ts +13 -0
  127. package/dist/core/command-generation/adapters/crush.js +30 -0
  128. package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
  129. package/dist/core/command-generation/adapters/cursor.js +44 -0
  130. package/dist/core/command-generation/adapters/factory.d.ts +13 -0
  131. package/dist/core/command-generation/adapters/factory.js +27 -0
  132. package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
  133. package/dist/core/command-generation/adapters/gemini.js +26 -0
  134. package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
  135. package/dist/core/command-generation/adapters/github-copilot.js +26 -0
  136. package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
  137. package/dist/core/command-generation/adapters/iflow.js +29 -0
  138. package/dist/core/command-generation/adapters/index.d.ts +32 -0
  139. package/dist/core/command-generation/adapters/index.js +32 -0
  140. package/dist/core/command-generation/adapters/junie.d.ts +13 -0
  141. package/dist/core/command-generation/adapters/junie.js +26 -0
  142. package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
  143. package/dist/core/command-generation/adapters/kilocode.js +23 -0
  144. package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
  145. package/dist/core/command-generation/adapters/kiro.js +26 -0
  146. package/dist/core/command-generation/adapters/lingma.d.ts +13 -0
  147. package/dist/core/command-generation/adapters/lingma.js +30 -0
  148. package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
  149. package/dist/core/command-generation/adapters/opencode.js +29 -0
  150. package/dist/core/command-generation/adapters/pi.d.ts +18 -0
  151. package/dist/core/command-generation/adapters/pi.js +55 -0
  152. package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
  153. package/dist/core/command-generation/adapters/qoder.js +30 -0
  154. package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
  155. package/dist/core/command-generation/adapters/qwen.js +26 -0
  156. package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
  157. package/dist/core/command-generation/adapters/roocode.js +27 -0
  158. package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
  159. package/dist/core/command-generation/adapters/windsurf.js +51 -0
  160. package/dist/core/command-generation/generator.d.ts +21 -0
  161. package/dist/core/command-generation/generator.js +27 -0
  162. package/dist/core/command-generation/index.d.ts +22 -0
  163. package/dist/core/command-generation/index.js +24 -0
  164. package/dist/core/command-generation/registry.d.ts +36 -0
  165. package/dist/core/command-generation/registry.js +98 -0
  166. package/dist/core/command-generation/types.d.ts +56 -0
  167. package/dist/core/command-generation/types.js +8 -0
  168. package/dist/core/completions/command-registry.d.ts +3 -0
  169. package/dist/core/completions/command-registry.js +939 -0
  170. package/dist/core/completions/completion-provider.d.ts +71 -0
  171. package/dist/core/completions/completion-provider.js +129 -0
  172. package/dist/core/completions/factory.d.ts +64 -0
  173. package/dist/core/completions/factory.js +75 -0
  174. package/dist/core/completions/generators/bash-generator.d.ts +35 -0
  175. package/dist/core/completions/generators/bash-generator.js +230 -0
  176. package/dist/core/completions/generators/fish-generator.d.ts +32 -0
  177. package/dist/core/completions/generators/fish-generator.js +160 -0
  178. package/dist/core/completions/generators/powershell-generator.d.ts +36 -0
  179. package/dist/core/completions/generators/powershell-generator.js +266 -0
  180. package/dist/core/completions/generators/zsh-generator.d.ts +47 -0
  181. package/dist/core/completions/generators/zsh-generator.js +274 -0
  182. package/dist/core/completions/installers/bash-installer.d.ts +87 -0
  183. package/dist/core/completions/installers/bash-installer.js +318 -0
  184. package/dist/core/completions/installers/fish-installer.d.ts +43 -0
  185. package/dist/core/completions/installers/fish-installer.js +143 -0
  186. package/dist/core/completions/installers/powershell-installer.d.ts +102 -0
  187. package/dist/core/completions/installers/powershell-installer.js +387 -0
  188. package/dist/core/completions/installers/zsh-installer.d.ts +117 -0
  189. package/dist/core/completions/installers/zsh-installer.js +421 -0
  190. package/dist/core/completions/shared-flags.d.ts +12 -0
  191. package/dist/core/completions/shared-flags.js +28 -0
  192. package/dist/core/completions/templates/bash-templates.d.ts +6 -0
  193. package/dist/core/completions/templates/bash-templates.js +30 -0
  194. package/dist/core/completions/templates/fish-templates.d.ts +7 -0
  195. package/dist/core/completions/templates/fish-templates.js +45 -0
  196. package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
  197. package/dist/core/completions/templates/powershell-templates.js +34 -0
  198. package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
  199. package/dist/core/completions/templates/zsh-templates.js +45 -0
  200. package/dist/core/completions/types.d.ts +101 -0
  201. package/dist/core/completions/types.js +2 -0
  202. package/dist/core/config-prompts.d.ts +9 -0
  203. package/dist/core/config-prompts.js +34 -0
  204. package/dist/core/config-schema.d.ts +86 -0
  205. package/dist/core/config-schema.js +213 -0
  206. package/dist/core/config.d.ts +18 -0
  207. package/dist/core/config.js +38 -0
  208. package/dist/core/context-store/binding.d.ts +53 -0
  209. package/dist/core/context-store/binding.js +197 -0
  210. package/dist/core/context-store/errors.d.ts +20 -0
  211. package/dist/core/context-store/errors.js +22 -0
  212. package/dist/core/context-store/foundation.d.ts +54 -0
  213. package/dist/core/context-store/foundation.js +318 -0
  214. package/dist/core/context-store/index.d.ts +6 -0
  215. package/dist/core/context-store/index.js +6 -0
  216. package/dist/core/context-store/operations.d.ts +62 -0
  217. package/dist/core/context-store/operations.js +352 -0
  218. package/dist/core/context-store/registry.d.ts +35 -0
  219. package/dist/core/context-store/registry.js +158 -0
  220. package/dist/core/converters/json-converter.d.ts +6 -0
  221. package/dist/core/converters/json-converter.js +51 -0
  222. package/dist/core/global-config.d.ts +49 -0
  223. package/dist/core/global-config.js +124 -0
  224. package/dist/core/index.d.ts +6 -0
  225. package/dist/core/index.js +7 -0
  226. package/dist/core/init.d.ts +37 -0
  227. package/dist/core/init.js +593 -0
  228. package/dist/core/legacy-cleanup.d.ts +162 -0
  229. package/dist/core/legacy-cleanup.js +514 -0
  230. package/dist/core/list.d.ts +9 -0
  231. package/dist/core/list.js +171 -0
  232. package/dist/core/migration.d.ts +23 -0
  233. package/dist/core/migration.js +108 -0
  234. package/dist/core/parsers/change-parser.d.ts +13 -0
  235. package/dist/core/parsers/change-parser.js +197 -0
  236. package/dist/core/parsers/markdown-parser.d.ts +26 -0
  237. package/dist/core/parsers/markdown-parser.js +227 -0
  238. package/dist/core/parsers/requirement-blocks.d.ts +37 -0
  239. package/dist/core/parsers/requirement-blocks.js +201 -0
  240. package/dist/core/parsers/spec-structure.d.ts +9 -0
  241. package/dist/core/parsers/spec-structure.js +88 -0
  242. package/dist/core/planning-home.d.ts +21 -0
  243. package/dist/core/planning-home.js +108 -0
  244. package/dist/core/profile-sync-drift.d.ts +38 -0
  245. package/dist/core/profile-sync-drift.js +200 -0
  246. package/dist/core/profiles.d.ts +26 -0
  247. package/dist/core/profiles.js +40 -0
  248. package/dist/core/project-config.d.ts +64 -0
  249. package/dist/core/project-config.js +223 -0
  250. package/dist/core/schemas/base.schema.d.ts +13 -0
  251. package/dist/core/schemas/base.schema.js +13 -0
  252. package/dist/core/schemas/change.schema.d.ts +73 -0
  253. package/dist/core/schemas/change.schema.js +31 -0
  254. package/dist/core/schemas/index.d.ts +4 -0
  255. package/dist/core/schemas/index.js +4 -0
  256. package/dist/core/schemas/spec.schema.d.ts +18 -0
  257. package/dist/core/schemas/spec.schema.js +15 -0
  258. package/dist/core/shared/index.d.ts +8 -0
  259. package/dist/core/shared/index.js +8 -0
  260. package/dist/core/shared/skill-generation.d.ts +49 -0
  261. package/dist/core/shared/skill-generation.js +96 -0
  262. package/dist/core/shared/tool-detection.d.ts +71 -0
  263. package/dist/core/shared/tool-detection.js +158 -0
  264. package/dist/core/specs-apply.d.ts +73 -0
  265. package/dist/core/specs-apply.js +392 -0
  266. package/dist/core/styles/palette.d.ts +7 -0
  267. package/dist/core/styles/palette.js +8 -0
  268. package/dist/core/templates/index.d.ts +8 -0
  269. package/dist/core/templates/index.js +9 -0
  270. package/dist/core/templates/skill-templates.d.ts +19 -0
  271. package/dist/core/templates/skill-templates.js +18 -0
  272. package/dist/core/templates/types.d.ts +19 -0
  273. package/dist/core/templates/types.js +5 -0
  274. package/dist/core/templates/workflows/apply-change.d.ts +10 -0
  275. package/dist/core/templates/workflows/apply-change.js +314 -0
  276. package/dist/core/templates/workflows/archive-change.d.ts +10 -0
  277. package/dist/core/templates/workflows/archive-change.js +277 -0
  278. package/dist/core/templates/workflows/bulk-archive-change.d.ts +10 -0
  279. package/dist/core/templates/workflows/bulk-archive-change.js +492 -0
  280. package/dist/core/templates/workflows/continue-change.d.ts +10 -0
  281. package/dist/core/templates/workflows/continue-change.js +234 -0
  282. package/dist/core/templates/workflows/explore.d.ts +10 -0
  283. package/dist/core/templates/workflows/explore.js +459 -0
  284. package/dist/core/templates/workflows/feedback.d.ts +9 -0
  285. package/dist/core/templates/workflows/feedback.js +108 -0
  286. package/dist/core/templates/workflows/ff-change.d.ts +10 -0
  287. package/dist/core/templates/workflows/ff-change.js +200 -0
  288. package/dist/core/templates/workflows/new-change.d.ts +10 -0
  289. package/dist/core/templates/workflows/new-change.js +143 -0
  290. package/dist/core/templates/workflows/onboard.d.ts +10 -0
  291. package/dist/core/templates/workflows/onboard.js +563 -0
  292. package/dist/core/templates/workflows/propose.d.ts +10 -0
  293. package/dist/core/templates/workflows/propose.js +218 -0
  294. package/dist/core/templates/workflows/sync-specs.d.ts +10 -0
  295. package/dist/core/templates/workflows/sync-specs.js +290 -0
  296. package/dist/core/templates/workflows/verify-change.d.ts +10 -0
  297. package/dist/core/templates/workflows/verify-change.js +338 -0
  298. package/dist/core/update.d.ts +82 -0
  299. package/dist/core/update.js +557 -0
  300. package/dist/core/validation/constants.d.ts +34 -0
  301. package/dist/core/validation/constants.js +40 -0
  302. package/dist/core/validation/types.d.ts +18 -0
  303. package/dist/core/validation/types.js +2 -0
  304. package/dist/core/validation/validator.d.ts +33 -0
  305. package/dist/core/validation/validator.js +418 -0
  306. package/dist/core/view.d.ts +8 -0
  307. package/dist/core/view.js +168 -0
  308. package/dist/core/workspace/foundation.d.ts +62 -0
  309. package/dist/core/workspace/foundation.js +274 -0
  310. package/dist/core/workspace/index.d.ts +8 -0
  311. package/dist/core/workspace/index.js +8 -0
  312. package/dist/core/workspace/legacy-state.d.ts +28 -0
  313. package/dist/core/workspace/legacy-state.js +200 -0
  314. package/dist/core/workspace/link-input.d.ts +9 -0
  315. package/dist/core/workspace/link-input.js +32 -0
  316. package/dist/core/workspace/open-surface.d.ts +43 -0
  317. package/dist/core/workspace/open-surface.js +214 -0
  318. package/dist/core/workspace/openers.d.ts +21 -0
  319. package/dist/core/workspace/openers.js +119 -0
  320. package/dist/core/workspace/registry.d.ts +24 -0
  321. package/dist/core/workspace/registry.js +146 -0
  322. package/dist/core/workspace/skills.d.ts +57 -0
  323. package/dist/core/workspace/skills.js +334 -0
  324. package/dist/core/workspace/state-io.d.ts +10 -0
  325. package/dist/core/workspace/state-io.js +119 -0
  326. package/dist/index.d.ts +3 -0
  327. package/dist/index.js +3 -0
  328. package/dist/prompts/searchable-multi-select.d.ts +28 -0
  329. package/dist/prompts/searchable-multi-select.js +159 -0
  330. package/dist/telemetry/config.d.ts +38 -0
  331. package/dist/telemetry/config.js +136 -0
  332. package/dist/telemetry/index.d.ts +31 -0
  333. package/dist/telemetry/index.js +164 -0
  334. package/dist/ui/ascii-patterns.d.ts +16 -0
  335. package/dist/ui/ascii-patterns.js +133 -0
  336. package/dist/ui/welcome-screen.d.ts +10 -0
  337. package/dist/ui/welcome-screen.js +146 -0
  338. package/dist/utils/change-metadata.d.ts +54 -0
  339. package/dist/utils/change-metadata.js +141 -0
  340. package/dist/utils/change-utils.d.ts +71 -0
  341. package/dist/utils/change-utils.js +123 -0
  342. package/dist/utils/command-references.d.ts +18 -0
  343. package/dist/utils/command-references.js +20 -0
  344. package/dist/utils/file-system.d.ts +41 -0
  345. package/dist/utils/file-system.js +301 -0
  346. package/dist/utils/index.d.ts +6 -0
  347. package/dist/utils/index.js +9 -0
  348. package/dist/utils/interactive.d.ts +18 -0
  349. package/dist/utils/interactive.js +21 -0
  350. package/dist/utils/item-discovery.d.ts +4 -0
  351. package/dist/utils/item-discovery.js +72 -0
  352. package/dist/utils/match.d.ts +3 -0
  353. package/dist/utils/match.js +22 -0
  354. package/dist/utils/shell-detection.d.ts +20 -0
  355. package/dist/utils/shell-detection.js +41 -0
  356. package/dist/utils/task-progress.d.ts +8 -0
  357. package/dist/utils/task-progress.js +36 -0
  358. package/package.json +84 -0
  359. package/schemas/spec-driven/schema.yaml +153 -0
  360. package/schemas/spec-driven/templates/design.md +19 -0
  361. package/schemas/spec-driven/templates/proposal.md +23 -0
  362. package/schemas/spec-driven/templates/spec.md +8 -0
  363. package/schemas/spec-driven/templates/tasks.md +9 -0
  364. package/schemas/workspace-planning/schema.yaml +72 -0
  365. package/schemas/workspace-planning/templates/design.md +33 -0
  366. package/schemas/workspace-planning/templates/proposal.md +28 -0
  367. package/schemas/workspace-planning/templates/spec.md +9 -0
  368. package/schemas/workspace-planning/templates/tasks.md +15 -0
  369. package/scripts/postinstall.js +83 -0
@@ -0,0 +1,84 @@
1
+ import { getWorkspaceSkillToolIds } from '../../core/workspace/index.js';
2
+ function collectOption(value, previous) {
3
+ return [...previous, value];
4
+ }
5
+ function addWorkspaceSelectionOptions(command) {
6
+ return command
7
+ .option('--workspace <name>', 'Workspace name from known local workspace views')
8
+ .option('--json', 'Output as JSON')
9
+ .option('--no-interactive', 'Disable prompts');
10
+ }
11
+ export function registerWorkspaceCommandWith(program, workspaceCommand) {
12
+ const workspace = program
13
+ .command('workspace')
14
+ .description('Set up and inspect coordination workspaces');
15
+ workspace
16
+ .command('setup')
17
+ .description('Set up a workspace and link existing repos or folders')
18
+ .option('--name <name>', 'Workspace name')
19
+ .option('--link <link>', 'Repo or folder link. Use <path> or <name>=<path>.', collectOption, [])
20
+ .option('--opener <id>', 'Preferred opener: codex, claude, github-copilot, or editor')
21
+ .option('--tools <tools>', `Install Pastelsdd skills for agents. Use "all", "none", or a comma-separated list of: ${getWorkspaceSkillToolIds().join(', ')}`)
22
+ .option('--json', 'Output as JSON')
23
+ .option('--no-interactive', 'Disable prompts')
24
+ .action(async (options) => {
25
+ await workspaceCommand.setup(options);
26
+ });
27
+ workspace
28
+ .command('list')
29
+ .description('List known Pastelsdd workspaces')
30
+ .option('--json', 'Output as JSON')
31
+ .action(async (options) => {
32
+ await workspaceCommand.list(options);
33
+ });
34
+ workspace
35
+ .command('ls')
36
+ .description('List known Pastelsdd workspaces')
37
+ .option('--json', 'Output as JSON')
38
+ .action(async (options) => {
39
+ await workspaceCommand.list(options);
40
+ });
41
+ addWorkspaceSelectionOptions(workspace
42
+ .command('link [nameOrPath] [path]')
43
+ .description('Link an existing repo or folder to a workspace')).action(async (nameOrPath, linkPath, options) => {
44
+ await workspaceCommand.link(nameOrPath, linkPath, options);
45
+ });
46
+ addWorkspaceSelectionOptions(workspace
47
+ .command('relink <name> <path>')
48
+ .description('Update the local path for an existing workspace link')).action(async (linkName, linkPath, options) => {
49
+ await workspaceCommand.relink(linkName, linkPath, options);
50
+ });
51
+ addWorkspaceSelectionOptions(workspace
52
+ .command('doctor')
53
+ .description('Check what a workspace can resolve on this machine')).action(async (options) => {
54
+ await workspaceCommand.doctor(options);
55
+ });
56
+ workspace
57
+ .command('update [name]')
58
+ .description('Refresh workspace-local Pastelsdd guidance and agent skills')
59
+ .option('--workspace <name>', 'Workspace name from known local workspace views')
60
+ .option('--tools <tools>', `Select agents for workspace skills. Use "all", "none", or a comma-separated list of: ${getWorkspaceSkillToolIds().join(', ')}. Global profile selects workflows; --tools selects agents.`)
61
+ .option('--json', 'Output as JSON')
62
+ .option('--no-interactive', 'Disable prompts')
63
+ .action(async (name, options) => {
64
+ await workspaceCommand.update(name, options);
65
+ });
66
+ workspace
67
+ .command('open [name]')
68
+ .description('Open a workspace in an agent or VS Code editor')
69
+ .option('--workspace <name>', 'Workspace name from known local workspace views')
70
+ .option('--initiative <id>', 'Open an initiative as a local workspace view')
71
+ .option('--store <id>', 'Context store id for --initiative')
72
+ .option('--store-path <path>', 'Existing local context store root for --initiative')
73
+ .option('--agent <tool>', 'Use an agent for this session: codex, claude, or github-copilot')
74
+ .option('--editor', 'Open the workspace in VS Code editor mode')
75
+ .option('--prepare-only', 'Unsupported: preview surfaces belong to a future context/query command')
76
+ .option('--json', 'Output generated workspace view context as JSON after launch')
77
+ .option('--change <id>', 'Unsupported: change-scoped open belongs to future workspace change planning')
78
+ .option('--no-interactive', 'Disable prompts')
79
+ .action(async (name, options) => {
80
+ await workspaceCommand.open(name, options);
81
+ });
82
+ // Intentionally no public `workspace create` command in this slice.
83
+ }
84
+ //# sourceMappingURL=registration.js.map
@@ -0,0 +1,6 @@
1
+ import { SelectedWorkspace, WorkspaceSelectionOptions } from './types.js';
2
+ export declare function selectWorkspaceRootForCommand(workspaceRoot: string): Promise<SelectedWorkspace>;
3
+ export declare function selectWorkspaceForCommand(options: WorkspaceSelectionOptions, commandName: string, selectionOptions?: {
4
+ preferPositionalName?: boolean;
5
+ }): Promise<SelectedWorkspace>;
6
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1,122 @@
1
+ import { findWorkspaceRoot, listKnownWorkspaceEntries, readWorkspaceViewState, } from '../../core/workspace/index.js';
2
+ import { FileSystemUtils } from '../../utils/file-system.js';
3
+ import { isInteractive, resolveNoInteractive } from '../../utils/interactive.js';
4
+ import { validateWorkspaceNameForSetup } from './operations.js';
5
+ import { WorkspaceCliError, makeStatus, } from './types.js';
6
+ function normalizeRegistryRootForComparison(workspaceRoot) {
7
+ try {
8
+ return FileSystemUtils.canonicalizeExistingPath(workspaceRoot);
9
+ }
10
+ catch {
11
+ return workspaceRoot;
12
+ }
13
+ }
14
+ function workspaceNotInKnownViewsWarning() {
15
+ return makeStatus('warning', 'workspace_not_in_known_views', 'This workspace is not in the managed local workspace views list.', {
16
+ target: 'workspace.root',
17
+ fix: 'Use pastelsdd workspace list to inspect managed workspace views.',
18
+ });
19
+ }
20
+ function sameWorkspaceRoot(knownRoot, currentWorkspaceRoot) {
21
+ return (knownRoot !== undefined &&
22
+ normalizeRegistryRootForComparison(knownRoot) ===
23
+ normalizeRegistryRootForComparison(currentWorkspaceRoot));
24
+ }
25
+ function findKnownWorkspaceByName(entries, workspaceName) {
26
+ return entries.find((entry) => entry.name === workspaceName);
27
+ }
28
+ async function selectedWorkspaceFromRoot(currentWorkspaceRoot, entries) {
29
+ const viewState = await readWorkspaceViewState(currentWorkspaceRoot);
30
+ const knownRoot = findKnownWorkspaceByName(entries, viewState.name)?.workspaceRoot;
31
+ const isKnown = sameWorkspaceRoot(knownRoot, currentWorkspaceRoot);
32
+ return {
33
+ name: viewState.name,
34
+ root: currentWorkspaceRoot,
35
+ status: isKnown ? [] : [workspaceNotInKnownViewsWarning()],
36
+ unregisteredCurrentWorkspace: !isKnown,
37
+ };
38
+ }
39
+ export async function selectWorkspaceRootForCommand(workspaceRoot) {
40
+ const entries = await listKnownWorkspaceEntries();
41
+ const currentWorkspaceRoot = await findWorkspaceRoot(workspaceRoot);
42
+ if (!currentWorkspaceRoot) {
43
+ throw new WorkspaceCliError(`No Pastelsdd workspace found at '${workspaceRoot}'.`, 'workspace_not_found', {
44
+ target: 'workspace.root',
45
+ fix: 'Pass a path inside an Pastelsdd workspace.',
46
+ });
47
+ }
48
+ return selectedWorkspaceFromRoot(currentWorkspaceRoot, entries);
49
+ }
50
+ export async function selectWorkspaceForCommand(options, commandName, selectionOptions = {}) {
51
+ const entries = await listKnownWorkspaceEntries();
52
+ if (options.workspace) {
53
+ const workspaceName = validateWorkspaceNameForSetup(options.workspace);
54
+ const entry = findKnownWorkspaceByName(entries, workspaceName);
55
+ if (!entry) {
56
+ throw new WorkspaceCliError(`Unknown Pastelsdd workspace '${workspaceName}'.`, 'workspace_not_found', {
57
+ target: 'workspace.name',
58
+ fix: 'Run pastelsdd workspace list to see known workspaces.',
59
+ });
60
+ }
61
+ return {
62
+ name: workspaceName,
63
+ root: entry.workspaceRoot,
64
+ status: [],
65
+ unregisteredCurrentWorkspace: false,
66
+ };
67
+ }
68
+ const currentWorkspaceRoot = await findWorkspaceRoot(process.cwd());
69
+ if (currentWorkspaceRoot) {
70
+ return selectedWorkspaceFromRoot(currentWorkspaceRoot, entries);
71
+ }
72
+ if (entries.length === 0) {
73
+ throw new WorkspaceCliError("No known Pastelsdd workspaces. Run 'pastelsdd workspace setup' first.\nAfter at least one workspace is known locally, you can also pass --workspace <name>.", 'no_known_workspaces', {
74
+ target: 'workspace.name',
75
+ fix: 'pastelsdd workspace setup',
76
+ });
77
+ }
78
+ if (entries.length === 1) {
79
+ const [entry] = entries;
80
+ return {
81
+ name: entry.name,
82
+ root: entry.workspaceRoot,
83
+ status: [],
84
+ unregisteredCurrentWorkspace: false,
85
+ };
86
+ }
87
+ if (options.json || resolveNoInteractive(options) || !isInteractive(options)) {
88
+ const knownNames = entries.map((entry) => entry.name).join(', ');
89
+ const usesPositionalName = selectionOptions.preferPositionalName;
90
+ const fix = usesPositionalName
91
+ ? `pastelsdd workspace ${commandName} <name>`
92
+ : `pastelsdd workspace ${commandName} --workspace <name>`;
93
+ throw new WorkspaceCliError(usesPositionalName
94
+ ? `Multiple Pastelsdd workspaces are known. Known workspaces: ${knownNames}. Pass a workspace name.`
95
+ : `Multiple Pastelsdd workspaces are known. Known workspaces: ${knownNames}. Pass --workspace <name>.`, 'workspace_selection_ambiguous', {
96
+ target: 'workspace.name',
97
+ fix,
98
+ });
99
+ }
100
+ const { select } = await import('@inquirer/prompts');
101
+ const selectedName = await select({
102
+ message: 'Select workspace:',
103
+ choices: entries.map((entry) => ({
104
+ name: `${entry.name} (${entry.workspaceRoot})`,
105
+ value: entry.name,
106
+ })),
107
+ });
108
+ const selectedEntry = findKnownWorkspaceByName(entries, selectedName);
109
+ if (!selectedEntry) {
110
+ throw new WorkspaceCliError(`Unknown Pastelsdd workspace '${selectedName}'.`, 'workspace_not_found', {
111
+ target: 'workspace.name',
112
+ fix: 'Run pastelsdd workspace list to see known workspaces.',
113
+ });
114
+ }
115
+ return {
116
+ name: selectedName,
117
+ root: selectedEntry.workspaceRoot,
118
+ status: [],
119
+ unregisteredCurrentWorkspace: false,
120
+ };
121
+ }
122
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1,103 @@
1
+ import type { ContextStoreSelector } from '../../core/context-store/index.js';
2
+ export type StatusSeverity = 'error' | 'warning';
3
+ export interface WorkspaceStatus {
4
+ severity: StatusSeverity;
5
+ code: string;
6
+ message: string;
7
+ target?: string;
8
+ fix?: string;
9
+ details?: Record<string, unknown>;
10
+ }
11
+ export interface WorkspaceLinkOutput {
12
+ name: string;
13
+ path: string | null;
14
+ repo_specs_path?: string | null;
15
+ status: WorkspaceStatus[];
16
+ }
17
+ export interface WorkspaceContextOutput {
18
+ store: string;
19
+ initiative: string;
20
+ store_selector: ContextStoreSelector;
21
+ }
22
+ export interface WorkspaceOutput {
23
+ name: string;
24
+ root: string;
25
+ planning_path: string;
26
+ state_path?: string;
27
+ context?: WorkspaceContextOutput | null;
28
+ links: WorkspaceLinkOutput[];
29
+ status: WorkspaceStatus[];
30
+ }
31
+ export interface WorkspaceListOutput {
32
+ name: string;
33
+ root: string;
34
+ context?: WorkspaceContextOutput | null;
35
+ links: WorkspaceLinkOutput[];
36
+ status: WorkspaceStatus[];
37
+ }
38
+ export interface WorkspaceSetupOptions {
39
+ name?: string;
40
+ link?: string[];
41
+ opener?: string;
42
+ tools?: string;
43
+ json?: boolean;
44
+ noInteractive?: boolean;
45
+ interactive?: boolean;
46
+ }
47
+ export interface WorkspaceSelectionOptions {
48
+ workspace?: string;
49
+ json?: boolean;
50
+ noInteractive?: boolean;
51
+ interactive?: boolean;
52
+ }
53
+ export type WorkspaceLinkOptions = WorkspaceSelectionOptions;
54
+ export interface WorkspaceUpdateOptions extends WorkspaceSelectionOptions {
55
+ tools?: string;
56
+ force?: boolean;
57
+ }
58
+ export interface WorkspaceOpenOptions extends WorkspaceSelectionOptions {
59
+ agent?: string;
60
+ editor?: boolean;
61
+ prepareOnly?: boolean;
62
+ change?: string;
63
+ initiative?: string;
64
+ store?: string;
65
+ storePath?: string;
66
+ }
67
+ export interface WorkspaceListOptions {
68
+ json?: boolean;
69
+ }
70
+ export interface SelectedWorkspace {
71
+ name: string;
72
+ root: string;
73
+ status: WorkspaceStatus[];
74
+ unregisteredCurrentWorkspace: boolean;
75
+ }
76
+ export interface WorkspaceLinkMutationPayload {
77
+ workspace: WorkspaceOutput;
78
+ link: {
79
+ name: string;
80
+ path: string;
81
+ status: WorkspaceStatus[];
82
+ };
83
+ status: WorkspaceStatus[];
84
+ }
85
+ export declare class WorkspaceCliError extends Error {
86
+ readonly status: WorkspaceStatus;
87
+ constructor(message: string, code: string, options?: {
88
+ target?: string;
89
+ fix?: string;
90
+ details?: Record<string, unknown>;
91
+ });
92
+ }
93
+ export declare function makeStatus(severity: StatusSeverity, code: string, message: string, options?: {
94
+ target?: string;
95
+ fix?: string;
96
+ details?: Record<string, unknown>;
97
+ }): WorkspaceStatus;
98
+ export declare function asErrorMessage(error: unknown): string;
99
+ export declare function asStatus(error: unknown): WorkspaceStatus;
100
+ export declare function appendStatus<T extends {
101
+ status: WorkspaceStatus[];
102
+ }>(payload: T, status: WorkspaceStatus): T;
103
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,36 @@
1
+ export class WorkspaceCliError extends Error {
2
+ status;
3
+ constructor(message, code, options = {}) {
4
+ super(message);
5
+ this.status = {
6
+ severity: 'error',
7
+ code,
8
+ message,
9
+ ...options,
10
+ };
11
+ }
12
+ }
13
+ export function makeStatus(severity, code, message, options = {}) {
14
+ return {
15
+ severity,
16
+ code,
17
+ message,
18
+ ...options,
19
+ };
20
+ }
21
+ export function asErrorMessage(error) {
22
+ return error instanceof Error ? error.message : String(error);
23
+ }
24
+ export function asStatus(error) {
25
+ if (error instanceof WorkspaceCliError) {
26
+ return error.status;
27
+ }
28
+ return makeStatus('error', 'workspace_error', asErrorMessage(error));
29
+ }
30
+ export function appendStatus(payload, status) {
31
+ return {
32
+ ...payload,
33
+ status: [...payload.status, status],
34
+ };
35
+ }
36
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ import { WorkspaceUpdateOptions } from './workspace/types.js';
3
+ export declare function runWorkspaceUpdate(positionalName: string | undefined, options?: WorkspaceUpdateOptions): Promise<void>;
4
+ export declare function runWorkspaceUpdateForRoot(workspaceRoot: string, options?: WorkspaceUpdateOptions): Promise<void>;
5
+ export declare function registerWorkspaceCommand(program: Command): void;
6
+ //# sourceMappingURL=workspace.d.ts.map