@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,228 @@
1
+ import { InitiativeResolutionError, resolveInitiativeViewReference, resolveSelectedInitiativeViewReference, } from '../../core/collections/initiatives/index.js';
2
+ import { createPathContextStoreBinding, createRegisteredContextStoreBinding, formatContextStoreBinding, resolveContextStoreBinding, } from '../../core/context-store/index.js';
3
+ import { createWorkspaceInitiativeContext, getWorkspaceContextInitiativeId, getWorkspaceOpenerLabel, } from '../../core/workspace/index.js';
4
+ import { assertWorkspaceOpenerAvailable, buildWorkspaceOpenCommandForState, readWorkspaceOpenState, } from './open.js';
5
+ import { selectOrCreateWorkspaceForInitiativeOpen, } from './operations.js';
6
+ import { selectWorkspaceForCommand, } from './selection.js';
7
+ import { WorkspaceCliError, asErrorMessage, } from './types.js';
8
+ import { resolveWorkspaceOpenOpener, resolveWorkspaceOpenOpenerOverride, } from './opener-selection.js';
9
+ export function assertWorkspaceOpenSupportedOptions(options) {
10
+ if (!options.initiative && (options.store || options.storePath)) {
11
+ throw new WorkspaceCliError('workspace open accepts --store or --store-path only with --initiative.', 'workspace_open_store_without_initiative', {
12
+ target: 'workspace.initiative',
13
+ fix: 'Use pastelsdd workspace open --initiative <id> --store <store>.',
14
+ });
15
+ }
16
+ if (options.prepareOnly) {
17
+ throw new WorkspaceCliError('workspace open supports launching through a selected opener; preview output is reserved for a future context/query surface.', 'workspace_open_prepare_only_unsupported', {
18
+ target: 'workspace.open',
19
+ fix: 'Run pastelsdd workspace open with --agent <tool> or --editor.',
20
+ });
21
+ }
22
+ if (options.change) {
23
+ throw new WorkspaceCliError('workspace open currently supports root workspace open only; change-scoped open belongs to future workspace change planning.', 'workspace_open_change_unsupported', {
24
+ target: 'workspace.change',
25
+ fix: 'Open the root workspace, then start implementation from an explicit change workflow.',
26
+ });
27
+ }
28
+ }
29
+ function resolveOpenWorkspaceName(positionalName, options) {
30
+ if (positionalName && options.workspace && positionalName !== options.workspace) {
31
+ throw new WorkspaceCliError(`Conflicting workspace selectors: positional '${positionalName}' and --workspace '${options.workspace}'.`, 'workspace_selection_conflict', {
32
+ target: 'workspace.name',
33
+ fix: 'Use either the positional workspace name or --workspace with the same value.',
34
+ });
35
+ }
36
+ return positionalName ?? options.workspace;
37
+ }
38
+ function initiativeErrorAsWorkspaceError(error) {
39
+ if (error instanceof InitiativeResolutionError) {
40
+ return new WorkspaceCliError(error.message, error.code, {
41
+ target: error.target,
42
+ fix: error.fix,
43
+ details: error.details,
44
+ });
45
+ }
46
+ return new WorkspaceCliError(asErrorMessage(error), 'initiative_error');
47
+ }
48
+ async function resolveWorkspaceOpenInitiative(options) {
49
+ if (!options.initiative) {
50
+ return null;
51
+ }
52
+ try {
53
+ return await resolveInitiativeViewReference(options.initiative, {
54
+ store: options.store,
55
+ storePath: options.storePath,
56
+ });
57
+ }
58
+ catch (error) {
59
+ throw initiativeErrorAsWorkspaceError(error);
60
+ }
61
+ }
62
+ async function resolveStoredWorkspaceInitiative(context) {
63
+ const initiativeId = getWorkspaceContextInitiativeId(context);
64
+ try {
65
+ const resolvedStore = await resolveContextStoreBinding(context.store);
66
+ const selected = {
67
+ id: resolvedStore.id,
68
+ root: resolvedStore.root,
69
+ source: resolvedStore.source,
70
+ };
71
+ const initiative = await resolveSelectedInitiativeViewReference(selected, initiativeId);
72
+ return {
73
+ initiative,
74
+ warnings: resolvedStore.warnings.map(contextStoreBindingWarningToStatus),
75
+ };
76
+ }
77
+ catch (error) {
78
+ if (error instanceof InitiativeResolutionError) {
79
+ throw initiativeErrorAsWorkspaceError(error);
80
+ }
81
+ throw new WorkspaceCliError(`Workspace context store '${formatContextStoreBinding(context.store)}' could not be read: ${asErrorMessage(error)}`, 'workspace_context_store_unavailable', {
82
+ target: 'workspace.context.store',
83
+ fix: context.store.selector.kind === 'registry'
84
+ ? 'pastelsdd context-store doctor'
85
+ : 'Check the path in workspace.yaml.',
86
+ });
87
+ }
88
+ }
89
+ function contextStoreBindingWarningToStatus(warning) {
90
+ return {
91
+ severity: 'warning',
92
+ code: warning.code,
93
+ message: warning.message,
94
+ target: warning.target ? `workspace.context.store.${warning.target}` : 'workspace.context.store',
95
+ ...(warning.fix ? { fix: warning.fix } : {}),
96
+ };
97
+ }
98
+ function contextStoreBindingFromInitiative(initiative) {
99
+ return initiative.storeSource === 'path'
100
+ ? createPathContextStoreBinding({
101
+ id: initiative.store,
102
+ path: initiative.storeRoot,
103
+ })
104
+ : createRegisteredContextStoreBinding(initiative.store);
105
+ }
106
+ function toWorkspaceOpenResolvedContext(initiative) {
107
+ return {
108
+ contextStore: {
109
+ id: initiative.store,
110
+ root: initiative.storeRoot,
111
+ },
112
+ initiative: {
113
+ id: initiative.id,
114
+ title: initiative.title,
115
+ root: initiative.root,
116
+ metadataPath: initiative.metadataPath,
117
+ storePath: initiative.storePath,
118
+ },
119
+ };
120
+ }
121
+ function buildSkippedRootWarnings(skipped) {
122
+ return skipped.map((link) => {
123
+ const location = link.path ?? '(no local path recorded)';
124
+ return {
125
+ severity: 'warning',
126
+ code: 'workspace_open_link_skipped',
127
+ message: `Skipped linked repo or folder '${link.name}' because ${location} is not available.`,
128
+ target: `links.${link.name}.path`,
129
+ fix: `pastelsdd workspace relink ${link.name} /path/to/${link.name}`,
130
+ };
131
+ });
132
+ }
133
+ export async function prepareWorkspaceOpen(positionalName, options) {
134
+ assertWorkspaceOpenSupportedOptions(options);
135
+ const workspaceName = resolveOpenWorkspaceName(positionalName, options);
136
+ const requestedInitiative = await resolveWorkspaceOpenInitiative(options);
137
+ const requestedContext = requestedInitiative
138
+ ? createWorkspaceInitiativeContext(contextStoreBindingFromInitiative(requestedInitiative), requestedInitiative.id)
139
+ : null;
140
+ const selected = requestedContext
141
+ ? (await selectOrCreateWorkspaceForInitiativeOpen({
142
+ workspaceName,
143
+ context: requestedContext,
144
+ preferredOpener: resolveWorkspaceOpenOpenerOverride(options),
145
+ })).selected
146
+ : await selectWorkspaceForCommand({
147
+ ...options,
148
+ workspace: workspaceName,
149
+ }, 'open', { preferPositionalName: true });
150
+ const state = await readWorkspaceOpenState(selected);
151
+ const stored = !requestedInitiative && state.viewState.context
152
+ ? await resolveStoredWorkspaceInitiative(state.viewState.context)
153
+ : null;
154
+ const initiative = requestedInitiative ?? stored?.initiative ?? null;
155
+ const resolvedContext = initiative ? toWorkspaceOpenResolvedContext(initiative) : null;
156
+ const opener = await resolveWorkspaceOpenOpener(state.viewState, options);
157
+ assertWorkspaceOpenerAvailable(opener, state.codeWorkspacePath);
158
+ const buildResult = await buildWorkspaceOpenCommandForState(opener, selected.root, state, resolvedContext);
159
+ return {
160
+ ...buildResult,
161
+ selected,
162
+ opener,
163
+ initiative,
164
+ workspaceContext: state.viewState.context,
165
+ warnings: [
166
+ ...selected.status,
167
+ ...(stored?.warnings ?? []),
168
+ ...buildSkippedRootWarnings(buildResult.skipped),
169
+ ],
170
+ };
171
+ }
172
+ export function buildWorkspaceOpenJsonPayload(prepared) {
173
+ const linkedEditRoots = prepared.openedRoots
174
+ .filter((root) => root.kind === 'link')
175
+ .map((root) => root.path);
176
+ return {
177
+ schema_version: 1,
178
+ workspace: {
179
+ name: prepared.selected.name,
180
+ root: prepared.selected.root,
181
+ },
182
+ context: prepared.initiative
183
+ ? {
184
+ context_store: {
185
+ id: prepared.initiative.store,
186
+ root: prepared.initiative.storeRoot,
187
+ ...(prepared.workspaceContext
188
+ ? { selector: prepared.workspaceContext.store.selector }
189
+ : {}),
190
+ },
191
+ initiative: {
192
+ id: prepared.initiative.id,
193
+ title: prepared.initiative.title,
194
+ root: prepared.initiative.root,
195
+ metadata_path: prepared.initiative.metadataPath,
196
+ store_path: prepared.initiative.storePath,
197
+ },
198
+ }
199
+ : null,
200
+ generated_files: {
201
+ agents: prepared.generated.agentsPath,
202
+ code_workspace: prepared.generated.codeWorkspacePath,
203
+ },
204
+ opened_roots: prepared.openedRoots,
205
+ skipped_roots: prepared.skipped.map((link) => ({
206
+ kind: 'link',
207
+ name: link.name,
208
+ path: link.path,
209
+ reason: link.reason,
210
+ })),
211
+ advisory_edit_boundaries: {
212
+ allowed_edit_roots: linkedEditRoots,
213
+ coordination_roots: prepared.initiative ? [prepared.initiative.root] : [],
214
+ enforcement: 'advisory',
215
+ },
216
+ opener: {
217
+ ...prepared.opener,
218
+ label: getWorkspaceOpenerLabel(prepared.opener),
219
+ },
220
+ launch: {
221
+ attempted: true,
222
+ status: 'succeeded',
223
+ },
224
+ warnings: prepared.warnings,
225
+ status: [],
226
+ };
227
+ }
228
+ //# sourceMappingURL=open-view.js.map
@@ -0,0 +1,37 @@
1
+ import { spawn as nodeSpawn } from 'node:child_process';
2
+ import { WorkspacePreferredOpener, WorkspaceViewState, WorkspaceOpenResolvedContext, WorkspaceOpenSurfaceGeneration, WorkspaceSkippedOpenLink } from '../../core/workspace/index.js';
3
+ import { SelectedWorkspace } from './types.js';
4
+ export declare const WORKSPACE_OPEN_MINIMAL_PROMPT = "Open this Pastelsdd workspace.";
5
+ export interface WorkspaceOpenState {
6
+ viewState: WorkspaceViewState;
7
+ codeWorkspacePath: string;
8
+ }
9
+ export interface WorkspaceOpenLaunchCommand {
10
+ executable: string;
11
+ args: string[];
12
+ cwd: string;
13
+ openerLabel: string;
14
+ }
15
+ export type WorkspaceOpenedRoot = {
16
+ kind: 'workspace' | 'initiative' | 'link';
17
+ name?: string;
18
+ path: string;
19
+ };
20
+ export interface WorkspaceOpenCommandBuildResult {
21
+ command: WorkspaceOpenLaunchCommand;
22
+ skipped: WorkspaceSkippedOpenLink[];
23
+ generated: WorkspaceOpenSurfaceGeneration;
24
+ openedRoots: WorkspaceOpenedRoot[];
25
+ }
26
+ export type WorkspaceOpenSpawn = typeof nodeSpawn;
27
+ export interface WorkspaceOpenLaunchOptions {
28
+ spawn?: WorkspaceOpenSpawn;
29
+ isExecutableAvailable?: (executable: string) => boolean;
30
+ stdio?: 'inherit' | 'ignore';
31
+ }
32
+ export declare function readWorkspaceOpenState(selected: SelectedWorkspace): Promise<WorkspaceOpenState>;
33
+ export declare function buildWorkspaceOpenLaunchCommand(opener: WorkspacePreferredOpener, workspaceRoot: string, codeWorkspacePath: string, attachedPaths: string[]): WorkspaceOpenLaunchCommand;
34
+ export declare function assertWorkspaceOpenerAvailable(opener: WorkspacePreferredOpener, codeWorkspacePath: string, isExecutableAvailable?: (executable: string) => boolean): void;
35
+ export declare function buildWorkspaceOpenCommandForState(opener: WorkspacePreferredOpener, workspaceRoot: string, state: WorkspaceOpenState, resolvedContext?: WorkspaceOpenResolvedContext | null): Promise<WorkspaceOpenCommandBuildResult>;
36
+ export declare function launchWorkspaceOpenCommand(command: WorkspaceOpenLaunchCommand, options?: WorkspaceOpenLaunchOptions): Promise<void>;
37
+ //# sourceMappingURL=open.d.ts.map
@@ -0,0 +1,102 @@
1
+ import { createRequire } from 'node:module';
2
+ import { getWorkspaceCodeWorkspacePath, getWorkspaceOpenerExecutable, getWorkspaceOpenerLabel, isWorkspaceExecutableAvailable, readWorkspaceViewState, syncWorkspaceOpenSurface, } from '../../core/workspace/index.js';
3
+ import { WorkspaceCliError, asErrorMessage } from './types.js';
4
+ export const WORKSPACE_OPEN_MINIMAL_PROMPT = 'Open this Pastelsdd workspace.';
5
+ const require = createRequire(import.meta.url);
6
+ const spawn = require('cross-spawn');
7
+ export async function readWorkspaceOpenState(selected) {
8
+ const viewState = await readWorkspaceViewState(selected.root);
9
+ return {
10
+ viewState,
11
+ codeWorkspacePath: getWorkspaceCodeWorkspacePath(selected.root, viewState.name),
12
+ };
13
+ }
14
+ export function buildWorkspaceOpenLaunchCommand(opener, workspaceRoot, codeWorkspacePath, attachedPaths) {
15
+ const executable = getWorkspaceOpenerExecutable(opener);
16
+ const openerLabel = getWorkspaceOpenerLabel(opener);
17
+ if (opener.kind === 'editor' || opener.id === 'github-copilot') {
18
+ return {
19
+ executable,
20
+ args: [codeWorkspacePath],
21
+ cwd: workspaceRoot,
22
+ openerLabel,
23
+ };
24
+ }
25
+ return {
26
+ executable,
27
+ args: [
28
+ ...attachedPaths.flatMap((linkedPath) => ['--add-dir', linkedPath]),
29
+ WORKSPACE_OPEN_MINIMAL_PROMPT,
30
+ ],
31
+ cwd: workspaceRoot,
32
+ openerLabel,
33
+ };
34
+ }
35
+ export function assertWorkspaceOpenerAvailable(opener, codeWorkspacePath, isExecutableAvailable = isWorkspaceExecutableAvailable) {
36
+ const executable = getWorkspaceOpenerExecutable(opener);
37
+ if (isExecutableAvailable(executable)) {
38
+ return;
39
+ }
40
+ const openerLabel = getWorkspaceOpenerLabel(opener);
41
+ const manualPath = executable === 'code'
42
+ ? ` You can open the workspace file manually: ${codeWorkspacePath}`
43
+ : '';
44
+ throw new WorkspaceCliError(`${openerLabel} requires '${executable}', but '${executable}' was not found on PATH.${manualPath}`, 'workspace_opener_unavailable', {
45
+ target: 'workspace.opener',
46
+ fix: `Install '${executable}' or choose another opener.`,
47
+ });
48
+ }
49
+ export async function buildWorkspaceOpenCommandForState(opener, workspaceRoot, state, resolvedContext) {
50
+ const openSurface = await syncWorkspaceOpenSurface(workspaceRoot, state.viewState, resolvedContext);
51
+ const openedRoots = [
52
+ { kind: 'workspace', path: workspaceRoot },
53
+ ...(resolvedContext
54
+ ? [
55
+ {
56
+ kind: 'initiative',
57
+ name: resolvedContext.initiative.id,
58
+ path: resolvedContext.initiative.root,
59
+ },
60
+ ]
61
+ : []),
62
+ ...openSurface.links.map((link) => ({
63
+ kind: 'link',
64
+ name: link.name,
65
+ path: link.path,
66
+ })),
67
+ ];
68
+ return {
69
+ command: buildWorkspaceOpenLaunchCommand(opener, workspaceRoot, state.codeWorkspacePath, openedRoots
70
+ .filter((root) => root.kind !== 'workspace')
71
+ .map((root) => root.path)),
72
+ skipped: openSurface.skipped,
73
+ generated: openSurface.generated,
74
+ openedRoots,
75
+ };
76
+ }
77
+ export async function launchWorkspaceOpenCommand(command, options = {}) {
78
+ const spawnCommand = options.spawn ?? spawn;
79
+ await new Promise((resolve, reject) => {
80
+ const child = spawnCommand(command.executable, command.args, {
81
+ cwd: command.cwd,
82
+ stdio: options.stdio ?? 'inherit',
83
+ shell: false,
84
+ });
85
+ child.on('error', (error) => {
86
+ reject(new WorkspaceCliError(`Could not launch ${command.openerLabel}: ${asErrorMessage(error)}`, 'workspace_opener_launch_failed', {
87
+ target: 'workspace.opener',
88
+ }));
89
+ });
90
+ child.on('close', (code, signal) => {
91
+ if (code === 0) {
92
+ resolve();
93
+ return;
94
+ }
95
+ const reason = signal ? `signal ${signal}` : `exit code ${code}`;
96
+ reject(new WorkspaceCliError(`${command.openerLabel} exited with ${reason}.`, 'workspace_opener_launch_failed', {
97
+ target: 'workspace.opener',
98
+ }));
99
+ });
100
+ });
101
+ }
102
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1,11 @@
1
+ import { WorkspacePreferredOpener } from '../../core/workspace/index.js';
2
+ import { WorkspaceOpenOptions } from './types.js';
3
+ export declare function promptPreferredOpener(message: string, openerChoices?: import("../../core/workspace/openers.js").WorkspaceOpenerChoice[]): Promise<WorkspacePreferredOpener>;
4
+ export declare function parseSetupOpenerOption(opener: string | undefined): WorkspacePreferredOpener | undefined;
5
+ export declare function parseWorkspaceAgentOverride(agent: string): WorkspacePreferredOpener;
6
+ export declare function getPreferredWorkspaceSkillAgentId(preferredOpener: WorkspacePreferredOpener | undefined): string | null;
7
+ export declare function resolveWorkspaceOpenOpenerOverride(options: WorkspaceOpenOptions): WorkspacePreferredOpener | undefined;
8
+ export declare function resolveWorkspaceOpenOpener(localState: {
9
+ preferred_opener?: WorkspacePreferredOpener;
10
+ }, options: WorkspaceOpenOptions): Promise<WorkspacePreferredOpener>;
11
+ //# sourceMappingURL=opener-selection.d.ts.map
@@ -0,0 +1,93 @@
1
+ import { getDefaultWorkspaceOpenerChoiceValue, getWorkspaceSkillToolIds, isWorkspaceAgentOpenerId, listWorkspaceOpenerChoices, parseWorkspacePreferredOpenerValue, } from '../../core/workspace/index.js';
2
+ import { isInteractive, resolveNoInteractive } from '../../utils/interactive.js';
3
+ import { WorkspaceCliError, asErrorMessage } from './types.js';
4
+ import { workspaceSelectTheme } from './prompt-theme.js';
5
+ function formatOpenerChoiceName(choice) {
6
+ return choice.unavailableNote ? `${choice.label} (${choice.unavailableNote})` : choice.label;
7
+ }
8
+ export async function promptPreferredOpener(message, openerChoices = listWorkspaceOpenerChoices()) {
9
+ const { select } = await import('@inquirer/prompts');
10
+ const selectedValue = await select({
11
+ message,
12
+ default: getDefaultWorkspaceOpenerChoiceValue(openerChoices),
13
+ choices: openerChoices.map((choice) => ({
14
+ name: formatOpenerChoiceName(choice),
15
+ short: choice.label,
16
+ value: choice.value,
17
+ description: choice.unavailableNote ?? `Use ${choice.label}`,
18
+ })),
19
+ theme: workspaceSelectTheme,
20
+ });
21
+ return parseWorkspacePreferredOpenerValue(selectedValue);
22
+ }
23
+ export function parseSetupOpenerOption(opener) {
24
+ if (!opener) {
25
+ return undefined;
26
+ }
27
+ try {
28
+ return parseWorkspacePreferredOpenerValue(opener);
29
+ }
30
+ catch (error) {
31
+ throw new WorkspaceCliError(asErrorMessage(error), 'unsupported_workspace_opener', {
32
+ target: 'workspace.opener',
33
+ fix: 'Use --opener codex, --opener claude, --opener github-copilot, or --opener editor.',
34
+ });
35
+ }
36
+ }
37
+ export function parseWorkspaceAgentOverride(agent) {
38
+ if (!isWorkspaceAgentOpenerId(agent)) {
39
+ throw new WorkspaceCliError(`Unsupported workspace agent '${agent}'. Supported agents: codex, claude, github-copilot.`, 'unsupported_workspace_agent', {
40
+ target: 'workspace.opener',
41
+ fix: 'Use --agent codex, --agent claude, or --agent github-copilot.',
42
+ });
43
+ }
44
+ return {
45
+ kind: 'agent',
46
+ id: agent,
47
+ };
48
+ }
49
+ export function getPreferredWorkspaceSkillAgentId(preferredOpener) {
50
+ if (!preferredOpener || preferredOpener.kind !== 'agent') {
51
+ return null;
52
+ }
53
+ return getWorkspaceSkillToolIds().includes(preferredOpener.id) ? preferredOpener.id : null;
54
+ }
55
+ export function resolveWorkspaceOpenOpenerOverride(options) {
56
+ if (options.agent && options.editor) {
57
+ throw new WorkspaceCliError('workspace open accepts either --agent <tool> or --editor, not both.', 'workspace_opener_conflict', {
58
+ target: 'workspace.opener',
59
+ fix: 'Choose one opener override.',
60
+ });
61
+ }
62
+ if (options.agent) {
63
+ return parseWorkspaceAgentOverride(options.agent);
64
+ }
65
+ if (options.editor) {
66
+ return parseWorkspacePreferredOpenerValue('editor');
67
+ }
68
+ return undefined;
69
+ }
70
+ export async function resolveWorkspaceOpenOpener(localState, options) {
71
+ const override = resolveWorkspaceOpenOpenerOverride(options);
72
+ if (override) {
73
+ return override;
74
+ }
75
+ if (localState.preferred_opener) {
76
+ return localState.preferred_opener;
77
+ }
78
+ if (!resolveNoInteractive(options) && isInteractive(options)) {
79
+ const openerChoices = listWorkspaceOpenerChoices().filter((choice) => choice.available);
80
+ if (openerChoices.length === 0) {
81
+ throw new WorkspaceCliError('No supported workspace opener is available on PATH.', 'workspace_no_available_openers', {
82
+ target: 'workspace.opener',
83
+ fix: "Install VS Code ('code'), Codex ('codex'), or Claude ('claude'), then retry.",
84
+ });
85
+ }
86
+ return promptPreferredOpener('Open with:', openerChoices);
87
+ }
88
+ throw new WorkspaceCliError('This workspace does not have a preferred opener yet.', 'workspace_opener_unset', {
89
+ target: 'workspace.opener',
90
+ fix: 'Pass --agent <tool> or --editor, or run workspace setup interactively to choose a default opener.',
91
+ });
92
+ }
93
+ //# sourceMappingURL=opener-selection.js.map
@@ -0,0 +1,28 @@
1
+ import { WorkspacePreferredOpener, WorkspaceRegistryEntry, WorkspaceContextState, WorkspaceViewState } from '../../core/workspace/index.js';
2
+ import { SelectedWorkspace, WorkspaceLinkMutationPayload, WorkspaceListOutput, WorkspaceOutput, WorkspaceStatus } from './types.js';
3
+ export declare function directoryExists(dirPath: string): Promise<boolean>;
4
+ export declare function resolveExistingDirectory(inputPath: string, cwd?: string): Promise<string>;
5
+ export declare function inferLinkName(absolutePath: string): string;
6
+ export declare function validateWorkspaceNameForSetup(name: string): string;
7
+ export declare function validateLinkNameForCommand(name: string): string;
8
+ export declare function createManagedWorkspace(name: string, links: Record<string, string>, preferredOpener?: WorkspacePreferredOpener, context?: WorkspaceContextState | null, tools?: string[]): Promise<WorkspaceOutput>;
9
+ export declare function parseSetupLinks(linkInputs: string[] | undefined): Promise<Record<string, string>>;
10
+ export declare function loadWorkspaceForList(entry: WorkspaceRegistryEntry): Promise<WorkspaceListOutput>;
11
+ export declare function loadWorkspaceForDoctor(selected: SelectedWorkspace): Promise<{
12
+ workspace: WorkspaceOutput;
13
+ status: WorkspaceStatus[];
14
+ }>;
15
+ export declare function readWorkspaceForMutation(selected: SelectedWorkspace): Promise<WorkspaceViewState>;
16
+ export declare function addWorkspaceLink(selected: SelectedWorkspace, nameOrPath: string, linkPath?: string): Promise<WorkspaceLinkMutationPayload>;
17
+ export declare function updateWorkspaceLink(selected: SelectedWorkspace, linkNameInput: string, linkPath: string): Promise<WorkspaceLinkMutationPayload>;
18
+ export declare function deriveWorkspaceNameForInitiative(initiativeId: string): string;
19
+ export declare function selectOrCreateWorkspaceForInitiativeOpen(input: {
20
+ workspaceName?: string;
21
+ context: WorkspaceContextState;
22
+ preferredOpener?: WorkspacePreferredOpener;
23
+ }): Promise<{
24
+ selected: SelectedWorkspace;
25
+ created: boolean;
26
+ state: WorkspaceViewState;
27
+ }>;
28
+ //# sourceMappingURL=operations.d.ts.map