@codemcp/workflows 5.3.0 → 6.0.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/README.md +91 -0
- package/package.json +78 -17
- package/packages/cli/dist/chunk-R5U7XKVJ.js +16 -0
- package/packages/cli/dist/chunk-RTDQR2KY.js +6718 -0
- package/packages/cli/dist/cli-CZ4FMSWR.js +1421 -0
- package/packages/cli/dist/dist-KZOA4GL5.js +65 -0
- package/packages/cli/dist/dist-UGVUJIDN.js +14475 -0
- package/packages/cli/dist/index.js +21 -0
- package/packages/cli/package.json +28 -0
- package/packages/cli/resources/agents/architect.yaml +61 -0
- package/packages/cli/resources/agents/business-analyst.yaml +60 -0
- package/packages/cli/resources/agents/developer.yaml +61 -0
- package/packages/cli/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
- package/packages/cli/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
- package/packages/cli/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
- package/packages/cli/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
- package/packages/cli/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
- package/packages/cli/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
- package/packages/cli/resources/templates/architecture/c4.md +224 -0
- package/packages/cli/resources/templates/architecture/freestyle.md +53 -0
- package/packages/cli/resources/templates/architecture/game.md +250 -0
- package/packages/cli/resources/templates/architecture/none.md +17 -0
- package/packages/cli/resources/templates/design/comprehensive.md +207 -0
- package/packages/cli/resources/templates/design/freestyle.md +37 -0
- package/packages/cli/resources/templates/design/game.md +66 -0
- package/packages/cli/resources/templates/design/none.md +17 -0
- package/packages/cli/resources/templates/requirements/ears.md +90 -0
- package/packages/cli/resources/templates/requirements/freestyle.md +42 -0
- package/packages/cli/resources/templates/requirements/game.md +162 -0
- package/packages/cli/resources/templates/requirements/none.md +17 -0
- package/packages/cli/resources/templates/skills/POWER.md +23 -0
- package/packages/cli/resources/templates/skills/SKILL.md +19 -0
- package/packages/cli/resources/workflows/adr.yaml +157 -0
- package/packages/cli/resources/workflows/big-bang-conversion.yaml +592 -0
- package/packages/cli/resources/workflows/boundary-testing.yaml +376 -0
- package/packages/cli/resources/workflows/bugfix.yaml +177 -0
- package/packages/cli/resources/workflows/business-analysis.yaml +597 -0
- package/packages/cli/resources/workflows/c4-analysis.yaml +471 -0
- package/packages/cli/resources/workflows/epcc.yaml +183 -0
- package/packages/cli/resources/workflows/game-beginner.yaml +434 -0
- package/packages/cli/resources/workflows/greenfield.yaml +201 -0
- package/packages/cli/resources/workflows/minor.yaml +138 -0
- package/packages/cli/resources/workflows/posts.yaml +193 -0
- package/packages/cli/resources/workflows/sdd-bugfix-crowd.yaml +608 -0
- package/packages/cli/resources/workflows/sdd-bugfix.yaml +381 -0
- package/packages/cli/resources/workflows/sdd-feature-crowd.yaml +713 -0
- package/packages/cli/resources/workflows/sdd-feature.yaml +471 -0
- package/packages/cli/resources/workflows/sdd-greenfield-crowd.yaml +336 -0
- package/packages/cli/resources/workflows/sdd-greenfield.yaml +463 -0
- package/packages/cli/resources/workflows/slides.yaml +237 -0
- package/packages/cli/resources/workflows/tdd.yaml +160 -0
- package/packages/cli/resources/workflows/waterfall.yaml +209 -0
- package/packages/core/dist/beads-integration.d.ts +50 -0
- package/packages/core/dist/beads-integration.js +387 -0
- package/packages/core/dist/beads-integration.js.map +1 -0
- package/packages/core/dist/beads-state-manager.d.ts +58 -0
- package/packages/core/dist/beads-state-manager.js +212 -0
- package/packages/core/dist/beads-state-manager.js.map +1 -0
- package/packages/core/dist/config-manager.d.ts +24 -0
- package/packages/core/dist/config-manager.js +68 -0
- package/packages/core/dist/config-manager.js.map +1 -0
- package/packages/core/dist/conversation-manager.d.ts +98 -0
- package/packages/core/dist/conversation-manager.js +382 -0
- package/packages/core/dist/conversation-manager.js.map +1 -0
- package/packages/core/dist/file-detection-manager.d.ts +53 -0
- package/packages/core/dist/file-detection-manager.js +221 -0
- package/packages/core/dist/file-detection-manager.js.map +1 -0
- package/packages/core/dist/file-storage.d.ts +93 -0
- package/packages/core/dist/file-storage.js +301 -0
- package/packages/core/dist/file-storage.js.map +1 -0
- package/packages/core/dist/git-manager.d.ts +22 -0
- package/packages/core/dist/git-manager.js +123 -0
- package/packages/core/dist/git-manager.js.map +1 -0
- package/packages/core/dist/index.d.ts +24 -0
- package/packages/core/dist/index.js +31 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/dist/instruction-generator.d.ts +40 -0
- package/packages/core/dist/instruction-generator.js +89 -0
- package/packages/core/dist/instruction-generator.js.map +1 -0
- package/packages/core/dist/interaction-logger.d.ts +37 -0
- package/packages/core/dist/interaction-logger.js +87 -0
- package/packages/core/dist/interaction-logger.js.map +1 -0
- package/packages/core/dist/interfaces/index.d.ts +9 -0
- package/packages/core/dist/interfaces/index.js +10 -0
- package/packages/core/dist/interfaces/index.js.map +1 -0
- package/packages/core/dist/interfaces/instruction-generator.interface.d.ts +41 -0
- package/packages/core/dist/interfaces/instruction-generator.interface.js +8 -0
- package/packages/core/dist/interfaces/instruction-generator.interface.js.map +1 -0
- package/packages/core/dist/interfaces/plan-manager.interface.d.ts +55 -0
- package/packages/core/dist/interfaces/plan-manager.interface.js +8 -0
- package/packages/core/dist/interfaces/plan-manager.interface.js.map +1 -0
- package/packages/core/dist/interfaces/task-backend-client.interface.d.ts +52 -0
- package/packages/core/dist/interfaces/task-backend-client.interface.js +8 -0
- package/packages/core/dist/interfaces/task-backend-client.interface.js.map +1 -0
- package/packages/core/dist/logger.d.ts +64 -0
- package/packages/core/dist/logger.js +283 -0
- package/packages/core/dist/logger.js.map +1 -0
- package/packages/core/dist/path-validation-utils.d.ts +75 -0
- package/packages/core/dist/path-validation-utils.js +238 -0
- package/packages/core/dist/path-validation-utils.js.map +1 -0
- package/packages/core/dist/persistence-interface.d.ts +91 -0
- package/packages/core/dist/persistence-interface.js +9 -0
- package/packages/core/dist/persistence-interface.js.map +1 -0
- package/{dist/components/beads/beads-plan-manager.d.ts → packages/core/dist/plan-manager.d.ts} +15 -15
- package/{dist/components/beads/beads-plan-manager.js → packages/core/dist/plan-manager.js} +66 -50
- package/packages/core/dist/plan-manager.js.map +1 -0
- package/packages/core/dist/project-docs-manager.d.ts +119 -0
- package/packages/core/dist/project-docs-manager.js +366 -0
- package/packages/core/dist/project-docs-manager.js.map +1 -0
- package/packages/core/dist/state-machine-loader.d.ts +61 -0
- package/packages/core/dist/state-machine-loader.js +273 -0
- package/packages/core/dist/state-machine-loader.js.map +1 -0
- package/packages/core/dist/state-machine-types.d.ts +64 -0
- package/packages/core/dist/state-machine-types.js +7 -0
- package/packages/core/dist/state-machine-types.js.map +1 -0
- package/packages/core/dist/state-machine.d.ts +52 -0
- package/packages/core/dist/state-machine.js +256 -0
- package/packages/core/dist/state-machine.js.map +1 -0
- package/packages/core/dist/system-prompt-generator.d.ts +14 -0
- package/packages/core/dist/system-prompt-generator.js +42 -0
- package/packages/core/dist/system-prompt-generator.js.map +1 -0
- package/packages/core/dist/task-backend.d.ts +45 -0
- package/packages/core/dist/task-backend.js +176 -0
- package/packages/core/dist/task-backend.js.map +1 -0
- package/packages/core/dist/template-manager.d.ts +61 -0
- package/packages/core/dist/template-manager.js +231 -0
- package/packages/core/dist/template-manager.js.map +1 -0
- package/packages/core/dist/transition-engine.d.ts +77 -0
- package/packages/core/dist/transition-engine.js +244 -0
- package/packages/core/dist/transition-engine.js.map +1 -0
- package/packages/core/dist/types.d.ts +54 -0
- package/packages/core/dist/types.js +5 -0
- package/packages/core/dist/workflow-manager.d.ts +89 -0
- package/packages/core/dist/workflow-manager.js +468 -0
- package/packages/core/dist/workflow-manager.js.map +1 -0
- package/packages/core/package.json +33 -0
- package/packages/core/resources/agents/architect.yaml +61 -0
- package/packages/core/resources/agents/business-analyst.yaml +60 -0
- package/packages/core/resources/agents/developer.yaml +61 -0
- package/packages/core/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
- package/packages/core/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
- package/packages/core/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
- package/packages/core/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
- package/packages/core/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
- package/packages/core/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
- package/packages/core/resources/templates/architecture/c4.md +224 -0
- package/packages/core/resources/templates/architecture/freestyle.md +53 -0
- package/packages/core/resources/templates/architecture/game.md +250 -0
- package/packages/core/resources/templates/architecture/none.md +17 -0
- package/packages/core/resources/templates/design/comprehensive.md +207 -0
- package/packages/core/resources/templates/design/freestyle.md +37 -0
- package/packages/core/resources/templates/design/game.md +66 -0
- package/packages/core/resources/templates/design/none.md +17 -0
- package/packages/core/resources/templates/requirements/ears.md +90 -0
- package/packages/core/resources/templates/requirements/freestyle.md +42 -0
- package/packages/core/resources/templates/requirements/game.md +162 -0
- package/packages/core/resources/templates/requirements/none.md +17 -0
- package/packages/core/resources/templates/skills/POWER.md +23 -0
- package/packages/core/resources/templates/skills/SKILL.md +19 -0
- package/packages/core/resources/workflows/adr.yaml +157 -0
- package/packages/core/resources/workflows/big-bang-conversion.yaml +592 -0
- package/packages/core/resources/workflows/boundary-testing.yaml +376 -0
- package/packages/core/resources/workflows/bugfix.yaml +177 -0
- package/packages/core/resources/workflows/business-analysis.yaml +597 -0
- package/packages/core/resources/workflows/c4-analysis.yaml +471 -0
- package/packages/core/resources/workflows/epcc.yaml +183 -0
- package/packages/core/resources/workflows/game-beginner.yaml +434 -0
- package/packages/core/resources/workflows/greenfield.yaml +201 -0
- package/packages/core/resources/workflows/minor.yaml +138 -0
- package/packages/core/resources/workflows/posts.yaml +193 -0
- package/packages/core/resources/workflows/sdd-bugfix-crowd.yaml +608 -0
- package/packages/core/resources/workflows/sdd-bugfix.yaml +381 -0
- package/packages/core/resources/workflows/sdd-feature-crowd.yaml +713 -0
- package/packages/core/resources/workflows/sdd-feature.yaml +471 -0
- package/packages/core/resources/workflows/sdd-greenfield-crowd.yaml +336 -0
- package/packages/core/resources/workflows/sdd-greenfield.yaml +463 -0
- package/packages/core/resources/workflows/slides.yaml +237 -0
- package/packages/core/resources/workflows/tdd.yaml +160 -0
- package/packages/core/resources/workflows/waterfall.yaml +209 -0
- package/packages/docs/.vitepress/dist/.gitignore +2 -0
- package/packages/docs/.vitepress/dist/404.html +23 -0
- package/packages/docs/.vitepress/dist/assets/app.Dz3lZH3M.js +1 -0
- package/packages/docs/.vitepress/dist/assets/chunks/framework.DZS7lpav.js +19 -0
- package/packages/docs/.vitepress/dist/assets/chunks/theme.q5Ewb3F1.js +206 -0
- package/packages/docs/.vitepress/dist/assets/dev_ARCHITECTURE.md.da_vFDwM.js +130 -0
- package/packages/docs/.vitepress/dist/assets/dev_ARCHITECTURE.md.da_vFDwM.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/dev_DEVELOPMENT.md.DWl9cccE.js +72 -0
- package/packages/docs/.vitepress/dist/assets/dev_DEVELOPMENT.md.DWl9cccE.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/dev_LOGGING.md.BebvbW7z.js +34 -0
- package/packages/docs/.vitepress/dist/assets/dev_LOGGING.md.BebvbW7z.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/dev_PUBLISHING.md.CQqbiIOF.js +1 -0
- package/packages/docs/.vitepress/dist/assets/dev_PUBLISHING.md.CQqbiIOF.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/index.md.D6ROLohf.js +2 -0
- package/packages/docs/.vitepress/dist/assets/index.md.D6ROLohf.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/packages/docs/.vitepress/dist/assets/mcp-interaction-pattern.VdvOPuTt.png +0 -0
- package/packages/docs/.vitepress/dist/assets/placeholder-demo-greenfield.B8lG_tBI.png +0 -0
- package/packages/docs/.vitepress/dist/assets/style.CAgdBzOq.css +1 -0
- package/packages/docs/.vitepress/dist/assets/user_advanced-engineering.md.MkETYNtq.js +50 -0
- package/packages/docs/.vitepress/dist/assets/user_advanced-engineering.md.MkETYNtq.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_agent-setup.md.B54OLL2H.js +24 -0
- package/packages/docs/.vitepress/dist/assets/user_agent-setup.md.B54OLL2H.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_beads-integration.md.BzdR5Fif.js +15 -0
- package/packages/docs/.vitepress/dist/assets/user_beads-integration.md.BzdR5Fif.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_crowd-mcp-integration.md.C15kSdIJ.js +157 -0
- package/packages/docs/.vitepress/dist/assets/user_crowd-mcp-integration.md.C15kSdIJ.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_custom-workflows.md.Cz4IYCXa.js +143 -0
- package/packages/docs/.vitepress/dist/assets/user_custom-workflows.md.Cz4IYCXa.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_git-commit-feature.md.UcTvDR-O.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_git-commit-feature.md.UcTvDR-O.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_how-it-works.md.DiOXNgaL.js +23 -0
- package/packages/docs/.vitepress/dist/assets/user_how-it-works.md.DiOXNgaL.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_long-term-memory.md.DZh0tjNa.js +43 -0
- package/packages/docs/.vitepress/dist/assets/user_long-term-memory.md.DZh0tjNa.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_packaged-workflows.md.s1HT89ZU.js +2 -0
- package/packages/docs/.vitepress/dist/assets/user_packaged-workflows.md.s1HT89ZU.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_tutorial.md.Dmj8zLB2.js +3 -0
- package/packages/docs/.vitepress/dist/assets/user_tutorial.md.Dmj8zLB2.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/user_workflow-selection.md.CrPGw9Hr.js +7 -0
- package/packages/docs/.vitepress/dist/assets/user_workflow-selection.md.CrPGw9Hr.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows.md.Bm5sGt3u.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows.md.Bm5sGt3u.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_adr.md.DEaXkbRp.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_adr.md.DEaXkbRp.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_big-bang-conversion.md.BA5R1LxZ.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_big-bang-conversion.md.BA5R1LxZ.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_boundary-testing.md.DBcYnMhx.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_boundary-testing.md.DBcYnMhx.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_bugfix.md.CZRCL0Hp.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_bugfix.md.CZRCL0Hp.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_business-analysis.md.fGLml8Hw.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_business-analysis.md.fGLml8Hw.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_c4-analysis.md.Dnssqzuf.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_c4-analysis.md.Dnssqzuf.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_epcc.md.M6DnIhpp.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_epcc.md.M6DnIhpp.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_game-beginner.md.CNxzWLtd.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_game-beginner.md.CNxzWLtd.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_greenfield.md.vx_g-WOe.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_greenfield.md.vx_g-WOe.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_minor.md.DdnfwMf4.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_minor.md.DdnfwMf4.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_posts.md.SOldXvq7.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_posts.md.SOldXvq7.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix-crowd.md.-lSf42gJ.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix-crowd.md.-lSf42gJ.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix.md.oRAsEVbc.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-bugfix.md.oRAsEVbc.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature-crowd.md.DAtnfCAd.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature-crowd.md.DAtnfCAd.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature.md.Ce3-H_g3.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-feature.md.Ce3-H_g3.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield-crowd.md.8DUvcmLe.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield-crowd.md.8DUvcmLe.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield.md.eEN6U0J4.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_sdd-greenfield.md.eEN6U0J4.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_slides.md.Cqt-19_1.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_slides.md.Cqt-19_1.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_tdd.md.BjVC69tu.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_tdd.md.BjVC69tu.lean.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_waterfall.md.CL6jTZP9.js +1 -0
- package/packages/docs/.vitepress/dist/assets/workflows_waterfall.md.CL6jTZP9.lean.js +1 -0
- package/packages/docs/.vitepress/dist/dev/ARCHITECTURE.html +155 -0
- package/packages/docs/.vitepress/dist/dev/DEVELOPMENT.html +97 -0
- package/packages/docs/.vitepress/dist/dev/LOGGING.html +59 -0
- package/packages/docs/.vitepress/dist/dev/PUBLISHING.html +30 -0
- package/packages/docs/.vitepress/dist/hashmap.json +1 -0
- package/packages/docs/.vitepress/dist/index.html +27 -0
- package/packages/docs/.vitepress/dist/user/advanced-engineering.html +75 -0
- package/packages/docs/.vitepress/dist/user/agent-setup.html +49 -0
- package/packages/docs/.vitepress/dist/user/beads-integration.html +40 -0
- package/packages/docs/.vitepress/dist/user/crowd-mcp-integration.html +182 -0
- package/packages/docs/.vitepress/dist/user/custom-workflows.html +168 -0
- package/packages/docs/.vitepress/dist/user/git-commit-feature.html +30 -0
- package/packages/docs/.vitepress/dist/user/how-it-works.html +48 -0
- package/packages/docs/.vitepress/dist/user/long-term-memory.html +68 -0
- package/packages/docs/.vitepress/dist/user/packaged-workflows.html +27 -0
- package/packages/docs/.vitepress/dist/user/tutorial.html +28 -0
- package/packages/docs/.vitepress/dist/user/workflow-selection.html +32 -0
- package/packages/docs/.vitepress/dist/vp-icons.css +0 -0
- package/packages/docs/.vitepress/dist/workflows/adr.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/adr.yaml +157 -0
- package/packages/docs/.vitepress/dist/workflows/big-bang-conversion.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/big-bang-conversion.yaml +592 -0
- package/packages/docs/.vitepress/dist/workflows/boundary-testing.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/boundary-testing.yaml +376 -0
- package/packages/docs/.vitepress/dist/workflows/bugfix.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/bugfix.yaml +177 -0
- package/packages/docs/.vitepress/dist/workflows/business-analysis.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/business-analysis.yaml +597 -0
- package/packages/docs/.vitepress/dist/workflows/c4-analysis.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/c4-analysis.yaml +471 -0
- package/packages/docs/.vitepress/dist/workflows/epcc.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/epcc.yaml +183 -0
- package/packages/docs/.vitepress/dist/workflows/game-beginner.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/game-beginner.yaml +434 -0
- package/packages/docs/.vitepress/dist/workflows/greenfield.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/greenfield.yaml +201 -0
- package/packages/docs/.vitepress/dist/workflows/minor.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/minor.yaml +138 -0
- package/packages/docs/.vitepress/dist/workflows/posts.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/posts.yaml +193 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-bugfix-crowd.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-bugfix-crowd.yaml +608 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-bugfix.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-bugfix.yaml +381 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-feature-crowd.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-feature-crowd.yaml +713 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-feature.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-feature.yaml +471 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-greenfield-crowd.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-greenfield-crowd.yaml +336 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-greenfield.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-greenfield.yaml +463 -0
- package/packages/docs/.vitepress/dist/workflows/slides.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/slides.yaml +237 -0
- package/packages/docs/.vitepress/dist/workflows/tdd.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/tdd.yaml +160 -0
- package/packages/docs/.vitepress/dist/workflows/waterfall.html +26 -0
- package/packages/docs/.vitepress/dist/workflows/waterfall.yaml +209 -0
- package/packages/docs/.vitepress/dist/workflows.html +26 -0
- package/packages/docs/package.json +32 -0
- package/packages/mcp-server/dist/index.js +10546 -0
- package/packages/mcp-server/package.json +41 -0
- package/packages/mcp-server/resources/agents/architect.yaml +61 -0
- package/packages/mcp-server/resources/agents/business-analyst.yaml +60 -0
- package/packages/mcp-server/resources/agents/developer.yaml +61 -0
- package/packages/mcp-server/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
- package/packages/mcp-server/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
- package/packages/mcp-server/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
- package/packages/mcp-server/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
- package/packages/mcp-server/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
- package/packages/mcp-server/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
- package/packages/mcp-server/resources/templates/architecture/c4.md +224 -0
- package/packages/mcp-server/resources/templates/architecture/freestyle.md +53 -0
- package/packages/mcp-server/resources/templates/architecture/game.md +250 -0
- package/packages/mcp-server/resources/templates/architecture/none.md +17 -0
- package/packages/mcp-server/resources/templates/design/comprehensive.md +207 -0
- package/packages/mcp-server/resources/templates/design/freestyle.md +37 -0
- package/packages/mcp-server/resources/templates/design/game.md +66 -0
- package/packages/mcp-server/resources/templates/design/none.md +17 -0
- package/packages/mcp-server/resources/templates/requirements/ears.md +90 -0
- package/packages/mcp-server/resources/templates/requirements/freestyle.md +42 -0
- package/packages/mcp-server/resources/templates/requirements/game.md +162 -0
- package/packages/mcp-server/resources/templates/requirements/none.md +17 -0
- package/packages/mcp-server/resources/templates/skills/POWER.md +23 -0
- package/packages/mcp-server/resources/templates/skills/SKILL.md +19 -0
- package/packages/mcp-server/resources/workflows/adr.yaml +157 -0
- package/packages/mcp-server/resources/workflows/big-bang-conversion.yaml +592 -0
- package/packages/mcp-server/resources/workflows/boundary-testing.yaml +376 -0
- package/packages/mcp-server/resources/workflows/bugfix.yaml +177 -0
- package/packages/mcp-server/resources/workflows/business-analysis.yaml +597 -0
- package/packages/mcp-server/resources/workflows/c4-analysis.yaml +471 -0
- package/packages/mcp-server/resources/workflows/epcc.yaml +183 -0
- package/packages/mcp-server/resources/workflows/game-beginner.yaml +434 -0
- package/packages/mcp-server/resources/workflows/greenfield.yaml +201 -0
- package/packages/mcp-server/resources/workflows/minor.yaml +138 -0
- package/packages/mcp-server/resources/workflows/posts.yaml +193 -0
- package/packages/mcp-server/resources/workflows/sdd-bugfix-crowd.yaml +608 -0
- package/packages/mcp-server/resources/workflows/sdd-bugfix.yaml +381 -0
- package/packages/mcp-server/resources/workflows/sdd-feature-crowd.yaml +713 -0
- package/packages/mcp-server/resources/workflows/sdd-feature.yaml +471 -0
- package/packages/mcp-server/resources/workflows/sdd-greenfield-crowd.yaml +336 -0
- package/packages/mcp-server/resources/workflows/sdd-greenfield.yaml +463 -0
- package/packages/mcp-server/resources/workflows/slides.yaml +237 -0
- package/packages/mcp-server/resources/workflows/tdd.yaml +160 -0
- package/packages/mcp-server/resources/workflows/waterfall.yaml +209 -0
- package/packages/visualizer/dist/WorkflowVisualizer.vue +1147 -0
- package/packages/visualizer/dist/index.ts +17 -0
- package/packages/visualizer/dist/main.ts +673 -0
- package/packages/visualizer/dist/services/BundledWorkflows.ts +35 -0
- package/packages/visualizer/dist/services/FileUploadHandler.ts +166 -0
- package/packages/visualizer/dist/services/WorkflowLoader.ts +198 -0
- package/packages/visualizer/dist/services/YamlParser.ts +248 -0
- package/packages/visualizer/dist/services/workflow-list.ts +23 -0
- package/packages/visualizer/dist/types/ui-types.ts +84 -0
- package/packages/visualizer/dist/types/visualization-types.ts +95 -0
- package/packages/visualizer/dist/types/vite-env.d.ts +12 -0
- package/packages/visualizer/dist/utils/DomHelpers.ts +206 -0
- package/packages/visualizer/dist/utils/ErrorHandler.ts +170 -0
- package/packages/visualizer/dist/utils/PlantUMLEncoder.ts +121 -0
- package/packages/visualizer/dist/visualization/DiagramRenderer.ts +430 -0
- package/packages/visualizer/dist/visualization/LayoutEngine.ts +339 -0
- package/packages/visualizer/dist/visualization/PlantUMLRenderer.ts +507 -0
- package/packages/visualizer/dist/visualization/StateRenderer.ts +339 -0
- package/packages/visualizer/dist/visualization/TransitionRenderer.ts +432 -0
- package/packages/visualizer/package.json +39 -0
- package/resources/.DS_Store +0 -0
- package/resources/agents/architect.yaml +61 -0
- package/resources/agents/business-analyst.yaml +60 -0
- package/resources/agents/developer.yaml +61 -0
- package/resources/state-machine-schema.json +114 -0
- package/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
- package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
- package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
- package/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
- package/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
- package/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
- package/resources/templates/architecture/c4.md +224 -0
- package/resources/templates/architecture/freestyle.md +53 -0
- package/resources/templates/architecture/game.md +250 -0
- package/resources/templates/architecture/none.md +17 -0
- package/resources/templates/design/comprehensive.md +207 -0
- package/resources/templates/design/freestyle.md +37 -0
- package/resources/templates/design/game.md +66 -0
- package/resources/templates/design/none.md +17 -0
- package/resources/templates/requirements/ears.md +90 -0
- package/resources/templates/requirements/freestyle.md +42 -0
- package/resources/templates/requirements/game.md +162 -0
- package/resources/templates/requirements/none.md +17 -0
- package/resources/templates/skills/POWER.md +23 -0
- package/resources/templates/skills/SKILL.md +19 -0
- package/resources/workflows/adr.yaml +157 -0
- package/resources/workflows/big-bang-conversion.yaml +592 -0
- package/resources/workflows/boundary-testing.yaml +376 -0
- package/resources/workflows/bugfix.yaml +177 -0
- package/resources/workflows/business-analysis.yaml +597 -0
- package/resources/workflows/c4-analysis.yaml +471 -0
- package/resources/workflows/epcc.yaml +183 -0
- package/resources/workflows/game-beginner.yaml +434 -0
- package/resources/workflows/greenfield.yaml +201 -0
- package/resources/workflows/minor.yaml +138 -0
- package/resources/workflows/posts.yaml +193 -0
- package/resources/workflows/sdd-bugfix-crowd.yaml +608 -0
- package/resources/workflows/sdd-bugfix.yaml +381 -0
- package/resources/workflows/sdd-feature-crowd.yaml +713 -0
- package/resources/workflows/sdd-feature.yaml +471 -0
- package/resources/workflows/sdd-greenfield-crowd.yaml +336 -0
- package/resources/workflows/sdd-greenfield.yaml +463 -0
- package/resources/workflows/slides.yaml +237 -0
- package/resources/workflows/tdd.yaml +160 -0
- package/resources/workflows/waterfall.yaml +209 -0
- package/dist/components/beads/beads-instruction-generator.d.ts +0 -44
- package/dist/components/beads/beads-instruction-generator.d.ts.map +0 -1
- package/dist/components/beads/beads-instruction-generator.js +0 -160
- package/dist/components/beads/beads-instruction-generator.js.map +0 -1
- package/dist/components/beads/beads-plan-manager.d.ts.map +0 -1
- package/dist/components/beads/beads-plan-manager.js.map +0 -1
- package/dist/components/beads/beads-task-backend-client.d.ts +0 -43
- package/dist/components/beads/beads-task-backend-client.d.ts.map +0 -1
- package/dist/components/beads/beads-task-backend-client.js +0 -175
- package/dist/components/beads/beads-task-backend-client.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -74
- package/dist/index.js.map +0 -1
- package/dist/notification-service.d.ts +0 -14
- package/dist/notification-service.d.ts.map +0 -1
- package/dist/notification-service.js +0 -18
- package/dist/notification-service.js.map +0 -1
- package/dist/plugin-system/beads-plugin.d.ts +0 -71
- package/dist/plugin-system/beads-plugin.d.ts.map +0 -1
- package/dist/plugin-system/beads-plugin.js +0 -465
- package/dist/plugin-system/beads-plugin.js.map +0 -1
- package/dist/plugin-system/commit-plugin.d.ts +0 -40
- package/dist/plugin-system/commit-plugin.d.ts.map +0 -1
- package/dist/plugin-system/commit-plugin.js +0 -204
- package/dist/plugin-system/commit-plugin.js.map +0 -1
- package/dist/plugin-system/index.d.ts +0 -9
- package/dist/plugin-system/index.d.ts.map +0 -1
- package/dist/plugin-system/index.js +0 -9
- package/dist/plugin-system/index.js.map +0 -1
- package/dist/plugin-system/plugin-interfaces.d.ts +0 -98
- package/dist/plugin-system/plugin-interfaces.d.ts.map +0 -1
- package/dist/plugin-system/plugin-interfaces.js +0 -9
- package/dist/plugin-system/plugin-interfaces.js.map +0 -1
- package/dist/plugin-system/plugin-registry.d.ts +0 -44
- package/dist/plugin-system/plugin-registry.d.ts.map +0 -1
- package/dist/plugin-system/plugin-registry.js +0 -132
- package/dist/plugin-system/plugin-registry.js.map +0 -1
- package/dist/resource-handlers/conversation-state.d.ts +0 -15
- package/dist/resource-handlers/conversation-state.d.ts.map +0 -1
- package/dist/resource-handlers/conversation-state.js +0 -40
- package/dist/resource-handlers/conversation-state.js.map +0 -1
- package/dist/resource-handlers/development-plan.d.ts +0 -14
- package/dist/resource-handlers/development-plan.d.ts.map +0 -1
- package/dist/resource-handlers/development-plan.js +0 -31
- package/dist/resource-handlers/development-plan.js.map +0 -1
- package/dist/resource-handlers/index.d.ts +0 -24
- package/dist/resource-handlers/index.d.ts.map +0 -1
- package/dist/resource-handlers/index.js +0 -62
- package/dist/resource-handlers/index.js.map +0 -1
- package/dist/resource-handlers/system-prompt.d.ts +0 -15
- package/dist/resource-handlers/system-prompt.d.ts.map +0 -1
- package/dist/resource-handlers/system-prompt.js +0 -40
- package/dist/resource-handlers/system-prompt.js.map +0 -1
- package/dist/resource-handlers/workflow-resource.d.ts +0 -15
- package/dist/resource-handlers/workflow-resource.d.ts.map +0 -1
- package/dist/resource-handlers/workflow-resource.js +0 -85
- package/dist/resource-handlers/workflow-resource.js.map +0 -1
- package/dist/response-renderer.d.ts +0 -30
- package/dist/response-renderer.d.ts.map +0 -1
- package/dist/response-renderer.js +0 -94
- package/dist/response-renderer.js.map +0 -1
- package/dist/server-config.d.ts +0 -34
- package/dist/server-config.d.ts.map +0 -1
- package/dist/server-config.js +0 -503
- package/dist/server-config.js.map +0 -1
- package/dist/server-helpers.d.ts +0 -70
- package/dist/server-helpers.d.ts.map +0 -1
- package/dist/server-helpers.js +0 -171
- package/dist/server-helpers.js.map +0 -1
- package/dist/server-implementation.d.ts +0 -74
- package/dist/server-implementation.d.ts.map +0 -1
- package/dist/server-implementation.js +0 -201
- package/dist/server-implementation.js.map +0 -1
- package/dist/server.d.ts +0 -6
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -5
- package/dist/server.js.map +0 -1
- package/dist/tool-handlers/base-tool-handler.d.ts +0 -50
- package/dist/tool-handlers/base-tool-handler.d.ts.map +0 -1
- package/dist/tool-handlers/base-tool-handler.js +0 -81
- package/dist/tool-handlers/base-tool-handler.js.map +0 -1
- package/dist/tool-handlers/conduct-review.d.ts +0 -49
- package/dist/tool-handlers/conduct-review.d.ts.map +0 -1
- package/dist/tool-handlers/conduct-review.js +0 -104
- package/dist/tool-handlers/conduct-review.js.map +0 -1
- package/dist/tool-handlers/get-tool-info.d.ts +0 -75
- package/dist/tool-handlers/get-tool-info.d.ts.map +0 -1
- package/dist/tool-handlers/get-tool-info.js +0 -168
- package/dist/tool-handlers/get-tool-info.js.map +0 -1
- package/dist/tool-handlers/index.d.ts +0 -41
- package/dist/tool-handlers/index.d.ts.map +0 -1
- package/dist/tool-handlers/index.js +0 -71
- package/dist/tool-handlers/index.js.map +0 -1
- package/dist/tool-handlers/list-workflows.d.ts +0 -35
- package/dist/tool-handlers/list-workflows.d.ts.map +0 -1
- package/dist/tool-handlers/list-workflows.js +0 -43
- package/dist/tool-handlers/list-workflows.js.map +0 -1
- package/dist/tool-handlers/no-idea.d.ts +0 -41
- package/dist/tool-handlers/no-idea.d.ts.map +0 -1
- package/dist/tool-handlers/no-idea.js +0 -29
- package/dist/tool-handlers/no-idea.js.map +0 -1
- package/dist/tool-handlers/proceed-to-phase.d.ts +0 -41
- package/dist/tool-handlers/proceed-to-phase.d.ts.map +0 -1
- package/dist/tool-handlers/proceed-to-phase.js +0 -165
- package/dist/tool-handlers/proceed-to-phase.js.map +0 -1
- package/dist/tool-handlers/reset-development.d.ts +0 -31
- package/dist/tool-handlers/reset-development.d.ts.map +0 -1
- package/dist/tool-handlers/reset-development.js +0 -48
- package/dist/tool-handlers/reset-development.js.map +0 -1
- package/dist/tool-handlers/resume-workflow.d.ts +0 -87
- package/dist/tool-handlers/resume-workflow.d.ts.map +0 -1
- package/dist/tool-handlers/resume-workflow.js +0 -212
- package/dist/tool-handlers/resume-workflow.js.map +0 -1
- package/dist/tool-handlers/setup-project-docs.d.ts +0 -37
- package/dist/tool-handlers/setup-project-docs.d.ts.map +0 -1
- package/dist/tool-handlers/setup-project-docs.js +0 -138
- package/dist/tool-handlers/setup-project-docs.js.map +0 -1
- package/dist/tool-handlers/start-development.d.ts +0 -79
- package/dist/tool-handlers/start-development.d.ts.map +0 -1
- package/dist/tool-handlers/start-development.js +0 -484
- package/dist/tool-handlers/start-development.js.map +0 -1
- package/dist/tool-handlers/whats-next.d.ts +0 -41
- package/dist/tool-handlers/whats-next.d.ts.map +0 -1
- package/dist/tool-handlers/whats-next.js +0 -123
- package/dist/tool-handlers/whats-next.js.map +0 -1
- package/dist/types.d.ts +0 -119
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -5
- package/dist/version-info.d.ts +0 -30
- package/dist/version-info.d.ts.map +0 -1
- package/dist/version-info.js +0 -178
- package/dist/version-info.js.map +0 -1
- package/skill/SKILL.md +0 -28
- /package/{dist → packages/core/dist}/types.js.map +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { createLogger } from './logger.js';
|
|
4
|
+
const logger = createLogger('GitManager');
|
|
5
|
+
export class GitManager {
|
|
6
|
+
/**
|
|
7
|
+
* Check if a directory is a git repository
|
|
8
|
+
*/
|
|
9
|
+
static isGitRepository(projectPath) {
|
|
10
|
+
return existsSync(`${projectPath}/.git`);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get the current git branch for a project
|
|
14
|
+
*/
|
|
15
|
+
static getCurrentBranch(projectPath) {
|
|
16
|
+
try {
|
|
17
|
+
if (!this.isGitRepository(projectPath)) {
|
|
18
|
+
logger.debug('Not a git repository, using "default" as branch name', {
|
|
19
|
+
projectPath,
|
|
20
|
+
});
|
|
21
|
+
return 'default';
|
|
22
|
+
}
|
|
23
|
+
const branch = execSync('git rev-parse --abbrev-ref HEAD', {
|
|
24
|
+
cwd: projectPath,
|
|
25
|
+
encoding: 'utf-8',
|
|
26
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
27
|
+
}).trim();
|
|
28
|
+
logger.debug('Detected git branch', { projectPath, branch });
|
|
29
|
+
return branch;
|
|
30
|
+
}
|
|
31
|
+
catch (_error) {
|
|
32
|
+
logger.debug('Failed to get git branch, using "default" as branch name', {
|
|
33
|
+
projectPath,
|
|
34
|
+
});
|
|
35
|
+
return 'default';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get the current HEAD commit hash (for tracking start of development)
|
|
40
|
+
*/
|
|
41
|
+
static getCurrentCommitHash(projectPath) {
|
|
42
|
+
try {
|
|
43
|
+
if (!this.isGitRepository(projectPath)) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const hash = execSync('git rev-parse HEAD', {
|
|
47
|
+
cwd: projectPath,
|
|
48
|
+
encoding: 'utf-8',
|
|
49
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
50
|
+
}).trim();
|
|
51
|
+
return hash;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
logger.debug('Failed to get current commit hash', { projectPath, error });
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create a commit with the given message
|
|
60
|
+
*/
|
|
61
|
+
static createCommit(message, projectPath) {
|
|
62
|
+
try {
|
|
63
|
+
if (!this.isGitRepository(projectPath)) {
|
|
64
|
+
logger.debug('Not a git repository, skipping commit', { projectPath });
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
// Stage all changes
|
|
68
|
+
execSync('git add .', {
|
|
69
|
+
cwd: projectPath,
|
|
70
|
+
encoding: 'utf-8',
|
|
71
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
72
|
+
});
|
|
73
|
+
// Create commit
|
|
74
|
+
execSync(`git commit -m "${message}"`, {
|
|
75
|
+
cwd: projectPath,
|
|
76
|
+
encoding: 'utf-8',
|
|
77
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
78
|
+
});
|
|
79
|
+
logger.debug('Created commit successfully', { projectPath, message });
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
logger.debug('Failed to create commit', {
|
|
84
|
+
projectPath,
|
|
85
|
+
message,
|
|
86
|
+
error: error instanceof Error ? error.message : String(error),
|
|
87
|
+
});
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Check if there are uncommitted changes
|
|
93
|
+
*/
|
|
94
|
+
static hasUncommittedChanges(projectPath) {
|
|
95
|
+
try {
|
|
96
|
+
if (!this.isGitRepository(projectPath)) {
|
|
97
|
+
logger.debug('Not a git repository, no uncommitted changes', {
|
|
98
|
+
projectPath,
|
|
99
|
+
});
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
const status = execSync('git status --porcelain', {
|
|
103
|
+
cwd: projectPath,
|
|
104
|
+
encoding: 'utf-8',
|
|
105
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
106
|
+
}).trim();
|
|
107
|
+
const hasChanges = status.length > 0;
|
|
108
|
+
logger.debug('Checked for uncommitted changes', {
|
|
109
|
+
projectPath,
|
|
110
|
+
hasChanges,
|
|
111
|
+
});
|
|
112
|
+
return hasChanges;
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
logger.debug('Failed to check for uncommitted changes', {
|
|
116
|
+
projectPath,
|
|
117
|
+
error: error instanceof Error ? error.message : String(error),
|
|
118
|
+
});
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=git-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-manager.js","sourceRoot":"","sources":["../src/git-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './state-machine-types.js';
|
|
3
|
+
export * from './interfaces/index.js';
|
|
4
|
+
export * from './state-machine.js';
|
|
5
|
+
export * from './state-machine-loader.js';
|
|
6
|
+
export * from './workflow-manager.js';
|
|
7
|
+
export * from './transition-engine.js';
|
|
8
|
+
export * from './persistence-interface.js';
|
|
9
|
+
export * from './file-storage.js';
|
|
10
|
+
export * from './conversation-manager.js';
|
|
11
|
+
export * from './plan-manager.js';
|
|
12
|
+
export * from './template-manager.js';
|
|
13
|
+
export * from './project-docs-manager.js';
|
|
14
|
+
export * from './file-detection-manager.js';
|
|
15
|
+
export * from './config-manager.js';
|
|
16
|
+
export * from './git-manager.js';
|
|
17
|
+
export * from './task-backend.js';
|
|
18
|
+
export * from './beads-integration.js';
|
|
19
|
+
export * from './beads-state-manager.js';
|
|
20
|
+
export * from './logger.js';
|
|
21
|
+
export * from './interaction-logger.js';
|
|
22
|
+
export * from './instruction-generator.js';
|
|
23
|
+
export * from './system-prompt-generator.js';
|
|
24
|
+
export * from './path-validation-utils.js';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Core types and interfaces
|
|
2
|
+
export * from './types.js';
|
|
3
|
+
export * from './state-machine-types.js';
|
|
4
|
+
// Strategy pattern interfaces
|
|
5
|
+
export * from './interfaces/index.js';
|
|
6
|
+
// State machine and workflow management
|
|
7
|
+
export * from './state-machine.js';
|
|
8
|
+
export * from './state-machine-loader.js';
|
|
9
|
+
export * from './workflow-manager.js';
|
|
10
|
+
export * from './transition-engine.js';
|
|
11
|
+
// Data management
|
|
12
|
+
export * from './persistence-interface.js';
|
|
13
|
+
export * from './file-storage.js';
|
|
14
|
+
export * from './conversation-manager.js';
|
|
15
|
+
// Project and plan management
|
|
16
|
+
export * from './plan-manager.js';
|
|
17
|
+
export * from './template-manager.js';
|
|
18
|
+
export * from './project-docs-manager.js';
|
|
19
|
+
export * from './file-detection-manager.js';
|
|
20
|
+
export * from './config-manager.js';
|
|
21
|
+
export * from './git-manager.js';
|
|
22
|
+
export * from './task-backend.js';
|
|
23
|
+
export * from './beads-integration.js';
|
|
24
|
+
export * from './beads-state-manager.js';
|
|
25
|
+
// Utilities and generators
|
|
26
|
+
export * from './logger.js';
|
|
27
|
+
export * from './interaction-logger.js';
|
|
28
|
+
export * from './instruction-generator.js';
|
|
29
|
+
export * from './system-prompt-generator.js';
|
|
30
|
+
export * from './path-validation-utils.js';
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AAEzC,8BAA8B;AAC9B,cAAc,uBAAuB,CAAC;AAEtC,wCAAwC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,kBAAkB;AAClB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,8BAA8B;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,2BAA2B;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instruction Generator
|
|
3
|
+
*
|
|
4
|
+
* Creates phase-specific guidance for the LLM based on current conversation state.
|
|
5
|
+
* Customizes instructions based on project context and development phase.
|
|
6
|
+
* Supports custom state machine definitions for dynamic instruction generation.
|
|
7
|
+
* Handles variable substitution for project artifact references.
|
|
8
|
+
*/
|
|
9
|
+
import { PlanManager } from './plan-manager.js';
|
|
10
|
+
import type { YamlStateMachine } from './state-machine-types.js';
|
|
11
|
+
import type { IInstructionGenerator, InstructionContext, GeneratedInstructions } from './interfaces/instruction-generator.interface.js';
|
|
12
|
+
export declare class InstructionGenerator implements IInstructionGenerator {
|
|
13
|
+
private projectDocsManager;
|
|
14
|
+
constructor(_planManager: PlanManager);
|
|
15
|
+
/**
|
|
16
|
+
* Set the state machine definition for dynamic instruction generation
|
|
17
|
+
*/
|
|
18
|
+
setStateMachine(_stateMachine: YamlStateMachine): void;
|
|
19
|
+
/**
|
|
20
|
+
* Generate comprehensive instructions for the LLM
|
|
21
|
+
*/
|
|
22
|
+
generateInstructions(baseInstructions: string, context: InstructionContext): Promise<GeneratedInstructions>;
|
|
23
|
+
/**
|
|
24
|
+
* Apply variable substitution to instructions
|
|
25
|
+
* Replaces project artifact variables with actual file paths
|
|
26
|
+
*/
|
|
27
|
+
private applyVariableSubstitution;
|
|
28
|
+
/**
|
|
29
|
+
* Escape special regex characters in variable names
|
|
30
|
+
*/
|
|
31
|
+
private escapeRegExp;
|
|
32
|
+
/**
|
|
33
|
+
* Enhance base instructions with context-specific information
|
|
34
|
+
*/
|
|
35
|
+
private enhanceInstructions;
|
|
36
|
+
/**
|
|
37
|
+
* Capitalize phase name for display
|
|
38
|
+
*/
|
|
39
|
+
private capitalizePhase;
|
|
40
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instruction Generator
|
|
3
|
+
*
|
|
4
|
+
* Creates phase-specific guidance for the LLM based on current conversation state.
|
|
5
|
+
* Customizes instructions based on project context and development phase.
|
|
6
|
+
* Supports custom state machine definitions for dynamic instruction generation.
|
|
7
|
+
* Handles variable substitution for project artifact references.
|
|
8
|
+
*/
|
|
9
|
+
import { ProjectDocsManager } from './project-docs-manager.js';
|
|
10
|
+
export class InstructionGenerator {
|
|
11
|
+
projectDocsManager;
|
|
12
|
+
constructor(_planManager) {
|
|
13
|
+
// planManager parameter kept for API compatibility but not stored since unused
|
|
14
|
+
this.projectDocsManager = new ProjectDocsManager();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Set the state machine definition for dynamic instruction generation
|
|
18
|
+
*/
|
|
19
|
+
setStateMachine(_stateMachine) {
|
|
20
|
+
// stateMachine parameter kept for API compatibility but not stored since unused
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Generate comprehensive instructions for the LLM
|
|
25
|
+
*/
|
|
26
|
+
async generateInstructions(baseInstructions, context) {
|
|
27
|
+
// Apply variable substitution to base instructions
|
|
28
|
+
const substitutedInstructions = this.applyVariableSubstitution(baseInstructions, context.conversationContext.projectPath, context.conversationContext.gitBranch);
|
|
29
|
+
// Enhance base instructions with context-specific guidance
|
|
30
|
+
const enhancedInstructions = await this.enhanceInstructions(substitutedInstructions, context);
|
|
31
|
+
return {
|
|
32
|
+
instructions: enhancedInstructions,
|
|
33
|
+
planFileGuidance: 'Task management guidance is now included in main instructions',
|
|
34
|
+
metadata: {
|
|
35
|
+
phase: context.phase,
|
|
36
|
+
planFilePath: context.conversationContext.planFilePath,
|
|
37
|
+
transitionReason: context.transitionReason,
|
|
38
|
+
isModeled: context.isModeled,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Apply variable substitution to instructions
|
|
44
|
+
* Replaces project artifact variables with actual file paths
|
|
45
|
+
*/
|
|
46
|
+
applyVariableSubstitution(instructions, projectPath, gitBranch) {
|
|
47
|
+
const substitutions = this.projectDocsManager.getVariableSubstitutions(projectPath, gitBranch);
|
|
48
|
+
let result = instructions;
|
|
49
|
+
for (const [variable, value] of Object.entries(substitutions)) {
|
|
50
|
+
// Use global replace to handle multiple occurrences
|
|
51
|
+
result = result.replace(new RegExp(this.escapeRegExp(variable), 'g'), value);
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Escape special regex characters in variable names
|
|
57
|
+
*/
|
|
58
|
+
escapeRegExp(string) {
|
|
59
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Enhance base instructions with context-specific information
|
|
63
|
+
*/
|
|
64
|
+
async enhanceInstructions(baseInstructions, context) {
|
|
65
|
+
const { phase, conversationContext, planFileExists } = context;
|
|
66
|
+
const phaseName = this.capitalizePhase(phase);
|
|
67
|
+
let workflowSection = `---
|
|
68
|
+
**Workflow Continuity:**
|
|
69
|
+
Maintain \`${conversationContext.planFilePath}\`:
|
|
70
|
+
- Work through tasks in the "${phaseName}" section; Focus on those tasks!
|
|
71
|
+
- Add newly discovered tasks; log decisions in "Key Decisions"
|
|
72
|
+
- DO NOT maintain tasks in other tools or documents than explicitly stated in this plan file!`;
|
|
73
|
+
if (!planFileExists) {
|
|
74
|
+
workflowSection += '\n- Note: plan file will be created on first update';
|
|
75
|
+
}
|
|
76
|
+
workflowSection += '\n\nCall `whats_next()` after each user message.';
|
|
77
|
+
return `## ${phaseName} Phase\n\n${baseInstructions}\n\n${workflowSection}`;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Capitalize phase name for display
|
|
81
|
+
*/
|
|
82
|
+
capitalizePhase(phase) {
|
|
83
|
+
return phase
|
|
84
|
+
.split('_')
|
|
85
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
86
|
+
.join(' ');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=instruction-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instruction-generator.js","sourceRoot":"","sources":["../src/instruction-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAS/D,MAAM,OAAO,oBAAoB;IACvB,kBAAkB,CAAqB;IAE/C,YAAY,YAAyB;QACnC,+EAA+E;QAC/E,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,aAA+B;QAC7C,gFAAgF;QAChF,OAAO;IACT,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,gBAAwB,EACxB,OAA2B;QAE3B,mDAAmD;QACnD,MAAM,uBAAuB,GAAG,IAAI,CAAC,yBAAyB,CAC5D,gBAAgB,EAChB,OAAO,CAAC,mBAAmB,CAAC,WAAW,EACvC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CACtC,CAAC;QAEF,2DAA2D;QAC3D,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACzD,uBAAuB,EACvB,OAAO,CACR,CAAC;QAEF,OAAO;YACL,YAAY,EAAE,oBAAoB;YAClC,gBAAgB,EACd,+DAA+D;YACjE,QAAQ,EAAE;gBACR,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,mBAAmB,CAAC,YAAY;gBACtD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAC/B,YAAoB,EACpB,WAAmB,EACnB,SAAkB;QAElB,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CACpE,WAAW,EACX,SAAS,CACV,CAAC;QAEF,IAAI,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9D,oDAAoD;YACpD,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAC5C,KAAK,CACN,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,MAAc;QACjC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,gBAAwB,EACxB,OAA2B;QAE3B,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,eAAe,GAAG;;aAEb,mBAAmB,CAAC,YAAY;+BACd,SAAS;;8FAEsD,CAAC;QAE3F,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,eAAe,IAAI,qDAAqD,CAAC;QAC3E,CAAC;QAED,eAAe,IAAI,kDAAkD,CAAC;QAEtE,OAAO,MAAM,SAAS,aAAa,gBAAgB,OAAO,eAAe,EAAE,CAAC;IAC9E,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAa;QACnC,OAAO,KAAK;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACzD,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interaction Logger module
|
|
3
|
+
*
|
|
4
|
+
* Handles logging of tool interactions to the database for auditing and debugging.
|
|
5
|
+
*/
|
|
6
|
+
import type { IPersistence } from './persistence-interface.js';
|
|
7
|
+
import type { InteractionLog } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Handles logging of tool interactions to the database
|
|
10
|
+
*/
|
|
11
|
+
export declare class InteractionLogger {
|
|
12
|
+
private database;
|
|
13
|
+
/**
|
|
14
|
+
* Create a new InteractionLogger
|
|
15
|
+
*
|
|
16
|
+
* @param database - Persistence instance to use for logging
|
|
17
|
+
*/
|
|
18
|
+
constructor(database: IPersistence);
|
|
19
|
+
/**
|
|
20
|
+
* Log an interaction with a tool
|
|
21
|
+
*
|
|
22
|
+
* @param conversationId - ID of the conversation
|
|
23
|
+
* @param toolName - Name of the tool that was called
|
|
24
|
+
* @param inputParams - Input parameters to the tool (will be stringified)
|
|
25
|
+
* @param responseData - Response data from the tool (will be stringified)
|
|
26
|
+
* @param currentPhase - Current development phase
|
|
27
|
+
* @returns Promise that resolves when the log is saved
|
|
28
|
+
*/
|
|
29
|
+
logInteraction(conversationId: string, toolName: string, inputParams: unknown, responseData: unknown, currentPhase: string): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Get all interactions for a specific conversation
|
|
32
|
+
*
|
|
33
|
+
* @param conversationId - ID of the conversation to get logs for
|
|
34
|
+
* @returns Promise that resolves to an array of interaction logs
|
|
35
|
+
*/
|
|
36
|
+
getInteractionsByConversationId(conversationId: string): Promise<InteractionLog[]>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interaction Logger module
|
|
3
|
+
*
|
|
4
|
+
* Handles logging of tool interactions to the database for auditing and debugging.
|
|
5
|
+
*/
|
|
6
|
+
import { createLogger } from './logger.js';
|
|
7
|
+
const logger = createLogger('InteractionLogger');
|
|
8
|
+
/**
|
|
9
|
+
* Handles logging of tool interactions to the database
|
|
10
|
+
*/
|
|
11
|
+
export class InteractionLogger {
|
|
12
|
+
database;
|
|
13
|
+
/**
|
|
14
|
+
* Create a new InteractionLogger
|
|
15
|
+
*
|
|
16
|
+
* @param database - Persistence instance to use for logging
|
|
17
|
+
*/
|
|
18
|
+
constructor(database) {
|
|
19
|
+
this.database = database;
|
|
20
|
+
logger.debug('InteractionLogger initialized');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Log an interaction with a tool
|
|
24
|
+
*
|
|
25
|
+
* @param conversationId - ID of the conversation
|
|
26
|
+
* @param toolName - Name of the tool that was called
|
|
27
|
+
* @param inputParams - Input parameters to the tool (will be stringified)
|
|
28
|
+
* @param responseData - Response data from the tool (will be stringified)
|
|
29
|
+
* @param currentPhase - Current development phase
|
|
30
|
+
* @returns Promise that resolves when the log is saved
|
|
31
|
+
*/
|
|
32
|
+
async logInteraction(conversationId, toolName, inputParams, responseData, currentPhase) {
|
|
33
|
+
logger.debug('Logging interaction', {
|
|
34
|
+
conversationId,
|
|
35
|
+
toolName,
|
|
36
|
+
currentPhase,
|
|
37
|
+
});
|
|
38
|
+
try {
|
|
39
|
+
const timestamp = new Date().toISOString();
|
|
40
|
+
const log = {
|
|
41
|
+
conversationId,
|
|
42
|
+
toolName,
|
|
43
|
+
inputParams: JSON.stringify(inputParams),
|
|
44
|
+
responseData: JSON.stringify(responseData),
|
|
45
|
+
currentPhase,
|
|
46
|
+
timestamp,
|
|
47
|
+
};
|
|
48
|
+
await this.database.logInteraction(log);
|
|
49
|
+
logger.info('Interaction logged successfully', {
|
|
50
|
+
conversationId,
|
|
51
|
+
toolName,
|
|
52
|
+
timestamp,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
logger.error('Failed to log interaction', error, {
|
|
57
|
+
conversationId,
|
|
58
|
+
toolName,
|
|
59
|
+
});
|
|
60
|
+
// Don't throw the error - logging should not break the main flow
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get all interactions for a specific conversation
|
|
65
|
+
*
|
|
66
|
+
* @param conversationId - ID of the conversation to get logs for
|
|
67
|
+
* @returns Promise that resolves to an array of interaction logs
|
|
68
|
+
*/
|
|
69
|
+
async getInteractionsByConversationId(conversationId) {
|
|
70
|
+
logger.debug('Getting interactions by conversation ID', { conversationId });
|
|
71
|
+
try {
|
|
72
|
+
const logs = await this.database.getInteractionsByConversationId(conversationId);
|
|
73
|
+
logger.info('Retrieved interaction logs', {
|
|
74
|
+
conversationId,
|
|
75
|
+
count: logs.length,
|
|
76
|
+
});
|
|
77
|
+
return logs;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
logger.error('Failed to get interaction logs', error, {
|
|
81
|
+
conversationId,
|
|
82
|
+
});
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=interaction-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-logger.js","sourceRoot":"","sources":["../src/interaction-logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,QAAQ,CAAe;IAE/B;;;;OAIG;IACH,YAAY,QAAsB;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,cAAc,CAClB,cAAsB,EACtB,QAAgB,EAChB,WAAoB,EACpB,YAAqB,EACrB,YAAoB;QAEpB,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAClC,cAAc;YACd,QAAQ;YACR,YAAY;SACb,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE3C,MAAM,GAAG,GAAmB;gBAC1B,cAAc;gBACd,QAAQ;gBACR,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;gBACxC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;gBAC1C,YAAY;gBACZ,SAAS;aACV,CAAC;YAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBAC7C,cAAc;gBACd,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAc,EAAE;gBACxD,cAAc;gBACd,QAAQ;aACT,CAAC,CAAC;YACH,iEAAiE;QACnE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,+BAA+B,CACnC,cAAsB;QAEtB,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,IAAI,GACR,MAAM,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,cAAc,CAAC,CAAC;YAEtE,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACxC,cAAc;gBACd,KAAK,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAc,EAAE;gBAC7D,cAAc;aACf,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Component Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Defines contract interfaces for core components to enable strategy pattern.
|
|
5
|
+
* Enables clean substitution of components based on task backend configuration.
|
|
6
|
+
*/
|
|
7
|
+
export * from './plan-manager.interface.js';
|
|
8
|
+
export * from './instruction-generator.interface.js';
|
|
9
|
+
export * from './task-backend-client.interface.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Component Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Defines contract interfaces for core components to enable strategy pattern.
|
|
5
|
+
* Enables clean substitution of components based on task backend configuration.
|
|
6
|
+
*/
|
|
7
|
+
export * from './plan-manager.interface.js';
|
|
8
|
+
export * from './instruction-generator.interface.js';
|
|
9
|
+
export * from './task-backend-client.interface.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instruction Generator Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for instruction generation functionality.
|
|
5
|
+
* Enables strategy pattern implementation for different task backends.
|
|
6
|
+
*/
|
|
7
|
+
import type { ConversationContext } from '../types.js';
|
|
8
|
+
import type { YamlStateMachine } from '../state-machine-types.js';
|
|
9
|
+
export interface InstructionContext {
|
|
10
|
+
phase: string;
|
|
11
|
+
conversationContext: ConversationContext;
|
|
12
|
+
transitionReason: string;
|
|
13
|
+
isModeled: boolean;
|
|
14
|
+
planFileExists: boolean;
|
|
15
|
+
/** Source of the instruction generation request - helps generators adapt output */
|
|
16
|
+
instructionSource: 'proceed_to_phase' | 'whats_next';
|
|
17
|
+
}
|
|
18
|
+
export interface GeneratedInstructions {
|
|
19
|
+
instructions: string;
|
|
20
|
+
planFileGuidance: string;
|
|
21
|
+
metadata: {
|
|
22
|
+
phase: string;
|
|
23
|
+
planFilePath: string;
|
|
24
|
+
transitionReason: string;
|
|
25
|
+
isModeled: boolean;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Interface for instruction generation operations
|
|
30
|
+
* All instruction generators must implement this interface
|
|
31
|
+
*/
|
|
32
|
+
export interface IInstructionGenerator {
|
|
33
|
+
/**
|
|
34
|
+
* Set the state machine definition for dynamic instruction generation
|
|
35
|
+
*/
|
|
36
|
+
setStateMachine(stateMachine: YamlStateMachine): void;
|
|
37
|
+
/**
|
|
38
|
+
* Generate comprehensive instructions for the LLM
|
|
39
|
+
*/
|
|
40
|
+
generateInstructions(baseInstructions: string, context: InstructionContext): Promise<GeneratedInstructions>;
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instruction-generator.interface.js","sourceRoot":"","sources":["../../src/interfaces/instruction-generator.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan Manager Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for plan management functionality.
|
|
5
|
+
* Enables strategy pattern implementation for different task backends.
|
|
6
|
+
*/
|
|
7
|
+
import type { YamlStateMachine } from '../state-machine-types.js';
|
|
8
|
+
import type { TaskBackendConfig } from '../task-backend.js';
|
|
9
|
+
export interface PlanFileInfo {
|
|
10
|
+
path: string;
|
|
11
|
+
exists: boolean;
|
|
12
|
+
content?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Interface for plan management operations
|
|
16
|
+
* All plan managers must implement this interface
|
|
17
|
+
*/
|
|
18
|
+
export interface IPlanManager {
|
|
19
|
+
/**
|
|
20
|
+
* Set the state machine definition for dynamic plan generation
|
|
21
|
+
*/
|
|
22
|
+
setStateMachine(stateMachine: YamlStateMachine): void;
|
|
23
|
+
/**
|
|
24
|
+
* Set the task backend configuration
|
|
25
|
+
*/
|
|
26
|
+
setTaskBackend(taskBackend: TaskBackendConfig): void;
|
|
27
|
+
/**
|
|
28
|
+
* Get plan file information
|
|
29
|
+
*/
|
|
30
|
+
getPlanFileInfo(planFilePath: string): Promise<PlanFileInfo>;
|
|
31
|
+
/**
|
|
32
|
+
* Create initial plan file if it doesn't exist
|
|
33
|
+
*/
|
|
34
|
+
ensurePlanFile(planFilePath: string, projectPath: string, gitBranch: string): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Update plan file with new content
|
|
37
|
+
*/
|
|
38
|
+
updatePlanFile(planFilePath: string, content: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Get plan file content for LLM context
|
|
41
|
+
*/
|
|
42
|
+
getPlanFileContent(planFilePath: string): Promise<string>;
|
|
43
|
+
/**
|
|
44
|
+
* Generate phase-specific plan file guidance based on state machine
|
|
45
|
+
*/
|
|
46
|
+
generatePlanFileGuidance(phase: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Delete plan file
|
|
49
|
+
*/
|
|
50
|
+
deletePlanFile(planFilePath: string): Promise<boolean>;
|
|
51
|
+
/**
|
|
52
|
+
* Ensure plan file is deleted (verify deletion)
|
|
53
|
+
*/
|
|
54
|
+
ensurePlanFileDeleted(planFilePath: string): Promise<boolean>;
|
|
55
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-manager.interface.js","sourceRoot":"","sources":["../../src/interfaces/plan-manager.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Backend Client Interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for task backend operations (CLI commands, etc.).
|
|
5
|
+
* Enables clean abstraction of different task backends (beads, GitHub Issues, etc.).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Represents a task from the backend
|
|
9
|
+
*/
|
|
10
|
+
export interface BackendTask {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
status: 'open' | 'in_progress' | 'completed' | 'cancelled';
|
|
14
|
+
priority: number;
|
|
15
|
+
parent?: string;
|
|
16
|
+
children?: BackendTask[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Result of task validation operations
|
|
20
|
+
*/
|
|
21
|
+
export interface TaskValidationResult {
|
|
22
|
+
valid: boolean;
|
|
23
|
+
openTasks: BackendTask[];
|
|
24
|
+
message?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Interface for task backend client operations
|
|
28
|
+
* All task backend clients must implement this interface
|
|
29
|
+
*/
|
|
30
|
+
export interface ITaskBackendClient {
|
|
31
|
+
/**
|
|
32
|
+
* Check if the task backend is available and properly configured
|
|
33
|
+
*/
|
|
34
|
+
isAvailable(): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* Get all open tasks for a given parent task
|
|
37
|
+
*/
|
|
38
|
+
getOpenTasks(parentTaskId: string): Promise<BackendTask[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Validate that all tasks under a parent are completed
|
|
41
|
+
* Returns validation result with details about any remaining open tasks
|
|
42
|
+
*/
|
|
43
|
+
validateTasksCompleted(parentTaskId: string): Promise<TaskValidationResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Create a new task under a parent
|
|
46
|
+
*/
|
|
47
|
+
createTask(title: string, parentTaskId: string, priority?: number): Promise<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Update task status
|
|
50
|
+
*/
|
|
51
|
+
updateTaskStatus(taskId: string, status: 'open' | 'in_progress' | 'completed' | 'cancelled'): Promise<void>;
|
|
52
|
+
}
|