@ginkoai/cli 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.
- package/LICENSE +21 -0
- package/README.md +230 -0
- package/dist/adapters/ai-adapter.d.ts +25 -0
- package/dist/adapters/ai-adapter.d.ts.map +1 -0
- package/dist/adapters/ai-adapter.js +21 -0
- package/dist/adapters/ai-adapter.js.map +1 -0
- package/dist/adapters/ai-completion.d.ts +35 -0
- package/dist/adapters/ai-completion.d.ts.map +1 -0
- package/dist/adapters/ai-completion.js +118 -0
- package/dist/adapters/ai-completion.js.map +1 -0
- package/dist/adapters/base.d.ts +64 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +48 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude-adapter.d.ts +18 -0
- package/dist/adapters/claude-adapter.d.ts.map +1 -0
- package/dist/adapters/claude-adapter.js +73 -0
- package/dist/adapters/claude-adapter.js.map +1 -0
- package/dist/adapters/claude.d.ts +20 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/claude.js +91 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/copilot-adapter.d.ts +16 -0
- package/dist/adapters/copilot-adapter.d.ts.map +1 -0
- package/dist/adapters/copilot-adapter.js +288 -0
- package/dist/adapters/copilot-adapter.js.map +1 -0
- package/dist/adapters/cursor-adapter.d.ts +22 -0
- package/dist/adapters/cursor-adapter.d.ts.map +1 -0
- package/dist/adapters/cursor-adapter.js +108 -0
- package/dist/adapters/cursor-adapter.js.map +1 -0
- package/dist/adapters/detector.d.ts +29 -0
- package/dist/adapters/detector.d.ts.map +1 -0
- package/dist/adapters/detector.js +132 -0
- package/dist/adapters/detector.js.map +1 -0
- package/dist/adapters/generic-adapter.d.ts +18 -0
- package/dist/adapters/generic-adapter.d.ts.map +1 -0
- package/dist/adapters/generic-adapter.js +37 -0
- package/dist/adapters/generic-adapter.js.map +1 -0
- package/dist/adapters/gpt4.d.ts +20 -0
- package/dist/adapters/gpt4.d.ts.map +1 -0
- package/dist/adapters/gpt4.js +114 -0
- package/dist/adapters/gpt4.js.map +1 -0
- package/dist/adapters/grok-adapter.d.ts +18 -0
- package/dist/adapters/grok-adapter.d.ts.map +1 -0
- package/dist/adapters/grok-adapter.js +94 -0
- package/dist/adapters/grok-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +18 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +71 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/openai-adapter.d.ts +18 -0
- package/dist/adapters/openai-adapter.d.ts.map +1 -0
- package/dist/adapters/openai-adapter.js +97 -0
- package/dist/adapters/openai-adapter.js.map +1 -0
- package/dist/adapters/universal.d.ts +20 -0
- package/dist/adapters/universal.d.ts.map +1 -0
- package/dist/adapters/universal.js +80 -0
- package/dist/adapters/universal.js.map +1 -0
- package/dist/analysis/deep-analyzer.d.ts +61 -0
- package/dist/analysis/deep-analyzer.d.ts.map +1 -0
- package/dist/analysis/deep-analyzer.js +349 -0
- package/dist/analysis/deep-analyzer.js.map +1 -0
- package/dist/analysis/project-analyzer.d.ts +25 -0
- package/dist/analysis/project-analyzer.d.ts.map +1 -0
- package/dist/analysis/project-analyzer.js +244 -0
- package/dist/analysis/project-analyzer.js.map +1 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts +82 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.js +649 -0
- package/dist/commands/architecture/architecture-pipeline-enhanced.js.map +1 -0
- package/dist/commands/architecture/architecture-pipeline.d.ts +105 -0
- package/dist/commands/architecture/architecture-pipeline.d.ts.map +1 -0
- package/dist/commands/architecture/architecture-pipeline.js +510 -0
- package/dist/commands/architecture/architecture-pipeline.js.map +1 -0
- package/dist/commands/architecture/architecture-reflection.d.ts +67 -0
- package/dist/commands/architecture/architecture-reflection.d.ts.map +1 -0
- package/dist/commands/architecture/architecture-reflection.js +508 -0
- package/dist/commands/architecture/architecture-reflection.js.map +1 -0
- package/dist/commands/architecture/index.d.ts +21 -0
- package/dist/commands/architecture/index.d.ts.map +1 -0
- package/dist/commands/architecture/index.js +41 -0
- package/dist/commands/architecture/index.js.map +1 -0
- package/dist/commands/architecture.d.ts +20 -0
- package/dist/commands/architecture.d.ts.map +1 -0
- package/dist/commands/architecture.js +223 -0
- package/dist/commands/architecture.js.map +1 -0
- package/dist/commands/backlog/ai-enhanced.d.ts +83 -0
- package/dist/commands/backlog/ai-enhanced.d.ts.map +1 -0
- package/dist/commands/backlog/ai-enhanced.js +462 -0
- package/dist/commands/backlog/ai-enhanced.js.map +1 -0
- package/dist/commands/backlog/ai-prompt.d.ts +21 -0
- package/dist/commands/backlog/ai-prompt.d.ts.map +1 -0
- package/dist/commands/backlog/ai-prompt.js +373 -0
- package/dist/commands/backlog/ai-prompt.js.map +1 -0
- package/dist/commands/backlog/ai-template.d.ts +21 -0
- package/dist/commands/backlog/ai-template.d.ts.map +1 -0
- package/dist/commands/backlog/ai-template.js +374 -0
- package/dist/commands/backlog/ai-template.js.map +1 -0
- package/dist/commands/backlog/ai.d.ts +21 -0
- package/dist/commands/backlog/ai.d.ts.map +1 -0
- package/dist/commands/backlog/ai.js +76 -0
- package/dist/commands/backlog/ai.js.map +1 -0
- package/dist/commands/backlog/backlog-pipeline.d.ts +103 -0
- package/dist/commands/backlog/backlog-pipeline.d.ts.map +1 -0
- package/dist/commands/backlog/backlog-pipeline.js +538 -0
- package/dist/commands/backlog/backlog-pipeline.js.map +1 -0
- package/dist/commands/backlog/backlog-reflection.d.ts +48 -0
- package/dist/commands/backlog/backlog-reflection.d.ts.map +1 -0
- package/dist/commands/backlog/backlog-reflection.js +231 -0
- package/dist/commands/backlog/backlog-reflection.js.map +1 -0
- package/dist/commands/backlog/base.d.ts +95 -0
- package/dist/commands/backlog/base.d.ts.map +1 -0
- package/dist/commands/backlog/base.js +291 -0
- package/dist/commands/backlog/base.js.map +1 -0
- package/dist/commands/backlog/complete.d.ts +20 -0
- package/dist/commands/backlog/complete.d.ts.map +1 -0
- package/dist/commands/backlog/complete.js +83 -0
- package/dist/commands/backlog/complete.js.map +1 -0
- package/dist/commands/backlog/context-gatherer.d.ts +76 -0
- package/dist/commands/backlog/context-gatherer.d.ts.map +1 -0
- package/dist/commands/backlog/context-gatherer.js +216 -0
- package/dist/commands/backlog/context-gatherer.js.map +1 -0
- package/dist/commands/backlog/create.d.ts +25 -0
- package/dist/commands/backlog/create.d.ts.map +1 -0
- package/dist/commands/backlog/create.js +131 -0
- package/dist/commands/backlog/create.js.map +1 -0
- package/dist/commands/backlog/index.d.ts +17 -0
- package/dist/commands/backlog/index.d.ts.map +1 -0
- package/dist/commands/backlog/index.js +177 -0
- package/dist/commands/backlog/index.js.map +1 -0
- package/dist/commands/backlog/list.d.ts +25 -0
- package/dist/commands/backlog/list.d.ts.map +1 -0
- package/dist/commands/backlog/list.js +136 -0
- package/dist/commands/backlog/list.js.map +1 -0
- package/dist/commands/backlog/quick-query.d.ts +16 -0
- package/dist/commands/backlog/quick-query.d.ts.map +1 -0
- package/dist/commands/backlog/quick-query.js +126 -0
- package/dist/commands/backlog/quick-query.js.map +1 -0
- package/dist/commands/backlog/show.d.ts +20 -0
- package/dist/commands/backlog/show.d.ts.map +1 -0
- package/dist/commands/backlog/show.js +95 -0
- package/dist/commands/backlog/show.js.map +1 -0
- package/dist/commands/backlog/update.d.ts +25 -0
- package/dist/commands/backlog/update.d.ts.map +1 -0
- package/dist/commands/backlog/update.js +113 -0
- package/dist/commands/backlog/update.js.map +1 -0
- package/dist/commands/bug/bug-context-gatherer.d.ts +58 -0
- package/dist/commands/bug/bug-context-gatherer.d.ts.map +1 -0
- package/dist/commands/bug/bug-context-gatherer.js +228 -0
- package/dist/commands/bug/bug-context-gatherer.js.map +1 -0
- package/dist/commands/bug/bug-reflection.d.ts +70 -0
- package/dist/commands/bug/bug-reflection.d.ts.map +1 -0
- package/dist/commands/bug/bug-reflection.js +343 -0
- package/dist/commands/bug/bug-reflection.js.map +1 -0
- package/dist/commands/capture/capture-reflection.d.ts +139 -0
- package/dist/commands/capture/capture-reflection.d.ts.map +1 -0
- package/dist/commands/capture/capture-reflection.js +583 -0
- package/dist/commands/capture/capture-reflection.js.map +1 -0
- package/dist/commands/capture.d.ts +22 -0
- package/dist/commands/capture.d.ts.map +1 -0
- package/dist/commands/capture.js +301 -0
- package/dist/commands/capture.js.map +1 -0
- package/dist/commands/changelog/changelog-reflection.d.ts +65 -0
- package/dist/commands/changelog/changelog-reflection.d.ts.map +1 -0
- package/dist/commands/changelog/changelog-reflection.js +252 -0
- package/dist/commands/changelog/changelog-reflection.js.map +1 -0
- package/dist/commands/compact.d.ts +15 -0
- package/dist/commands/compact.d.ts.map +1 -0
- package/dist/commands/compact.js +113 -0
- package/dist/commands/compact.js.map +1 -0
- package/dist/commands/config.d.ts +10 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +85 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/context-new.d.ts +18 -0
- package/dist/commands/context-new.d.ts.map +1 -0
- package/dist/commands/context-new.js +265 -0
- package/dist/commands/context-new.js.map +1 -0
- package/dist/commands/context.d.ts +16 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +82 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/documentation/documentation-pipeline.d.ts +130 -0
- package/dist/commands/documentation/documentation-pipeline.d.ts.map +1 -0
- package/dist/commands/documentation/documentation-pipeline.js +716 -0
- package/dist/commands/documentation/documentation-pipeline.js.map +1 -0
- package/dist/commands/documentation/documentation-reflection.d.ts +54 -0
- package/dist/commands/documentation/documentation-reflection.d.ts.map +1 -0
- package/dist/commands/documentation/documentation-reflection.js +338 -0
- package/dist/commands/documentation/documentation-reflection.js.map +1 -0
- package/dist/commands/explore/explore-reflection-pipeline.d.ts +117 -0
- package/dist/commands/explore/explore-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/explore/explore-reflection-pipeline.js +503 -0
- package/dist/commands/explore/explore-reflection-pipeline.js.map +1 -0
- package/dist/commands/explore/index.d.ts +29 -0
- package/dist/commands/explore/index.d.ts.map +1 -0
- package/dist/commands/explore/index.js +30 -0
- package/dist/commands/explore/index.js.map +1 -0
- package/dist/commands/explore.d.ts +20 -0
- package/dist/commands/explore.d.ts.map +1 -0
- package/dist/commands/explore.js +224 -0
- package/dist/commands/explore.js.map +1 -0
- package/dist/commands/git/git-context-gatherer.d.ts +101 -0
- package/dist/commands/git/git-context-gatherer.d.ts.map +1 -0
- package/dist/commands/git/git-context-gatherer.js +284 -0
- package/dist/commands/git/git-context-gatherer.js.map +1 -0
- package/dist/commands/git/git-pipeline.d.ts +75 -0
- package/dist/commands/git/git-pipeline.d.ts.map +1 -0
- package/dist/commands/git/git-pipeline.js +530 -0
- package/dist/commands/git/git-pipeline.js.map +1 -0
- package/dist/commands/git/git-reflection.d.ts +50 -0
- package/dist/commands/git/git-reflection.d.ts.map +1 -0
- package/dist/commands/git/git-reflection.js +193 -0
- package/dist/commands/git/git-reflection.js.map +1 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.d.ts +106 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.js +534 -0
- package/dist/commands/handoff/handoff-reflection-pipeline.js.map +1 -0
- package/dist/commands/handoff/handoff-save.d.ts +16 -0
- package/dist/commands/handoff/handoff-save.d.ts.map +1 -0
- package/dist/commands/handoff/handoff-save.js +72 -0
- package/dist/commands/handoff/handoff-save.js.map +1 -0
- package/dist/commands/handoff/index.d.ts +19 -0
- package/dist/commands/handoff/index.d.ts.map +1 -0
- package/dist/commands/handoff/index.js +55 -0
- package/dist/commands/handoff/index.js.map +1 -0
- package/dist/commands/handoff-ai-orig.d.ts +27 -0
- package/dist/commands/handoff-ai-orig.d.ts.map +1 -0
- package/dist/commands/handoff-ai-orig.js +405 -0
- package/dist/commands/handoff-ai-orig.js.map +1 -0
- package/dist/commands/handoff-ai.d.ts +27 -0
- package/dist/commands/handoff-ai.d.ts.map +1 -0
- package/dist/commands/handoff-ai.js +405 -0
- package/dist/commands/handoff-ai.js.map +1 -0
- package/dist/commands/handoff-enhanced-orig.d.ts +25 -0
- package/dist/commands/handoff-enhanced-orig.d.ts.map +1 -0
- package/dist/commands/handoff-enhanced-orig.js +349 -0
- package/dist/commands/handoff-enhanced-orig.js.map +1 -0
- package/dist/commands/handoff-enhanced.d.ts +25 -0
- package/dist/commands/handoff-enhanced.d.ts.map +1 -0
- package/dist/commands/handoff-enhanced.js +349 -0
- package/dist/commands/handoff-enhanced.js.map +1 -0
- package/dist/commands/handoff-orig.d.ts +10 -0
- package/dist/commands/handoff-orig.d.ts.map +1 -0
- package/dist/commands/handoff-orig.js +167 -0
- package/dist/commands/handoff-orig.js.map +1 -0
- package/dist/commands/handoff.d.ts +10 -0
- package/dist/commands/handoff.d.ts.map +1 -0
- package/dist/commands/handoff.js +167 -0
- package/dist/commands/handoff.js.map +1 -0
- package/dist/commands/init-copilot.d.ts +6 -0
- package/dist/commands/init-copilot.d.ts.map +1 -0
- package/dist/commands/init-copilot.js +151 -0
- package/dist/commands/init-copilot.js.map +1 -0
- package/dist/commands/init-cursor.d.ts +5 -0
- package/dist/commands/init-cursor.d.ts.map +1 -0
- package/dist/commands/init-cursor.js +95 -0
- package/dist/commands/init-cursor.js.map +1 -0
- package/dist/commands/init-enhanced.d.ts +20 -0
- package/dist/commands/init-enhanced.d.ts.map +1 -0
- package/dist/commands/init-enhanced.js +430 -0
- package/dist/commands/init-enhanced.js.map +1 -0
- package/dist/commands/init.d.ts +16 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +213 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/magic-prompt.d.ts +20 -0
- package/dist/commands/magic-prompt.d.ts.map +1 -0
- package/dist/commands/magic-prompt.js +166 -0
- package/dist/commands/magic-prompt.js.map +1 -0
- package/dist/commands/magic-simple.d.ts +20 -0
- package/dist/commands/magic-simple.d.ts.map +1 -0
- package/dist/commands/magic-simple.js +32 -0
- package/dist/commands/magic-simple.js.map +1 -0
- package/dist/commands/magic.d.ts +20 -0
- package/dist/commands/magic.d.ts.map +1 -0
- package/dist/commands/magic.js +144 -0
- package/dist/commands/magic.js.map +1 -0
- package/dist/commands/plan/plan-reflection-pipeline.d.ts +126 -0
- package/dist/commands/plan/plan-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/plan/plan-reflection-pipeline.js +554 -0
- package/dist/commands/plan/plan-reflection-pipeline.js.map +1 -0
- package/dist/commands/plan.d.ts +20 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +253 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/prd/index.d.ts +21 -0
- package/dist/commands/prd/index.d.ts.map +1 -0
- package/dist/commands/prd/index.js +41 -0
- package/dist/commands/prd/index.js.map +1 -0
- package/dist/commands/prd/prd-pipeline-enhanced.d.ts +82 -0
- package/dist/commands/prd/prd-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/prd/prd-pipeline-enhanced.js +565 -0
- package/dist/commands/prd/prd-pipeline-enhanced.js.map +1 -0
- package/dist/commands/prd/prd-pipeline.d.ts +106 -0
- package/dist/commands/prd/prd-pipeline.d.ts.map +1 -0
- package/dist/commands/prd/prd-pipeline.js +491 -0
- package/dist/commands/prd/prd-pipeline.js.map +1 -0
- package/dist/commands/prd/prd-reflection-enhanced.d.ts +63 -0
- package/dist/commands/prd/prd-reflection-enhanced.d.ts.map +1 -0
- package/dist/commands/prd/prd-reflection-enhanced.js +310 -0
- package/dist/commands/prd/prd-reflection-enhanced.js.map +1 -0
- package/dist/commands/prd/prd-reflection.d.ts +59 -0
- package/dist/commands/prd/prd-reflection.d.ts.map +1 -0
- package/dist/commands/prd/prd-reflection.js +548 -0
- package/dist/commands/prd/prd-reflection.js.map +1 -0
- package/dist/commands/reflect.d.ts +24 -0
- package/dist/commands/reflect.d.ts.map +1 -0
- package/dist/commands/reflect.js +135 -0
- package/dist/commands/reflect.js.map +1 -0
- package/dist/commands/ship/ship-reflection.d.ts +164 -0
- package/dist/commands/ship/ship-reflection.d.ts.map +1 -0
- package/dist/commands/ship/ship-reflection.js +732 -0
- package/dist/commands/ship/ship-reflection.js.map +1 -0
- package/dist/commands/ship-ai.d.ts +28 -0
- package/dist/commands/ship-ai.d.ts.map +1 -0
- package/dist/commands/ship-ai.js +318 -0
- package/dist/commands/ship-ai.js.map +1 -0
- package/dist/commands/ship.d.ts +17 -0
- package/dist/commands/ship.d.ts.map +1 -0
- package/dist/commands/ship.js +175 -0
- package/dist/commands/ship.js.map +1 -0
- package/dist/commands/sprint/index.d.ts +21 -0
- package/dist/commands/sprint/index.d.ts.map +1 -0
- package/dist/commands/sprint/index.js +39 -0
- package/dist/commands/sprint/index.js.map +1 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.d.ts +142 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.js +822 -0
- package/dist/commands/sprint/sprint-pipeline-enhanced.js.map +1 -0
- package/dist/commands/sprint/sprint-pipeline.d.ts +72 -0
- package/dist/commands/sprint/sprint-pipeline.d.ts.map +1 -0
- package/dist/commands/sprint/sprint-pipeline.js +363 -0
- package/dist/commands/sprint/sprint-pipeline.js.map +1 -0
- package/dist/commands/start/index.d.ts +19 -0
- package/dist/commands/start/index.d.ts.map +1 -0
- package/dist/commands/start/index.js +41 -0
- package/dist/commands/start/index.js.map +1 -0
- package/dist/commands/start/start-reflection-pipeline.d.ts +99 -0
- package/dist/commands/start/start-reflection-pipeline.d.ts.map +1 -0
- package/dist/commands/start/start-reflection-pipeline.js +458 -0
- package/dist/commands/start/start-reflection-pipeline.js.map +1 -0
- package/dist/commands/start/start-reflection.d.ts +89 -0
- package/dist/commands/start/start-reflection.d.ts.map +1 -0
- package/dist/commands/start/start-reflection.js +572 -0
- package/dist/commands/start/start-reflection.js.map +1 -0
- package/dist/commands/start/start-with-synthesis.d.ts +20 -0
- package/dist/commands/start/start-with-synthesis.d.ts.map +1 -0
- package/dist/commands/start/start-with-synthesis.js +134 -0
- package/dist/commands/start/start-with-synthesis.js.map +1 -0
- package/dist/commands/start-enhanced-orig.d.ts +19 -0
- package/dist/commands/start-enhanced-orig.d.ts.map +1 -0
- package/dist/commands/start-enhanced-orig.js +434 -0
- package/dist/commands/start-enhanced-orig.js.map +1 -0
- package/dist/commands/start-enhanced.d.ts +19 -0
- package/dist/commands/start-enhanced.d.ts.map +1 -0
- package/dist/commands/start-enhanced.js +434 -0
- package/dist/commands/start-enhanced.js.map +1 -0
- package/dist/commands/start-orig.d.ts +10 -0
- package/dist/commands/start-orig.d.ts.map +1 -0
- package/dist/commands/start-orig.js +119 -0
- package/dist/commands/start-orig.js.map +1 -0
- package/dist/commands/start.d.ts +10 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +119 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +11 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +119 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/testing/index.d.ts +21 -0
- package/dist/commands/testing/index.d.ts.map +1 -0
- package/dist/commands/testing/index.js +41 -0
- package/dist/commands/testing/index.js.map +1 -0
- package/dist/commands/testing/testing-pipeline-enhanced.d.ts +94 -0
- package/dist/commands/testing/testing-pipeline-enhanced.d.ts.map +1 -0
- package/dist/commands/testing/testing-pipeline-enhanced.js +760 -0
- package/dist/commands/testing/testing-pipeline-enhanced.js.map +1 -0
- package/dist/commands/testing/testing-pipeline.d.ts +77 -0
- package/dist/commands/testing/testing-pipeline.d.ts.map +1 -0
- package/dist/commands/testing/testing-pipeline.js +479 -0
- package/dist/commands/testing/testing-pipeline.js.map +1 -0
- package/dist/commands/uninstall-copilot.d.ts +5 -0
- package/dist/commands/uninstall-copilot.d.ts.map +1 -0
- package/dist/commands/uninstall-copilot.js +143 -0
- package/dist/commands/uninstall-copilot.js.map +1 -0
- package/dist/commands/uninstall-cursor.d.ts +6 -0
- package/dist/commands/uninstall-cursor.d.ts.map +1 -0
- package/dist/commands/uninstall-cursor.js +124 -0
- package/dist/commands/uninstall-cursor.js.map +1 -0
- package/dist/commands/vibecheck-ai.d.ts +25 -0
- package/dist/commands/vibecheck-ai.d.ts.map +1 -0
- package/dist/commands/vibecheck-ai.js +260 -0
- package/dist/commands/vibecheck-ai.js.map +1 -0
- package/dist/commands/vibecheck-aware.d.ts +19 -0
- package/dist/commands/vibecheck-aware.d.ts.map +1 -0
- package/dist/commands/vibecheck-aware.js +350 -0
- package/dist/commands/vibecheck-aware.js.map +1 -0
- package/dist/commands/vibecheck-final.d.ts +22 -0
- package/dist/commands/vibecheck-final.d.ts.map +1 -0
- package/dist/commands/vibecheck-final.js +132 -0
- package/dist/commands/vibecheck-final.js.map +1 -0
- package/dist/commands/vibecheck-natural.d.ts +18 -0
- package/dist/commands/vibecheck-natural.d.ts.map +1 -0
- package/dist/commands/vibecheck-natural.js +105 -0
- package/dist/commands/vibecheck-natural.js.map +1 -0
- package/dist/commands/vibecheck-simple.d.ts +20 -0
- package/dist/commands/vibecheck-simple.d.ts.map +1 -0
- package/dist/commands/vibecheck-simple.js +136 -0
- package/dist/commands/vibecheck-simple.js.map +1 -0
- package/dist/commands/vibecheck.d.ts +10 -0
- package/dist/commands/vibecheck.d.ts.map +1 -0
- package/dist/commands/vibecheck.js +95 -0
- package/dist/commands/vibecheck.js.map +1 -0
- package/dist/core/adapters/path-adapter.d.ts +144 -0
- package/dist/core/adapters/path-adapter.d.ts.map +1 -0
- package/dist/core/adapters/path-adapter.js +245 -0
- package/dist/core/adapters/path-adapter.js.map +1 -0
- package/dist/core/command-shortcuts.d.ts +62 -0
- package/dist/core/command-shortcuts.d.ts.map +1 -0
- package/dist/core/command-shortcuts.js +124 -0
- package/dist/core/command-shortcuts.js.map +1 -0
- package/dist/core/config/config-aware-reflection.d.ts +37 -0
- package/dist/core/config/config-aware-reflection.d.ts.map +1 -0
- package/dist/core/config/config-aware-reflection.js +97 -0
- package/dist/core/config/config-aware-reflection.js.map +1 -0
- package/dist/core/config/config-loader.d.ts +154 -0
- package/dist/core/config/config-loader.d.ts.map +1 -0
- package/dist/core/config/config-loader.js +424 -0
- package/dist/core/config/config-loader.js.map +1 -0
- package/dist/core/config/config-migrator.d.ts +150 -0
- package/dist/core/config/config-migrator.d.ts.map +1 -0
- package/dist/core/config/config-migrator.js +423 -0
- package/dist/core/config/config-migrator.js.map +1 -0
- package/dist/core/config/config-schema.d.ts +276 -0
- package/dist/core/config/config-schema.d.ts.map +1 -0
- package/dist/core/config/config-schema.js +277 -0
- package/dist/core/config/config-schema.js.map +1 -0
- package/dist/core/config/index.d.ts +260 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +283 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/interactive-config.d.ts +76 -0
- package/dist/core/config/interactive-config.d.ts.map +1 -0
- package/dist/core/config/interactive-config.js +315 -0
- package/dist/core/config/interactive-config.js.map +1 -0
- package/dist/core/config/path-config.d.ts +121 -0
- package/dist/core/config/path-config.d.ts.map +1 -0
- package/dist/core/config/path-config.js +210 -0
- package/dist/core/config/path-config.js.map +1 -0
- package/dist/core/config/path-resolver.d.ts +151 -0
- package/dist/core/config/path-resolver.d.ts.map +1 -0
- package/dist/core/config/path-resolver.js +343 -0
- package/dist/core/config/path-resolver.js.map +1 -0
- package/dist/core/config/project-detector.d.ts +58 -0
- package/dist/core/config/project-detector.d.ts.map +1 -0
- package/dist/core/config/project-detector.js +310 -0
- package/dist/core/config/project-detector.js.map +1 -0
- package/dist/core/config-backup/config-aware-reflection.d.ts +37 -0
- package/dist/core/config-backup/config-aware-reflection.d.ts.map +1 -0
- package/dist/core/config-backup/config-aware-reflection.js +97 -0
- package/dist/core/config-backup/config-aware-reflection.js.map +1 -0
- package/dist/core/config-backup/config-loader.d.ts +71 -0
- package/dist/core/config-backup/config-loader.d.ts.map +1 -0
- package/dist/core/config-backup/config-loader.js +288 -0
- package/dist/core/config-backup/config-loader.js.map +1 -0
- package/dist/core/config-backup/interactive-config.d.ts +76 -0
- package/dist/core/config-backup/interactive-config.d.ts.map +1 -0
- package/dist/core/config-backup/interactive-config.js +315 -0
- package/dist/core/config-backup/interactive-config.js.map +1 -0
- package/dist/core/config-backup/path-config.d.ts +121 -0
- package/dist/core/config-backup/path-config.d.ts.map +1 -0
- package/dist/core/config-backup/path-config.js +210 -0
- package/dist/core/config-backup/path-config.js.map +1 -0
- package/dist/core/config-backup/project-detector.d.ts +58 -0
- package/dist/core/config-backup/project-detector.d.ts.map +1 -0
- package/dist/core/config-backup/project-detector.js +310 -0
- package/dist/core/config-backup/project-detector.js.map +1 -0
- package/dist/core/documents/document-manager.d.ts +97 -0
- package/dist/core/documents/document-manager.d.ts.map +1 -0
- package/dist/core/documents/document-manager.js +441 -0
- package/dist/core/documents/document-manager.js.map +1 -0
- package/dist/core/documents/document-migrator.d.ts +138 -0
- package/dist/core/documents/document-migrator.d.ts.map +1 -0
- package/dist/core/documents/document-migrator.js +349 -0
- package/dist/core/documents/document-migrator.js.map +1 -0
- package/dist/core/documents/document-namer.d.ts +111 -0
- package/dist/core/documents/document-namer.d.ts.map +1 -0
- package/dist/core/documents/document-namer.js +225 -0
- package/dist/core/documents/document-namer.js.map +1 -0
- package/dist/core/documents/examples.d.ts +74 -0
- package/dist/core/documents/examples.d.ts.map +1 -0
- package/dist/core/documents/examples.js +273 -0
- package/dist/core/documents/examples.js.map +1 -0
- package/dist/core/documents/file-system.d.ts +93 -0
- package/dist/core/documents/file-system.d.ts.map +1 -0
- package/dist/core/documents/file-system.js +432 -0
- package/dist/core/documents/file-system.js.map +1 -0
- package/dist/core/documents/index.d.ts +97 -0
- package/dist/core/documents/index.d.ts.map +1 -0
- package/dist/core/documents/index.js +119 -0
- package/dist/core/documents/index.js.map +1 -0
- package/dist/core/documents/markdown-processor.d.ts +84 -0
- package/dist/core/documents/markdown-processor.d.ts.map +1 -0
- package/dist/core/documents/markdown-processor.js +302 -0
- package/dist/core/documents/markdown-processor.js.map +1 -0
- package/dist/core/documents/sequence-manager.d.ts +107 -0
- package/dist/core/documents/sequence-manager.d.ts.map +1 -0
- package/dist/core/documents/sequence-manager.js +246 -0
- package/dist/core/documents/sequence-manager.js.map +1 -0
- package/dist/core/documents/template-engine.d.ts +101 -0
- package/dist/core/documents/template-engine.d.ts.map +1 -0
- package/dist/core/documents/template-engine.js +440 -0
- package/dist/core/documents/template-engine.js.map +1 -0
- package/dist/core/handoff-quality.d.ts +164 -0
- package/dist/core/handoff-quality.d.ts.map +1 -0
- package/dist/core/handoff-quality.js +590 -0
- package/dist/core/handoff-quality.js.map +1 -0
- package/dist/core/platform/hook-adapter.d.ts +109 -0
- package/dist/core/platform/hook-adapter.d.ts.map +1 -0
- package/dist/core/platform/hook-adapter.js +527 -0
- package/dist/core/platform/hook-adapter.js.map +1 -0
- package/dist/core/platform/hook-migration.d.ts +73 -0
- package/dist/core/platform/hook-migration.d.ts.map +1 -0
- package/dist/core/platform/hook-migration.js +339 -0
- package/dist/core/platform/hook-migration.js.map +1 -0
- package/dist/core/platform/hook-migrator.d.ts +49 -0
- package/dist/core/platform/hook-migrator.d.ts.map +1 -0
- package/dist/core/platform/hook-migrator.js +305 -0
- package/dist/core/platform/hook-migrator.js.map +1 -0
- package/dist/core/platform/hook-templates.d.ts +60 -0
- package/dist/core/platform/hook-templates.d.ts.map +1 -0
- package/dist/core/platform/hook-templates.js +352 -0
- package/dist/core/platform/hook-templates.js.map +1 -0
- package/dist/core/platform/index.d.ts +82 -0
- package/dist/core/platform/index.d.ts.map +1 -0
- package/dist/core/platform/index.js +173 -0
- package/dist/core/platform/index.js.map +1 -0
- package/dist/core/platform/path-normalizer.d.ts +117 -0
- package/dist/core/platform/path-normalizer.d.ts.map +1 -0
- package/dist/core/platform/path-normalizer.js +333 -0
- package/dist/core/platform/path-normalizer.js.map +1 -0
- package/dist/core/platform/path-resolver.d.ts +120 -0
- package/dist/core/platform/path-resolver.d.ts.map +1 -0
- package/dist/core/platform/path-resolver.js +339 -0
- package/dist/core/platform/path-resolver.js.map +1 -0
- package/dist/core/platform/platform-adapter.d.ts +101 -0
- package/dist/core/platform/platform-adapter.d.ts.map +1 -0
- package/dist/core/platform/platform-adapter.js +243 -0
- package/dist/core/platform/platform-adapter.js.map +1 -0
- package/dist/core/platform/platform-detector.d.ts +122 -0
- package/dist/core/platform/platform-detector.d.ts.map +1 -0
- package/dist/core/platform/platform-detector.js +318 -0
- package/dist/core/platform/platform-detector.js.map +1 -0
- package/dist/core/platform/platform-templates.d.ts +62 -0
- package/dist/core/platform/platform-templates.d.ts.map +1 -0
- package/dist/core/platform/platform-templates.js +364 -0
- package/dist/core/platform/platform-templates.js.map +1 -0
- package/dist/core/platform/types.d.ts +54 -0
- package/dist/core/platform/types.d.ts.map +1 -0
- package/dist/core/platform/types.js +12 -0
- package/dist/core/platform/types.js.map +1 -0
- package/dist/core/polyglot-example.d.ts +115 -0
- package/dist/core/polyglot-example.d.ts.map +1 -0
- package/dist/core/polyglot-example.js +341 -0
- package/dist/core/polyglot-example.js.map +1 -0
- package/dist/core/pressure-monitor.d.ts +76 -0
- package/dist/core/pressure-monitor.d.ts.map +1 -0
- package/dist/core/pressure-monitor.js +156 -0
- package/dist/core/pressure-monitor.js.map +1 -0
- package/dist/core/reflection-pattern.d.ts +99 -0
- package/dist/core/reflection-pattern.d.ts.map +1 -0
- package/dist/core/reflection-pattern.js +294 -0
- package/dist/core/reflection-pattern.js.map +1 -0
- package/dist/core/session-log-manager.d.ts +83 -0
- package/dist/core/session-log-manager.d.ts.map +1 -0
- package/dist/core/session-log-manager.js +288 -0
- package/dist/core/session-log-manager.js.map +1 -0
- package/dist/core/simple-pipeline-base.d.ts +130 -0
- package/dist/core/simple-pipeline-base.d.ts.map +1 -0
- package/dist/core/simple-pipeline-base.js +240 -0
- package/dist/core/simple-pipeline-base.js.map +1 -0
- package/dist/core/simple-pipeline.d.ts +70 -0
- package/dist/core/simple-pipeline.d.ts.map +1 -0
- package/dist/core/simple-pipeline.js +241 -0
- package/dist/core/simple-pipeline.js.map +1 -0
- package/dist/core/utils/paths.d.ts +50 -0
- package/dist/core/utils/paths.d.ts.map +1 -0
- package/dist/core/utils/paths.js +75 -0
- package/dist/core/utils/paths.js.map +1 -0
- package/dist/core/validators/command-argument-validator.d.ts +102 -0
- package/dist/core/validators/command-argument-validator.d.ts.map +1 -0
- package/dist/core/validators/command-argument-validator.js +377 -0
- package/dist/core/validators/command-argument-validator.js.map +1 -0
- package/dist/core/validators/config-validator.d.ts +111 -0
- package/dist/core/validators/config-validator.d.ts.map +1 -0
- package/dist/core/validators/config-validator.js +433 -0
- package/dist/core/validators/config-validator.js.map +1 -0
- package/dist/core/validators/environment-validator.d.ts +138 -0
- package/dist/core/validators/environment-validator.d.ts.map +1 -0
- package/dist/core/validators/environment-validator.js +516 -0
- package/dist/core/validators/environment-validator.js.map +1 -0
- package/dist/core/validators/git-validator.d.ts +100 -0
- package/dist/core/validators/git-validator.d.ts.map +1 -0
- package/dist/core/validators/git-validator.js +288 -0
- package/dist/core/validators/git-validator.js.map +1 -0
- package/dist/core/validators/git-validator.test.d.ts +12 -0
- package/dist/core/validators/git-validator.test.d.ts.map +1 -0
- package/dist/core/validators/git-validator.test.js +40 -0
- package/dist/core/validators/git-validator.test.js.map +1 -0
- package/dist/core/validators/index.d.ts +90 -0
- package/dist/core/validators/index.d.ts.map +1 -0
- package/dist/core/validators/index.js +166 -0
- package/dist/core/validators/index.js.map +1 -0
- package/dist/core/validators/input-validator.d.ts +117 -0
- package/dist/core/validators/input-validator.d.ts.map +1 -0
- package/dist/core/validators/input-validator.js +368 -0
- package/dist/core/validators/input-validator.js.map +1 -0
- package/dist/core/validators/temp_index.d.ts +56 -0
- package/dist/core/validators/temp_index.d.ts.map +1 -0
- package/dist/core/validators/temp_index.js +94 -0
- package/dist/core/validators/temp_index.js.map +1 -0
- package/dist/core/validators/validation-error-handler.d.ts +107 -0
- package/dist/core/validators/validation-error-handler.d.ts.map +1 -0
- package/dist/core/validators/validation-error-handler.js +379 -0
- package/dist/core/validators/validation-error-handler.js.map +1 -0
- package/dist/core/validators/validation-orchestrator.d.ts +128 -0
- package/dist/core/validators/validation-orchestrator.d.ts.map +1 -0
- package/dist/core/validators/validation-orchestrator.js +301 -0
- package/dist/core/validators/validation-orchestrator.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +316 -0
- package/dist/index.js.map +1 -0
- package/dist/services/active-context-manager.d.ts +118 -0
- package/dist/services/active-context-manager.d.ts.map +1 -0
- package/dist/services/active-context-manager.js +435 -0
- package/dist/services/active-context-manager.js.map +1 -0
- package/dist/services/ai-service.d.ts +71 -0
- package/dist/services/ai-service.d.ts.map +1 -0
- package/dist/services/ai-service.js +329 -0
- package/dist/services/ai-service.js.map +1 -0
- package/dist/services/context-search.d.ts +98 -0
- package/dist/services/context-search.d.ts.map +1 -0
- package/dist/services/context-search.js +289 -0
- package/dist/services/context-search.js.map +1 -0
- package/dist/services/insight-extractor.d.ts +69 -0
- package/dist/services/insight-extractor.d.ts.map +1 -0
- package/dist/services/insight-extractor.js +343 -0
- package/dist/services/insight-extractor.js.map +1 -0
- package/dist/services/insight-quality-controller.d.ts +167 -0
- package/dist/services/insight-quality-controller.d.ts.map +1 -0
- package/dist/services/insight-quality-controller.js +543 -0
- package/dist/services/insight-quality-controller.js.map +1 -0
- package/dist/services/module-generator.d.ts +108 -0
- package/dist/services/module-generator.d.ts.map +1 -0
- package/dist/services/module-generator.js +561 -0
- package/dist/services/module-generator.js.map +1 -0
- package/dist/services/statusline-tracker.d.ts +139 -0
- package/dist/services/statusline-tracker.d.ts.map +1 -0
- package/dist/services/statusline-tracker.js +360 -0
- package/dist/services/statusline-tracker.js.map +1 -0
- package/dist/templates/ai-instructions-template.d.ts +39 -0
- package/dist/templates/ai-instructions-template.d.ts.map +1 -0
- package/dist/templates/ai-instructions-template.js +222 -0
- package/dist/templates/ai-instructions-template.js.map +1 -0
- package/dist/types/config.d.ts +128 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +49 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/documents.d.ts +87 -0
- package/dist/types/documents.d.ts.map +1 -0
- package/dist/types/documents.js +12 -0
- package/dist/types/documents.js.map +1 -0
- package/dist/types/session-log.d.ts +83 -0
- package/dist/types/session-log.d.ts.map +1 -0
- package/dist/types/session-log.js +12 -0
- package/dist/types/session-log.js.map +1 -0
- package/dist/types/session.d.ts +257 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +12 -0
- package/dist/types/session.js.map +1 -0
- package/dist/utils/ai-templates.d.ts +98 -0
- package/dist/utils/ai-templates.d.ts.map +1 -0
- package/dist/utils/ai-templates.js +179 -0
- package/dist/utils/ai-templates.js.map +1 -0
- package/dist/utils/ginko-root.d.ts +51 -0
- package/dist/utils/ginko-root.d.ts.map +1 -0
- package/dist/utils/ginko-root.js +96 -0
- package/dist/utils/ginko-root.js.map +1 -0
- package/dist/utils/helpers.d.ts +19 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +107 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/progressive-learning.d.ts +42 -0
- package/dist/utils/progressive-learning.d.ts.map +1 -0
- package/dist/utils/progressive-learning.js +248 -0
- package/dist/utils/progressive-learning.js.map +1 -0
- package/dist/utils/session-collector.d.ts +81 -0
- package/dist/utils/session-collector.d.ts.map +1 -0
- package/dist/utils/session-collector.js +387 -0
- package/dist/utils/session-collector.js.map +1 -0
- package/dist/utils/session-logger.d.ts +125 -0
- package/dist/utils/session-logger.d.ts.map +1 -0
- package/dist/utils/session-logger.js +359 -0
- package/dist/utils/session-logger.js.map +1 -0
- package/dist/utils/session-synthesizer.d.ts +36 -0
- package/dist/utils/session-synthesizer.d.ts.map +1 -0
- package/dist/utils/session-synthesizer.js +239 -0
- package/dist/utils/session-synthesizer.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import ora from 'ora';
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
export async function uninstallCopilotCommand(options = {}) {
|
|
7
|
+
const spinner = ora('Checking GitHub Copilot integration...').start();
|
|
8
|
+
try {
|
|
9
|
+
const projectRoot = process.cwd();
|
|
10
|
+
const copilotInstructionsPath = path.join(projectRoot, '.github', 'copilot-instructions.md');
|
|
11
|
+
const vscodeSettingsPath = path.join(projectRoot, '.vscode', 'settings.json');
|
|
12
|
+
const githubDir = path.join(projectRoot, '.github');
|
|
13
|
+
const vscodeDir = path.join(projectRoot, '.vscode');
|
|
14
|
+
// Check what exists
|
|
15
|
+
const hasInstructions = await fs.pathExists(copilotInstructionsPath);
|
|
16
|
+
const hasSettings = await fs.pathExists(vscodeSettingsPath);
|
|
17
|
+
if (!hasInstructions && !hasSettings) {
|
|
18
|
+
spinner.info(chalk.yellow('No GitHub Copilot integration found'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
spinner.stop();
|
|
22
|
+
// Show what will be removed
|
|
23
|
+
console.log(chalk.cyan('\n📋 GitHub Copilot integration found:'));
|
|
24
|
+
if (hasInstructions) {
|
|
25
|
+
console.log(' • .github/copilot-instructions.md');
|
|
26
|
+
}
|
|
27
|
+
if (hasSettings) {
|
|
28
|
+
console.log(' • .vscode/settings.json (Copilot settings)');
|
|
29
|
+
}
|
|
30
|
+
// Confirm removal unless forced
|
|
31
|
+
if (!options.force) {
|
|
32
|
+
console.log(chalk.yellow('\n⚠️ This will remove GitHub Copilot configuration'));
|
|
33
|
+
console.log(chalk.dim(' (Your Ginko sessions and context will be preserved)'));
|
|
34
|
+
const shouldContinue = await promptYesNo('\nContinue with uninstall?');
|
|
35
|
+
if (!shouldContinue) {
|
|
36
|
+
console.log(chalk.gray('Uninstall cancelled'));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
spinner.start('Removing GitHub Copilot integration...');
|
|
41
|
+
// Remove copilot-instructions.md
|
|
42
|
+
if (hasInstructions) {
|
|
43
|
+
await fs.remove(copilotInstructionsPath);
|
|
44
|
+
// Remove .github directory if empty
|
|
45
|
+
try {
|
|
46
|
+
const githubContents = await fs.readdir(githubDir);
|
|
47
|
+
if (githubContents.length === 0) {
|
|
48
|
+
await fs.remove(githubDir);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
// Directory might not exist or have other files
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Clean VS Code settings
|
|
56
|
+
if (hasSettings) {
|
|
57
|
+
try {
|
|
58
|
+
const settingsContent = await fs.readFile(vscodeSettingsPath, 'utf8');
|
|
59
|
+
const settings = JSON.parse(settingsContent);
|
|
60
|
+
// Remove Copilot-specific settings
|
|
61
|
+
const copilotKeys = [
|
|
62
|
+
'github.copilot.enable',
|
|
63
|
+
'github.copilot.editor.enableAutoCompletions',
|
|
64
|
+
'github.copilot.editor.enableCodeActions',
|
|
65
|
+
'github.copilot.chat.welcomeMessage',
|
|
66
|
+
'github.copilot.chat.localeOverride',
|
|
67
|
+
'github.copilot.advanced'
|
|
68
|
+
];
|
|
69
|
+
copilotKeys.forEach(key => delete settings[key]);
|
|
70
|
+
// Check if settings is now empty
|
|
71
|
+
if (Object.keys(settings).length === 0) {
|
|
72
|
+
// Remove the file entirely
|
|
73
|
+
await fs.remove(vscodeSettingsPath);
|
|
74
|
+
// Remove .vscode directory if empty
|
|
75
|
+
try {
|
|
76
|
+
const vscodeContents = await fs.readdir(vscodeDir);
|
|
77
|
+
if (vscodeContents.length === 0) {
|
|
78
|
+
await fs.remove(vscodeDir);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
// Directory might not exist or have other files
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Write back cleaned settings
|
|
87
|
+
await fs.writeFile(vscodeSettingsPath, JSON.stringify(settings, null, 2), 'utf8');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
console.warn(chalk.yellow('\n⚠ Could not clean VS Code settings - file may be malformed'));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
spinner.succeed(chalk.green('✓ GitHub Copilot integration removed'));
|
|
95
|
+
// Handle git revert if requested
|
|
96
|
+
if (options.revertCommit) {
|
|
97
|
+
spinner.start('Looking for Copilot integration commit...');
|
|
98
|
+
try {
|
|
99
|
+
// Find the most recent commit that added Copilot configuration
|
|
100
|
+
const gitLog = execSync(`git log --grep="GitHub Copilot" --grep="copilot" -i --pretty=format:"%H %s" -n 10`, { encoding: 'utf8' });
|
|
101
|
+
if (gitLog) {
|
|
102
|
+
const commits = gitLog.split('\n').filter(Boolean);
|
|
103
|
+
const copilotCommit = commits.find(commit => commit.toLowerCase().includes('copilot') &&
|
|
104
|
+
commit.toLowerCase().includes('ginko'));
|
|
105
|
+
if (copilotCommit) {
|
|
106
|
+
const [hash, ...messageParts] = copilotCommit.split(' ');
|
|
107
|
+
const message = messageParts.join(' ');
|
|
108
|
+
spinner.stop();
|
|
109
|
+
console.log(chalk.cyan('\n📝 Found Copilot integration commit:'));
|
|
110
|
+
console.log(` ${chalk.dim(hash.substring(0, 7))} ${message}`);
|
|
111
|
+
const shouldRevert = await promptYesNo('\nRevert this commit?');
|
|
112
|
+
if (shouldRevert) {
|
|
113
|
+
spinner.start('Reverting commit...');
|
|
114
|
+
execSync(`git revert ${hash} --no-edit`, { stdio: 'pipe' });
|
|
115
|
+
spinner.succeed(chalk.green('✓ Commit reverted'));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
spinner.info(chalk.yellow('No Copilot integration commit found'));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
spinner.warn(chalk.yellow('Could not search git history'));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Summary
|
|
128
|
+
console.log(chalk.green('\n✨ GitHub Copilot integration has been removed'));
|
|
129
|
+
console.log(chalk.dim('Your Ginko sessions and context have been preserved'));
|
|
130
|
+
console.log(chalk.dim('Run "ginko init-copilot" to set up again anytime'));
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
spinner.fail(chalk.red('Failed to uninstall GitHub Copilot integration'));
|
|
134
|
+
console.error(error);
|
|
135
|
+
process.exit(1);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
async function promptYesNo(question) {
|
|
139
|
+
// Simple implementation - in production would use inquirer or similar
|
|
140
|
+
console.log(chalk.cyan(question + ' (y/n)'));
|
|
141
|
+
return true; // Default to yes for now
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=uninstall-copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-copilot.js","sourceRoot":"","sources":["../../src/commands/uninstall-copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-cursor.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall-cursor.ts"],"names":[],"mappings":"AAMA,wBAAsB,sBAAsB,CAAC,OAAO,GAAE;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,iBA0IL"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import ora from 'ora';
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
export async function uninstallCursorCommand(options = {}) {
|
|
7
|
+
const spinner = ora('Preparing Cursor uninstall...').start();
|
|
8
|
+
try {
|
|
9
|
+
const projectRoot = process.cwd();
|
|
10
|
+
// Check if we're in a git repo
|
|
11
|
+
let isGitRepo = false;
|
|
12
|
+
try {
|
|
13
|
+
execSync('git status', { cwd: projectRoot, stdio: 'pipe' });
|
|
14
|
+
isGitRepo = true;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Not a git repo
|
|
18
|
+
}
|
|
19
|
+
// Files to remove
|
|
20
|
+
const filesToRemove = [
|
|
21
|
+
path.join(projectRoot, '.cursorrules'),
|
|
22
|
+
path.join(projectRoot, '.ginko', 'generated')
|
|
23
|
+
];
|
|
24
|
+
// Check what exists
|
|
25
|
+
const existingFiles = filesToRemove.filter(file => fs.existsSync(file));
|
|
26
|
+
if (existingFiles.length === 0) {
|
|
27
|
+
spinner.warn('No Cursor integration files found to remove');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// Show what will be removed
|
|
31
|
+
console.log('\n' + chalk.bold('🗑️ Files to remove:'));
|
|
32
|
+
existingFiles.forEach(file => {
|
|
33
|
+
console.log(chalk.red(' -') + ` ${path.relative(projectRoot, file)}`);
|
|
34
|
+
});
|
|
35
|
+
// Prompt for confirmation unless --force
|
|
36
|
+
if (!options.force) {
|
|
37
|
+
const { createInterface } = await import('readline');
|
|
38
|
+
const answer = await new Promise((resolve) => {
|
|
39
|
+
const rl = createInterface({
|
|
40
|
+
input: process.stdin,
|
|
41
|
+
output: process.stdout
|
|
42
|
+
});
|
|
43
|
+
rl.question('\nAre you sure you want to remove Cursor integration? (y/N): ', (answer) => {
|
|
44
|
+
rl.close();
|
|
45
|
+
resolve(answer.toLowerCase());
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
if (answer !== 'y' && answer !== 'yes') {
|
|
49
|
+
spinner.info('Uninstall cancelled');
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Remove files
|
|
54
|
+
spinner.text = 'Removing Cursor integration files...';
|
|
55
|
+
for (const file of existingFiles) {
|
|
56
|
+
if (fs.existsSync(file)) {
|
|
57
|
+
if (fs.lstatSync(file).isDirectory()) {
|
|
58
|
+
await fs.remove(file);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
await fs.unlink(file);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Optionally revert the git commit
|
|
66
|
+
if (options.revertCommit && isGitRepo) {
|
|
67
|
+
try {
|
|
68
|
+
spinner.text = 'Reverting Cursor integration commit...';
|
|
69
|
+
// Find the Cursor integration commit
|
|
70
|
+
const logOutput = execSync('git log --oneline --grep="feat: add Ginko Cursor integration" -n 1', { cwd: projectRoot, encoding: 'utf8', stdio: 'pipe' }).toString();
|
|
71
|
+
if (logOutput.trim()) {
|
|
72
|
+
const commitHash = logOutput.split(' ')[0];
|
|
73
|
+
execSync(`git revert ${commitHash} --no-edit`, {
|
|
74
|
+
cwd: projectRoot,
|
|
75
|
+
stdio: 'pipe'
|
|
76
|
+
});
|
|
77
|
+
spinner.succeed('Git commit reverted successfully');
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
spinner.warn('No Cursor integration commit found to revert');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (gitError) {
|
|
84
|
+
spinner.warn('Failed to revert git commit (files removed manually)');
|
|
85
|
+
console.log(chalk.yellow('You may need to manually revert or reset the commit'));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Clean up .gitignore if it only contains Ginko entries
|
|
89
|
+
const gitignorePath = path.join(projectRoot, '.gitignore');
|
|
90
|
+
if (fs.existsSync(gitignorePath)) {
|
|
91
|
+
const gitignore = await fs.readFile(gitignorePath, 'utf8');
|
|
92
|
+
const ginkoLines = gitignore.split('\n').filter(line => line.includes('.ginko/config.json') || line.includes('Ginko local config'));
|
|
93
|
+
if (ginkoLines.length > 0) {
|
|
94
|
+
const cleanedGitignore = gitignore
|
|
95
|
+
.split('\n')
|
|
96
|
+
.filter(line => !line.includes('.ginko/config.json') && !line.includes('Ginko local config'))
|
|
97
|
+
.join('\n')
|
|
98
|
+
.replace(/\n\n+/g, '\n\n') // Remove extra blank lines
|
|
99
|
+
.trim();
|
|
100
|
+
if (cleanedGitignore) {
|
|
101
|
+
await fs.writeFile(gitignorePath, cleanedGitignore + '\n', 'utf8');
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
await fs.unlink(gitignorePath);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
spinner.succeed('Cursor integration uninstalled successfully!');
|
|
109
|
+
console.log('\n' + chalk.bold('📋 What was removed:'));
|
|
110
|
+
existingFiles.forEach(file => {
|
|
111
|
+
console.log(chalk.red(' ✓') + ` ${path.relative(projectRoot, file)}`);
|
|
112
|
+
});
|
|
113
|
+
if (options.revertCommit && isGitRepo) {
|
|
114
|
+
console.log(chalk.red(' ✓') + ' Git commit reverted');
|
|
115
|
+
}
|
|
116
|
+
console.log('\n' + chalk.dim('Note: Your .ginko sessions and context are preserved unless you manually remove them.'));
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
spinner.fail('Failed to uninstall Cursor integration');
|
|
120
|
+
console.error(chalk.red(error?.message || error));
|
|
121
|
+
process.exitCode = 1;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=uninstall-cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-cursor.js","sourceRoot":"","sources":["../../src/commands/uninstall-cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-08-28
|
|
5
|
+
* @tags: [cli, vibecheck, ai-enhanced, recalibration]
|
|
6
|
+
* @related: [vibecheck.ts, ../utils/ai-templates.ts]
|
|
7
|
+
* @priority: medium
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [chalk, fs-extra, simple-git]
|
|
10
|
+
*/
|
|
11
|
+
interface VibecheckOptions {
|
|
12
|
+
concern?: string;
|
|
13
|
+
store?: boolean;
|
|
14
|
+
id?: string;
|
|
15
|
+
content?: string;
|
|
16
|
+
ai?: boolean;
|
|
17
|
+
quick?: boolean;
|
|
18
|
+
verbose?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* AI-enhanced vibecheck command for intelligent recalibration
|
|
22
|
+
*/
|
|
23
|
+
export declare function vibecheckAiCommand(concern: string | undefined, options: VibecheckOptions): Promise<void>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=vibecheck-ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibecheck-ai.d.ts","sourceRoot":"","sources":["../../src/commands/vibecheck-ai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,gBAAgB,iBAwF9F"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-08-28
|
|
5
|
+
* @tags: [cli, vibecheck, ai-enhanced, recalibration]
|
|
6
|
+
* @related: [vibecheck.ts, ../utils/ai-templates.ts]
|
|
7
|
+
* @priority: medium
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [chalk, fs-extra, simple-git]
|
|
10
|
+
*/
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import fs from 'fs-extra';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import simpleGit from 'simple-git';
|
|
15
|
+
import { getGinkoDir } from '../utils/helpers.js';
|
|
16
|
+
import { generateCompletionPrompt } from '../utils/ai-templates.js';
|
|
17
|
+
/**
|
|
18
|
+
* AI-enhanced vibecheck command for intelligent recalibration
|
|
19
|
+
*/
|
|
20
|
+
export async function vibecheckAiCommand(concern, options) {
|
|
21
|
+
// Phase 2: Store AI-enriched vibecheck analysis
|
|
22
|
+
if (options.store && options.id && options.content) {
|
|
23
|
+
return storeEnrichedVibecheck(options.id, options.content);
|
|
24
|
+
}
|
|
25
|
+
// Phase 1: Generate vibecheck template
|
|
26
|
+
try {
|
|
27
|
+
const ginkoDir = await getGinkoDir();
|
|
28
|
+
const git = simpleGit();
|
|
29
|
+
const vibecheckId = `vibecheck-${Date.now()}`;
|
|
30
|
+
// Quick mode: basic vibecheck without AI
|
|
31
|
+
if (options.quick || options.ai === false) {
|
|
32
|
+
// Fall back to original vibecheck behavior
|
|
33
|
+
const { vibecheckCommand } = await import('./vibecheck.js');
|
|
34
|
+
return vibecheckCommand(concern);
|
|
35
|
+
}
|
|
36
|
+
// Gather context for AI analysis
|
|
37
|
+
const status = await git.status();
|
|
38
|
+
const log = await git.log({ maxCount: 20 });
|
|
39
|
+
const diff = await git.diff(['--stat']);
|
|
40
|
+
// Load current session
|
|
41
|
+
const sessionDir = path.join(ginkoDir, 'sessions');
|
|
42
|
+
const userDirs = await fs.readdir(sessionDir).catch(() => []);
|
|
43
|
+
let currentHandoff = null;
|
|
44
|
+
let currentMode = 'Unknown';
|
|
45
|
+
let lastActivity = 'No recent activity';
|
|
46
|
+
for (const userDir of userDirs) {
|
|
47
|
+
const handoffPath = path.join(sessionDir, userDir, 'current.md');
|
|
48
|
+
if (await fs.pathExists(handoffPath)) {
|
|
49
|
+
currentHandoff = await fs.readFile(handoffPath, 'utf8');
|
|
50
|
+
const modeMatch = currentHandoff.match(/mode: ([^\n]+)/);
|
|
51
|
+
const summaryMatch = currentHandoff.match(/## 📊 Session Summary\n([^\n]+)/);
|
|
52
|
+
if (modeMatch)
|
|
53
|
+
currentMode = modeMatch[1];
|
|
54
|
+
if (summaryMatch)
|
|
55
|
+
lastActivity = summaryMatch[1];
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Analyze recent work patterns
|
|
60
|
+
const recentFiles = [...status.modified, ...status.staged].slice(0, 10);
|
|
61
|
+
const commitFrequency = analyzeCommitFrequency([...log.all]);
|
|
62
|
+
const workPattern = detectWorkPattern([...log.all], status);
|
|
63
|
+
// Generate AI vibecheck template
|
|
64
|
+
const template = generateVibecheckTemplate({
|
|
65
|
+
concern,
|
|
66
|
+
currentMode,
|
|
67
|
+
lastActivity,
|
|
68
|
+
recentFiles,
|
|
69
|
+
commitFrequency,
|
|
70
|
+
workPattern,
|
|
71
|
+
status,
|
|
72
|
+
vibecheckId
|
|
73
|
+
});
|
|
74
|
+
if (options.verbose) {
|
|
75
|
+
console.log(chalk.dim('Generating vibecheck analysis...'));
|
|
76
|
+
}
|
|
77
|
+
// Output template and prompt for AI (to stdout to avoid stderr)
|
|
78
|
+
process.stdout.write(chalk.yellow('\n🎯 AI-Enhanced Vibecheck\n\n'));
|
|
79
|
+
process.stdout.write(template.content + '\n');
|
|
80
|
+
process.stdout.write(chalk.dim('---\n'));
|
|
81
|
+
process.stdout.write(template.prompt + '\n');
|
|
82
|
+
process.stdout.write(chalk.dim(`\nWhen complete, call:\nginko vibecheck --store --id=${vibecheckId} --content="[enriched analysis]"\n\n`));
|
|
83
|
+
// Store template temporarily
|
|
84
|
+
const tempDir = path.join(ginkoDir, '.temp');
|
|
85
|
+
await fs.ensureDir(tempDir);
|
|
86
|
+
const tempFile = path.join(tempDir, `${vibecheckId}.tmp`);
|
|
87
|
+
await fs.writeFile(tempFile, template.content);
|
|
88
|
+
// Ensure stdout is flushed before exit
|
|
89
|
+
await new Promise(resolve => process.stdout.write('', resolve));
|
|
90
|
+
// Exit with code 0 to avoid stderr interpretation
|
|
91
|
+
// The AI prompt is expected behavior, not an error
|
|
92
|
+
process.exit(0);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Phase 2: Store AI-enriched vibecheck analysis
|
|
101
|
+
*/
|
|
102
|
+
async function storeEnrichedVibecheck(id, content) {
|
|
103
|
+
try {
|
|
104
|
+
const ginkoDir = await getGinkoDir();
|
|
105
|
+
const vibecheckDir = path.join(ginkoDir, 'sessions', 'vibechecks');
|
|
106
|
+
await fs.ensureDir(vibecheckDir);
|
|
107
|
+
// Save enriched vibecheck
|
|
108
|
+
const timestamp = new Date().toISOString().split('T')[0];
|
|
109
|
+
const vibecheckFile = path.join(vibecheckDir, `${timestamp}-${id}.md`);
|
|
110
|
+
await fs.writeFile(vibecheckFile, content);
|
|
111
|
+
// Display key insights from AI analysis
|
|
112
|
+
console.log(chalk.yellow('\n🎯 Vibecheck Analysis Complete\n'));
|
|
113
|
+
// Extract and display key sections
|
|
114
|
+
const alignmentMatch = content.match(/## 🎯 Alignment Assessment\n([\s\S]*?)##/);
|
|
115
|
+
const recommendMatch = content.match(/## 🚀 Recommended Actions\n([\s\S]*?)##/);
|
|
116
|
+
if (alignmentMatch) {
|
|
117
|
+
console.log(chalk.bold('Alignment Assessment:'));
|
|
118
|
+
console.log(alignmentMatch[1].trim());
|
|
119
|
+
}
|
|
120
|
+
if (recommendMatch) {
|
|
121
|
+
console.log(chalk.bold('\nRecommended Actions:'));
|
|
122
|
+
console.log(recommendMatch[1].trim());
|
|
123
|
+
}
|
|
124
|
+
// Clean up temp file
|
|
125
|
+
const tempFile = path.join(ginkoDir, '.temp', `${id}.tmp`);
|
|
126
|
+
await fs.remove(tempFile).catch(() => { });
|
|
127
|
+
console.log(chalk.dim('\nVibecheck saved to .ginko/sessions/vibechecks/'));
|
|
128
|
+
console.log(chalk.green('✅ Ready to realign and continue'));
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
console.error(chalk.red('Error storing vibecheck:'), error instanceof Error ? error.message : String(error));
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Generate vibecheck template for AI enhancement
|
|
137
|
+
*/
|
|
138
|
+
function generateVibecheckTemplate(context) {
|
|
139
|
+
const timestamp = new Date().toISOString();
|
|
140
|
+
const content = `---
|
|
141
|
+
type: vibecheck
|
|
142
|
+
timestamp: ${timestamp}
|
|
143
|
+
concern: ${context.concern || 'General alignment check'}
|
|
144
|
+
mode: ${context.currentMode}
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
# 🎯 Vibecheck Analysis
|
|
148
|
+
|
|
149
|
+
## 📊 Current Situation
|
|
150
|
+
- **Work Mode**: ${context.currentMode}
|
|
151
|
+
- **Last Activity**: ${context.lastActivity}
|
|
152
|
+
- **Modified Files**: ${context.recentFiles.length}
|
|
153
|
+
- **Commit Frequency**: ${context.commitFrequency}
|
|
154
|
+
- **Work Pattern**: ${context.workPattern}
|
|
155
|
+
|
|
156
|
+
## 💭 Concern
|
|
157
|
+
${context.concern || '[AI: Based on the work patterns and current state, identify potential concerns or areas needing recalibration]'}
|
|
158
|
+
|
|
159
|
+
## 🎯 Alignment Assessment
|
|
160
|
+
[AI: Analyze whether the current work aligns with stated goals and identify any drift or misalignment]
|
|
161
|
+
|
|
162
|
+
### Are we solving the right problem?
|
|
163
|
+
[AI: Assess based on recent commits and changes]
|
|
164
|
+
|
|
165
|
+
### Is this the simplest approach?
|
|
166
|
+
[AI: Evaluate complexity based on files modified and patterns observed]
|
|
167
|
+
|
|
168
|
+
### Have requirements changed?
|
|
169
|
+
[AI: Look for signs of scope creep or pivoting in recent work]
|
|
170
|
+
|
|
171
|
+
## 🔍 Pattern Analysis
|
|
172
|
+
[AI: Identify patterns in the work that might indicate issues:
|
|
173
|
+
- Repeated edits to same files (thrashing)
|
|
174
|
+
- Long gaps between commits (stuck)
|
|
175
|
+
- Many small commits (uncertainty)
|
|
176
|
+
- Touching many unrelated files (lack of focus)]
|
|
177
|
+
|
|
178
|
+
## 💡 Root Cause Analysis
|
|
179
|
+
[AI: Based on the concern and patterns, identify likely root causes]
|
|
180
|
+
|
|
181
|
+
## 🚀 Recommended Actions
|
|
182
|
+
[AI: Provide 3-5 specific, actionable recommendations to address the concern and realign]
|
|
183
|
+
|
|
184
|
+
1. Immediate action to unblock
|
|
185
|
+
2. Medium-term adjustment
|
|
186
|
+
3. Process improvement
|
|
187
|
+
|
|
188
|
+
## 🎬 Next Single Step
|
|
189
|
+
[AI: The ONE most important thing to do right now to move forward]
|
|
190
|
+
|
|
191
|
+
## 🧠 Mental Model Adjustment
|
|
192
|
+
[AI: Suggest how to reframe the problem or approach for better clarity]
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
Vibecheck complete. Ready to realign.`;
|
|
196
|
+
const enhancementContext = {
|
|
197
|
+
command: 'vibecheck',
|
|
198
|
+
id: context.vibecheckId,
|
|
199
|
+
data: {
|
|
200
|
+
concern: context.concern,
|
|
201
|
+
mode: context.currentMode,
|
|
202
|
+
files: context.recentFiles,
|
|
203
|
+
status: context.status,
|
|
204
|
+
pattern: context.workPattern
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
const prompt = generateCompletionPrompt(enhancementContext, content);
|
|
208
|
+
return { content, prompt };
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Analyze commit frequency patterns
|
|
212
|
+
*/
|
|
213
|
+
function analyzeCommitFrequency(commits) {
|
|
214
|
+
if (commits.length < 2)
|
|
215
|
+
return 'Insufficient data';
|
|
216
|
+
const times = commits.map(c => new Date(c.date).getTime());
|
|
217
|
+
const gaps = [];
|
|
218
|
+
for (let i = 1; i < times.length; i++) {
|
|
219
|
+
gaps.push(times[i - 1] - times[i]);
|
|
220
|
+
}
|
|
221
|
+
const avgGap = gaps.reduce((a, b) => a + b, 0) / gaps.length;
|
|
222
|
+
const hours = avgGap / (1000 * 60 * 60);
|
|
223
|
+
if (hours < 1)
|
|
224
|
+
return 'Very frequent (< 1hr between commits)';
|
|
225
|
+
if (hours < 4)
|
|
226
|
+
return 'Frequent (1-4hr between commits)';
|
|
227
|
+
if (hours < 24)
|
|
228
|
+
return 'Regular (same day commits)';
|
|
229
|
+
if (hours < 72)
|
|
230
|
+
return 'Spaced (multi-day gaps)';
|
|
231
|
+
return 'Sparse (long gaps between commits)';
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Detect work patterns from commits and status
|
|
235
|
+
*/
|
|
236
|
+
function detectWorkPattern(commits, status) {
|
|
237
|
+
const recentMessages = commits.slice(0, 5).map(c => c.message.toLowerCase());
|
|
238
|
+
// Look for patterns in commit messages
|
|
239
|
+
const hasFixCommits = recentMessages.filter(m => m.includes('fix')).length > 2;
|
|
240
|
+
const hasWIPCommits = recentMessages.filter(m => m.includes('wip') || m.includes('progress')).length > 0;
|
|
241
|
+
const hasRefactoring = recentMessages.filter(m => m.includes('refactor')).length > 0;
|
|
242
|
+
const hasDocs = recentMessages.filter(m => m.includes('doc')).length > 0;
|
|
243
|
+
// Analyze file changes
|
|
244
|
+
const manyModified = status.modified.length > 10;
|
|
245
|
+
const hasConflicts = status.conflicted.length > 0;
|
|
246
|
+
if (hasConflicts)
|
|
247
|
+
return 'Merge conflicts present';
|
|
248
|
+
if (hasFixCommits)
|
|
249
|
+
return 'Bug fixing mode';
|
|
250
|
+
if (hasWIPCommits)
|
|
251
|
+
return 'Work in progress';
|
|
252
|
+
if (hasRefactoring)
|
|
253
|
+
return 'Refactoring';
|
|
254
|
+
if (hasDocs)
|
|
255
|
+
return 'Documentation';
|
|
256
|
+
if (manyModified)
|
|
257
|
+
return 'Large changes in progress';
|
|
258
|
+
return 'Regular development';
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=vibecheck-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibecheck-ai.js","sourceRoot":"","sources":["../../src/commands/vibecheck-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2025-08-28
|
|
5
|
+
* @tags: [cli, vibecheck, situational-awareness, pair-programming]
|
|
6
|
+
* @priority: critical
|
|
7
|
+
* @complexity: medium
|
|
8
|
+
* @dependencies: [chalk, fs-extra, simple-git]
|
|
9
|
+
*/
|
|
10
|
+
interface VibecheckOptions {
|
|
11
|
+
verbose?: boolean;
|
|
12
|
+
analyze?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Situationally-aware vibecheck - like a thoughtful pair programming partner
|
|
16
|
+
*/
|
|
17
|
+
export declare function vibecheckAwareCommand(concern?: string, options?: VibecheckOptions): Promise<void>;
|
|
18
|
+
export { vibecheckAwareCommand as vibecheckCommand };
|
|
19
|
+
//# sourceMappingURL=vibecheck-aware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibecheck-aware.d.ts","sourceRoot":"","sources":["../../src/commands/vibecheck-aware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAYD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,iBA2D3F;AAmTD,OAAO,EAAE,qBAAqB,IAAI,gBAAgB,EAAE,CAAC"}
|