specweave 0.4.1 → 0.6.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/.claude-plugin/README.md +325 -0
- package/.claude-plugin/marketplace.json +210 -0
- package/CLAUDE.md +871 -596
- package/README.md +188 -137
- package/bin/install-agents.sh +1 -1
- package/bin/install-commands.sh +66 -14
- package/bin/install-hooks.sh +1 -1
- package/bin/install-skills.sh +1 -1
- package/bin/specweave.js +2 -0
- package/dist/adapters/claude/adapter.d.ts +49 -11
- package/dist/adapters/claude/adapter.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.js +175 -42
- package/dist/adapters/claude/adapter.js.map +1 -1
- package/dist/adapters/copilot/adapter.d.ts +20 -2
- package/dist/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/adapters/copilot/adapter.js +117 -7
- package/dist/adapters/copilot/adapter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +18 -0
- package/dist/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/adapters/cursor/adapter.js +55 -3
- package/dist/adapters/cursor/adapter.js.map +1 -1
- package/dist/adapters/generic/adapter.d.ts +18 -0
- package/dist/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/adapters/generic/adapter.js +55 -3
- package/dist/adapters/generic/adapter.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +346 -124
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts +2 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +28 -25
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +26 -24
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts +7 -1
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +72 -61
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/core/i18n/language-detector.d.ts +29 -0
- package/dist/core/i18n/language-detector.d.ts.map +1 -0
- package/dist/core/i18n/language-detector.js +143 -0
- package/dist/core/i18n/language-detector.js.map +1 -0
- package/dist/core/i18n/language-manager.d.ts +101 -0
- package/dist/core/i18n/language-manager.d.ts.map +1 -0
- package/dist/core/i18n/language-manager.js +232 -0
- package/dist/core/i18n/language-manager.js.map +1 -0
- package/dist/core/i18n/language-registry.d.ts +44 -0
- package/dist/core/i18n/language-registry.d.ts.map +1 -0
- package/dist/core/i18n/language-registry.js +234 -0
- package/dist/core/i18n/language-registry.js.map +1 -0
- package/dist/core/i18n/locale-manager.d.ts +62 -0
- package/dist/core/i18n/locale-manager.d.ts.map +1 -0
- package/dist/core/i18n/locale-manager.js +137 -0
- package/dist/core/i18n/locale-manager.js.map +1 -0
- package/dist/core/i18n/system-prompt-injector.d.ts +33 -0
- package/dist/core/i18n/system-prompt-injector.d.ts.map +1 -0
- package/dist/core/i18n/system-prompt-injector.js +131 -0
- package/dist/core/i18n/system-prompt-injector.js.map +1 -0
- package/dist/core/i18n/types.d.ts +151 -0
- package/dist/core/i18n/types.d.ts.map +1 -0
- package/dist/core/i18n/types.js +11 -0
- package/dist/core/i18n/types.js.map +1 -0
- package/dist/core/increment-status.d.ts +72 -0
- package/dist/core/increment-status.d.ts.map +1 -0
- package/dist/core/increment-status.js +227 -0
- package/dist/core/increment-status.js.map +1 -0
- package/dist/core/plugin-loader.d.ts +33 -13
- package/dist/core/plugin-loader.d.ts.map +1 -1
- package/dist/core/plugin-loader.js +145 -43
- package/dist/core/plugin-loader.js.map +1 -1
- package/dist/core/types/config.d.ts +51 -0
- package/dist/core/types/config.d.ts.map +1 -0
- package/dist/core/types/config.js +21 -0
- package/dist/core/types/config.js.map +1 -0
- package/dist/core/types/plugin.d.ts +73 -42
- package/dist/core/types/plugin.d.ts.map +1 -1
- package/dist/core/types/plugin.js +4 -3
- package/dist/core/types/plugin.js.map +1 -1
- package/dist/hooks/lib/sync-living-docs.d.ts +27 -0
- package/dist/hooks/lib/sync-living-docs.d.ts.map +1 -0
- package/dist/hooks/lib/sync-living-docs.js +116 -0
- package/dist/hooks/lib/sync-living-docs.js.map +1 -0
- package/dist/hooks/lib/translate-living-docs.d.ts +13 -0
- package/dist/hooks/lib/translate-living-docs.d.ts.map +1 -0
- package/dist/hooks/lib/translate-living-docs.js +166 -0
- package/dist/hooks/lib/translate-living-docs.js.map +1 -0
- package/dist/hooks/lib/update-tasks-md.d.ts +29 -0
- package/dist/hooks/lib/update-tasks-md.d.ts.map +1 -0
- package/dist/hooks/lib/update-tasks-md.js +203 -0
- package/dist/hooks/lib/update-tasks-md.js.map +1 -0
- package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/integrations/jira/jira-mapper.js.map +1 -1
- package/dist/locales/de/.gitkeep +0 -0
- package/dist/locales/de/cli.json +108 -0
- package/dist/locales/en/cli.json +269 -0
- package/dist/locales/en/errors.json +7 -0
- package/dist/locales/en/templates.json +6 -0
- package/dist/locales/es/.gitkeep +0 -0
- package/dist/locales/es/cli.json +41 -0
- package/dist/locales/fr/.gitkeep +0 -0
- package/dist/locales/fr/cli.json +108 -0
- package/dist/locales/ja/.gitkeep +0 -0
- package/dist/locales/ja/cli.json +108 -0
- package/dist/locales/ko/.gitkeep +0 -0
- package/dist/locales/ko/cli.json +108 -0
- package/dist/locales/pt/.gitkeep +0 -0
- package/dist/locales/pt/cli.json +108 -0
- package/dist/locales/ru/.gitkeep +0 -0
- package/dist/locales/ru/cli.json +269 -0
- package/dist/locales/zh/.gitkeep +0 -0
- package/dist/locales/zh/cli.json +108 -0
- package/dist/plugins/specweave-github/lib/github-client.d.ts +86 -0
- package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client.js +275 -0
- package/dist/plugins/specweave-github/lib/github-client.js.map +1 -0
- package/dist/plugins/specweave-github/lib/index.d.ts +10 -0
- package/dist/plugins/specweave-github/lib/index.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/index.js +10 -0
- package/dist/plugins/specweave-github/lib/index.js.map +1 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +51 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.js +147 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/task-parser.d.ts +37 -0
- package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/task-parser.js +211 -0
- package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -0
- package/dist/plugins/specweave-github/lib/task-sync.d.ts +51 -0
- package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/task-sync.js +332 -0
- package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/types.d.ts +80 -0
- package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/types.js +5 -0
- package/dist/plugins/specweave-github/lib/types.js.map +1 -0
- package/dist/utils/agents-md-compiler.d.ts +68 -0
- package/dist/utils/agents-md-compiler.d.ts.map +1 -0
- package/dist/utils/agents-md-compiler.js +420 -0
- package/dist/utils/agents-md-compiler.js.map +1 -0
- package/dist/utils/generate-skills-index.js +4 -4
- package/dist/utils/generate-skills-index.js.map +1 -1
- package/package.json +12 -13
- package/plugins/specweave-ado/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-alternatives/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/SKILL.md +626 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/check-setup.js +208 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
- package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +1010 -0
- package/plugins/specweave-backend/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-core/.claude-plugin/plugin.json +25 -0
- package/{src → plugins/specweave-core}/agents/pm/AGENT.md +80 -0
- package/plugins/specweave-core/agents/translator/AGENT.md +282 -0
- package/{src → plugins/specweave-core}/commands/README.md +11 -11
- package/{src → plugins/specweave-core}/commands/specweave.costs.md +7 -7
- package/{src → plugins/specweave-core}/commands/specweave.do.md +34 -7
- package/{src → plugins/specweave-core}/commands/specweave.increment.md +83 -18
- package/{src → plugins/specweave-core}/commands/specweave.md +49 -17
- package/{src → plugins/specweave-core}/commands/specweave.sync-docs.md +5 -5
- package/plugins/specweave-core/commands/specweave.translate.md +425 -0
- package/{src → plugins/specweave-core}/commands/specweave.validate.md +1 -1
- package/plugins/specweave-core/hooks/hooks.json +13 -0
- package/plugins/specweave-core/hooks/post-task-completion.sh +265 -0
- package/plugins/specweave-core/skills/SKILLS-INDEX.md +229 -0
- package/{src → plugins/specweave-core}/skills/brownfield-analyzer/SKILL.md +66 -24
- package/{src → plugins/specweave-core}/skills/context-loader/SKILL.md +1 -1
- package/plugins/specweave-core/skills/context-optimizer/SKILL.md +588 -0
- package/plugins/specweave-core/skills/docs-updater/SKILL.md +0 -0
- package/{src → plugins/specweave-core}/skills/increment-planner/SKILL.md +81 -4
- package/plugins/specweave-core/skills/plugin-detector/SKILL.md +211 -0
- package/{src → plugins/specweave-core}/skills/project-kickstarter/SKILL.md +7 -7
- package/plugins/specweave-core/skills/rfc-generator/SKILL.md +369 -0
- package/{src → plugins/specweave-core}/skills/specweave-detector/SKILL.md +2 -2
- package/plugins/specweave-core/skills/specweave-framework/SKILL.md +498 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-1-increment-naming.yaml +11 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-2-source-of-truth.yaml +11 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-3-increment-discipline.yaml +12 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-4-file-placement.yaml +11 -0
- package/{src → plugins/specweave-core}/skills/tdd-workflow/SKILL.md +20 -20
- package/plugins/specweave-core/skills/translator/SKILL.md +172 -0
- package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-diagrams/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-docs/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-docs/skills/docusaurus/SKILL.md +526 -0
- package/plugins/specweave-figma/.claude-plugin/.mcp.json +12 -0
- package/plugins/specweave-figma/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-figma/ARCHITECTURE.md +453 -0
- package/plugins/specweave-figma/README.md +728 -0
- package/plugins/specweave-figma/skills/figma-to-code/SKILL.md +632 -0
- package/plugins/specweave-figma/skills/figma-to-code/test-1-token-generation.yaml +29 -0
- package/plugins/specweave-figma/skills/figma-to-code/test-2-component-generation.yaml +27 -0
- package/plugins/specweave-figma/skills/figma-to-code/test-3-typescript-generation.yaml +28 -0
- package/plugins/specweave-frontend/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-github/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-github/agents/github-manager/AGENT.md +651 -0
- package/plugins/specweave-github/commands/github-close-issue.md +418 -0
- package/plugins/specweave-github/commands/github-create-issue.md +307 -0
- package/plugins/specweave-github/commands/github-status.md +533 -0
- package/plugins/specweave-github/commands/github-sync-tasks.md +530 -0
- package/plugins/specweave-github/commands/github-sync.md +443 -0
- package/plugins/specweave-github/lib/github-client.ts +330 -0
- package/plugins/specweave-github/lib/index.ts +10 -0
- package/plugins/specweave-github/lib/subtask-sync.ts +225 -0
- package/plugins/specweave-github/lib/task-parser.ts +246 -0
- package/plugins/specweave-github/lib/task-sync.ts +402 -0
- package/plugins/specweave-github/lib/types.ts +86 -0
- package/plugins/specweave-github/skills/github-issue-tracker/SKILL.md +497 -0
- package/plugins/specweave-github/skills/github-sync/SKILL.md +461 -0
- package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-jira/.claude-plugin/plugin.json +8 -0
- package/{src → plugins/specweave-jira}/commands/specweave.sync-jira.md +18 -18
- package/plugins/specweave-kubernetes/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-ml/.claude-plugin/plugin.json +39 -0
- package/plugins/specweave-ml/README.md +885 -0
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +402 -0
- package/plugins/specweave-ml/commands/ml-deploy.md +116 -0
- package/plugins/specweave-ml/commands/ml-evaluate.md +87 -0
- package/plugins/specweave-ml/commands/ml-explain.md +83 -0
- package/plugins/specweave-ml/skills/anomaly-detector/SKILL.md +559 -0
- package/plugins/specweave-ml/skills/automl-optimizer/SKILL.md +485 -0
- package/plugins/specweave-ml/skills/cv-pipeline-builder/SKILL.md +157 -0
- package/plugins/specweave-ml/skills/data-visualizer/SKILL.md +521 -0
- package/plugins/specweave-ml/skills/experiment-tracker/SKILL.md +535 -0
- package/plugins/specweave-ml/skills/feature-engineer/SKILL.md +566 -0
- package/plugins/specweave-ml/skills/ml-deployment-helper/SKILL.md +345 -0
- package/plugins/specweave-ml/skills/ml-pipeline-orchestrator/SKILL.md +518 -0
- package/plugins/specweave-ml/skills/model-evaluator/SKILL.md +155 -0
- package/plugins/specweave-ml/skills/model-explainer/SKILL.md +227 -0
- package/plugins/specweave-ml/skills/model-registry/SKILL.md +541 -0
- package/plugins/specweave-ml/skills/nlp-pipeline-builder/SKILL.md +180 -0
- package/plugins/specweave-ml/skills/time-series-forecaster/SKILL.md +569 -0
- package/plugins/specweave-payments/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-testing/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-tooling/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-ui/.claude-plugin/plugin.json +106 -0
- package/plugins/specweave-ui/.mcp.json +14 -0
- package/plugins/specweave-ui/README.md +386 -0
- package/src/adapters/claude/adapter.ts +193 -46
- package/src/adapters/copilot/adapter.ts +132 -7
- package/src/adapters/cursor/adapter.ts +62 -3
- package/src/adapters/generic/adapter.ts +62 -3
- package/src/templates/AGENTS.md.template +170 -1
- package/src/templates/CLAUDE.md.template +122 -24
- package/src/templates/tasks.md.template +261 -0
- package/src/agents/ml-engineer/AGENT.md +0 -150
- package/src/commands/specweave.sync-github.md +0 -269
- package/src/hooks/post-task-completion.sh +0 -121
- package/src/skills/SKILLS-INDEX.md +0 -444
- package/src/skills/github-sync/SKILL.md +0 -234
- /package/{src → plugins/specweave-ado}/skills/ado-sync/README.md +0 -0
- /package/{src → plugins/specweave-ado}/skills/ado-sync/SKILL.md +0 -0
- /package/{src → plugins/specweave-ado}/skills/specweave-ado-mapper/SKILL.md +0 -0
- /package/{src → plugins/specweave-backend}/agents/database-optimizer/AGENT.md +0 -0
- /package/{src → plugins/specweave-backend}/skills/dotnet-backend/SKILL.md +0 -0
- /package/{src → plugins/specweave-backend}/skills/nodejs-backend/SKILL.md +0 -0
- /package/{src → plugins/specweave-backend}/skills/python-backend/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/agents/architect/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/code-reviewer.md +0 -0
- /package/{src → plugins/specweave-core}/agents/docs-writer/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/performance/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/qa-lead/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/security/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/tdd-orchestrator/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/tech-lead/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.done.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.inc.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.list-increments.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.next.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.progress.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-cycle.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-green.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-red.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-refactor.md +0 -0
- /package/{src → plugins/specweave-core}/hooks/README.md +0 -0
- /package/{src → plugins/specweave-core}/hooks/docs-changed.sh +0 -0
- /package/{src → plugins/specweave-core}/hooks/human-input-required.sh +0 -0
- /package/{src → plugins/specweave-core}/hooks/post-increment-plugin-detect.sh +0 -0
- /package/{src → plugins/specweave-core}/hooks/pre-implementation.sh +0 -0
- /package/{src → plugins/specweave-core}/hooks/pre-task-plugin-detect.sh +0 -0
- /package/{src → plugins/specweave-core}/skills/brownfield-onboarder/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/skills/docs-updater/README.md +0 -0
- /package/{src → plugins/specweave-core}/skills/increment-planner/scripts/feature-utils.js +0 -0
- /package/{src → plugins/specweave-core}/skills/increment-quality-judge/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-1-high-confidence-full-product.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-2-medium-confidence-partial.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-3-low-confidence-technical-question.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-4-opt-out-explicit.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/role-orchestrator/README.md +0 -0
- /package/{src → plugins/specweave-core}/skills/role-orchestrator/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/skills/task-builder/README.md +0 -0
- /package/{src → plugins/specweave-cost-optimizer}/skills/cost-optimizer/SKILL.md +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/AGENT.md +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-component-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-container-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-context-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/deployment-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/er-diagram-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/sequence-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-2-sequence.yaml +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -0
- /package/{src → plugins/specweave-diagrams}/skills/diagrams-architect/SKILL.md +0 -0
- /package/{src → plugins/specweave-diagrams}/skills/diagrams-generator/SKILL.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/README.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/SKILL.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/README.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/SKILL.md +0 -0
- /package/{src → plugins/specweave-frontend}/skills/design-system-architect/SKILL.md +0 -0
- /package/{src → plugins/specweave-frontend}/skills/frontend/SKILL.md +0 -0
- /package/{src → plugins/specweave-frontend}/skills/nextjs/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/devops/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/network-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/observability-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/performance-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/backend-diagnostics.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/database-diagnostics.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/infrastructure.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/monitoring.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/security-incidents.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/ui-diagnostics.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/01-high-cpu-usage.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/02-database-deadlock.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/03-memory-leak.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/04-slow-api-response.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/05-ddos-attack.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/06-disk-full.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/07-service-down.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/08-data-corruption.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/09-cascade-failure.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/10-rate-limit-exceeded.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/health-check.sh +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/log-analyzer.py +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/metrics-collector.sh +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/trace-analyzer.js +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/incident-report.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/mitigation-plan.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/post-mortem.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/runbook-template.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/commands/specweave.monitor-setup.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/commands/specweave.slo-implement.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/distributed-tracing/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/grafana-dashboards/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/README.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/prometheus-configuration/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/slo-implementation/SKILL.md +0 -0
- /package/{src → plugins/specweave-jira}/skills/jira-sync/README.md +0 -0
- /package/{src → plugins/specweave-jira}/skills/jira-sync/SKILL.md +0 -0
- /package/{src → plugins/specweave-jira}/skills/specweave-jira-mapper/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/agents/kubernetes-architect/AGENT.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/argocd-setup.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/sync-policies.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/Chart.yaml.template +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/values.yaml.template +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/references/chart-structure.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/scripts/validate-chart.sh +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/configmap-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/deployment-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/service-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/deployment-spec.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/service-spec.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/assets/network-policy-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/references/rbac-patterns.md +0 -0
- /package/{src → plugins/specweave-ml}/agents/data-scientist/AGENT.md +0 -0
- /package/{src → plugins/specweave-ml}/agents/mlops-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-ml}/commands/specweave.ml-pipeline.md +0 -0
- /package/{src → plugins/specweave-ml}/skills/ml-pipeline-workflow/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/agents/payment-integration/AGENT.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/billing-automation/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/paypal-integration/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/pci-compliance/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/stripe-integration/SKILL.md +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/README.md +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/SKILL.md +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/execute.js +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/lib/utils.js +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/package.json +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/LICENSE.txt +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/SKILL.md +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/init_skill.py +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/package_skill.py +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/quick_validate.py +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-router/SKILL.md +0 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Manager
|
|
3
|
+
*
|
|
4
|
+
* Central manager for all i18n operations in SpecWeave.
|
|
5
|
+
* Coordinates language detection, switching, and translation.
|
|
6
|
+
*
|
|
7
|
+
* @module core/i18n
|
|
8
|
+
*/
|
|
9
|
+
import { SupportedLanguage, I18nConfig, UserLanguagePreference, LanguageConfig, LocaleStrings } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Central language manager singleton
|
|
12
|
+
*/
|
|
13
|
+
export declare class LanguageManager {
|
|
14
|
+
private currentLanguage;
|
|
15
|
+
private config;
|
|
16
|
+
private userPreference?;
|
|
17
|
+
constructor(config?: Partial<I18nConfig>);
|
|
18
|
+
/**
|
|
19
|
+
* Get current language
|
|
20
|
+
*/
|
|
21
|
+
getCurrentLanguage(): SupportedLanguage;
|
|
22
|
+
/**
|
|
23
|
+
* Set current language
|
|
24
|
+
*/
|
|
25
|
+
setCurrentLanguage(language: SupportedLanguage): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get language configuration
|
|
28
|
+
*/
|
|
29
|
+
getLanguageConfig(language?: SupportedLanguage): LanguageConfig;
|
|
30
|
+
/**
|
|
31
|
+
* Get locale strings for current language
|
|
32
|
+
*/
|
|
33
|
+
getLocaleStrings(language?: SupportedLanguage): LocaleStrings;
|
|
34
|
+
/**
|
|
35
|
+
* Get all available languages
|
|
36
|
+
*/
|
|
37
|
+
getAvailableLanguages(): import("./types.js").LanguageMetadata[];
|
|
38
|
+
/**
|
|
39
|
+
* Check if language is enabled
|
|
40
|
+
*/
|
|
41
|
+
isLanguageEnabled(language: SupportedLanguage): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Enable a language
|
|
44
|
+
*/
|
|
45
|
+
enableLanguage(language: SupportedLanguage): void;
|
|
46
|
+
/**
|
|
47
|
+
* Disable a language
|
|
48
|
+
*/
|
|
49
|
+
disableLanguage(language: SupportedLanguage): void;
|
|
50
|
+
/**
|
|
51
|
+
* Set user language preference
|
|
52
|
+
*/
|
|
53
|
+
setUserPreference(preference: UserLanguagePreference): void;
|
|
54
|
+
/**
|
|
55
|
+
* Get user language preference
|
|
56
|
+
*/
|
|
57
|
+
getUserPreference(): UserLanguagePreference | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Auto-detect language from content
|
|
60
|
+
*/
|
|
61
|
+
detectLanguage(content?: string): SupportedLanguage;
|
|
62
|
+
/**
|
|
63
|
+
* Apply language to project
|
|
64
|
+
* Injects system prompts into all skills/agents/commands
|
|
65
|
+
*/
|
|
66
|
+
applyLanguageToProject(projectPath: string, targetLanguage: SupportedLanguage, options?: {
|
|
67
|
+
includeSkills?: boolean;
|
|
68
|
+
includeAgents?: boolean;
|
|
69
|
+
includeCommands?: boolean;
|
|
70
|
+
overwrite?: boolean;
|
|
71
|
+
}): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Save configuration to file
|
|
74
|
+
*/
|
|
75
|
+
saveConfig(configPath: string): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Load configuration from file
|
|
78
|
+
*/
|
|
79
|
+
loadConfig(configPath: string): Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get singleton instance
|
|
83
|
+
*/
|
|
84
|
+
export declare function getLanguageManager(config?: Partial<I18nConfig>): LanguageManager;
|
|
85
|
+
/**
|
|
86
|
+
* Reset singleton (for testing)
|
|
87
|
+
*/
|
|
88
|
+
export declare function resetLanguageManager(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Static utility: Get system prompt for language
|
|
91
|
+
*/
|
|
92
|
+
export declare function getSystemPromptForLanguage(language: SupportedLanguage): string;
|
|
93
|
+
/**
|
|
94
|
+
* Static utility: Check if language is supported
|
|
95
|
+
*/
|
|
96
|
+
export declare function isLanguageSupported(code: string): code is SupportedLanguage;
|
|
97
|
+
/**
|
|
98
|
+
* Static utility: Get all supported languages
|
|
99
|
+
*/
|
|
100
|
+
export declare function getSupportedLanguages(): SupportedLanguage[];
|
|
101
|
+
//# sourceMappingURL=language-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-manager.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/language-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAyB;gBAEpC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;IAoBxC;;OAEG;IACH,kBAAkB,IAAI,iBAAiB;IAIvC;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIrD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,cAAc;IAI/D;;OAEG;IACH,gBAAgB,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,aAAa;IAK7D;;OAEG;IACH,qBAAqB;IAIrB;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO;IAIvD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAMjD;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAMlD;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,sBAAsB,GAAG,IAAI;IAK3D;;OAEG;IACH,iBAAiB,IAAI,sBAAsB,GAAG,SAAS;IAIvD;;OAEG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAKnD;;;OAGG;IACG,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,iBAAiB,EACjC,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GACA,OAAO,CAAC,IAAI,CAAC;IAsDhB;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBpD;AAKD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,eAAe,CAKhF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAG3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,EAAE,CAE3D"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Manager
|
|
3
|
+
*
|
|
4
|
+
* Central manager for all i18n operations in SpecWeave.
|
|
5
|
+
* Coordinates language detection, switching, and translation.
|
|
6
|
+
*
|
|
7
|
+
* @module core/i18n
|
|
8
|
+
*/
|
|
9
|
+
import fs from 'fs-extra';
|
|
10
|
+
import path from 'path';
|
|
11
|
+
import { getLanguageConfig, getAllLanguages, } from './language-registry.js';
|
|
12
|
+
import { detectLanguage, detectLanguageFromEnvironment } from './language-detector.js';
|
|
13
|
+
import { injectPromptsIntoDirectory } from './system-prompt-injector.js';
|
|
14
|
+
/**
|
|
15
|
+
* Central language manager singleton
|
|
16
|
+
*/
|
|
17
|
+
export class LanguageManager {
|
|
18
|
+
constructor(config) {
|
|
19
|
+
// Initialize with defaults
|
|
20
|
+
this.config = {
|
|
21
|
+
defaultLanguage: config?.defaultLanguage || 'en',
|
|
22
|
+
enabledLanguages: config?.enabledLanguages || ['en'],
|
|
23
|
+
// If defaultLanguage is explicitly set, don't auto-detect (SIMPLIFIED)
|
|
24
|
+
autoDetect: config?.autoDetect !== undefined ? config.autoDetect : !config?.defaultLanguage,
|
|
25
|
+
cache: config?.cache,
|
|
26
|
+
};
|
|
27
|
+
// Set current language (SIMPLIFIED LOGIC)
|
|
28
|
+
// Priority: 1) Auto-detect if enabled, 2) Default language
|
|
29
|
+
if (this.config.autoDetect && !config?.defaultLanguage) {
|
|
30
|
+
const detected = detectLanguageFromEnvironment();
|
|
31
|
+
this.currentLanguage = detected.language;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.currentLanguage = this.config.defaultLanguage;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get current language
|
|
39
|
+
*/
|
|
40
|
+
getCurrentLanguage() {
|
|
41
|
+
return this.currentLanguage;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Set current language
|
|
45
|
+
*/
|
|
46
|
+
setCurrentLanguage(language) {
|
|
47
|
+
this.currentLanguage = language;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get language configuration
|
|
51
|
+
*/
|
|
52
|
+
getLanguageConfig(language) {
|
|
53
|
+
return getLanguageConfig(language || this.currentLanguage);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get locale strings for current language
|
|
57
|
+
*/
|
|
58
|
+
getLocaleStrings(language) {
|
|
59
|
+
const config = this.getLanguageConfig(language);
|
|
60
|
+
return config.strings;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get all available languages
|
|
64
|
+
*/
|
|
65
|
+
getAvailableLanguages() {
|
|
66
|
+
return getAllLanguages();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if language is enabled
|
|
70
|
+
*/
|
|
71
|
+
isLanguageEnabled(language) {
|
|
72
|
+
return this.config.enabledLanguages.includes(language);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Enable a language
|
|
76
|
+
*/
|
|
77
|
+
enableLanguage(language) {
|
|
78
|
+
if (!this.config.enabledLanguages.includes(language)) {
|
|
79
|
+
this.config.enabledLanguages.push(language);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Disable a language
|
|
84
|
+
*/
|
|
85
|
+
disableLanguage(language) {
|
|
86
|
+
this.config.enabledLanguages = this.config.enabledLanguages.filter((lang) => lang !== language);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Set user language preference
|
|
90
|
+
*/
|
|
91
|
+
setUserPreference(preference) {
|
|
92
|
+
this.userPreference = preference;
|
|
93
|
+
this.currentLanguage = preference.primary;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get user language preference
|
|
97
|
+
*/
|
|
98
|
+
getUserPreference() {
|
|
99
|
+
return this.userPreference;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Auto-detect language from content
|
|
103
|
+
*/
|
|
104
|
+
detectLanguage(content) {
|
|
105
|
+
const result = detectLanguage({ content });
|
|
106
|
+
return result.language;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Apply language to project
|
|
110
|
+
* Injects system prompts into all skills/agents/commands
|
|
111
|
+
*/
|
|
112
|
+
async applyLanguageToProject(projectPath, targetLanguage, options) {
|
|
113
|
+
const { includeSkills = true, includeAgents = true, includeCommands = true, overwrite = false, } = options || {};
|
|
114
|
+
let totalInjected = 0;
|
|
115
|
+
console.log(`\n🌍 Applying ${targetLanguage} language to project...`);
|
|
116
|
+
// Inject into skills
|
|
117
|
+
if (includeSkills) {
|
|
118
|
+
const skillsPath = path.join(projectPath, '.claude', 'skills');
|
|
119
|
+
if (await fs.pathExists(skillsPath)) {
|
|
120
|
+
console.log(`\n📚 Processing skills...`);
|
|
121
|
+
const count = await injectPromptsIntoDirectory(skillsPath, targetLanguage, {
|
|
122
|
+
overwrite,
|
|
123
|
+
recursive: true,
|
|
124
|
+
});
|
|
125
|
+
totalInjected += count;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Inject into agents
|
|
129
|
+
if (includeAgents) {
|
|
130
|
+
const agentsPath = path.join(projectPath, '.claude', 'agents');
|
|
131
|
+
if (await fs.pathExists(agentsPath)) {
|
|
132
|
+
console.log(`\n🤖 Processing agents...`);
|
|
133
|
+
const count = await injectPromptsIntoDirectory(agentsPath, targetLanguage, {
|
|
134
|
+
overwrite,
|
|
135
|
+
recursive: true,
|
|
136
|
+
});
|
|
137
|
+
totalInjected += count;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Inject into commands
|
|
141
|
+
if (includeCommands) {
|
|
142
|
+
const commandsPath = path.join(projectPath, '.claude', 'commands');
|
|
143
|
+
if (await fs.pathExists(commandsPath)) {
|
|
144
|
+
console.log(`\n⚡ Processing commands...`);
|
|
145
|
+
const count = await injectPromptsIntoDirectory(commandsPath, targetLanguage, {
|
|
146
|
+
overwrite,
|
|
147
|
+
recursive: true,
|
|
148
|
+
});
|
|
149
|
+
totalInjected += count;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
console.log(`\n✅ Language applied! Injected prompts into ${totalInjected} files.`);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Save configuration to file
|
|
156
|
+
*/
|
|
157
|
+
async saveConfig(configPath) {
|
|
158
|
+
const config = {
|
|
159
|
+
i18n: {
|
|
160
|
+
defaultLanguage: this.config.defaultLanguage,
|
|
161
|
+
enabledLanguages: this.config.enabledLanguages,
|
|
162
|
+
autoDetect: this.config.autoDetect,
|
|
163
|
+
currentLanguage: this.currentLanguage,
|
|
164
|
+
userPreference: this.userPreference,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
await fs.writeJSON(configPath, config, { spaces: 2 });
|
|
168
|
+
console.log(`✅ Saved i18n configuration to ${configPath}`);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Load configuration from file
|
|
172
|
+
*/
|
|
173
|
+
async loadConfig(configPath) {
|
|
174
|
+
if (!(await fs.pathExists(configPath))) {
|
|
175
|
+
console.log(`⚠️ Config file not found: ${configPath}`);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const data = await fs.readJSON(configPath);
|
|
179
|
+
if (data.i18n) {
|
|
180
|
+
this.config = {
|
|
181
|
+
defaultLanguage: data.i18n.defaultLanguage || 'en',
|
|
182
|
+
enabledLanguages: data.i18n.enabledLanguages || ['en'],
|
|
183
|
+
autoDetect: data.i18n.autoDetect !== undefined ? data.i18n.autoDetect : true,
|
|
184
|
+
};
|
|
185
|
+
if (data.i18n.currentLanguage) {
|
|
186
|
+
this.currentLanguage = data.i18n.currentLanguage;
|
|
187
|
+
}
|
|
188
|
+
if (data.i18n.userPreference) {
|
|
189
|
+
this.userPreference = data.i18n.userPreference;
|
|
190
|
+
}
|
|
191
|
+
console.log(`✅ Loaded i18n configuration from ${configPath}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Singleton instance
|
|
196
|
+
let instance = null;
|
|
197
|
+
/**
|
|
198
|
+
* Get singleton instance
|
|
199
|
+
*/
|
|
200
|
+
export function getLanguageManager(config) {
|
|
201
|
+
if (!instance) {
|
|
202
|
+
instance = new LanguageManager(config);
|
|
203
|
+
}
|
|
204
|
+
return instance;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Reset singleton (for testing)
|
|
208
|
+
*/
|
|
209
|
+
export function resetLanguageManager() {
|
|
210
|
+
instance = null;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Static utility: Get system prompt for language
|
|
214
|
+
*/
|
|
215
|
+
export function getSystemPromptForLanguage(language) {
|
|
216
|
+
const config = getLanguageConfig(language);
|
|
217
|
+
return config.systemPrompt;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Static utility: Check if language is supported
|
|
221
|
+
*/
|
|
222
|
+
export function isLanguageSupported(code) {
|
|
223
|
+
const supported = ['en', 'ru', 'es', 'zh', 'de', 'fr', 'ja', 'ko', 'pt'];
|
|
224
|
+
return supported.includes(code);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Static utility: Get all supported languages
|
|
228
|
+
*/
|
|
229
|
+
export function getSupportedLanguages() {
|
|
230
|
+
return ['en', 'ru', 'es', 'zh', 'de', 'fr', 'ja', 'ko', 'pt'];
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=language-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-manager.js","sourceRoot":"","sources":["../../../src/core/i18n/language-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Registry - Metadata for all supported languages
|
|
3
|
+
*
|
|
4
|
+
* Provides native names, system prompts, and configuration for each language.
|
|
5
|
+
*
|
|
6
|
+
* @module core/i18n
|
|
7
|
+
*/
|
|
8
|
+
import { SupportedLanguage, LanguageMetadata, LanguageConfig } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Language metadata for UI display and selection
|
|
11
|
+
*/
|
|
12
|
+
export declare const LANGUAGE_METADATA: Record<SupportedLanguage, LanguageMetadata>;
|
|
13
|
+
/**
|
|
14
|
+
* System prompts for LLM-native translation
|
|
15
|
+
* These are injected at the top of skills/agents/commands
|
|
16
|
+
*/
|
|
17
|
+
export declare const SYSTEM_PROMPTS: Record<SupportedLanguage, string>;
|
|
18
|
+
/**
|
|
19
|
+
* Full language configurations
|
|
20
|
+
* Note: Currently only English has locale strings
|
|
21
|
+
* Other languages will use system prompts for LLM-native translation
|
|
22
|
+
*/
|
|
23
|
+
export declare const LANGUAGE_CONFIGS: Record<SupportedLanguage, LanguageConfig>;
|
|
24
|
+
/**
|
|
25
|
+
* Get language metadata by code
|
|
26
|
+
*/
|
|
27
|
+
export declare function getLanguageMetadata(code: SupportedLanguage): LanguageMetadata;
|
|
28
|
+
/**
|
|
29
|
+
* Get language configuration by code
|
|
30
|
+
*/
|
|
31
|
+
export declare function getLanguageConfig(code: SupportedLanguage): LanguageConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Get system prompt for language
|
|
34
|
+
*/
|
|
35
|
+
export declare function getSystemPrompt(code: SupportedLanguage): string;
|
|
36
|
+
/**
|
|
37
|
+
* Get all supported languages
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAllLanguages(): LanguageMetadata[];
|
|
40
|
+
/**
|
|
41
|
+
* Check if language is supported
|
|
42
|
+
*/
|
|
43
|
+
export declare function isLanguageSupported(code: string): code is SupportedLanguage;
|
|
44
|
+
//# sourceMappingURL=language-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-registry.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/language-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAEhG;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAgEzE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAU5D,CAAC;AAqCF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAyEtE,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,CAE7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAEzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,EAAE,CAEpD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,iBAAiB,CAE3E"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Registry - Metadata for all supported languages
|
|
3
|
+
*
|
|
4
|
+
* Provides native names, system prompts, and configuration for each language.
|
|
5
|
+
*
|
|
6
|
+
* @module core/i18n
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Language metadata for UI display and selection
|
|
10
|
+
*/
|
|
11
|
+
export const LANGUAGE_METADATA = {
|
|
12
|
+
en: {
|
|
13
|
+
code: 'en',
|
|
14
|
+
nativeName: 'English',
|
|
15
|
+
englishName: 'English',
|
|
16
|
+
flag: '🇬🇧',
|
|
17
|
+
completionPercent: 100,
|
|
18
|
+
},
|
|
19
|
+
ru: {
|
|
20
|
+
code: 'ru',
|
|
21
|
+
nativeName: 'Русский',
|
|
22
|
+
englishName: 'Russian',
|
|
23
|
+
flag: '🇷🇺',
|
|
24
|
+
completionPercent: 0,
|
|
25
|
+
},
|
|
26
|
+
es: {
|
|
27
|
+
code: 'es',
|
|
28
|
+
nativeName: 'Español',
|
|
29
|
+
englishName: 'Spanish',
|
|
30
|
+
flag: '🇪🇸',
|
|
31
|
+
completionPercent: 0,
|
|
32
|
+
},
|
|
33
|
+
zh: {
|
|
34
|
+
code: 'zh',
|
|
35
|
+
nativeName: '中文',
|
|
36
|
+
englishName: 'Chinese',
|
|
37
|
+
flag: '🇨🇳',
|
|
38
|
+
completionPercent: 0,
|
|
39
|
+
},
|
|
40
|
+
de: {
|
|
41
|
+
code: 'de',
|
|
42
|
+
nativeName: 'Deutsch',
|
|
43
|
+
englishName: 'German',
|
|
44
|
+
flag: '🇩🇪',
|
|
45
|
+
completionPercent: 0,
|
|
46
|
+
},
|
|
47
|
+
fr: {
|
|
48
|
+
code: 'fr',
|
|
49
|
+
nativeName: 'Français',
|
|
50
|
+
englishName: 'French',
|
|
51
|
+
flag: '🇫🇷',
|
|
52
|
+
completionPercent: 0,
|
|
53
|
+
},
|
|
54
|
+
ja: {
|
|
55
|
+
code: 'ja',
|
|
56
|
+
nativeName: '日本語',
|
|
57
|
+
englishName: 'Japanese',
|
|
58
|
+
flag: '🇯🇵',
|
|
59
|
+
completionPercent: 0,
|
|
60
|
+
},
|
|
61
|
+
ko: {
|
|
62
|
+
code: 'ko',
|
|
63
|
+
nativeName: '한국어',
|
|
64
|
+
englishName: 'Korean',
|
|
65
|
+
flag: '🇰🇷',
|
|
66
|
+
completionPercent: 0,
|
|
67
|
+
},
|
|
68
|
+
pt: {
|
|
69
|
+
code: 'pt',
|
|
70
|
+
nativeName: 'Português',
|
|
71
|
+
englishName: 'Portuguese',
|
|
72
|
+
flag: '🇧🇷',
|
|
73
|
+
completionPercent: 0,
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* System prompts for LLM-native translation
|
|
78
|
+
* These are injected at the top of skills/agents/commands
|
|
79
|
+
*/
|
|
80
|
+
export const SYSTEM_PROMPTS = {
|
|
81
|
+
en: '', // No prompt needed for English (default)
|
|
82
|
+
ru: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in Russian (Русский). Maintain technical terms in English when appropriate.',
|
|
83
|
+
es: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in Spanish (Español). Maintain technical terms in English when appropriate.',
|
|
84
|
+
zh: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in Simplified Chinese (简体中文). Maintain technical terms in English when appropriate.',
|
|
85
|
+
de: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in German (Deutsch). Maintain technical terms in English when appropriate.',
|
|
86
|
+
fr: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in French (Français). Maintain technical terms in English when appropriate.',
|
|
87
|
+
ja: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in Japanese (日本語). Maintain technical terms in English when appropriate.',
|
|
88
|
+
ko: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in Korean (한국어). Maintain technical terms in English when appropriate.',
|
|
89
|
+
pt: '**LANGUAGE INSTRUCTION**: All responses, generated content, and documentation MUST be in Portuguese (Português). Maintain technical terms in English when appropriate.',
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* English locale strings (default)
|
|
93
|
+
*/
|
|
94
|
+
const ENGLISH_STRINGS = {
|
|
95
|
+
cli: {
|
|
96
|
+
welcome: 'Welcome to SpecWeave!',
|
|
97
|
+
error: 'Error',
|
|
98
|
+
success: 'Success',
|
|
99
|
+
warning: 'Warning',
|
|
100
|
+
info: 'Info',
|
|
101
|
+
},
|
|
102
|
+
increment: {
|
|
103
|
+
created: 'Increment created',
|
|
104
|
+
inProgress: 'In progress',
|
|
105
|
+
completed: 'Completed',
|
|
106
|
+
failed: 'Failed',
|
|
107
|
+
taskComplete: 'Task completed',
|
|
108
|
+
allTasksComplete: 'All tasks completed',
|
|
109
|
+
},
|
|
110
|
+
validation: {
|
|
111
|
+
invalidInput: 'Invalid input',
|
|
112
|
+
missingFile: 'File not found',
|
|
113
|
+
incompleteTasks: 'Incomplete tasks found',
|
|
114
|
+
blockingIncrement: 'Previous increments must be completed first',
|
|
115
|
+
},
|
|
116
|
+
gates: {
|
|
117
|
+
taskGatePass: 'All tasks completed',
|
|
118
|
+
taskGateFail: 'Some tasks incomplete',
|
|
119
|
+
testGatePass: 'All tests passing',
|
|
120
|
+
testGateFail: 'Some tests failing',
|
|
121
|
+
docsGatePass: 'Documentation up to date',
|
|
122
|
+
docsGateFail: 'Documentation needs update',
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Full language configurations
|
|
127
|
+
* Note: Currently only English has locale strings
|
|
128
|
+
* Other languages will use system prompts for LLM-native translation
|
|
129
|
+
*/
|
|
130
|
+
export const LANGUAGE_CONFIGS = {
|
|
131
|
+
en: {
|
|
132
|
+
code: 'en',
|
|
133
|
+
nativeName: 'English',
|
|
134
|
+
englishName: 'English',
|
|
135
|
+
systemPrompt: SYSTEM_PROMPTS.en,
|
|
136
|
+
rtl: false,
|
|
137
|
+
strings: ENGLISH_STRINGS,
|
|
138
|
+
},
|
|
139
|
+
ru: {
|
|
140
|
+
code: 'ru',
|
|
141
|
+
nativeName: 'Русский',
|
|
142
|
+
englishName: 'Russian',
|
|
143
|
+
systemPrompt: SYSTEM_PROMPTS.ru,
|
|
144
|
+
rtl: false,
|
|
145
|
+
strings: ENGLISH_STRINGS, // Will be translated via LLM
|
|
146
|
+
},
|
|
147
|
+
es: {
|
|
148
|
+
code: 'es',
|
|
149
|
+
nativeName: 'Español',
|
|
150
|
+
englishName: 'Spanish',
|
|
151
|
+
systemPrompt: SYSTEM_PROMPTS.es,
|
|
152
|
+
rtl: false,
|
|
153
|
+
strings: ENGLISH_STRINGS,
|
|
154
|
+
},
|
|
155
|
+
zh: {
|
|
156
|
+
code: 'zh',
|
|
157
|
+
nativeName: '中文',
|
|
158
|
+
englishName: 'Chinese',
|
|
159
|
+
systemPrompt: SYSTEM_PROMPTS.zh,
|
|
160
|
+
rtl: false,
|
|
161
|
+
strings: ENGLISH_STRINGS,
|
|
162
|
+
},
|
|
163
|
+
de: {
|
|
164
|
+
code: 'de',
|
|
165
|
+
nativeName: 'Deutsch',
|
|
166
|
+
englishName: 'German',
|
|
167
|
+
systemPrompt: SYSTEM_PROMPTS.de,
|
|
168
|
+
rtl: false,
|
|
169
|
+
strings: ENGLISH_STRINGS,
|
|
170
|
+
},
|
|
171
|
+
fr: {
|
|
172
|
+
code: 'fr',
|
|
173
|
+
nativeName: 'Français',
|
|
174
|
+
englishName: 'French',
|
|
175
|
+
systemPrompt: SYSTEM_PROMPTS.fr,
|
|
176
|
+
rtl: false,
|
|
177
|
+
strings: ENGLISH_STRINGS,
|
|
178
|
+
},
|
|
179
|
+
ja: {
|
|
180
|
+
code: 'ja',
|
|
181
|
+
nativeName: '日本語',
|
|
182
|
+
englishName: 'Japanese',
|
|
183
|
+
systemPrompt: SYSTEM_PROMPTS.ja,
|
|
184
|
+
rtl: false,
|
|
185
|
+
strings: ENGLISH_STRINGS,
|
|
186
|
+
},
|
|
187
|
+
ko: {
|
|
188
|
+
code: 'ko',
|
|
189
|
+
nativeName: '한국어',
|
|
190
|
+
englishName: 'Korean',
|
|
191
|
+
systemPrompt: SYSTEM_PROMPTS.ko,
|
|
192
|
+
rtl: false,
|
|
193
|
+
strings: ENGLISH_STRINGS,
|
|
194
|
+
},
|
|
195
|
+
pt: {
|
|
196
|
+
code: 'pt',
|
|
197
|
+
nativeName: 'Português',
|
|
198
|
+
englishName: 'Portuguese',
|
|
199
|
+
systemPrompt: SYSTEM_PROMPTS.pt,
|
|
200
|
+
rtl: false,
|
|
201
|
+
strings: ENGLISH_STRINGS,
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Get language metadata by code
|
|
206
|
+
*/
|
|
207
|
+
export function getLanguageMetadata(code) {
|
|
208
|
+
return LANGUAGE_METADATA[code];
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Get language configuration by code
|
|
212
|
+
*/
|
|
213
|
+
export function getLanguageConfig(code) {
|
|
214
|
+
return LANGUAGE_CONFIGS[code];
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get system prompt for language
|
|
218
|
+
*/
|
|
219
|
+
export function getSystemPrompt(code) {
|
|
220
|
+
return SYSTEM_PROMPTS[code];
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get all supported languages
|
|
224
|
+
*/
|
|
225
|
+
export function getAllLanguages() {
|
|
226
|
+
return Object.values(LANGUAGE_METADATA);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Check if language is supported
|
|
230
|
+
*/
|
|
231
|
+
export function isLanguageSupported(code) {
|
|
232
|
+
return code in LANGUAGE_METADATA;
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=language-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-registry.js","sourceRoot":"","sources":["../../../src/core/i18n/language-registry.ts"],"names":[],"mappings":"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"}
|