@dedesfr/prompter 0.9.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +105 -77
  3. package/dist/cli/index.js +25 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +32 -9
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/login.d.ts +4 -0
  9. package/dist/commands/login.d.ts.map +1 -0
  10. package/dist/commands/login.js +56 -0
  11. package/dist/commands/login.js.map +1 -0
  12. package/dist/commands/logout.d.ts +4 -0
  13. package/dist/commands/logout.d.ts.map +1 -0
  14. package/dist/commands/logout.js +14 -0
  15. package/dist/commands/logout.js.map +1 -0
  16. package/dist/commands/update.d.ts.map +1 -1
  17. package/dist/commands/update.js +18 -5
  18. package/dist/commands/update.js.map +1 -1
  19. package/dist/commands/whoami.d.ts +4 -0
  20. package/dist/commands/whoami.d.ts.map +1 -0
  21. package/dist/commands/whoami.js +42 -0
  22. package/dist/commands/whoami.js.map +1 -0
  23. package/dist/core/auth-store.d.ts +10 -0
  24. package/dist/core/auth-store.d.ts.map +1 -0
  25. package/dist/core/auth-store.js +39 -0
  26. package/dist/core/auth-store.js.map +1 -0
  27. package/dist/core/registry.d.ts +18 -0
  28. package/dist/core/registry.d.ts.map +1 -0
  29. package/dist/core/registry.js +94 -0
  30. package/dist/core/registry.js.map +1 -0
  31. package/package.json +7 -1
  32. package/AGENTS.md +0 -123
  33. package/CLAUDE.md +0 -17
  34. package/build.js +0 -20
  35. package/convex-setup.md +0 -403
  36. package/prompt/ai-humanizer.md +0 -45
  37. package/prompt/api-contract-generator.md +0 -234
  38. package/prompt/apply.md +0 -17
  39. package/prompt/archive.md +0 -21
  40. package/prompt/design-system.md +0 -210
  41. package/prompt/document-explainer.md +0 -149
  42. package/prompt/epic-generator.md +0 -198
  43. package/prompt/epic-single.md +0 -47
  44. package/prompt/erd-generator.md +0 -130
  45. package/prompt/fsd-generator.md +0 -157
  46. package/prompt/prd-agent-generator.md +0 -147
  47. package/prompt/prd-generator.md +0 -195
  48. package/prompt/product-brief.md +0 -289
  49. package/prompt/proposal.md +0 -22
  50. package/prompt/qa-test-scenario.md +0 -133
  51. package/prompt/skill-creator.md +0 -350
  52. package/prompt/story-generator.md +0 -278
  53. package/prompt/story-single.md +0 -70
  54. package/prompt/tdd-generator.md +0 -294
  55. package/prompt/tdd-lite-generator.md +0 -224
  56. package/prompt/wireframe-generator.md +0 -219
  57. package/skills/ai-context-generator/SKILL.md +0 -54
  58. package/skills/ai-context-generator/references/AGENTS.template.md +0 -83
  59. package/skills/ai-context-generator/references/CLAUDE.template.md +0 -39
  60. package/skills/ai-context-generator/references/behavioral-guidelines.md +0 -71
  61. package/skills/ai-context-generator/references/discovery-checklist.md +0 -40
  62. package/skills/ai-context-generator/references/examples/AGENTS.good.md +0 -103
  63. package/skills/ai-context-generator/references/extraction-checklist.md +0 -23
  64. package/skills/ai-context-generator/references/overlays/laravel.md +0 -44
  65. package/skills/ai-humanizer/SKILL.md +0 -50
  66. package/skills/api-contract-generator/SKILL.md +0 -243
  67. package/skills/apply/SKILL.md +0 -23
  68. package/skills/archive/SKILL.md +0 -27
  69. package/skills/cerebro/SKILL.md +0 -187
  70. package/skills/cerebro/references/agents.md +0 -213
  71. package/skills/code-review/SKILL.md +0 -373
  72. package/skills/code-review/assets/report-template-agent.md +0 -212
  73. package/skills/code-review/assets/report-template-compact.md +0 -81
  74. package/skills/code-review/assets/report-template-full.md +0 -264
  75. package/skills/code-review/assets/report-template-human.md +0 -168
  76. package/skills/code-review/references/universal-patterns.md +0 -495
  77. package/skills/design-md/README.md +0 -34
  78. package/skills/design-md/SKILL.md +0 -172
  79. package/skills/design-md/examples/DESIGN.md +0 -154
  80. package/skills/design-system/SKILL.md +0 -216
  81. package/skills/design-system-generator/SKILL.md +0 -324
  82. package/skills/design-system-generator/assets/design-system-template.md +0 -348
  83. package/skills/design-system-generator/references/extraction-patterns.md +0 -321
  84. package/skills/doc-builder/SKILL.md +0 -115
  85. package/skills/doc-builder/references/ui-patterns.md +0 -394
  86. package/skills/document-explainer/SKILL.md +0 -155
  87. package/skills/document-translator/SKILL.md +0 -58
  88. package/skills/enhance/SKILL.md +0 -47
  89. package/skills/enhance-prompt/README.md +0 -34
  90. package/skills/enhance-prompt/SKILL.md +0 -204
  91. package/skills/enhance-prompt/references/KEYWORDS.md +0 -114
  92. package/skills/epic-generator/SKILL.md +0 -204
  93. package/skills/epic-single/SKILL.md +0 -63
  94. package/skills/erd-generator/SKILL.md +0 -138
  95. package/skills/feature-planner/SKILL.md +0 -305
  96. package/skills/feature-planner/assets/implementation-plan-template.md +0 -85
  97. package/skills/frontend-design/LICENSE.txt +0 -177
  98. package/skills/frontend-design/SKILL.md +0 -42
  99. package/skills/fsd-generator/SKILL.md +0 -163
  100. package/skills/gamma-builder/SKILL.md +0 -134
  101. package/skills/laravel-code-review/SKILL.md +0 -383
  102. package/skills/laravel-code-review/assets/report-template-agent.md +0 -195
  103. package/skills/laravel-code-review/assets/report-template-compact.md +0 -79
  104. package/skills/laravel-code-review/assets/report-template-full.md +0 -253
  105. package/skills/laravel-code-review/assets/report-template-human.md +0 -159
  106. package/skills/laravel-code-review/references/laravel-patterns.md +0 -571
  107. package/skills/laravel-code-review/references/php84-features.md +0 -442
  108. package/skills/mcp-builder/LICENSE.txt +0 -202
  109. package/skills/mcp-builder/SKILL.md +0 -236
  110. package/skills/mcp-builder/reference/evaluation.md +0 -602
  111. package/skills/mcp-builder/reference/mcp_best_practices.md +0 -249
  112. package/skills/mcp-builder/reference/node_mcp_server.md +0 -970
  113. package/skills/mcp-builder/reference/python_mcp_server.md +0 -719
  114. package/skills/mcp-builder/scripts/connections.py +0 -151
  115. package/skills/mcp-builder/scripts/evaluation.py +0 -373
  116. package/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
  117. package/skills/mcp-builder/scripts/requirements.txt +0 -2
  118. package/skills/meeting-notes/SKILL.md +0 -159
  119. package/skills/meeting-notes/evals/evals.json +0 -23
  120. package/skills/prd-agent-generator/SKILL.md +0 -132
  121. package/skills/prd-generator/SKILL.md +0 -211
  122. package/skills/product-brief/SKILL.md +0 -141
  123. package/skills/project-orchestrator/SKILL.md +0 -487
  124. package/skills/project-orchestrator/assets/caddy-vps-setup.md +0 -180
  125. package/skills/project-orchestrator/assets/plan-summary-template.md +0 -159
  126. package/skills/prompter-specs/SKILL.md +0 -115
  127. package/skills/prompter-workflow/SKILL.md +0 -166
  128. package/skills/prompter-workflow/evals/evals.json +0 -89
  129. package/skills/proposal/SKILL.md +0 -28
  130. package/skills/qa-test-scenario/SKILL.md +0 -149
  131. package/skills/skill-creator/SKILL.md +0 -173
  132. package/skills/sph-generator/SKILL.md +0 -488
  133. package/skills/story-generator/SKILL.md +0 -285
  134. package/skills/story-single/SKILL.md +0 -86
  135. package/skills/tdd-generator/SKILL.md +0 -300
  136. package/skills/tdd-lite-generator/SKILL.md +0 -230
  137. package/skills/ui-ux-pro/SKILL.md +0 -199
  138. package/skills/ui-ux-pro/assets/design-spec-template.md +0 -173
  139. package/skills/ui-ux-pro/references/component-patterns.md +0 -255
  140. package/skills/ui-ux-pro/references/design-principles.md +0 -167
  141. package/skills/wireframe-generator/SKILL.md +0 -227
  142. package/src/cli/index.ts +0 -223
  143. package/src/commands/archive.ts +0 -302
  144. package/src/commands/change.ts +0 -292
  145. package/src/commands/config.ts +0 -233
  146. package/src/commands/guide.ts +0 -50
  147. package/src/commands/init.ts +0 -597
  148. package/src/commands/list.ts +0 -194
  149. package/src/commands/show.ts +0 -138
  150. package/src/commands/spec.ts +0 -251
  151. package/src/commands/update.ts +0 -129
  152. package/src/commands/upgrade.ts +0 -30
  153. package/src/commands/validate.ts +0 -326
  154. package/src/core/artifact-graph/graph.ts +0 -167
  155. package/src/core/artifact-graph/index.ts +0 -44
  156. package/src/core/artifact-graph/instruction-loader.ts +0 -302
  157. package/src/core/artifact-graph/resolver.ts +0 -226
  158. package/src/core/artifact-graph/schema.ts +0 -124
  159. package/src/core/artifact-graph/state.ts +0 -64
  160. package/src/core/artifact-graph/types.ts +0 -65
  161. package/src/core/completions/command-registry.ts +0 -382
  162. package/src/core/completions/completion-provider.ts +0 -128
  163. package/src/core/completions/generators/bash-generator.ts +0 -191
  164. package/src/core/completions/generators/fish-generator.ts +0 -188
  165. package/src/core/completions/generators/powershell-generator.ts +0 -223
  166. package/src/core/completions/generators/zsh-generator.ts +0 -281
  167. package/src/core/completions/templates/bash-templates.ts +0 -24
  168. package/src/core/completions/templates/fish-templates.ts +0 -40
  169. package/src/core/completions/templates/powershell-templates.ts +0 -25
  170. package/src/core/completions/templates/zsh-templates.ts +0 -36
  171. package/src/core/completions/types.ts +0 -90
  172. package/src/core/config-schema.ts +0 -230
  173. package/src/core/config.ts +0 -181
  174. package/src/core/configurators/slash/antigravity.ts +0 -10
  175. package/src/core/configurators/slash/base.ts +0 -109
  176. package/src/core/configurators/slash/claude.ts +0 -10
  177. package/src/core/configurators/slash/codex.ts +0 -10
  178. package/src/core/configurators/slash/droid.ts +0 -10
  179. package/src/core/configurators/slash/forge.ts +0 -10
  180. package/src/core/configurators/slash/github-copilot.ts +0 -10
  181. package/src/core/configurators/slash/index.ts +0 -10
  182. package/src/core/configurators/slash/kilocode.ts +0 -10
  183. package/src/core/configurators/slash/opencode.ts +0 -10
  184. package/src/core/configurators/slash/registry.ts +0 -51
  185. package/src/core/converters/json-converter.ts +0 -62
  186. package/src/core/global-config.ts +0 -136
  187. package/src/core/parsers/change-parser.ts +0 -234
  188. package/src/core/parsers/markdown-parser.ts +0 -237
  189. package/src/core/parsers/requirement-blocks.ts +0 -234
  190. package/src/core/prompt-templates.ts +0 -3504
  191. package/src/core/schemas/base.schema.ts +0 -20
  192. package/src/core/schemas/change.schema.ts +0 -42
  193. package/src/core/schemas/index.ts +0 -20
  194. package/src/core/schemas/spec.schema.ts +0 -17
  195. package/src/core/skill-discovery.ts +0 -68
  196. package/src/core/specs-apply.ts +0 -483
  197. package/src/core/styles/palette.ts +0 -8
  198. package/src/core/templates/agents-template.ts +0 -459
  199. package/src/core/templates/claude-template.ts +0 -2
  200. package/src/core/templates/index.ts +0 -3
  201. package/src/core/templates/project-template.ts +0 -32
  202. package/src/core/validation/constants.ts +0 -48
  203. package/src/core/validation/types.ts +0 -19
  204. package/src/core/validation/validator.ts +0 -449
  205. package/src/core/view.ts +0 -219
  206. package/src/index.ts +0 -1
  207. package/src/utils/change-metadata.ts +0 -171
  208. package/src/utils/change-utils.ts +0 -131
  209. package/src/utils/file-system.ts +0 -252
  210. package/src/utils/index.ts +0 -12
  211. package/src/utils/interactive.ts +0 -29
  212. package/src/utils/item-discovery.ts +0 -66
  213. package/src/utils/match.ts +0 -26
  214. package/src/utils/shell-detection.ts +0 -62
  215. package/src/utils/task-progress.ts +0 -43
  216. package/tsconfig.json +0 -28
@@ -1,281 +0,0 @@
1
- import { CompletionGenerator, CommandDefinition, FlagDefinition } from '../types.js';
2
- import { ZSH_DYNAMIC_HELPERS } from '../templates/zsh-templates.js';
3
-
4
- /**
5
- * Generates Zsh completion scripts for the Prompter CLI.
6
- * Follows Zsh completion system conventions using the _prompter function.
7
- */
8
- export class ZshGenerator implements CompletionGenerator {
9
- readonly shell = 'zsh' as const;
10
-
11
- /**
12
- * Generate a Zsh completion script
13
- *
14
- * @param commands - Command definitions to generate completions for
15
- * @returns Zsh completion script as a string
16
- */
17
- generate(commands: CommandDefinition[]): string {
18
- // Build command list using push() for loop clarity
19
- const commandLines: string[] = [];
20
- for (const cmd of commands) {
21
- const escapedDesc = this.escapeDescription(cmd.description);
22
- commandLines.push(` '${cmd.name}:${escapedDesc}'`);
23
- }
24
- const commandList = commandLines.join('\n');
25
-
26
- // Build command cases using push() for loop clarity
27
- const commandCaseLines: string[] = [];
28
- for (const cmd of commands) {
29
- commandCaseLines.push(` ${cmd.name})`);
30
- commandCaseLines.push(` _prompter_${this.sanitizeFunctionName(cmd.name)}`);
31
- commandCaseLines.push(' ;;');
32
- }
33
- const commandCases = commandCaseLines.join('\n');
34
-
35
- // Build command functions using push() for loop clarity
36
- const commandFunctionLines: string[] = [];
37
- for (const cmd of commands) {
38
- commandFunctionLines.push(...this.generateCommandFunction(cmd));
39
- commandFunctionLines.push('');
40
- }
41
- const commandFunctions = commandFunctionLines.join('\n');
42
-
43
- // Dynamic completion helpers from template
44
- const helpers = ZSH_DYNAMIC_HELPERS;
45
-
46
- // Assemble final script with template literal
47
- return `#compdef prompter
48
-
49
- # Zsh completion script for Prompter CLI
50
- # Auto-generated - do not edit manually
51
-
52
- _prompter() {
53
- local context state line
54
- typeset -A opt_args
55
-
56
- local -a commands
57
- commands=(
58
- ${commandList}
59
- )
60
-
61
- _arguments -C \\
62
- "1: :->command" \\
63
- "*::arg:->args"
64
-
65
- case $state in
66
- command)
67
- _describe "prompter command" commands
68
- ;;
69
- args)
70
- case $words[1] in
71
- ${commandCases}
72
- esac
73
- ;;
74
- esac
75
- }
76
-
77
- ${commandFunctions}
78
- ${helpers}
79
- compdef _prompter prompter
80
- `;
81
- }
82
-
83
- /**
84
- * Generate completion function for a specific command
85
- */
86
- private generateCommandFunction(cmd: CommandDefinition): string[] {
87
- const funcName = `_prompter_${this.sanitizeFunctionName(cmd.name)}`;
88
- const lines: string[] = [];
89
-
90
- lines.push(`${funcName}() {`);
91
-
92
- // If command has subcommands, handle them
93
- if (cmd.subcommands && cmd.subcommands.length > 0) {
94
- lines.push(' local context state line');
95
- lines.push(' typeset -A opt_args');
96
- lines.push('');
97
- lines.push(' local -a subcommands');
98
- lines.push(' subcommands=(');
99
-
100
- for (const subcmd of cmd.subcommands) {
101
- const escapedDesc = this.escapeDescription(subcmd.description);
102
- lines.push(` '${subcmd.name}:${escapedDesc}'`);
103
- }
104
-
105
- lines.push(' )');
106
- lines.push('');
107
- lines.push(' _arguments -C \\');
108
-
109
- // Add command flags
110
- for (const flag of cmd.flags) {
111
- lines.push(' ' + this.generateFlagSpec(flag) + ' \\');
112
- }
113
-
114
- lines.push(' "1: :->subcommand" \\');
115
- lines.push(' "*::arg:->args"');
116
- lines.push('');
117
- lines.push(' case $state in');
118
- lines.push(' subcommand)');
119
- lines.push(' _describe "subcommand" subcommands');
120
- lines.push(' ;;');
121
- lines.push(' args)');
122
- lines.push(' case $words[1] in');
123
-
124
- for (const subcmd of cmd.subcommands) {
125
- lines.push(` ${subcmd.name})`);
126
- lines.push(` _prompter_${this.sanitizeFunctionName(cmd.name)}_${this.sanitizeFunctionName(subcmd.name)}`);
127
- lines.push(' ;;');
128
- }
129
-
130
- lines.push(' esac');
131
- lines.push(' ;;');
132
- lines.push(' esac');
133
- } else {
134
- // Command without subcommands
135
- lines.push(' _arguments \\');
136
-
137
- // Add flags
138
- for (const flag of cmd.flags) {
139
- lines.push(' ' + this.generateFlagSpec(flag) + ' \\');
140
- }
141
-
142
- // Add positional argument completion
143
- if (cmd.acceptsPositional) {
144
- const positionalSpec = this.generatePositionalSpec(cmd.positionalType);
145
- lines.push(' ' + positionalSpec);
146
- } else {
147
- // Remove trailing backslash from last flag
148
- if (lines[lines.length - 1].endsWith(' \\')) {
149
- lines[lines.length - 1] = lines[lines.length - 1].slice(0, -2);
150
- }
151
- }
152
- }
153
-
154
- lines.push('}');
155
-
156
- // Generate subcommand functions if they exist
157
- if (cmd.subcommands) {
158
- for (const subcmd of cmd.subcommands) {
159
- lines.push('');
160
- lines.push(...this.generateSubcommandFunction(cmd.name, subcmd));
161
- }
162
- }
163
-
164
- return lines;
165
- }
166
-
167
- /**
168
- * Generate completion function for a subcommand
169
- */
170
- private generateSubcommandFunction(parentName: string, subcmd: CommandDefinition): string[] {
171
- const funcName = `_prompter_${this.sanitizeFunctionName(parentName)}_${this.sanitizeFunctionName(subcmd.name)}`;
172
- const lines: string[] = [];
173
-
174
- lines.push(`${funcName}() {`);
175
- lines.push(' _arguments \\');
176
-
177
- // Add flags
178
- for (const flag of subcmd.flags) {
179
- lines.push(' ' + this.generateFlagSpec(flag) + ' \\');
180
- }
181
-
182
- // Add positional argument completion
183
- if (subcmd.acceptsPositional) {
184
- const positionalSpec = this.generatePositionalSpec(subcmd.positionalType);
185
- lines.push(' ' + positionalSpec);
186
- } else {
187
- // Remove trailing backslash from last flag
188
- if (lines[lines.length - 1].endsWith(' \\')) {
189
- lines[lines.length - 1] = lines[lines.length - 1].slice(0, -2);
190
- }
191
- }
192
-
193
- lines.push('}');
194
-
195
- return lines;
196
- }
197
-
198
- /**
199
- * Generate flag specification for _arguments
200
- */
201
- private generateFlagSpec(flag: FlagDefinition): string {
202
- const parts: string[] = [];
203
-
204
- // Handle mutually exclusive short and long forms
205
- if (flag.short) {
206
- parts.push(`'(-${flag.short} --${flag.name})'{-${flag.short},--${flag.name}}'`);
207
- } else {
208
- parts.push(`'--${flag.name}`);
209
- }
210
-
211
- // Add description
212
- const escapedDesc = this.escapeDescription(flag.description);
213
- parts.push(`[${escapedDesc}]`);
214
-
215
- // Add value completion if flag takes a value
216
- if (flag.takesValue) {
217
- if (flag.values && flag.values.length > 0) {
218
- // Provide specific value completions
219
- const valueList = flag.values.map(v => this.escapeValue(v)).join(' ');
220
- parts.push(`:value:(${valueList})`);
221
- } else {
222
- // Generic value placeholder
223
- parts.push(':value:');
224
- }
225
- }
226
-
227
- // Close the quote (needed for both short and long forms)
228
- parts.push("'");
229
-
230
- return parts.join('');
231
- }
232
-
233
- /**
234
- * Generate positional argument specification
235
- */
236
- private generatePositionalSpec(positionalType?: string): string {
237
- switch (positionalType) {
238
- case 'change-id':
239
- return "'*: :_prompter_complete_changes'";
240
- case 'spec-id':
241
- return "'*: :_prompter_complete_specs'";
242
- case 'change-or-spec-id':
243
- return "'*: :_prompter_complete_items'";
244
- case 'path':
245
- return "'*:path:_files'";
246
- case 'shell':
247
- return "'*:shell:(zsh bash fish powershell)'";
248
- default:
249
- return "'*: :_default'";
250
- }
251
- }
252
-
253
- /**
254
- * Escape special characters in descriptions
255
- */
256
- private escapeDescription(desc: string): string {
257
- return desc
258
- .replace(/\\/g, '\\\\')
259
- .replace(/'/g, "\\'")
260
- .replace(/\[/g, '\\[')
261
- .replace(/]/g, '\\]')
262
- .replace(/:/g, '\\:');
263
- }
264
-
265
- /**
266
- * Escape special characters in values
267
- */
268
- private escapeValue(value: string): string {
269
- return value
270
- .replace(/\\/g, '\\\\')
271
- .replace(/'/g, "\\'")
272
- .replace(/ /g, '\\ ');
273
- }
274
-
275
- /**
276
- * Sanitize command names for use in function names
277
- */
278
- private sanitizeFunctionName(name: string): string {
279
- return name.replace(/-/g, '_');
280
- }
281
- }
@@ -1,24 +0,0 @@
1
- /**
2
- * Static template strings for Bash completion scripts.
3
- * These are Bash-specific helper functions that never change.
4
- */
5
-
6
- export const BASH_DYNAMIC_HELPERS = `# Dynamic completion helpers
7
-
8
- _prompter_complete_changes() {
9
- local changes
10
- changes=$(prompter __complete changes 2>/dev/null | cut -f1)
11
- COMPREPLY=($(compgen -W "$changes" -- "$cur"))
12
- }
13
-
14
- _prompter_complete_specs() {
15
- local specs
16
- specs=$(prompter __complete specs 2>/dev/null | cut -f1)
17
- COMPREPLY=($(compgen -W "$specs" -- "$cur"))
18
- }
19
-
20
- _prompter_complete_items() {
21
- local items
22
- items=$(prompter __complete changes 2>/dev/null | cut -f1; prompter __complete specs 2>/dev/null | cut -f1)
23
- COMPREPLY=($(compgen -W "$items" -- "$cur"))
24
- }`;
@@ -1,40 +0,0 @@
1
- /**
2
- * Static template strings for Fish completion scripts.
3
- * These are Fish-specific helper functions that never change.
4
- */
5
-
6
- export const FISH_STATIC_HELPERS = `# Helper function to check if a subcommand is present
7
- function __fish_prompter_using_subcommand
8
- set -l cmd (commandline -opc)
9
- set -e cmd[1]
10
- for i in $argv
11
- if contains -- $i $cmd
12
- return 0
13
- end
14
- end
15
- return 1
16
- end
17
-
18
- function __fish_prompter_no_subcommand
19
- set -l cmd (commandline -opc)
20
- test (count $cmd) -eq 1
21
- end`;
22
-
23
- export const FISH_DYNAMIC_HELPERS = `# Dynamic completion helpers
24
-
25
- function __fish_prompter_changes
26
- prompter __complete changes 2>/dev/null | while read -l id desc
27
- printf '%s\\t%s\\n' "$id" "$desc"
28
- end
29
- end
30
-
31
- function __fish_prompter_specs
32
- prompter __complete specs 2>/dev/null | while read -l id desc
33
- printf '%s\\t%s\\n' "$id" "$desc"
34
- end
35
- end
36
-
37
- function __fish_prompter_items
38
- __fish_prompter_changes
39
- __fish_prompter_specs
40
- end`;
@@ -1,25 +0,0 @@
1
- /**
2
- * Static template strings for PowerShell completion scripts.
3
- * These are PowerShell-specific helper functions that never change.
4
- */
5
-
6
- export const POWERSHELL_DYNAMIC_HELPERS = `# Dynamic completion helpers
7
-
8
- function Get-PrompterChanges {
9
- $output = prompter __complete changes 2>$null
10
- if ($output) {
11
- $output | ForEach-Object {
12
- ($_ -split "\\t")[0]
13
- }
14
- }
15
- }
16
-
17
- function Get-PrompterSpecs {
18
- $output = prompter __complete specs 2>$null
19
- if ($output) {
20
- $output | ForEach-Object {
21
- ($_ -split "\\t")[0]
22
- }
23
- }
24
- }
25
- `;
@@ -1,36 +0,0 @@
1
- /**
2
- * Static template strings for Zsh completion scripts.
3
- * These are Zsh-specific helper functions that never change.
4
- */
5
-
6
- export const ZSH_DYNAMIC_HELPERS = `# Dynamic completion helpers
7
-
8
- # Use prompter __complete to get available changes
9
- _prompter_complete_changes() {
10
- local -a changes
11
- while IFS=$'\\t' read -r id desc; do
12
- changes+=("$id:$desc")
13
- done < <(prompter __complete changes 2>/dev/null)
14
- _describe "change" changes
15
- }
16
-
17
- # Use prompter __complete to get available specs
18
- _prompter_complete_specs() {
19
- local -a specs
20
- while IFS=$'\\t' read -r id desc; do
21
- specs+=("$id:$desc")
22
- done < <(prompter __complete specs 2>/dev/null)
23
- _describe "spec" specs
24
- }
25
-
26
- # Get both changes and specs
27
- _prompter_complete_items() {
28
- local -a items
29
- while IFS=$'\\t' read -r id desc; do
30
- items+=("$id:$desc")
31
- done < <(prompter __complete changes 2>/dev/null)
32
- while IFS=$'\\t' read -r id desc; do
33
- items+=("$id:$desc")
34
- done < <(prompter __complete specs 2>/dev/null)
35
- _describe "item" items
36
- }`;
@@ -1,90 +0,0 @@
1
- import { SupportedShell } from '../../utils/shell-detection.js';
2
-
3
- /**
4
- * Definition of a command-line flag/option
5
- */
6
- export interface FlagDefinition {
7
- /**
8
- * Flag name without dashes (e.g., "json", "strict", "no-interactive")
9
- */
10
- name: string;
11
-
12
- /**
13
- * Short flag name without dash (e.g., "y" for "-y")
14
- */
15
- short?: string;
16
-
17
- /**
18
- * Human-readable description of what the flag does
19
- */
20
- description: string;
21
-
22
- /**
23
- * Whether the flag takes an argument value
24
- */
25
- takesValue?: boolean;
26
-
27
- /**
28
- * Possible values for the flag (for completion suggestions)
29
- */
30
- values?: string[];
31
- }
32
-
33
- /**
34
- * Definition of a CLI command
35
- */
36
- export interface CommandDefinition {
37
- /**
38
- * Command name (e.g., "init", "validate", "show")
39
- */
40
- name: string;
41
-
42
- /**
43
- * Human-readable description of the command
44
- */
45
- description: string;
46
-
47
- /**
48
- * Flags/options supported by this command
49
- */
50
- flags: FlagDefinition[];
51
-
52
- /**
53
- * Subcommands (e.g., "change show", "spec validate")
54
- */
55
- subcommands?: CommandDefinition[];
56
-
57
- /**
58
- * Whether this command accepts a positional argument (e.g., item name, path)
59
- */
60
- acceptsPositional?: boolean;
61
-
62
- /**
63
- * Type of positional argument for dynamic completion
64
- * - 'change-id': Complete with active change IDs
65
- * - 'spec-id': Complete with spec IDs
66
- * - 'change-or-spec-id': Complete with both changes and specs
67
- * - 'path': Complete with file paths
68
- * - 'shell': Complete with supported shell names
69
- * - undefined: No specific completion
70
- */
71
- positionalType?: 'change-id' | 'spec-id' | 'change-or-spec-id' | 'path' | 'shell';
72
- }
73
-
74
- /**
75
- * Interface for shell-specific completion script generators
76
- */
77
- export interface CompletionGenerator {
78
- /**
79
- * The shell type this generator targets
80
- */
81
- readonly shell: SupportedShell;
82
-
83
- /**
84
- * Generate the completion script content
85
- *
86
- * @param commands - Command definitions to generate completions for
87
- * @returns The shell-specific completion script as a string
88
- */
89
- generate(commands: CommandDefinition[]): string;
90
- }