@dedesfr/prompter 0.6.15 → 0.7.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 (384) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cli/index.js +144 -12
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/archive.d.ts +11 -0
  5. package/dist/commands/archive.d.ts.map +1 -0
  6. package/dist/commands/archive.js +280 -0
  7. package/dist/commands/archive.js.map +1 -0
  8. package/dist/commands/change.d.ts +35 -0
  9. package/dist/commands/change.d.ts.map +1 -0
  10. package/dist/commands/change.js +277 -0
  11. package/dist/commands/change.js.map +1 -0
  12. package/dist/commands/config.d.ts +8 -0
  13. package/dist/commands/config.d.ts.map +1 -0
  14. package/dist/commands/config.js +198 -0
  15. package/dist/commands/config.js.map +1 -0
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +21 -5
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/list.d.ts +2 -2
  20. package/dist/commands/list.d.ts.map +1 -1
  21. package/dist/commands/list.js +153 -47
  22. package/dist/commands/list.js.map +1 -1
  23. package/dist/commands/show.d.ts +14 -0
  24. package/dist/commands/show.d.ts.map +1 -0
  25. package/dist/commands/show.js +132 -0
  26. package/dist/commands/show.js.map +1 -0
  27. package/dist/commands/spec.d.ts +15 -0
  28. package/dist/commands/spec.d.ts.map +1 -0
  29. package/dist/commands/spec.js +225 -0
  30. package/dist/commands/spec.js.map +1 -0
  31. package/dist/commands/validate.d.ts +24 -0
  32. package/dist/commands/validate.d.ts.map +1 -0
  33. package/dist/commands/validate.js +294 -0
  34. package/dist/commands/validate.js.map +1 -0
  35. package/dist/core/artifact-graph/graph.d.ts +56 -0
  36. package/dist/core/artifact-graph/graph.d.ts.map +1 -0
  37. package/dist/core/artifact-graph/graph.js +141 -0
  38. package/dist/core/artifact-graph/graph.js.map +1 -0
  39. package/dist/core/artifact-graph/index.d.ts +7 -0
  40. package/dist/core/artifact-graph/index.d.ts.map +1 -0
  41. package/dist/core/artifact-graph/index.js +13 -0
  42. package/dist/core/artifact-graph/index.js.map +1 -0
  43. package/dist/core/artifact-graph/instruction-loader.d.ts +130 -0
  44. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -0
  45. package/dist/core/artifact-graph/instruction-loader.js +173 -0
  46. package/dist/core/artifact-graph/instruction-loader.js.map +1 -0
  47. package/dist/core/artifact-graph/resolver.d.ts +61 -0
  48. package/dist/core/artifact-graph/resolver.d.ts.map +1 -0
  49. package/dist/core/artifact-graph/resolver.js +187 -0
  50. package/dist/core/artifact-graph/resolver.js.map +1 -0
  51. package/dist/core/artifact-graph/schema.d.ts +13 -0
  52. package/dist/core/artifact-graph/schema.d.ts.map +1 -0
  53. package/dist/core/artifact-graph/schema.js +108 -0
  54. package/dist/core/artifact-graph/schema.js.map +1 -0
  55. package/dist/core/artifact-graph/state.d.ts +12 -0
  56. package/dist/core/artifact-graph/state.d.ts.map +1 -0
  57. package/dist/core/artifact-graph/state.js +54 -0
  58. package/dist/core/artifact-graph/state.js.map +1 -0
  59. package/dist/core/artifact-graph/types.d.ts +45 -0
  60. package/dist/core/artifact-graph/types.d.ts.map +1 -0
  61. package/dist/core/artifact-graph/types.js +43 -0
  62. package/dist/core/artifact-graph/types.js.map +1 -0
  63. package/dist/core/completions/command-registry.d.ts +7 -0
  64. package/dist/core/completions/command-registry.d.ts.map +1 -0
  65. package/dist/core/completions/command-registry.js +380 -0
  66. package/dist/core/completions/command-registry.js.map +1 -0
  67. package/dist/core/completions/completion-provider.d.ts +60 -0
  68. package/dist/core/completions/completion-provider.d.ts.map +1 -0
  69. package/dist/core/completions/completion-provider.js +102 -0
  70. package/dist/core/completions/completion-provider.js.map +1 -0
  71. package/dist/core/completions/generators/bash-generator.d.ts +32 -0
  72. package/dist/core/completions/generators/bash-generator.d.ts.map +1 -0
  73. package/dist/core/completions/generators/bash-generator.js +174 -0
  74. package/dist/core/completions/generators/bash-generator.js.map +1 -0
  75. package/dist/core/completions/generators/fish-generator.d.ts +32 -0
  76. package/dist/core/completions/generators/fish-generator.d.ts.map +1 -0
  77. package/dist/core/completions/generators/fish-generator.js +157 -0
  78. package/dist/core/completions/generators/fish-generator.js.map +1 -0
  79. package/dist/core/completions/generators/powershell-generator.d.ts +33 -0
  80. package/dist/core/completions/generators/powershell-generator.d.ts.map +1 -0
  81. package/dist/core/completions/generators/powershell-generator.js +207 -0
  82. package/dist/core/completions/generators/powershell-generator.js.map +1 -0
  83. package/dist/core/completions/generators/zsh-generator.d.ts +44 -0
  84. package/dist/core/completions/generators/zsh-generator.d.ts.map +1 -0
  85. package/dist/core/completions/generators/zsh-generator.js +250 -0
  86. package/dist/core/completions/generators/zsh-generator.js.map +1 -0
  87. package/dist/core/completions/templates/bash-templates.d.ts +6 -0
  88. package/dist/core/completions/templates/bash-templates.d.ts.map +1 -0
  89. package/dist/core/completions/templates/bash-templates.js +24 -0
  90. package/dist/core/completions/templates/bash-templates.js.map +1 -0
  91. package/dist/core/completions/templates/fish-templates.d.ts +7 -0
  92. package/dist/core/completions/templates/fish-templates.d.ts.map +1 -0
  93. package/dist/core/completions/templates/fish-templates.js +39 -0
  94. package/dist/core/completions/templates/fish-templates.js.map +1 -0
  95. package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
  96. package/dist/core/completions/templates/powershell-templates.d.ts.map +1 -0
  97. package/dist/core/completions/templates/powershell-templates.js +25 -0
  98. package/dist/core/completions/templates/powershell-templates.js.map +1 -0
  99. package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
  100. package/dist/core/completions/templates/zsh-templates.d.ts.map +1 -0
  101. package/dist/core/completions/templates/zsh-templates.js +36 -0
  102. package/dist/core/completions/templates/zsh-templates.js.map +1 -0
  103. package/dist/core/completions/types.d.ts +78 -0
  104. package/dist/core/completions/types.d.ts.map +1 -0
  105. package/dist/core/completions/types.js +2 -0
  106. package/dist/core/completions/types.js.map +1 -0
  107. package/dist/core/config-schema.d.ts +76 -0
  108. package/dist/core/config-schema.d.ts.map +1 -0
  109. package/dist/core/config-schema.js +200 -0
  110. package/dist/core/config-schema.js.map +1 -0
  111. package/dist/core/config.d.ts.map +1 -1
  112. package/dist/core/config.js +18 -0
  113. package/dist/core/config.js.map +1 -1
  114. package/dist/core/configurators/slash/antigravity.d.ts.map +1 -1
  115. package/dist/core/configurators/slash/antigravity.js +6 -0
  116. package/dist/core/configurators/slash/antigravity.js.map +1 -1
  117. package/dist/core/configurators/slash/base.js +1 -1
  118. package/dist/core/configurators/slash/base.js.map +1 -1
  119. package/dist/core/configurators/slash/claude.d.ts.map +1 -1
  120. package/dist/core/configurators/slash/claude.js +6 -0
  121. package/dist/core/configurators/slash/claude.js.map +1 -1
  122. package/dist/core/configurators/slash/codex.d.ts.map +1 -1
  123. package/dist/core/configurators/slash/codex.js +6 -0
  124. package/dist/core/configurators/slash/codex.js.map +1 -1
  125. package/dist/core/configurators/slash/github-copilot.d.ts.map +1 -1
  126. package/dist/core/configurators/slash/github-copilot.js +6 -0
  127. package/dist/core/configurators/slash/github-copilot.js.map +1 -1
  128. package/dist/core/configurators/slash/kilocode.d.ts.map +1 -1
  129. package/dist/core/configurators/slash/kilocode.js +6 -0
  130. package/dist/core/configurators/slash/kilocode.js.map +1 -1
  131. package/dist/core/configurators/slash/opencode.d.ts.map +1 -1
  132. package/dist/core/configurators/slash/opencode.js +6 -0
  133. package/dist/core/configurators/slash/opencode.js.map +1 -1
  134. package/dist/core/converters/json-converter.d.ts +6 -0
  135. package/dist/core/converters/json-converter.d.ts.map +1 -0
  136. package/dist/core/converters/json-converter.js +51 -0
  137. package/dist/core/converters/json-converter.js.map +1 -0
  138. package/dist/core/global-config.d.ts +39 -0
  139. package/dist/core/global-config.d.ts.map +1 -0
  140. package/dist/core/global-config.js +115 -0
  141. package/dist/core/global-config.js.map +1 -0
  142. package/dist/core/parsers/change-parser.d.ts +13 -0
  143. package/dist/core/parsers/change-parser.d.ts.map +1 -0
  144. package/dist/core/parsers/change-parser.js +193 -0
  145. package/dist/core/parsers/change-parser.js.map +1 -0
  146. package/dist/core/parsers/markdown-parser.d.ts +22 -0
  147. package/dist/core/parsers/markdown-parser.d.ts.map +1 -0
  148. package/dist/core/parsers/markdown-parser.js +187 -0
  149. package/dist/core/parsers/markdown-parser.js.map +1 -0
  150. package/dist/core/parsers/requirement-blocks.d.ts +37 -0
  151. package/dist/core/parsers/requirement-blocks.d.ts.map +1 -0
  152. package/dist/core/parsers/requirement-blocks.js +201 -0
  153. package/dist/core/parsers/requirement-blocks.js.map +1 -0
  154. package/dist/core/prompt-templates.d.ts +3 -0
  155. package/dist/core/prompt-templates.d.ts.map +1 -1
  156. package/dist/core/prompt-templates.js +66 -0
  157. package/dist/core/prompt-templates.js.map +1 -1
  158. package/dist/core/schemas/base.schema.d.ts +13 -0
  159. package/dist/core/schemas/base.schema.d.ts.map +1 -0
  160. package/dist/core/schemas/base.schema.js +13 -0
  161. package/dist/core/schemas/base.schema.js.map +1 -0
  162. package/dist/core/schemas/change.schema.d.ts +73 -0
  163. package/dist/core/schemas/change.schema.d.ts.map +1 -0
  164. package/dist/core/schemas/change.schema.js +31 -0
  165. package/dist/core/schemas/change.schema.js.map +1 -0
  166. package/dist/core/schemas/index.d.ts +4 -0
  167. package/dist/core/schemas/index.d.ts.map +1 -0
  168. package/dist/core/schemas/index.js +4 -0
  169. package/dist/core/schemas/index.js.map +1 -0
  170. package/dist/core/schemas/spec.schema.d.ts +18 -0
  171. package/dist/core/schemas/spec.schema.d.ts.map +1 -0
  172. package/dist/core/schemas/spec.schema.js +15 -0
  173. package/dist/core/schemas/spec.schema.js.map +1 -0
  174. package/dist/core/specs-apply.d.ts +73 -0
  175. package/dist/core/specs-apply.d.ts.map +1 -0
  176. package/dist/core/specs-apply.js +384 -0
  177. package/dist/core/specs-apply.js.map +1 -0
  178. package/dist/core/styles/palette.d.ts +7 -0
  179. package/dist/core/styles/palette.d.ts.map +1 -0
  180. package/dist/core/styles/palette.js +8 -0
  181. package/dist/core/styles/palette.js.map +1 -0
  182. package/dist/core/templates/agents-template.d.ts +1 -1
  183. package/dist/core/templates/agents-template.d.ts.map +1 -1
  184. package/dist/core/templates/agents-template.js +443 -19
  185. package/dist/core/templates/agents-template.js.map +1 -1
  186. package/dist/core/templates/slash-command-templates.d.ts +1 -1
  187. package/dist/core/templates/slash-command-templates.d.ts.map +1 -1
  188. package/dist/core/templates/slash-command-templates.js +4 -1
  189. package/dist/core/templates/slash-command-templates.js.map +1 -1
  190. package/dist/core/validation/constants.d.ts +34 -0
  191. package/dist/core/validation/constants.d.ts.map +1 -0
  192. package/dist/core/validation/constants.js +40 -0
  193. package/dist/core/validation/constants.js.map +1 -0
  194. package/dist/core/validation/types.d.ts +18 -0
  195. package/dist/core/validation/types.d.ts.map +1 -0
  196. package/dist/core/validation/types.js +2 -0
  197. package/dist/core/validation/types.js.map +1 -0
  198. package/dist/core/validation/validator.d.ts +33 -0
  199. package/dist/core/validation/validator.d.ts.map +1 -0
  200. package/dist/core/validation/validator.js +409 -0
  201. package/dist/core/validation/validator.js.map +1 -0
  202. package/dist/core/view.d.ts +8 -0
  203. package/dist/core/view.d.ts.map +1 -0
  204. package/dist/core/view.js +168 -0
  205. package/dist/core/view.js.map +1 -0
  206. package/dist/utils/change-metadata.d.ts +47 -0
  207. package/dist/utils/change-metadata.d.ts.map +1 -0
  208. package/dist/utils/change-metadata.js +130 -0
  209. package/dist/utils/change-metadata.js.map +1 -0
  210. package/dist/utils/change-utils.d.ts +51 -0
  211. package/dist/utils/change-utils.d.ts.map +1 -0
  212. package/dist/utils/change-utils.js +100 -0
  213. package/dist/utils/change-utils.js.map +1 -0
  214. package/dist/utils/file-system.d.ts +25 -0
  215. package/dist/utils/file-system.d.ts.map +1 -0
  216. package/dist/utils/file-system.js +218 -0
  217. package/dist/utils/file-system.js.map +1 -0
  218. package/dist/utils/index.d.ts +4 -0
  219. package/dist/utils/index.d.ts.map +1 -0
  220. package/dist/utils/index.js +5 -0
  221. package/dist/utils/index.js.map +1 -0
  222. package/dist/utils/interactive.d.ts +18 -0
  223. package/dist/utils/interactive.d.ts.map +1 -0
  224. package/dist/utils/interactive.js +21 -0
  225. package/dist/utils/interactive.js.map +1 -0
  226. package/dist/utils/item-discovery.d.ts +4 -0
  227. package/dist/utils/item-discovery.d.ts.map +1 -0
  228. package/dist/utils/item-discovery.js +72 -0
  229. package/dist/utils/item-discovery.js.map +1 -0
  230. package/dist/utils/match.d.ts +3 -0
  231. package/dist/utils/match.d.ts.map +1 -0
  232. package/dist/utils/match.js +22 -0
  233. package/dist/utils/match.js.map +1 -0
  234. package/dist/utils/shell-detection.d.ts +20 -0
  235. package/dist/utils/shell-detection.d.ts.map +1 -0
  236. package/dist/utils/shell-detection.js +41 -0
  237. package/dist/utils/shell-detection.js.map +1 -0
  238. package/dist/utils/task-progress.d.ts +8 -0
  239. package/dist/utils/task-progress.d.ts.map +1 -0
  240. package/dist/utils/task-progress.js +36 -0
  241. package/dist/utils/task-progress.js.map +1 -0
  242. package/docs/tasks.md +1 -1
  243. package/package.json +6 -2
  244. package/prompt/apply.md +17 -0
  245. package/prompt/archive.md +21 -0
  246. package/prompt/proposal.md +22 -0
  247. package/src/cli/index.ts +151 -16
  248. package/src/commands/archive.ts +302 -0
  249. package/src/commands/change.ts +292 -0
  250. package/src/commands/config.ts +233 -0
  251. package/src/commands/init.ts +19 -5
  252. package/src/commands/list.ts +176 -66
  253. package/src/commands/show.ts +138 -0
  254. package/src/commands/spec.ts +251 -0
  255. package/src/commands/validate.ts +326 -0
  256. package/src/core/artifact-graph/graph.ts +167 -0
  257. package/src/core/artifact-graph/index.ts +44 -0
  258. package/src/core/artifact-graph/instruction-loader.ts +302 -0
  259. package/src/core/artifact-graph/resolver.ts +226 -0
  260. package/src/core/artifact-graph/schema.ts +124 -0
  261. package/src/core/artifact-graph/state.ts +64 -0
  262. package/src/core/artifact-graph/types.ts +65 -0
  263. package/src/core/completions/command-registry.ts +382 -0
  264. package/src/core/completions/completion-provider.ts +128 -0
  265. package/src/core/completions/generators/bash-generator.ts +191 -0
  266. package/src/core/completions/generators/fish-generator.ts +188 -0
  267. package/src/core/completions/generators/powershell-generator.ts +223 -0
  268. package/src/core/completions/generators/zsh-generator.ts +281 -0
  269. package/src/core/completions/templates/bash-templates.ts +24 -0
  270. package/src/core/completions/templates/fish-templates.ts +40 -0
  271. package/src/core/completions/templates/powershell-templates.ts +25 -0
  272. package/src/core/completions/templates/zsh-templates.ts +36 -0
  273. package/src/core/completions/types.ts +90 -0
  274. package/src/core/config-schema.ts +230 -0
  275. package/src/core/config.ts +18 -0
  276. package/src/core/configurators/slash/antigravity.ts +6 -0
  277. package/src/core/configurators/slash/base.ts +1 -1
  278. package/src/core/configurators/slash/claude.ts +6 -0
  279. package/src/core/configurators/slash/codex.ts +6 -0
  280. package/src/core/configurators/slash/github-copilot.ts +6 -0
  281. package/src/core/configurators/slash/kilocode.ts +6 -0
  282. package/src/core/configurators/slash/opencode.ts +6 -0
  283. package/src/core/converters/json-converter.ts +62 -0
  284. package/src/core/global-config.ts +136 -0
  285. package/src/core/parsers/change-parser.ts +234 -0
  286. package/src/core/parsers/markdown-parser.ts +237 -0
  287. package/src/core/parsers/requirement-blocks.ts +234 -0
  288. package/src/core/prompt-templates.ts +69 -0
  289. package/src/core/schemas/base.schema.ts +20 -0
  290. package/src/core/schemas/change.schema.ts +42 -0
  291. package/src/core/schemas/index.ts +20 -0
  292. package/src/core/schemas/spec.schema.ts +17 -0
  293. package/src/core/specs-apply.ts +483 -0
  294. package/src/core/styles/palette.ts +8 -0
  295. package/src/core/templates/agents-template.ts +443 -19
  296. package/src/core/templates/slash-command-templates.ts +7 -1
  297. package/src/core/validation/constants.ts +48 -0
  298. package/src/core/validation/types.ts +19 -0
  299. package/src/core/validation/validator.ts +449 -0
  300. package/src/core/view.ts +219 -0
  301. package/src/utils/change-metadata.ts +171 -0
  302. package/src/utils/change-utils.ts +131 -0
  303. package/src/utils/file-system.ts +252 -0
  304. package/src/utils/index.ts +12 -0
  305. package/src/utils/interactive.ts +29 -0
  306. package/src/utils/item-discovery.ts +66 -0
  307. package/src/utils/match.ts +26 -0
  308. package/src/utils/shell-detection.ts +62 -0
  309. package/src/utils/task-progress.ts +43 -0
  310. package/dist/commands/ai-humanizer.d.ts +0 -11
  311. package/dist/commands/ai-humanizer.d.ts.map +0 -1
  312. package/dist/commands/ai-humanizer.js +0 -97
  313. package/dist/commands/ai-humanizer.js.map +0 -1
  314. package/dist/commands/api-contract-generator.d.ts +0 -11
  315. package/dist/commands/api-contract-generator.d.ts.map +0 -1
  316. package/dist/commands/api-contract-generator.js +0 -97
  317. package/dist/commands/api-contract-generator.js.map +0 -1
  318. package/dist/commands/design-system.d.ts +0 -11
  319. package/dist/commands/design-system.d.ts.map +0 -1
  320. package/dist/commands/design-system.js +0 -97
  321. package/dist/commands/design-system.js.map +0 -1
  322. package/dist/commands/document-explainer.d.ts +0 -11
  323. package/dist/commands/document-explainer.d.ts.map +0 -1
  324. package/dist/commands/document-explainer.js +0 -97
  325. package/dist/commands/document-explainer.js.map +0 -1
  326. package/dist/commands/epic-generator.d.ts +0 -11
  327. package/dist/commands/epic-generator.d.ts.map +0 -1
  328. package/dist/commands/epic-generator.js +0 -97
  329. package/dist/commands/epic-generator.js.map +0 -1
  330. package/dist/commands/erd-generator.d.ts +0 -11
  331. package/dist/commands/erd-generator.d.ts.map +0 -1
  332. package/dist/commands/erd-generator.js +0 -97
  333. package/dist/commands/erd-generator.js.map +0 -1
  334. package/dist/commands/fsd-generator.d.ts +0 -11
  335. package/dist/commands/fsd-generator.d.ts.map +0 -1
  336. package/dist/commands/fsd-generator.js +0 -97
  337. package/dist/commands/fsd-generator.js.map +0 -1
  338. package/dist/commands/prd-agent-generator.d.ts +0 -11
  339. package/dist/commands/prd-agent-generator.d.ts.map +0 -1
  340. package/dist/commands/prd-agent-generator.js +0 -95
  341. package/dist/commands/prd-agent-generator.js.map +0 -1
  342. package/dist/commands/prd-generator.d.ts +0 -11
  343. package/dist/commands/prd-generator.d.ts.map +0 -1
  344. package/dist/commands/prd-generator.js +0 -97
  345. package/dist/commands/prd-generator.js.map +0 -1
  346. package/dist/commands/product-brief.d.ts +0 -11
  347. package/dist/commands/product-brief.d.ts.map +0 -1
  348. package/dist/commands/product-brief.js +0 -97
  349. package/dist/commands/product-brief.js.map +0 -1
  350. package/dist/commands/skill-creator.d.ts +0 -11
  351. package/dist/commands/skill-creator.d.ts.map +0 -1
  352. package/dist/commands/skill-creator.js +0 -101
  353. package/dist/commands/skill-creator.js.map +0 -1
  354. package/dist/commands/story-generator.d.ts +0 -11
  355. package/dist/commands/story-generator.d.ts.map +0 -1
  356. package/dist/commands/story-generator.js +0 -97
  357. package/dist/commands/story-generator.js.map +0 -1
  358. package/dist/commands/tdd-generator.d.ts +0 -11
  359. package/dist/commands/tdd-generator.d.ts.map +0 -1
  360. package/dist/commands/tdd-generator.js +0 -97
  361. package/dist/commands/tdd-generator.js.map +0 -1
  362. package/dist/commands/tdd-lite-generator.d.ts +0 -11
  363. package/dist/commands/tdd-lite-generator.d.ts.map +0 -1
  364. package/dist/commands/tdd-lite-generator.js +0 -97
  365. package/dist/commands/tdd-lite-generator.js.map +0 -1
  366. package/dist/commands/wireframe-generator.d.ts +0 -11
  367. package/dist/commands/wireframe-generator.d.ts.map +0 -1
  368. package/dist/commands/wireframe-generator.js +0 -97
  369. package/dist/commands/wireframe-generator.js.map +0 -1
  370. package/src/commands/ai-humanizer.ts +0 -118
  371. package/src/commands/api-contract-generator.ts +0 -118
  372. package/src/commands/design-system.ts +0 -118
  373. package/src/commands/document-explainer.ts +0 -118
  374. package/src/commands/epic-generator.ts +0 -118
  375. package/src/commands/erd-generator.ts +0 -118
  376. package/src/commands/fsd-generator.ts +0 -118
  377. package/src/commands/prd-agent-generator.ts +0 -115
  378. package/src/commands/prd-generator.ts +0 -118
  379. package/src/commands/product-brief.ts +0 -118
  380. package/src/commands/skill-creator.ts +0 -123
  381. package/src/commands/story-generator.ts +0 -118
  382. package/src/commands/tdd-generator.ts +0 -118
  383. package/src/commands/tdd-lite-generator.ts +0 -118
  384. package/src/commands/wireframe-generator.ts +0 -118
@@ -0,0 +1,44 @@
1
+ import { CompletionGenerator, CommandDefinition } from '../types.js';
2
+ /**
3
+ * Generates Zsh completion scripts for the Prompter CLI.
4
+ * Follows Zsh completion system conventions using the _prompter function.
5
+ */
6
+ export declare class ZshGenerator implements CompletionGenerator {
7
+ readonly shell: "zsh";
8
+ /**
9
+ * Generate a Zsh completion script
10
+ *
11
+ * @param commands - Command definitions to generate completions for
12
+ * @returns Zsh completion script as a string
13
+ */
14
+ generate(commands: CommandDefinition[]): string;
15
+ /**
16
+ * Generate completion function for a specific command
17
+ */
18
+ private generateCommandFunction;
19
+ /**
20
+ * Generate completion function for a subcommand
21
+ */
22
+ private generateSubcommandFunction;
23
+ /**
24
+ * Generate flag specification for _arguments
25
+ */
26
+ private generateFlagSpec;
27
+ /**
28
+ * Generate positional argument specification
29
+ */
30
+ private generatePositionalSpec;
31
+ /**
32
+ * Escape special characters in descriptions
33
+ */
34
+ private escapeDescription;
35
+ /**
36
+ * Escape special characters in values
37
+ */
38
+ private escapeValue;
39
+ /**
40
+ * Sanitize command names for use in function names
41
+ */
42
+ private sanitizeFunctionName;
43
+ }
44
+ //# sourceMappingURL=zsh-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zsh-generator.d.ts","sourceRoot":"","sources":["../../../../src/core/completions/generators/zsh-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAkB,MAAM,aAAa,CAAC;AAGrF;;;GAGG;AACH,qBAAa,YAAa,YAAW,mBAAmB;IACtD,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAU;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM;IAkE/C;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiF/B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA4BlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -0,0 +1,250 @@
1
+ import { ZSH_DYNAMIC_HELPERS } from '../templates/zsh-templates.js';
2
+ /**
3
+ * Generates Zsh completion scripts for the Prompter CLI.
4
+ * Follows Zsh completion system conventions using the _prompter function.
5
+ */
6
+ export class ZshGenerator {
7
+ shell = 'zsh';
8
+ /**
9
+ * Generate a Zsh completion script
10
+ *
11
+ * @param commands - Command definitions to generate completions for
12
+ * @returns Zsh completion script as a string
13
+ */
14
+ generate(commands) {
15
+ // Build command list using push() for loop clarity
16
+ const commandLines = [];
17
+ for (const cmd of commands) {
18
+ const escapedDesc = this.escapeDescription(cmd.description);
19
+ commandLines.push(` '${cmd.name}:${escapedDesc}'`);
20
+ }
21
+ const commandList = commandLines.join('\n');
22
+ // Build command cases using push() for loop clarity
23
+ const commandCaseLines = [];
24
+ for (const cmd of commands) {
25
+ commandCaseLines.push(` ${cmd.name})`);
26
+ commandCaseLines.push(` _prompter_${this.sanitizeFunctionName(cmd.name)}`);
27
+ commandCaseLines.push(' ;;');
28
+ }
29
+ const commandCases = commandCaseLines.join('\n');
30
+ // Build command functions using push() for loop clarity
31
+ const commandFunctionLines = [];
32
+ for (const cmd of commands) {
33
+ commandFunctionLines.push(...this.generateCommandFunction(cmd));
34
+ commandFunctionLines.push('');
35
+ }
36
+ const commandFunctions = commandFunctionLines.join('\n');
37
+ // Dynamic completion helpers from template
38
+ const helpers = ZSH_DYNAMIC_HELPERS;
39
+ // Assemble final script with template literal
40
+ return `#compdef prompter
41
+
42
+ # Zsh completion script for Prompter CLI
43
+ # Auto-generated - do not edit manually
44
+
45
+ _prompter() {
46
+ local context state line
47
+ typeset -A opt_args
48
+
49
+ local -a commands
50
+ commands=(
51
+ ${commandList}
52
+ )
53
+
54
+ _arguments -C \\
55
+ "1: :->command" \\
56
+ "*::arg:->args"
57
+
58
+ case $state in
59
+ command)
60
+ _describe "prompter command" commands
61
+ ;;
62
+ args)
63
+ case $words[1] in
64
+ ${commandCases}
65
+ esac
66
+ ;;
67
+ esac
68
+ }
69
+
70
+ ${commandFunctions}
71
+ ${helpers}
72
+ compdef _prompter prompter
73
+ `;
74
+ }
75
+ /**
76
+ * Generate completion function for a specific command
77
+ */
78
+ generateCommandFunction(cmd) {
79
+ const funcName = `_prompter_${this.sanitizeFunctionName(cmd.name)}`;
80
+ const lines = [];
81
+ lines.push(`${funcName}() {`);
82
+ // If command has subcommands, handle them
83
+ if (cmd.subcommands && cmd.subcommands.length > 0) {
84
+ lines.push(' local context state line');
85
+ lines.push(' typeset -A opt_args');
86
+ lines.push('');
87
+ lines.push(' local -a subcommands');
88
+ lines.push(' subcommands=(');
89
+ for (const subcmd of cmd.subcommands) {
90
+ const escapedDesc = this.escapeDescription(subcmd.description);
91
+ lines.push(` '${subcmd.name}:${escapedDesc}'`);
92
+ }
93
+ lines.push(' )');
94
+ lines.push('');
95
+ lines.push(' _arguments -C \\');
96
+ // Add command flags
97
+ for (const flag of cmd.flags) {
98
+ lines.push(' ' + this.generateFlagSpec(flag) + ' \\');
99
+ }
100
+ lines.push(' "1: :->subcommand" \\');
101
+ lines.push(' "*::arg:->args"');
102
+ lines.push('');
103
+ lines.push(' case $state in');
104
+ lines.push(' subcommand)');
105
+ lines.push(' _describe "subcommand" subcommands');
106
+ lines.push(' ;;');
107
+ lines.push(' args)');
108
+ lines.push(' case $words[1] in');
109
+ for (const subcmd of cmd.subcommands) {
110
+ lines.push(` ${subcmd.name})`);
111
+ lines.push(` _prompter_${this.sanitizeFunctionName(cmd.name)}_${this.sanitizeFunctionName(subcmd.name)}`);
112
+ lines.push(' ;;');
113
+ }
114
+ lines.push(' esac');
115
+ lines.push(' ;;');
116
+ lines.push(' esac');
117
+ }
118
+ else {
119
+ // Command without subcommands
120
+ lines.push(' _arguments \\');
121
+ // Add flags
122
+ for (const flag of cmd.flags) {
123
+ lines.push(' ' + this.generateFlagSpec(flag) + ' \\');
124
+ }
125
+ // Add positional argument completion
126
+ if (cmd.acceptsPositional) {
127
+ const positionalSpec = this.generatePositionalSpec(cmd.positionalType);
128
+ lines.push(' ' + positionalSpec);
129
+ }
130
+ else {
131
+ // Remove trailing backslash from last flag
132
+ if (lines[lines.length - 1].endsWith(' \\')) {
133
+ lines[lines.length - 1] = lines[lines.length - 1].slice(0, -2);
134
+ }
135
+ }
136
+ }
137
+ lines.push('}');
138
+ // Generate subcommand functions if they exist
139
+ if (cmd.subcommands) {
140
+ for (const subcmd of cmd.subcommands) {
141
+ lines.push('');
142
+ lines.push(...this.generateSubcommandFunction(cmd.name, subcmd));
143
+ }
144
+ }
145
+ return lines;
146
+ }
147
+ /**
148
+ * Generate completion function for a subcommand
149
+ */
150
+ generateSubcommandFunction(parentName, subcmd) {
151
+ const funcName = `_prompter_${this.sanitizeFunctionName(parentName)}_${this.sanitizeFunctionName(subcmd.name)}`;
152
+ const lines = [];
153
+ lines.push(`${funcName}() {`);
154
+ lines.push(' _arguments \\');
155
+ // Add flags
156
+ for (const flag of subcmd.flags) {
157
+ lines.push(' ' + this.generateFlagSpec(flag) + ' \\');
158
+ }
159
+ // Add positional argument completion
160
+ if (subcmd.acceptsPositional) {
161
+ const positionalSpec = this.generatePositionalSpec(subcmd.positionalType);
162
+ lines.push(' ' + positionalSpec);
163
+ }
164
+ else {
165
+ // Remove trailing backslash from last flag
166
+ if (lines[lines.length - 1].endsWith(' \\')) {
167
+ lines[lines.length - 1] = lines[lines.length - 1].slice(0, -2);
168
+ }
169
+ }
170
+ lines.push('}');
171
+ return lines;
172
+ }
173
+ /**
174
+ * Generate flag specification for _arguments
175
+ */
176
+ generateFlagSpec(flag) {
177
+ const parts = [];
178
+ // Handle mutually exclusive short and long forms
179
+ if (flag.short) {
180
+ parts.push(`'(-${flag.short} --${flag.name})'{-${flag.short},--${flag.name}}'`);
181
+ }
182
+ else {
183
+ parts.push(`'--${flag.name}`);
184
+ }
185
+ // Add description
186
+ const escapedDesc = this.escapeDescription(flag.description);
187
+ parts.push(`[${escapedDesc}]`);
188
+ // Add value completion if flag takes a value
189
+ if (flag.takesValue) {
190
+ if (flag.values && flag.values.length > 0) {
191
+ // Provide specific value completions
192
+ const valueList = flag.values.map(v => this.escapeValue(v)).join(' ');
193
+ parts.push(`:value:(${valueList})`);
194
+ }
195
+ else {
196
+ // Generic value placeholder
197
+ parts.push(':value:');
198
+ }
199
+ }
200
+ // Close the quote (needed for both short and long forms)
201
+ parts.push("'");
202
+ return parts.join('');
203
+ }
204
+ /**
205
+ * Generate positional argument specification
206
+ */
207
+ generatePositionalSpec(positionalType) {
208
+ switch (positionalType) {
209
+ case 'change-id':
210
+ return "'*: :_prompter_complete_changes'";
211
+ case 'spec-id':
212
+ return "'*: :_prompter_complete_specs'";
213
+ case 'change-or-spec-id':
214
+ return "'*: :_prompter_complete_items'";
215
+ case 'path':
216
+ return "'*:path:_files'";
217
+ case 'shell':
218
+ return "'*:shell:(zsh bash fish powershell)'";
219
+ default:
220
+ return "'*: :_default'";
221
+ }
222
+ }
223
+ /**
224
+ * Escape special characters in descriptions
225
+ */
226
+ escapeDescription(desc) {
227
+ return desc
228
+ .replace(/\\/g, '\\\\')
229
+ .replace(/'/g, "\\'")
230
+ .replace(/\[/g, '\\[')
231
+ .replace(/]/g, '\\]')
232
+ .replace(/:/g, '\\:');
233
+ }
234
+ /**
235
+ * Escape special characters in values
236
+ */
237
+ escapeValue(value) {
238
+ return value
239
+ .replace(/\\/g, '\\\\')
240
+ .replace(/'/g, "\\'")
241
+ .replace(/ /g, '\\ ');
242
+ }
243
+ /**
244
+ * Sanitize command names for use in function names
245
+ */
246
+ sanitizeFunctionName(name) {
247
+ return name.replace(/-/g, '_');
248
+ }
249
+ }
250
+ //# sourceMappingURL=zsh-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zsh-generator.js","sourceRoot":"","sources":["../../../../src/core/completions/generators/zsh-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Static template strings for Bash completion scripts.
3
+ * These are Bash-specific helper functions that never change.
4
+ */
5
+ export declare const BASH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\n_prompter_complete_changes() {\n local changes\n changes=$(prompter __complete changes 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$changes\" -- \"$cur\"))\n}\n\n_prompter_complete_specs() {\n local specs\n specs=$(prompter __complete specs 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$specs\" -- \"$cur\"))\n}\n\n_prompter_complete_items() {\n local items\n items=$(prompter __complete changes 2>/dev/null | cut -f1; prompter __complete specs 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$items\" -- \"$cur\"))\n}";
6
+ //# sourceMappingURL=bash-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash-templates.d.ts","sourceRoot":"","sources":["../../../../src/core/completions/templates/bash-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,oBAAoB,okBAkB/B,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Static template strings for Bash completion scripts.
3
+ * These are Bash-specific helper functions that never change.
4
+ */
5
+ export const BASH_DYNAMIC_HELPERS = `# Dynamic completion helpers
6
+
7
+ _prompter_complete_changes() {
8
+ local changes
9
+ changes=$(prompter __complete changes 2>/dev/null | cut -f1)
10
+ COMPREPLY=($(compgen -W "$changes" -- "$cur"))
11
+ }
12
+
13
+ _prompter_complete_specs() {
14
+ local specs
15
+ specs=$(prompter __complete specs 2>/dev/null | cut -f1)
16
+ COMPREPLY=($(compgen -W "$specs" -- "$cur"))
17
+ }
18
+
19
+ _prompter_complete_items() {
20
+ local items
21
+ items=$(prompter __complete changes 2>/dev/null | cut -f1; prompter __complete specs 2>/dev/null | cut -f1)
22
+ COMPREPLY=($(compgen -W "$items" -- "$cur"))
23
+ }`;
24
+ //# sourceMappingURL=bash-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash-templates.js","sourceRoot":"","sources":["../../../../src/core/completions/templates/bash-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;EAkBlC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Static template strings for Fish completion scripts.
3
+ * These are Fish-specific helper functions that never change.
4
+ */
5
+ export declare const FISH_STATIC_HELPERS = "# Helper function to check if a subcommand is present\nfunction __fish_prompter_using_subcommand\n set -l cmd (commandline -opc)\n set -e cmd[1]\n for i in $argv\n if contains -- $i $cmd\n return 0\n end\n end\n return 1\nend\n\nfunction __fish_prompter_no_subcommand\n set -l cmd (commandline -opc)\n test (count $cmd) -eq 1\nend";
6
+ export declare const FISH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\nfunction __fish_prompter_changes\n prompter __complete changes 2>/dev/null | while read -l id desc\n printf '%s\\t%s\\n' \"$id\" \"$desc\"\n end\nend\n\nfunction __fish_prompter_specs\n prompter __complete specs 2>/dev/null | while read -l id desc\n printf '%s\\t%s\\n' \"$id\" \"$desc\"\n end\nend\n\nfunction __fish_prompter_items\n __fish_prompter_changes\n __fish_prompter_specs\nend";
7
+ //# sourceMappingURL=fish-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fish-templates.d.ts","sourceRoot":"","sources":["../../../../src/core/completions/templates/fish-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,6XAe5B,CAAC;AAEL,eAAO,MAAM,oBAAoB,wcAiB7B,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Static template strings for Fish completion scripts.
3
+ * These are Fish-specific helper functions that never change.
4
+ */
5
+ export const FISH_STATIC_HELPERS = `# Helper function to check if a subcommand is present
6
+ function __fish_prompter_using_subcommand
7
+ set -l cmd (commandline -opc)
8
+ set -e cmd[1]
9
+ for i in $argv
10
+ if contains -- $i $cmd
11
+ return 0
12
+ end
13
+ end
14
+ return 1
15
+ end
16
+
17
+ function __fish_prompter_no_subcommand
18
+ set -l cmd (commandline -opc)
19
+ test (count $cmd) -eq 1
20
+ end`;
21
+ export const FISH_DYNAMIC_HELPERS = `# Dynamic completion helpers
22
+
23
+ function __fish_prompter_changes
24
+ prompter __complete changes 2>/dev/null | while read -l id desc
25
+ printf '%s\\t%s\\n' "$id" "$desc"
26
+ end
27
+ end
28
+
29
+ function __fish_prompter_specs
30
+ prompter __complete specs 2>/dev/null | while read -l id desc
31
+ printf '%s\\t%s\\n' "$id" "$desc"
32
+ end
33
+ end
34
+
35
+ function __fish_prompter_items
36
+ __fish_prompter_changes
37
+ __fish_prompter_specs
38
+ end`;
39
+ //# sourceMappingURL=fish-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fish-templates.js","sourceRoot":"","sources":["../../../../src/core/completions/templates/fish-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;IAe/B,CAAC;AAEL,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;IAiBhC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Static template strings for PowerShell completion scripts.
3
+ * These are PowerShell-specific helper functions that never change.
4
+ */
5
+ export declare const POWERSHELL_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\nfunction Get-PrompterChanges {\n $output = prompter __complete changes 2>$null\n if ($output) {\n $output | ForEach-Object {\n ($_ -split \"\\t\")[0]\n }\n }\n}\n\nfunction Get-PrompterSpecs {\n $output = prompter __complete specs 2>$null\n if ($output) {\n $output | ForEach-Object {\n ($_ -split \"\\t\")[0]\n }\n }\n}\n";
6
+ //# sourceMappingURL=powershell-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powershell-templates.d.ts","sourceRoot":"","sources":["../../../../src/core/completions/templates/powershell-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,0BAA0B,2aAmBtC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Static template strings for PowerShell completion scripts.
3
+ * These are PowerShell-specific helper functions that never change.
4
+ */
5
+ export const POWERSHELL_DYNAMIC_HELPERS = `# Dynamic completion helpers
6
+
7
+ function Get-PrompterChanges {
8
+ $output = prompter __complete changes 2>$null
9
+ if ($output) {
10
+ $output | ForEach-Object {
11
+ ($_ -split "\\t")[0]
12
+ }
13
+ }
14
+ }
15
+
16
+ function Get-PrompterSpecs {
17
+ $output = prompter __complete specs 2>$null
18
+ if ($output) {
19
+ $output | ForEach-Object {
20
+ ($_ -split "\\t")[0]
21
+ }
22
+ }
23
+ }
24
+ `;
25
+ //# sourceMappingURL=powershell-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powershell-templates.js","sourceRoot":"","sources":["../../../../src/core/completions/templates/powershell-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;CAmBzC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Static template strings for Zsh completion scripts.
3
+ * These are Zsh-specific helper functions that never change.
4
+ */
5
+ export declare const ZSH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\n# Use prompter __complete to get available changes\n_prompter_complete_changes() {\n local -a changes\n while IFS=$'\\t' read -r id desc; do\n changes+=(\"$id:$desc\")\n done < <(prompter __complete changes 2>/dev/null)\n _describe \"change\" changes\n}\n\n# Use prompter __complete to get available specs\n_prompter_complete_specs() {\n local -a specs\n while IFS=$'\\t' read -r id desc; do\n specs+=(\"$id:$desc\")\n done < <(prompter __complete specs 2>/dev/null)\n _describe \"spec\" specs\n}\n\n# Get both changes and specs\n_prompter_complete_items() {\n local -a items\n while IFS=$'\\t' read -r id desc; do\n items+=(\"$id:$desc\")\n done < <(prompter __complete changes 2>/dev/null)\n while IFS=$'\\t' read -r id desc; do\n items+=(\"$id:$desc\")\n done < <(prompter __complete specs 2>/dev/null)\n _describe \"item\" items\n}";
6
+ //# sourceMappingURL=zsh-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zsh-templates.d.ts","sourceRoot":"","sources":["../../../../src/core/completions/templates/zsh-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,k4BA8B9B,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Static template strings for Zsh completion scripts.
3
+ * These are Zsh-specific helper functions that never change.
4
+ */
5
+ export const ZSH_DYNAMIC_HELPERS = `# Dynamic completion helpers
6
+
7
+ # Use prompter __complete to get available changes
8
+ _prompter_complete_changes() {
9
+ local -a changes
10
+ while IFS=$'\\t' read -r id desc; do
11
+ changes+=("$id:$desc")
12
+ done < <(prompter __complete changes 2>/dev/null)
13
+ _describe "change" changes
14
+ }
15
+
16
+ # Use prompter __complete to get available specs
17
+ _prompter_complete_specs() {
18
+ local -a specs
19
+ while IFS=$'\\t' read -r id desc; do
20
+ specs+=("$id:$desc")
21
+ done < <(prompter __complete specs 2>/dev/null)
22
+ _describe "spec" specs
23
+ }
24
+
25
+ # Get both changes and specs
26
+ _prompter_complete_items() {
27
+ local -a items
28
+ while IFS=$'\\t' read -r id desc; do
29
+ items+=("$id:$desc")
30
+ done < <(prompter __complete changes 2>/dev/null)
31
+ while IFS=$'\\t' read -r id desc; do
32
+ items+=("$id:$desc")
33
+ done < <(prompter __complete specs 2>/dev/null)
34
+ _describe "item" items
35
+ }`;
36
+ //# sourceMappingURL=zsh-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zsh-templates.js","sourceRoot":"","sources":["../../../../src/core/completions/templates/zsh-templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BjC,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { SupportedShell } from '../../utils/shell-detection.js';
2
+ /**
3
+ * Definition of a command-line flag/option
4
+ */
5
+ export interface FlagDefinition {
6
+ /**
7
+ * Flag name without dashes (e.g., "json", "strict", "no-interactive")
8
+ */
9
+ name: string;
10
+ /**
11
+ * Short flag name without dash (e.g., "y" for "-y")
12
+ */
13
+ short?: string;
14
+ /**
15
+ * Human-readable description of what the flag does
16
+ */
17
+ description: string;
18
+ /**
19
+ * Whether the flag takes an argument value
20
+ */
21
+ takesValue?: boolean;
22
+ /**
23
+ * Possible values for the flag (for completion suggestions)
24
+ */
25
+ values?: string[];
26
+ }
27
+ /**
28
+ * Definition of a CLI command
29
+ */
30
+ export interface CommandDefinition {
31
+ /**
32
+ * Command name (e.g., "init", "validate", "show")
33
+ */
34
+ name: string;
35
+ /**
36
+ * Human-readable description of the command
37
+ */
38
+ description: string;
39
+ /**
40
+ * Flags/options supported by this command
41
+ */
42
+ flags: FlagDefinition[];
43
+ /**
44
+ * Subcommands (e.g., "change show", "spec validate")
45
+ */
46
+ subcommands?: CommandDefinition[];
47
+ /**
48
+ * Whether this command accepts a positional argument (e.g., item name, path)
49
+ */
50
+ acceptsPositional?: boolean;
51
+ /**
52
+ * Type of positional argument for dynamic completion
53
+ * - 'change-id': Complete with active change IDs
54
+ * - 'spec-id': Complete with spec IDs
55
+ * - 'change-or-spec-id': Complete with both changes and specs
56
+ * - 'path': Complete with file paths
57
+ * - 'shell': Complete with supported shell names
58
+ * - undefined: No specific completion
59
+ */
60
+ positionalType?: 'change-id' | 'spec-id' | 'change-or-spec-id' | 'path' | 'shell';
61
+ }
62
+ /**
63
+ * Interface for shell-specific completion script generators
64
+ */
65
+ export interface CompletionGenerator {
66
+ /**
67
+ * The shell type this generator targets
68
+ */
69
+ readonly shell: SupportedShell;
70
+ /**
71
+ * Generate the completion script content
72
+ *
73
+ * @param commands - Command definitions to generate completions for
74
+ * @returns The shell-specific completion script as a string
75
+ */
76
+ generate(commands: CommandDefinition[]): string;
77
+ }
78
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/completions/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAElC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,mBAAmB,GAAG,MAAM,GAAG,OAAO,CAAC;CACnF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAE/B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;CACjD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/completions/types.ts"],"names":[],"mappings":""}