@codewalla_india/openspec 1.3.1 → 1.3.2
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.
- package/LICENSE +22 -22
- package/README.md +272 -191
- package/bin/openspec.js +5 -5
- package/dist/cli/index.js +99 -62
- package/dist/commands/change.d.ts +0 -2
- package/dist/commands/change.js +107 -86
- package/dist/commands/config.js +14 -16
- package/dist/commands/doctor.js +9 -4
- package/dist/commands/feedback.js +79 -30
- package/dist/commands/modify.d.ts +26 -0
- package/dist/commands/modify.js +147 -0
- package/dist/commands/schema.js +170 -91
- package/dist/commands/show.js +5 -2
- package/dist/commands/spec.js +49 -29
- package/dist/commands/store.js +15 -21
- package/dist/commands/validate.d.ts +8 -0
- package/dist/commands/validate.js +43 -20
- package/dist/commands/workflow/index.d.ts +2 -2
- package/dist/commands/workflow/index.js +1 -1
- package/dist/commands/workflow/instructions.d.ts +6 -26
- package/dist/commands/workflow/instructions.js +183 -376
- package/dist/commands/workflow/new-change.d.ts +0 -4
- package/dist/commands/workflow/new-change.js +10 -28
- package/dist/commands/workflow/shared.d.ts +34 -19
- package/dist/commands/workflow/shared.js +34 -4
- package/dist/commands/workflow/status.js +10 -32
- package/dist/commands/workflow/templates.js +15 -5
- package/dist/commands/workset.d.ts +2 -2
- package/dist/commands/workset.js +19 -22
- package/dist/comprehension-quiz/fingerprint.d.ts +39 -0
- package/dist/comprehension-quiz/fingerprint.js +84 -0
- package/dist/comprehension-quiz/index.d.ts +42 -0
- package/dist/comprehension-quiz/index.js +47 -0
- package/dist/comprehension-quiz/pass-record.d.ts +44 -0
- package/dist/comprehension-quiz/pass-record.js +98 -0
- package/dist/comprehension-quiz/providers/anthropic.d.ts +34 -0
- package/dist/comprehension-quiz/providers/anthropic.js +53 -0
- package/dist/comprehension-quiz/providers/factory.d.ts +44 -0
- package/dist/comprehension-quiz/providers/factory.js +174 -0
- package/dist/comprehension-quiz/providers/interface.d.ts +59 -0
- package/dist/comprehension-quiz/providers/interface.js +63 -0
- package/dist/comprehension-quiz/providers/local.d.ts +34 -0
- package/dist/comprehension-quiz/providers/local.js +53 -0
- package/dist/comprehension-quiz/providers/ollama.d.ts +34 -0
- package/dist/comprehension-quiz/providers/ollama.js +53 -0
- package/dist/comprehension-quiz/providers/openai.d.ts +34 -0
- package/dist/comprehension-quiz/providers/openai.js +53 -0
- package/dist/comprehension-quiz/question-generator.d.ts +69 -0
- package/dist/comprehension-quiz/question-generator.js +141 -0
- package/dist/comprehension-quiz/quiz-executor.d.ts +70 -0
- package/dist/comprehension-quiz/quiz-executor.js +165 -0
- package/dist/comprehension-quiz/types.d.ts +115 -0
- package/dist/comprehension-quiz/types.js +11 -0
- package/dist/core/archive.d.ts +14 -1
- package/dist/core/archive.js +1350 -190
- package/dist/core/artifact-graph/graph.d.ts +28 -9
- package/dist/core/artifact-graph/graph.js +94 -43
- package/dist/core/artifact-graph/index.d.ts +1 -1
- package/dist/core/artifact-graph/index.js +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts +30 -3
- package/dist/core/artifact-graph/instruction-loader.js +70 -12
- package/dist/core/artifact-graph/outputs.d.ts +1 -0
- package/dist/core/artifact-graph/outputs.js +67 -5
- package/dist/core/artifact-graph/resolver.d.ts +14 -0
- package/dist/core/artifact-graph/resolver.js +69 -15
- package/dist/core/artifact-graph/types.js +21 -3
- package/dist/core/available-tools.d.ts +2 -2
- package/dist/core/available-tools.js +14 -3
- package/dist/core/change-metadata/schema.d.ts +2 -0
- package/dist/core/change-metadata/schema.js +13 -0
- package/dist/core/change-status-policy.d.ts +10 -1
- package/dist/core/change-status-policy.js +30 -2
- package/dist/core/command-generation/adapters/amazon-q.d.ts +4 -0
- package/dist/core/command-generation/adapters/amazon-q.js +11 -5
- package/dist/core/command-generation/adapters/antigravity.js +6 -5
- package/dist/core/command-generation/adapters/auggie.js +7 -6
- package/dist/core/command-generation/adapters/bob.d.ts +5 -1
- package/dist/core/command-generation/adapters/bob.js +11 -10
- package/dist/core/command-generation/adapters/claude.d.ts +1 -1
- package/dist/core/command-generation/adapters/claude.js +12 -17
- package/dist/core/command-generation/adapters/cline.js +5 -5
- package/dist/core/command-generation/adapters/codebuddy.js +8 -7
- package/dist/core/command-generation/adapters/continue.js +8 -7
- package/dist/core/command-generation/adapters/costrict.js +7 -6
- package/dist/core/command-generation/adapters/crush.js +9 -9
- package/dist/core/command-generation/adapters/cursor.js +8 -8
- package/dist/core/command-generation/adapters/devin.d.ts +19 -0
- package/dist/core/command-generation/adapters/devin.js +36 -0
- package/dist/core/command-generation/adapters/factory.js +7 -6
- package/dist/core/command-generation/adapters/gemini.js +40 -5
- package/dist/core/command-generation/adapters/github-copilot.js +6 -5
- package/dist/core/command-generation/adapters/iflow.js +9 -8
- package/dist/core/command-generation/adapters/index.d.ts +4 -2
- package/dist/core/command-generation/adapters/index.js +4 -2
- package/dist/core/command-generation/adapters/junie.js +6 -5
- package/dist/core/command-generation/adapters/kilocode.js +1 -1
- package/dist/core/command-generation/adapters/kiro.js +6 -5
- package/dist/core/command-generation/adapters/lingma.js +9 -9
- package/dist/core/command-generation/adapters/oh-my-pi.d.ts +21 -0
- package/dist/core/command-generation/adapters/oh-my-pi.js +42 -0
- package/dist/core/command-generation/adapters/opencode.js +6 -8
- package/dist/core/command-generation/adapters/pi.d.ts +2 -2
- package/dist/core/command-generation/adapters/pi.js +7 -10
- package/dist/core/command-generation/adapters/qoder.js +9 -9
- package/dist/core/command-generation/adapters/qwen.d.ts +7 -3
- package/dist/core/command-generation/adapters/qwen.js +14 -9
- package/dist/core/command-generation/adapters/roocode.d.ts +4 -4
- package/dist/core/command-generation/adapters/roocode.js +9 -9
- package/dist/core/command-generation/adapters/trae.d.ts +13 -0
- package/dist/core/command-generation/adapters/trae.js +28 -0
- package/dist/core/command-generation/adapters/zcode.d.ts +16 -0
- package/dist/core/command-generation/adapters/zcode.js +33 -0
- package/dist/core/command-generation/generator.d.ts +8 -0
- package/dist/core/command-generation/generator.js +15 -1
- package/dist/core/command-generation/index.d.ts +1 -1
- package/dist/core/command-generation/index.js +1 -1
- package/dist/core/command-generation/invocation.d.ts +73 -0
- package/dist/core/command-generation/invocation.js +77 -0
- package/dist/core/command-generation/registry.js +8 -4
- package/dist/core/command-generation/types.d.ts +9 -2
- package/dist/core/command-generation/yaml.d.ts +20 -6
- package/dist/core/command-generation/yaml.js +31 -21
- package/dist/core/command-surface.d.ts +15 -0
- package/dist/core/command-surface.js +33 -0
- package/dist/core/completions/command-registry.js +16 -61
- package/dist/core/completions/generators/bash-generator.js +41 -41
- package/dist/core/completions/generators/fish-generator.js +7 -7
- package/dist/core/completions/generators/powershell-generator.js +44 -37
- package/dist/core/completions/generators/zsh-generator.js +33 -33
- package/dist/core/completions/installers/zsh-installer.d.ts +9 -0
- package/dist/core/completions/installers/zsh-installer.js +20 -4
- package/dist/core/completions/templates/bash-templates.js +24 -24
- package/dist/core/completions/templates/fish-templates.js +38 -38
- package/dist/core/completions/templates/powershell-templates.js +28 -28
- package/dist/core/completions/templates/zsh-templates.js +39 -39
- package/dist/core/config-prompts.d.ts +1 -1
- package/dist/core/config-prompts.js +14 -1
- package/dist/core/config-schema.d.ts +10 -1
- package/dist/core/config-schema.js +67 -1
- package/dist/core/config.d.ts +15 -0
- package/dist/core/config.js +46 -5
- package/dist/core/file-state.js +56 -24
- package/dist/core/github-copilot/cloud-agent.d.ts +95 -0
- package/dist/core/github-copilot/cloud-agent.js +497 -0
- package/dist/core/global-config.d.ts +16 -0
- package/dist/core/init.d.ts +58 -0
- package/dist/core/init.js +474 -73
- package/dist/core/legacy-cleanup.d.ts +59 -0
- package/dist/core/legacy-cleanup.js +253 -24
- package/dist/core/list.js +23 -16
- package/dist/core/migration.d.ts +73 -1
- package/dist/core/migration.js +360 -11
- package/dist/core/modify/conflict-detector.d.ts +26 -0
- package/dist/core/modify/conflict-detector.js +62 -0
- package/dist/core/modify/dependency-propagator.d.ts +38 -0
- package/dist/core/modify/dependency-propagator.js +103 -0
- package/dist/core/modify/history-tracker.d.ts +34 -0
- package/dist/core/modify/history-tracker.js +114 -0
- package/dist/core/modify/index.d.ts +7 -0
- package/dist/core/modify/index.js +7 -0
- package/dist/core/onboarding-commands.d.ts +30 -0
- package/dist/core/onboarding-commands.js +38 -0
- package/dist/core/openspec-root.js +18 -15
- package/dist/core/parsers/change-parser.d.ts +17 -2
- package/dist/core/parsers/change-parser.js +35 -21
- package/dist/core/parsers/code-fence.d.ts +15 -0
- package/dist/core/parsers/code-fence.js +49 -0
- package/dist/core/parsers/markdown-parser.d.ts +0 -3
- package/dist/core/parsers/markdown-parser.js +7 -60
- package/dist/core/parsers/requirement-blocks.d.ts +29 -0
- package/dist/core/parsers/requirement-blocks.js +150 -31
- package/dist/core/parsers/requirement-text.d.ts +48 -0
- package/dist/core/parsers/requirement-text.js +98 -0
- package/dist/core/parsers/spec-structure.d.ts +1 -1
- package/dist/core/parsers/spec-structure.js +20 -30
- package/dist/core/profile-sync-drift.d.ts +0 -8
- package/dist/core/profile-sync-drift.js +49 -50
- package/dist/core/profiles.d.ts +2 -2
- package/dist/core/profiles.js +2 -2
- package/dist/core/project-config.d.ts +27 -18
- package/dist/core/project-config.js +101 -34
- package/dist/core/references.js +42 -4
- package/dist/core/relationship-health.d.ts +8 -0
- package/dist/core/relationship-health.js +13 -0
- package/dist/core/root-selection.d.ts +9 -6
- package/dist/core/root-selection.js +42 -5
- package/dist/core/schemas/base.schema.js +7 -2
- package/dist/core/shared/allowed-tools.d.ts +12 -0
- package/dist/core/shared/allowed-tools.js +12 -0
- package/dist/core/shared/index.d.ts +1 -0
- package/dist/core/shared/index.js +1 -0
- package/dist/core/shared/skill-content-equivalence.d.ts +7 -0
- package/dist/core/shared/skill-content-equivalence.js +41 -0
- package/dist/core/shared/skill-generation.js +17 -13
- package/dist/core/shared/skill-paths.d.ts +13 -0
- package/dist/core/shared/skill-paths.js +23 -0
- package/dist/core/shared/tool-detection.d.ts +27 -7
- package/dist/core/shared/tool-detection.js +167 -37
- package/dist/core/shared-skill-target.d.ts +16 -0
- package/dist/core/shared-skill-target.js +156 -0
- package/dist/core/specs-apply.d.ts +80 -33
- package/dist/core/specs-apply.js +667 -145
- package/dist/core/store/git.d.ts +13 -0
- package/dist/core/store/git.js +24 -0
- package/dist/core/store/operations.js +20 -0
- package/dist/core/templates/skill-templates.d.ts +3 -2
- package/dist/core/templates/skill-templates.js +3 -2
- package/dist/core/templates/workflows/apply-change.d.ts +10 -0
- package/dist/core/templates/workflows/apply-change.js +186 -224
- package/dist/core/templates/workflows/archive-change.js +387 -260
- package/dist/core/templates/workflows/bulk-archive-change.js +655 -475
- package/dist/core/templates/workflows/continue-change.js +210 -219
- package/dist/core/templates/workflows/explore.js +479 -443
- package/dist/core/templates/workflows/feedback.js +97 -97
- package/dist/core/templates/workflows/ff-change.js +200 -191
- package/dist/core/templates/workflows/modify-change.d.ts +4 -1
- package/dist/core/templates/workflows/modify-change.js +237 -115
- package/dist/core/templates/workflows/new-change.js +127 -134
- package/dist/core/templates/workflows/onboard.js +548 -542
- package/dist/core/templates/workflows/propose.js +273 -217
- package/dist/core/templates/workflows/store-selection.d.ts +1 -1
- package/dist/core/templates/workflows/store-selection.js +1 -1
- package/dist/core/templates/workflows/sync-specs.js +500 -273
- package/dist/core/templates/workflows/update-change.d.ts +10 -0
- package/dist/core/templates/workflows/update-change.js +177 -0
- package/dist/core/templates/workflows/verify-change.js +324 -326
- package/dist/core/update.d.ts +40 -5
- package/dist/core/update.js +411 -96
- package/dist/core/validation/constants.d.ts +4 -1
- package/dist/core/validation/constants.js +4 -1
- package/dist/core/validation/plan-validator.d.ts +8 -0
- package/dist/core/validation/plan-validator.js +45 -0
- package/dist/core/validation/task-numbering.d.ts +16 -0
- package/dist/core/validation/task-numbering.js +57 -0
- package/dist/core/validation/validator.d.ts +27 -3
- package/dist/core/validation/validator.js +337 -48
- package/dist/core/version-check.d.ts +152 -0
- package/dist/core/version-check.js +731 -0
- package/dist/core/view.js +13 -18
- package/dist/prompts/searchable-multi-select.js +1 -1
- package/dist/telemetry/caller-detection.d.ts +27 -0
- package/dist/telemetry/caller-detection.js +85 -0
- package/dist/telemetry/caller-detection.test.d.ts +5 -0
- package/dist/telemetry/config.d.ts +48 -2
- package/dist/telemetry/config.js +113 -11
- package/dist/telemetry/config.test.d.ts +5 -0
- package/dist/telemetry/deduplication.d.ts +35 -0
- package/dist/telemetry/deduplication.js +82 -0
- package/dist/telemetry/deduplication.test.d.ts +5 -0
- package/dist/telemetry/identity.d.ts +62 -22
- package/dist/telemetry/identity.js +147 -102
- package/dist/telemetry/index.d.ts +126 -15
- package/dist/telemetry/index.js +569 -37
- package/dist/telemetry/sanitization.d.ts +40 -0
- package/dist/telemetry/sanitization.js +114 -0
- package/dist/telemetry/sanitization.test.d.ts +5 -0
- package/dist/telemetry/throttling.d.ts +20 -0
- package/dist/telemetry/throttling.js +70 -0
- package/dist/ui/welcome-screen.d.ts +9 -1
- package/dist/ui/welcome-screen.js +91 -38
- package/dist/utils/change-metadata.d.ts +43 -0
- package/dist/utils/change-metadata.js +123 -7
- package/dist/utils/change-utils.d.ts +10 -4
- package/dist/utils/change-utils.js +20 -13
- package/dist/utils/ci.d.ts +12 -0
- package/dist/utils/ci.js +16 -0
- package/dist/utils/command-references.d.ts +92 -6
- package/dist/utils/command-references.js +180 -7
- package/dist/utils/date.d.ts +8 -0
- package/dist/utils/date.js +13 -0
- package/dist/utils/file-system.d.ts +10 -0
- package/dist/utils/file-system.js +70 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/interactive.d.ts +23 -0
- package/dist/utils/interactive.js +32 -0
- package/dist/utils/item-discovery.d.ts +19 -0
- package/dist/utils/item-discovery.js +30 -48
- package/dist/utils/shell-detection.d.ts +1 -1
- package/dist/utils/shell-detection.js +64 -11
- package/dist/utils/spec-discovery.d.ts +40 -0
- package/dist/utils/spec-discovery.js +115 -0
- package/dist/utils/task-progress.d.ts +29 -1
- package/dist/utils/task-progress.js +109 -15
- package/package.json +96 -84
- package/schemas/spec-driven/schema.yaml +252 -184
- package/schemas/spec-driven/templates/design.md +19 -19
- package/schemas/spec-driven/templates/plan-template.md +91 -0
- package/schemas/spec-driven/templates/proposal.md +29 -24
- package/schemas/spec-driven/templates/spec.md +11 -8
- package/schemas/spec-driven/templates/tasks.md +9 -9
- package/scripts/postinstall.js +83 -83
- package/dist/core/command-generation/adapters/codex.d.ts +0 -16
- package/dist/core/command-generation/adapters/codex.js +0 -39
- package/dist/core/command-generation/adapters/windsurf.d.ts +0 -14
- package/dist/core/command-generation/adapters/windsurf.js +0 -38
- package/dist/core/comprehension/config.d.ts +0 -20
- package/dist/core/comprehension/config.js +0 -23
- package/dist/core/comprehension/fingerprint.d.ts +0 -14
- package/dist/core/comprehension/fingerprint.js +0 -33
- package/dist/core/comprehension/index.d.ts +0 -57
- package/dist/core/comprehension/index.js +0 -87
- package/dist/core/comprehension/pass-record.d.ts +0 -29
- package/dist/core/comprehension/pass-record.js +0 -64
- package/dist/core/comprehension/stats.d.ts +0 -35
- package/dist/core/comprehension/stats.js +0 -133
- package/dist/core/templates/workflows/comprehension-guidance.d.ts +0 -9
- package/dist/core/templates/workflows/comprehension-guidance.js +0 -73
- package/dist/core/templates/workflows/mcp-guidance.d.ts +0 -13
- package/dist/core/templates/workflows/mcp-guidance.js +0 -131
- package/dist/core/templates/workflows/user-prompt-guidance.d.ts +0 -16
- package/dist/core/templates/workflows/user-prompt-guidance.js +0 -48
- package/dist/telemetry/caller.d.ts +0 -5
- package/dist/telemetry/caller.js +0 -29
- package/dist/telemetry/client.d.ts +0 -27
- package/dist/telemetry/client.js +0 -127
- package/dist/telemetry/command-context.d.ts +0 -13
- package/dist/telemetry/command-context.js +0 -59
- package/dist/telemetry/comprehension.d.ts +0 -44
- package/dist/telemetry/comprehension.js +0 -105
- package/dist/telemetry/content.d.ts +0 -10
- package/dist/telemetry/content.js +0 -56
- package/dist/telemetry/git-stats.d.ts +0 -12
- package/dist/telemetry/git-stats.js +0 -69
- package/dist/telemetry/identify-cache.d.ts +0 -7
- package/dist/telemetry/identify-cache.js +0 -47
- package/dist/telemetry/input.d.ts +0 -17
- package/dist/telemetry/input.js +0 -68
- package/dist/telemetry/marker.d.ts +0 -37
- package/dist/telemetry/marker.js +0 -67
- package/dist/telemetry/workflow.d.ts +0 -85
- package/dist/telemetry/workflow.js +0 -318
- package/schemas/spec-driven/templates/plan.md +0 -19
|
@@ -22,6 +22,18 @@ export const COMMAND_REGISTRY = [
|
|
|
22
22
|
takesValue: true,
|
|
23
23
|
values: ['core', 'custom'],
|
|
24
24
|
},
|
|
25
|
+
{
|
|
26
|
+
name: 'no-animation',
|
|
27
|
+
description: 'Show a static welcome screen instead of the animated one',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'copilot-cloud',
|
|
31
|
+
description: 'Generate GitHub Copilot cloud coding-agent files (opt-in; default: prompt)',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'no-copilot-cloud',
|
|
35
|
+
description: 'Skip generating GitHub Copilot cloud coding-agent files',
|
|
36
|
+
},
|
|
25
37
|
],
|
|
26
38
|
},
|
|
27
39
|
{
|
|
@@ -62,7 +74,9 @@ export const COMMAND_REGISTRY = [
|
|
|
62
74
|
{
|
|
63
75
|
name: 'view',
|
|
64
76
|
description: 'Display an interactive dashboard of specs and changes',
|
|
65
|
-
flags: [
|
|
77
|
+
flags: [
|
|
78
|
+
COMMON_FLAGS.store,
|
|
79
|
+
],
|
|
66
80
|
},
|
|
67
81
|
{
|
|
68
82
|
name: 'validate',
|
|
@@ -177,7 +191,7 @@ export const COMMAND_REGISTRY = [
|
|
|
177
191
|
},
|
|
178
192
|
{
|
|
179
193
|
name: 'instructions',
|
|
180
|
-
description: 'Output enriched instructions for
|
|
194
|
+
description: 'Output enriched instructions for artifacts, apply, or archive',
|
|
181
195
|
acceptsPositional: true,
|
|
182
196
|
positionals: [{ name: 'artifact', optional: true }],
|
|
183
197
|
flags: [
|
|
@@ -191,45 +205,6 @@ export const COMMAND_REGISTRY = [
|
|
|
191
205
|
description: 'Schema override',
|
|
192
206
|
takesValue: true,
|
|
193
207
|
},
|
|
194
|
-
{
|
|
195
|
-
name: 'record-comprehension-pass',
|
|
196
|
-
description: 'Record a successful comprehension quiz pass (use with instructions apply)',
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
name: 'score',
|
|
200
|
-
description: 'Quiz score 0-100 (required with --record-comprehension-pass)',
|
|
201
|
-
takesValue: true,
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
name: 'attempt',
|
|
205
|
-
description: 'Quiz attempt number',
|
|
206
|
-
takesValue: true,
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
name: 'question-count',
|
|
210
|
-
description: 'Number of quiz questions taken',
|
|
211
|
-
takesValue: true,
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
name: 'artifact',
|
|
215
|
-
description: 'Source artifact to modify (use with: instructions modify)',
|
|
216
|
-
takesValue: true,
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
name: 'workflow-input',
|
|
220
|
-
description: 'User modify request for telemetry (use with: instructions modify)',
|
|
221
|
-
takesValue: true,
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
name: 'workflow-input-file',
|
|
225
|
-
description: 'Read modify request from a file (use with: instructions modify)',
|
|
226
|
-
takesValue: true,
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
name: 'editor',
|
|
230
|
-
description: 'AI editor used (cursor, windsurf, claude)',
|
|
231
|
-
takesValue: true,
|
|
232
|
-
},
|
|
233
208
|
COMMON_FLAGS.json,
|
|
234
209
|
COMMON_FLAGS.store,
|
|
235
210
|
],
|
|
@@ -279,26 +254,6 @@ export const COMMAND_REGISTRY = [
|
|
|
279
254
|
description: 'Workflow schema to use',
|
|
280
255
|
takesValue: true,
|
|
281
256
|
},
|
|
282
|
-
{
|
|
283
|
-
name: 'entry-point',
|
|
284
|
-
description: 'Workflow entry point (propose, new, ff, manual)',
|
|
285
|
-
takesValue: true,
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
name: 'workflow-input',
|
|
289
|
-
description: 'User workflow intent for telemetry',
|
|
290
|
-
takesValue: true,
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
name: 'workflow-input-file',
|
|
294
|
-
description: 'Read workflow intent from a file for telemetry',
|
|
295
|
-
takesValue: true,
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
name: 'editor',
|
|
299
|
-
description: 'AI editor used (cursor, windsurf, claude)',
|
|
300
|
-
takesValue: true,
|
|
301
|
-
},
|
|
302
257
|
COMMON_FLAGS.json,
|
|
303
258
|
COMMON_FLAGS.store,
|
|
304
259
|
],
|
|
@@ -25,47 +25,47 @@ export class BashGenerator {
|
|
|
25
25
|
// Dynamic completion helpers from template
|
|
26
26
|
const helpers = BASH_DYNAMIC_HELPERS;
|
|
27
27
|
// Assemble final script with template literal
|
|
28
|
-
return `# Bash completion script for OpenSpec CLI
|
|
29
|
-
# Auto-generated - do not edit manually
|
|
30
|
-
|
|
31
|
-
_openspec_completion() {
|
|
32
|
-
local cur prev words cword
|
|
33
|
-
|
|
34
|
-
# Use _init_completion if available (from bash-completion package)
|
|
35
|
-
# The -n : option prevents colons from being treated as word separators
|
|
36
|
-
# (important for spec/change IDs that may contain colons)
|
|
37
|
-
# Otherwise, fall back to manual initialization
|
|
38
|
-
if declare -F _init_completion >/dev/null 2>&1; then
|
|
39
|
-
_init_completion -n : || return
|
|
40
|
-
else
|
|
41
|
-
# Manual fallback when bash-completion is not installed
|
|
42
|
-
COMPREPLY=()
|
|
43
|
-
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
44
|
-
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
45
|
-
words=("\${COMP_WORDS[@]}")
|
|
46
|
-
cword=$COMP_CWORD
|
|
47
|
-
fi
|
|
48
|
-
|
|
49
|
-
local cmd="\${words[1]}"
|
|
50
|
-
local subcmd="\${words[2]}"
|
|
51
|
-
|
|
52
|
-
# Top-level commands
|
|
53
|
-
if [[ $cword -eq 1 ]]; then
|
|
54
|
-
local commands="${commandList}"
|
|
55
|
-
COMPREPLY=($(compgen -W "$commands" -- "$cur"))
|
|
56
|
-
return 0
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
# Command-specific completion
|
|
60
|
-
case "$cmd" in
|
|
61
|
-
${commandCases}
|
|
62
|
-
esac
|
|
63
|
-
|
|
64
|
-
return 0
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
${helpers}
|
|
68
|
-
complete -F _openspec_completion openspec
|
|
28
|
+
return `# Bash completion script for OpenSpec CLI
|
|
29
|
+
# Auto-generated - do not edit manually
|
|
30
|
+
|
|
31
|
+
_openspec_completion() {
|
|
32
|
+
local cur prev words cword
|
|
33
|
+
|
|
34
|
+
# Use _init_completion if available (from bash-completion package)
|
|
35
|
+
# The -n : option prevents colons from being treated as word separators
|
|
36
|
+
# (important for spec/change IDs that may contain colons)
|
|
37
|
+
# Otherwise, fall back to manual initialization
|
|
38
|
+
if declare -F _init_completion >/dev/null 2>&1; then
|
|
39
|
+
_init_completion -n : || return
|
|
40
|
+
else
|
|
41
|
+
# Manual fallback when bash-completion is not installed
|
|
42
|
+
COMPREPLY=()
|
|
43
|
+
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
44
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
45
|
+
words=("\${COMP_WORDS[@]}")
|
|
46
|
+
cword=$COMP_CWORD
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
local cmd="\${words[1]}"
|
|
50
|
+
local subcmd="\${words[2]}"
|
|
51
|
+
|
|
52
|
+
# Top-level commands
|
|
53
|
+
if [[ $cword -eq 1 ]]; then
|
|
54
|
+
local commands="${commandList}"
|
|
55
|
+
COMPREPLY=($(compgen -W "$commands" -- "$cur"))
|
|
56
|
+
return 0
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# Command-specific completion
|
|
60
|
+
case "$cmd" in
|
|
61
|
+
${commandCases}
|
|
62
|
+
esac
|
|
63
|
+
|
|
64
|
+
return 0
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
${helpers}
|
|
68
|
+
complete -F _openspec_completion openspec
|
|
69
69
|
`;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
@@ -31,13 +31,13 @@ export class FishGenerator {
|
|
|
31
31
|
// Dynamic completion helpers from template
|
|
32
32
|
const dynamicHelpers = FISH_DYNAMIC_HELPERS;
|
|
33
33
|
// Assemble final script with template literal
|
|
34
|
-
return `# Fish completion script for OpenSpec CLI
|
|
35
|
-
# Auto-generated - do not edit manually
|
|
36
|
-
|
|
37
|
-
${helperFunctions}
|
|
38
|
-
${dynamicHelpers}
|
|
39
|
-
${topLevelCommands}
|
|
40
|
-
|
|
34
|
+
return `# Fish completion script for OpenSpec CLI
|
|
35
|
+
# Auto-generated - do not edit manually
|
|
36
|
+
|
|
37
|
+
${helperFunctions}
|
|
38
|
+
${dynamicHelpers}
|
|
39
|
+
${topLevelCommands}
|
|
40
|
+
|
|
41
41
|
${commandCompletions}`;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
@@ -35,35 +35,35 @@ export class PowerShellGenerator {
|
|
|
35
35
|
// Dynamic completion helpers from template
|
|
36
36
|
const helpers = POWERSHELL_DYNAMIC_HELPERS;
|
|
37
37
|
// Assemble final script with template literal
|
|
38
|
-
return `# PowerShell completion script for OpenSpec CLI
|
|
39
|
-
# Auto-generated - do not edit manually
|
|
40
|
-
|
|
41
|
-
${helpers}
|
|
42
|
-
$openspecCompleter = {
|
|
43
|
-
param($wordToComplete, $commandAst, $cursorPosition)
|
|
44
|
-
|
|
45
|
-
$tokens = $commandAst.ToString() -split "\\s+"
|
|
46
|
-
$commandCount = ($tokens | Measure-Object).Count
|
|
47
|
-
|
|
48
|
-
# Top-level commands
|
|
49
|
-
if ($commandCount -eq 1 -or ($commandCount -eq 2 -and $wordToComplete)) {
|
|
50
|
-
$commands = @(
|
|
51
|
-
${topLevelCommands}
|
|
52
|
-
)
|
|
53
|
-
$commands | Where-Object { $_.Name -like "$wordToComplete*" } | ForEach-Object {
|
|
54
|
-
[System.Management.Automation.CompletionResult]::new($_.Name, $_.Name, "ParameterValue", $_.Description)
|
|
55
|
-
}
|
|
56
|
-
return
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
$command = $tokens[1]
|
|
60
|
-
|
|
61
|
-
switch ($command) {
|
|
62
|
-
${commandCases}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
Register-ArgumentCompleter -CommandName openspec -ScriptBlock $openspecCompleter
|
|
38
|
+
return `# PowerShell completion script for OpenSpec CLI
|
|
39
|
+
# Auto-generated - do not edit manually
|
|
40
|
+
|
|
41
|
+
${helpers}
|
|
42
|
+
$openspecCompleter = {
|
|
43
|
+
param($wordToComplete, $commandAst, $cursorPosition)
|
|
44
|
+
|
|
45
|
+
$tokens = $commandAst.ToString() -split "\\s+"
|
|
46
|
+
$commandCount = ($tokens | Measure-Object).Count
|
|
47
|
+
|
|
48
|
+
# Top-level commands
|
|
49
|
+
if ($commandCount -eq 1 -or ($commandCount -eq 2 -and $wordToComplete)) {
|
|
50
|
+
$commands = @(
|
|
51
|
+
${topLevelCommands}
|
|
52
|
+
)
|
|
53
|
+
$commands | Where-Object { $_.Name -like "$wordToComplete*" } | ForEach-Object {
|
|
54
|
+
[System.Management.Automation.CompletionResult]::new($_.Name, $_.Name, "ParameterValue", $_.Description)
|
|
55
|
+
}
|
|
56
|
+
return
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
$command = $tokens[1]
|
|
60
|
+
|
|
61
|
+
switch ($command) {
|
|
62
|
+
${commandCases}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
Register-ArgumentCompleter -CommandName openspec -ScriptBlock $openspecCompleter
|
|
67
67
|
`;
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
@@ -164,6 +164,20 @@ Register-ArgumentCompleter -CommandName openspec -ScriptBlock $openspecCompleter
|
|
|
164
164
|
return lines;
|
|
165
165
|
}
|
|
166
166
|
generateIndexedPositionalCompletion(positionals, flags, firstPositionalTokenIndex, indent) {
|
|
167
|
+
const caseLines = [];
|
|
168
|
+
for (const [index, positional] of positionals.entries()) {
|
|
169
|
+
const completion = this.generatePositionalCompletion(positional.type, indent + ' ');
|
|
170
|
+
if (completion.length === 0)
|
|
171
|
+
continue;
|
|
172
|
+
caseLines.push(`${indent} ${index} {`);
|
|
173
|
+
caseLines.push(...completion);
|
|
174
|
+
caseLines.push(`${indent} }`);
|
|
175
|
+
}
|
|
176
|
+
// A switch with no clauses is a PowerShell parse error, so when no
|
|
177
|
+
// positional produces completions skip the whole block (it would only
|
|
178
|
+
// feed the empty switch anyway).
|
|
179
|
+
if (caseLines.length === 0)
|
|
180
|
+
return [];
|
|
167
181
|
const lines = [];
|
|
168
182
|
const valueFlags = this.generateValueFlags(flags);
|
|
169
183
|
if (valueFlags.length > 0) {
|
|
@@ -192,14 +206,7 @@ Register-ArgumentCompleter -CommandName openspec -ScriptBlock $openspecCompleter
|
|
|
192
206
|
lines.push(`${indent}}`);
|
|
193
207
|
lines.push('');
|
|
194
208
|
lines.push(`${indent}switch ($positionalIndex) {`);
|
|
195
|
-
|
|
196
|
-
const completion = this.generatePositionalCompletion(positional.type, indent + ' ');
|
|
197
|
-
if (completion.length === 0)
|
|
198
|
-
continue;
|
|
199
|
-
lines.push(`${indent} ${index} {`);
|
|
200
|
-
lines.push(...completion);
|
|
201
|
-
lines.push(`${indent} }`);
|
|
202
|
-
}
|
|
209
|
+
lines.push(...caseLines);
|
|
203
210
|
lines.push(`${indent}}`);
|
|
204
211
|
return lines;
|
|
205
212
|
}
|
|
@@ -37,39 +37,39 @@ export class ZshGenerator {
|
|
|
37
37
|
// Dynamic completion helpers from template
|
|
38
38
|
const helpers = ZSH_DYNAMIC_HELPERS;
|
|
39
39
|
// Assemble final script with template literal
|
|
40
|
-
return `#compdef openspec
|
|
41
|
-
|
|
42
|
-
# Zsh completion script for OpenSpec CLI
|
|
43
|
-
# Auto-generated - do not edit manually
|
|
44
|
-
|
|
45
|
-
_openspec() {
|
|
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 "openspec 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 _openspec openspec
|
|
40
|
+
return `#compdef openspec
|
|
41
|
+
|
|
42
|
+
# Zsh completion script for OpenSpec CLI
|
|
43
|
+
# Auto-generated - do not edit manually
|
|
44
|
+
|
|
45
|
+
_openspec() {
|
|
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 "openspec 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 _openspec openspec
|
|
73
73
|
`;
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
@@ -16,6 +16,15 @@ export declare class ZshInstaller {
|
|
|
16
16
|
* @returns true if Oh My Zsh is detected via $ZSH env var or directory exists
|
|
17
17
|
*/
|
|
18
18
|
isOhMyZshInstalled(): Promise<boolean>;
|
|
19
|
+
/**
|
|
20
|
+
* Oh My Zsh exports its root as $ZSH; honor a custom location, or the
|
|
21
|
+
* completion lands in a ~/.oh-my-zsh tree that nothing ever loads.
|
|
22
|
+
*/
|
|
23
|
+
private ohMyZshRoot;
|
|
24
|
+
/**
|
|
25
|
+
* The custom dir is separately relocatable via $ZSH_CUSTOM.
|
|
26
|
+
*/
|
|
27
|
+
private ohMyZshCustomDir;
|
|
19
28
|
/**
|
|
20
29
|
* Get the appropriate installation path for the completion script
|
|
21
30
|
*
|
|
@@ -29,15 +29,27 @@ export class ZshInstaller {
|
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
31
31
|
// Fall back to checking for ~/.oh-my-zsh directory
|
|
32
|
-
const ohMyZshPath = path.join(this.homeDir, '.oh-my-zsh');
|
|
33
32
|
try {
|
|
34
|
-
const stat = await fs.stat(
|
|
33
|
+
const stat = await fs.stat(this.ohMyZshRoot());
|
|
35
34
|
return stat.isDirectory();
|
|
36
35
|
}
|
|
37
36
|
catch {
|
|
38
37
|
return false;
|
|
39
38
|
}
|
|
40
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Oh My Zsh exports its root as $ZSH; honor a custom location, or the
|
|
42
|
+
* completion lands in a ~/.oh-my-zsh tree that nothing ever loads.
|
|
43
|
+
*/
|
|
44
|
+
ohMyZshRoot() {
|
|
45
|
+
return process.env.ZSH || path.join(this.homeDir, '.oh-my-zsh');
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The custom dir is separately relocatable via $ZSH_CUSTOM.
|
|
49
|
+
*/
|
|
50
|
+
ohMyZshCustomDir() {
|
|
51
|
+
return process.env.ZSH_CUSTOM || path.join(this.ohMyZshRoot(), 'custom');
|
|
52
|
+
}
|
|
41
53
|
/**
|
|
42
54
|
* Get the appropriate installation path for the completion script
|
|
43
55
|
*
|
|
@@ -48,7 +60,7 @@ export class ZshInstaller {
|
|
|
48
60
|
if (isOhMyZsh) {
|
|
49
61
|
// Oh My Zsh custom completions directory
|
|
50
62
|
return {
|
|
51
|
-
path: path.join(this.
|
|
63
|
+
path: path.join(this.ohMyZshCustomDir(), 'completions', '_openspec'),
|
|
52
64
|
isOhMyZsh: true,
|
|
53
65
|
};
|
|
54
66
|
}
|
|
@@ -292,10 +304,14 @@ export class ZshInstaller {
|
|
|
292
304
|
* @returns Array of guidance strings, or undefined if not needed
|
|
293
305
|
*/
|
|
294
306
|
generateOhMyZshFpathGuidance(completionsDir) {
|
|
307
|
+
// One fpath entry per line, matched as a literal: a relocated $ZSH_CUSTOM
|
|
308
|
+
// need not contain "custom/completions", and the path may hold characters
|
|
309
|
+
// grep would otherwise read as a pattern. Single-quoted for the shell.
|
|
310
|
+
const quotedDir = `'${completionsDir.replace(/'/g, `'\\''`)}'`;
|
|
295
311
|
return [
|
|
296
312
|
'Note: Oh My Zsh typically auto-loads completions from custom/completions.',
|
|
297
313
|
`Verify that ${completionsDir} is in your fpath by running:`,
|
|
298
|
-
|
|
314
|
+
` printf '%s\\n' $fpath | grep -F ${quotedDir}`,
|
|
299
315
|
'',
|
|
300
316
|
'If not found, completions may not work. Restart your shell to ensure changes take effect.',
|
|
301
317
|
];
|
|
@@ -2,29 +2,29 @@
|
|
|
2
2
|
* Static template strings for Bash completion scripts.
|
|
3
3
|
* These are Bash-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
|
-
export const BASH_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
6
|
-
|
|
7
|
-
_openspec_complete_changes() {
|
|
8
|
-
local changes
|
|
9
|
-
changes=$(openspec __complete changes 2>/dev/null | cut -f1)
|
|
10
|
-
COMPREPLY=($(compgen -W "$changes" -- "$cur"))
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
_openspec_complete_specs() {
|
|
14
|
-
local specs
|
|
15
|
-
specs=$(openspec __complete specs 2>/dev/null | cut -f1)
|
|
16
|
-
COMPREPLY=($(compgen -W "$specs" -- "$cur"))
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
_openspec_complete_items() {
|
|
20
|
-
local items
|
|
21
|
-
items=$(openspec __complete changes 2>/dev/null | cut -f1; openspec __complete specs 2>/dev/null | cut -f1)
|
|
22
|
-
COMPREPLY=($(compgen -W "$items" -- "$cur"))
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
_openspec_complete_schemas() {
|
|
26
|
-
local schemas
|
|
27
|
-
schemas=$(openspec __complete schemas 2>/dev/null | cut -f1)
|
|
28
|
-
COMPREPLY=($(compgen -W "$schemas" -- "$cur"))
|
|
5
|
+
export const BASH_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
6
|
+
|
|
7
|
+
_openspec_complete_changes() {
|
|
8
|
+
local changes
|
|
9
|
+
changes=$(openspec __complete changes 2>/dev/null | cut -f1)
|
|
10
|
+
COMPREPLY=($(compgen -W "$changes" -- "$cur"))
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
_openspec_complete_specs() {
|
|
14
|
+
local specs
|
|
15
|
+
specs=$(openspec __complete specs 2>/dev/null | cut -f1)
|
|
16
|
+
COMPREPLY=($(compgen -W "$specs" -- "$cur"))
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
_openspec_complete_items() {
|
|
20
|
+
local items
|
|
21
|
+
items=$(openspec __complete changes 2>/dev/null | cut -f1; openspec __complete specs 2>/dev/null | cut -f1)
|
|
22
|
+
COMPREPLY=($(compgen -W "$items" -- "$cur"))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
_openspec_complete_schemas() {
|
|
26
|
+
local schemas
|
|
27
|
+
schemas=$(openspec __complete schemas 2>/dev/null | cut -f1)
|
|
28
|
+
COMPREPLY=($(compgen -W "$schemas" -- "$cur"))
|
|
29
29
|
}`;
|
|
30
30
|
//# sourceMappingURL=bash-templates.js.map
|
|
@@ -2,44 +2,44 @@
|
|
|
2
2
|
* Static template strings for Fish completion scripts.
|
|
3
3
|
* These are Fish-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
|
-
export const FISH_STATIC_HELPERS = `# Helper function to check if a subcommand is present
|
|
6
|
-
function __fish_openspec_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_openspec_no_subcommand
|
|
18
|
-
set -l cmd (commandline -opc)
|
|
19
|
-
test (count $cmd) -eq 1
|
|
5
|
+
export const FISH_STATIC_HELPERS = `# Helper function to check if a subcommand is present
|
|
6
|
+
function __fish_openspec_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_openspec_no_subcommand
|
|
18
|
+
set -l cmd (commandline -opc)
|
|
19
|
+
test (count $cmd) -eq 1
|
|
20
20
|
end`;
|
|
21
|
-
export const FISH_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
22
|
-
|
|
23
|
-
function __fish_openspec_changes
|
|
24
|
-
openspec __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_openspec_specs
|
|
30
|
-
openspec __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_openspec_items
|
|
36
|
-
__fish_openspec_changes
|
|
37
|
-
__fish_openspec_specs
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
function __fish_openspec_schemas
|
|
41
|
-
openspec __complete schemas 2>/dev/null | while read -l id desc
|
|
42
|
-
printf '%s\\t%s\\n' "$id" "$desc"
|
|
43
|
-
end
|
|
21
|
+
export const FISH_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
22
|
+
|
|
23
|
+
function __fish_openspec_changes
|
|
24
|
+
openspec __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_openspec_specs
|
|
30
|
+
openspec __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_openspec_items
|
|
36
|
+
__fish_openspec_changes
|
|
37
|
+
__fish_openspec_specs
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
function __fish_openspec_schemas
|
|
41
|
+
openspec __complete schemas 2>/dev/null | while read -l id desc
|
|
42
|
+
printf '%s\\t%s\\n' "$id" "$desc"
|
|
43
|
+
end
|
|
44
44
|
end`;
|
|
45
45
|
//# sourceMappingURL=fish-templates.js.map
|
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
* Static template strings for PowerShell completion scripts.
|
|
3
3
|
* These are PowerShell-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
|
-
export const POWERSHELL_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
6
|
-
|
|
7
|
-
function Get-OpenSpecChanges {
|
|
8
|
-
$output = openspec __complete changes 2>$null
|
|
9
|
-
if ($output) {
|
|
10
|
-
$output | ForEach-Object {
|
|
11
|
-
($_ -split "\\t")[0]
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function Get-OpenSpecSpecs {
|
|
17
|
-
$output = openspec __complete specs 2>$null
|
|
18
|
-
if ($output) {
|
|
19
|
-
$output | ForEach-Object {
|
|
20
|
-
($_ -split "\\t")[0]
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function Get-OpenSpecSchemas {
|
|
26
|
-
$output = openspec __complete schemas 2>$null
|
|
27
|
-
if ($output) {
|
|
28
|
-
$output | ForEach-Object {
|
|
29
|
-
($_ -split "\\t")[0]
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
5
|
+
export const POWERSHELL_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
6
|
+
|
|
7
|
+
function Get-OpenSpecChanges {
|
|
8
|
+
$output = openspec __complete changes 2>$null
|
|
9
|
+
if ($output) {
|
|
10
|
+
$output | ForEach-Object {
|
|
11
|
+
($_ -split "\\t")[0]
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function Get-OpenSpecSpecs {
|
|
17
|
+
$output = openspec __complete specs 2>$null
|
|
18
|
+
if ($output) {
|
|
19
|
+
$output | ForEach-Object {
|
|
20
|
+
($_ -split "\\t")[0]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function Get-OpenSpecSchemas {
|
|
26
|
+
$output = openspec __complete schemas 2>$null
|
|
27
|
+
if ($output) {
|
|
28
|
+
$output | ForEach-Object {
|
|
29
|
+
($_ -split "\\t")[0]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
33
|
`;
|
|
34
34
|
//# sourceMappingURL=powershell-templates.js.map
|