opencode-telos 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +927 -0
- package/dist/code-intelligence/analyzer.d.ts +9 -0
- package/dist/code-intelligence/analyzer.d.ts.map +1 -0
- package/dist/code-intelligence/analyzer.js +321 -0
- package/dist/code-intelligence/analyzer.js.map +1 -0
- package/dist/code-intelligence/ast/cache.d.ts +16 -0
- package/dist/code-intelligence/ast/cache.d.ts.map +1 -0
- package/dist/code-intelligence/ast/cache.js +44 -0
- package/dist/code-intelligence/ast/cache.js.map +1 -0
- package/dist/code-intelligence/ast/common.d.ts +8 -0
- package/dist/code-intelligence/ast/common.d.ts.map +1 -0
- package/dist/code-intelligence/ast/common.js +42 -0
- package/dist/code-intelligence/ast/common.js.map +1 -0
- package/dist/code-intelligence/ast/component.d.ts +10 -0
- package/dist/code-intelligence/ast/component.d.ts.map +1 -0
- package/dist/code-intelligence/ast/component.js +38 -0
- package/dist/code-intelligence/ast/component.js.map +1 -0
- package/dist/code-intelligence/ast/fallback.d.ts +9 -0
- package/dist/code-intelligence/ast/fallback.d.ts.map +1 -0
- package/dist/code-intelligence/ast/fallback.js +38 -0
- package/dist/code-intelligence/ast/fallback.js.map +1 -0
- package/dist/code-intelligence/ast/index.d.ts +5 -0
- package/dist/code-intelligence/ast/index.d.ts.map +1 -0
- package/dist/code-intelligence/ast/index.js +5 -0
- package/dist/code-intelligence/ast/index.js.map +1 -0
- package/dist/code-intelligence/ast/ir.d.ts +72 -0
- package/dist/code-intelligence/ast/ir.d.ts.map +1 -0
- package/dist/code-intelligence/ast/ir.js +2 -0
- package/dist/code-intelligence/ast/ir.js.map +1 -0
- package/dist/code-intelligence/ast/metrics.d.ts +25 -0
- package/dist/code-intelligence/ast/metrics.d.ts.map +1 -0
- package/dist/code-intelligence/ast/metrics.js +38 -0
- package/dist/code-intelligence/ast/metrics.js.map +1 -0
- package/dist/code-intelligence/ast/registry.d.ts +5 -0
- package/dist/code-intelligence/ast/registry.d.ts.map +1 -0
- package/dist/code-intelligence/ast/registry.js +22 -0
- package/dist/code-intelligence/ast/registry.js.map +1 -0
- package/dist/code-intelligence/ast/tree-sitter.d.ts +8 -0
- package/dist/code-intelligence/ast/tree-sitter.d.ts.map +1 -0
- package/dist/code-intelligence/ast/tree-sitter.js +247 -0
- package/dist/code-intelligence/ast/tree-sitter.js.map +1 -0
- package/dist/code-intelligence/ast/typescript.d.ts +8 -0
- package/dist/code-intelligence/ast/typescript.d.ts.map +1 -0
- package/dist/code-intelligence/ast/typescript.js +147 -0
- package/dist/code-intelligence/ast/typescript.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +27 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +67 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/opencode/hooks.d.ts +9 -0
- package/dist/opencode/hooks.d.ts.map +1 -0
- package/dist/opencode/hooks.js +583 -0
- package/dist/opencode/hooks.js.map +1 -0
- package/dist/opencode/router/categories.d.ts +31 -0
- package/dist/opencode/router/categories.d.ts.map +1 -0
- package/dist/opencode/router/categories.js +165 -0
- package/dist/opencode/router/categories.js.map +1 -0
- package/dist/opencode/router/embeddings.d.ts +41 -0
- package/dist/opencode/router/embeddings.d.ts.map +1 -0
- package/dist/opencode/router/embeddings.js +136 -0
- package/dist/opencode/router/embeddings.js.map +1 -0
- package/dist/opencode/router/graph-state-snapshot.d.ts +35 -0
- package/dist/opencode/router/graph-state-snapshot.d.ts.map +1 -0
- package/dist/opencode/router/graph-state-snapshot.js +129 -0
- package/dist/opencode/router/graph-state-snapshot.js.map +1 -0
- package/dist/opencode/router/index.d.ts +21 -0
- package/dist/opencode/router/index.d.ts.map +1 -0
- package/dist/opencode/router/index.js +23 -0
- package/dist/opencode/router/index.js.map +1 -0
- package/dist/opencode/router/intent-classifier.d.ts +35 -0
- package/dist/opencode/router/intent-classifier.d.ts.map +1 -0
- package/dist/opencode/router/intent-classifier.js +108 -0
- package/dist/opencode/router/intent-classifier.js.map +1 -0
- package/dist/opencode/router/semantic-nudge.d.ts +42 -0
- package/dist/opencode/router/semantic-nudge.d.ts.map +1 -0
- package/dist/opencode/router/semantic-nudge.js +73 -0
- package/dist/opencode/router/semantic-nudge.js.map +1 -0
- package/dist/opencode/router/state-gate.d.ts +25 -0
- package/dist/opencode/router/state-gate.d.ts.map +1 -0
- package/dist/opencode/router/state-gate.js +178 -0
- package/dist/opencode/router/state-gate.js.map +1 -0
- package/dist/opencode/router/tool-embeddings.d.ts +36 -0
- package/dist/opencode/router/tool-embeddings.d.ts.map +1 -0
- package/dist/opencode/router/tool-embeddings.js +140 -0
- package/dist/opencode/router/tool-embeddings.js.map +1 -0
- package/dist/opencode/router/tool-registry.d.ts +45 -0
- package/dist/opencode/router/tool-registry.d.ts.map +1 -0
- package/dist/opencode/router/tool-registry.js +103 -0
- package/dist/opencode/router/tool-registry.js.map +1 -0
- package/dist/opencode/router/tool-taxonomy.d.ts +51 -0
- package/dist/opencode/router/tool-taxonomy.d.ts.map +1 -0
- package/dist/opencode/router/tool-taxonomy.js +250 -0
- package/dist/opencode/router/tool-taxonomy.js.map +1 -0
- package/dist/opencode/router/tools-composite.d.ts +21 -0
- package/dist/opencode/router/tools-composite.d.ts.map +1 -0
- package/dist/opencode/router/tools-composite.js +684 -0
- package/dist/opencode/router/tools-composite.js.map +1 -0
- package/dist/opencode/shell-hooks.d.ts +7 -0
- package/dist/opencode/shell-hooks.d.ts.map +1 -0
- package/dist/opencode/shell-hooks.js +96 -0
- package/dist/opencode/shell-hooks.js.map +1 -0
- package/dist/opencode/system-prompt.d.ts +10 -0
- package/dist/opencode/system-prompt.d.ts.map +1 -0
- package/dist/opencode/system-prompt.js +600 -0
- package/dist/opencode/system-prompt.js.map +1 -0
- package/dist/opencode/tools.d.ts +8 -0
- package/dist/opencode/tools.d.ts.map +1 -0
- package/dist/opencode/tools.js +3731 -0
- package/dist/opencode/tools.js.map +1 -0
- package/dist/opencode/workflows/chains.d.ts +52 -0
- package/dist/opencode/workflows/chains.d.ts.map +1 -0
- package/dist/opencode/workflows/chains.js +170 -0
- package/dist/opencode/workflows/chains.js.map +1 -0
- package/dist/opencode/workflows/executor.d.ts +52 -0
- package/dist/opencode/workflows/executor.d.ts.map +1 -0
- package/dist/opencode/workflows/executor.js +130 -0
- package/dist/opencode/workflows/executor.js.map +1 -0
- package/dist/opencode/workflows/index.d.ts +14 -0
- package/dist/opencode/workflows/index.d.ts.map +1 -0
- package/dist/opencode/workflows/index.js +15 -0
- package/dist/opencode/workflows/index.js.map +1 -0
- package/dist/opencode/workflows/tools-workflow.d.ts +24 -0
- package/dist/opencode/workflows/tools-workflow.d.ts.map +1 -0
- package/dist/opencode/workflows/tools-workflow.js +85 -0
- package/dist/opencode/workflows/tools-workflow.js.map +1 -0
- package/dist/opencode/workflows/types.d.ts +32 -0
- package/dist/opencode/workflows/types.d.ts.map +1 -0
- package/dist/opencode/workflows/types.js +13 -0
- package/dist/opencode/workflows/types.js.map +1 -0
- package/dist/sdd/analysis/compliance.d.ts +30 -0
- package/dist/sdd/analysis/compliance.d.ts.map +1 -0
- package/dist/sdd/analysis/compliance.js +251 -0
- package/dist/sdd/analysis/compliance.js.map +1 -0
- package/dist/sdd/analysis/scalability.d.ts +15 -0
- package/dist/sdd/analysis/scalability.d.ts.map +1 -0
- package/dist/sdd/analysis/scalability.js +72 -0
- package/dist/sdd/analysis/scalability.js.map +1 -0
- package/dist/sdd/analysis/security.d.ts +25 -0
- package/dist/sdd/analysis/security.d.ts.map +1 -0
- package/dist/sdd/analysis/security.js +94 -0
- package/dist/sdd/analysis/security.js.map +1 -0
- package/dist/sdd/brownfield/scanner.d.ts +31 -0
- package/dist/sdd/brownfield/scanner.d.ts.map +1 -0
- package/dist/sdd/brownfield/scanner.js +228 -0
- package/dist/sdd/brownfield/scanner.js.map +1 -0
- package/dist/sdd/cache/manager.d.ts +237 -0
- package/dist/sdd/cache/manager.d.ts.map +1 -0
- package/dist/sdd/cache/manager.js +770 -0
- package/dist/sdd/cache/manager.js.map +1 -0
- package/dist/sdd/cache/snapshot-store.d.ts +39 -0
- package/dist/sdd/cache/snapshot-store.d.ts.map +1 -0
- package/dist/sdd/cache/snapshot-store.js +156 -0
- package/dist/sdd/cache/snapshot-store.js.map +1 -0
- package/dist/sdd/changes/manager.d.ts +58 -0
- package/dist/sdd/changes/manager.d.ts.map +1 -0
- package/dist/sdd/changes/manager.js +235 -0
- package/dist/sdd/changes/manager.js.map +1 -0
- package/dist/sdd/cicd/generators.d.ts +16 -0
- package/dist/sdd/cicd/generators.d.ts.map +1 -0
- package/dist/sdd/cicd/generators.js +1042 -0
- package/dist/sdd/cicd/generators.js.map +1 -0
- package/dist/sdd/code-quality/complexity.d.ts +38 -0
- package/dist/sdd/code-quality/complexity.d.ts.map +1 -0
- package/dist/sdd/code-quality/complexity.js +161 -0
- package/dist/sdd/code-quality/complexity.js.map +1 -0
- package/dist/sdd/code-quality/conventions.d.ts +33 -0
- package/dist/sdd/code-quality/conventions.d.ts.map +1 -0
- package/dist/sdd/code-quality/conventions.js +193 -0
- package/dist/sdd/code-quality/conventions.js.map +1 -0
- package/dist/sdd/code-quality/dependencies.d.ts +27 -0
- package/dist/sdd/code-quality/dependencies.d.ts.map +1 -0
- package/dist/sdd/code-quality/dependencies.js +142 -0
- package/dist/sdd/code-quality/dependencies.js.map +1 -0
- package/dist/sdd/code-quality/import-analyzer.d.ts +49 -0
- package/dist/sdd/code-quality/import-analyzer.d.ts.map +1 -0
- package/dist/sdd/code-quality/import-analyzer.js +213 -0
- package/dist/sdd/code-quality/import-analyzer.js.map +1 -0
- package/dist/sdd/code-quality/metrics.d.ts +35 -0
- package/dist/sdd/code-quality/metrics.d.ts.map +1 -0
- package/dist/sdd/code-quality/metrics.js +172 -0
- package/dist/sdd/code-quality/metrics.js.map +1 -0
- package/dist/sdd/code-quality/smells.d.ts +38 -0
- package/dist/sdd/code-quality/smells.d.ts.map +1 -0
- package/dist/sdd/code-quality/smells.js +319 -0
- package/dist/sdd/code-quality/smells.js.map +1 -0
- package/dist/sdd/code-quality/symbol-parser.d.ts +28 -0
- package/dist/sdd/code-quality/symbol-parser.d.ts.map +1 -0
- package/dist/sdd/code-quality/symbol-parser.js +230 -0
- package/dist/sdd/code-quality/symbol-parser.js.map +1 -0
- package/dist/sdd/code-quality/usage-tracker.d.ts +59 -0
- package/dist/sdd/code-quality/usage-tracker.d.ts.map +1 -0
- package/dist/sdd/code-quality/usage-tracker.js +402 -0
- package/dist/sdd/code-quality/usage-tracker.js.map +1 -0
- package/dist/sdd/code-quality/utils.d.ts +6 -0
- package/dist/sdd/code-quality/utils.d.ts.map +1 -0
- package/dist/sdd/code-quality/utils.js +14 -0
- package/dist/sdd/code-quality/utils.js.map +1 -0
- package/dist/sdd/codegen/generator.d.ts +42 -0
- package/dist/sdd/codegen/generator.d.ts.map +1 -0
- package/dist/sdd/codegen/generator.js +1023 -0
- package/dist/sdd/codegen/generator.js.map +1 -0
- package/dist/sdd/constitution/validator.d.ts +37 -0
- package/dist/sdd/constitution/validator.d.ts.map +1 -0
- package/dist/sdd/constitution/validator.js +192 -0
- package/dist/sdd/constitution/validator.js.map +1 -0
- package/dist/sdd/cost/estimator.d.ts +31 -0
- package/dist/sdd/cost/estimator.d.ts.map +1 -0
- package/dist/sdd/cost/estimator.js +92 -0
- package/dist/sdd/cost/estimator.js.map +1 -0
- package/dist/sdd/coverage/tracker.d.ts +47 -0
- package/dist/sdd/coverage/tracker.d.ts.map +1 -0
- package/dist/sdd/coverage/tracker.js +251 -0
- package/dist/sdd/coverage/tracker.js.map +1 -0
- package/dist/sdd/disaster/recovery.d.ts +11 -0
- package/dist/sdd/disaster/recovery.d.ts.map +1 -0
- package/dist/sdd/disaster/recovery.js +55 -0
- package/dist/sdd/disaster/recovery.js.map +1 -0
- package/dist/sdd/discovery/adaptive.d.ts +14 -0
- package/dist/sdd/discovery/adaptive.d.ts.map +1 -0
- package/dist/sdd/discovery/adaptive.js +145 -0
- package/dist/sdd/discovery/adaptive.js.map +1 -0
- package/dist/sdd/discovery/briefing-analyzer.d.ts +66 -0
- package/dist/sdd/discovery/briefing-analyzer.d.ts.map +1 -0
- package/dist/sdd/discovery/briefing-analyzer.js +672 -0
- package/dist/sdd/discovery/briefing-analyzer.js.map +1 -0
- package/dist/sdd/discovery/briefing.d.ts +109 -0
- package/dist/sdd/discovery/briefing.d.ts.map +1 -0
- package/dist/sdd/discovery/briefing.js +617 -0
- package/dist/sdd/discovery/briefing.js.map +1 -0
- package/dist/sdd/discovery/graph-builder.d.ts +10 -0
- package/dist/sdd/discovery/graph-builder.d.ts.map +1 -0
- package/dist/sdd/discovery/graph-builder.js +510 -0
- package/dist/sdd/discovery/graph-builder.js.map +1 -0
- package/dist/sdd/documentation/generator.d.ts +7 -0
- package/dist/sdd/documentation/generator.d.ts.map +1 -0
- package/dist/sdd/documentation/generator.js +119 -0
- package/dist/sdd/documentation/generator.js.map +1 -0
- package/dist/sdd/domain/types.d.ts +460 -0
- package/dist/sdd/domain/types.d.ts.map +1 -0
- package/dist/sdd/domain/types.js +25 -0
- package/dist/sdd/domain/types.js.map +1 -0
- package/dist/sdd/drift/detector.d.ts +28 -0
- package/dist/sdd/drift/detector.d.ts.map +1 -0
- package/dist/sdd/drift/detector.js +379 -0
- package/dist/sdd/drift/detector.js.map +1 -0
- package/dist/sdd/drift/exclusion.d.ts +54 -0
- package/dist/sdd/drift/exclusion.d.ts.map +1 -0
- package/dist/sdd/drift/exclusion.js +179 -0
- package/dist/sdd/drift/exclusion.js.map +1 -0
- package/dist/sdd/drift/signals.d.ts +52 -0
- package/dist/sdd/drift/signals.d.ts.map +1 -0
- package/dist/sdd/drift/signals.js +470 -0
- package/dist/sdd/drift/signals.js.map +1 -0
- package/dist/sdd/enforcement/interceptor.d.ts +47 -0
- package/dist/sdd/enforcement/interceptor.d.ts.map +1 -0
- package/dist/sdd/enforcement/interceptor.js +365 -0
- package/dist/sdd/enforcement/interceptor.js.map +1 -0
- package/dist/sdd/enforcement/workflow-tracker.d.ts +66 -0
- package/dist/sdd/enforcement/workflow-tracker.d.ts.map +1 -0
- package/dist/sdd/enforcement/workflow-tracker.js +229 -0
- package/dist/sdd/enforcement/workflow-tracker.js.map +1 -0
- package/dist/sdd/graph/engine.d.ts +44 -0
- package/dist/sdd/graph/engine.d.ts.map +1 -0
- package/dist/sdd/graph/engine.js +203 -0
- package/dist/sdd/graph/engine.js.map +1 -0
- package/dist/sdd/graph/index.d.ts +160 -0
- package/dist/sdd/graph/index.d.ts.map +1 -0
- package/dist/sdd/graph/index.js +624 -0
- package/dist/sdd/graph/index.js.map +1 -0
- package/dist/sdd/graph/integrity-guard.d.ts +129 -0
- package/dist/sdd/graph/integrity-guard.d.ts.map +1 -0
- package/dist/sdd/graph/integrity-guard.js +263 -0
- package/dist/sdd/graph/integrity-guard.js.map +1 -0
- package/dist/sdd/graph/integrity.d.ts +79 -0
- package/dist/sdd/graph/integrity.d.ts.map +1 -0
- package/dist/sdd/graph/integrity.js +462 -0
- package/dist/sdd/graph/integrity.js.map +1 -0
- package/dist/sdd/graph/pruner.d.ts +27 -0
- package/dist/sdd/graph/pruner.d.ts.map +1 -0
- package/dist/sdd/graph/pruner.js +203 -0
- package/dist/sdd/graph/pruner.js.map +1 -0
- package/dist/sdd/graph/traverse.d.ts +43 -0
- package/dist/sdd/graph/traverse.d.ts.map +1 -0
- package/dist/sdd/graph/traverse.js +265 -0
- package/dist/sdd/graph/traverse.js.map +1 -0
- package/dist/sdd/incidents/manager.d.ts +10 -0
- package/dist/sdd/incidents/manager.d.ts.map +1 -0
- package/dist/sdd/incidents/manager.js +63 -0
- package/dist/sdd/incidents/manager.js.map +1 -0
- package/dist/sdd/knowledge/transfer.d.ts +24 -0
- package/dist/sdd/knowledge/transfer.d.ts.map +1 -0
- package/dist/sdd/knowledge/transfer.js +94 -0
- package/dist/sdd/knowledge/transfer.js.map +1 -0
- package/dist/sdd/migrations/fixes.d.ts +2 -0
- package/dist/sdd/migrations/fixes.d.ts.map +1 -0
- package/dist/sdd/migrations/fixes.js +159 -0
- package/dist/sdd/migrations/fixes.js.map +1 -0
- package/dist/sdd/migrations/index.d.ts +2 -0
- package/dist/sdd/migrations/index.d.ts.map +1 -0
- package/dist/sdd/migrations/index.js +5 -0
- package/dist/sdd/migrations/index.js.map +1 -0
- package/dist/sdd/migrations/migration-runner.d.ts +41 -0
- package/dist/sdd/migrations/migration-runner.d.ts.map +1 -0
- package/dist/sdd/migrations/migration-runner.js +91 -0
- package/dist/sdd/migrations/migration-runner.js.map +1 -0
- package/dist/sdd/monitoring/setup.d.ts +40 -0
- package/dist/sdd/monitoring/setup.d.ts.map +1 -0
- package/dist/sdd/monitoring/setup.js +177 -0
- package/dist/sdd/monitoring/setup.js.map +1 -0
- package/dist/sdd/monitoring/telemetry.d.ts +18 -0
- package/dist/sdd/monitoring/telemetry.d.ts.map +1 -0
- package/dist/sdd/monitoring/telemetry.js +37 -0
- package/dist/sdd/monitoring/telemetry.js.map +1 -0
- package/dist/sdd/patterns/anti-patterns.d.ts +21 -0
- package/dist/sdd/patterns/anti-patterns.d.ts.map +1 -0
- package/dist/sdd/patterns/anti-patterns.js +286 -0
- package/dist/sdd/patterns/anti-patterns.js.map +1 -0
- package/dist/sdd/patterns/ast-clones.d.ts +23 -0
- package/dist/sdd/patterns/ast-clones.d.ts.map +1 -0
- package/dist/sdd/patterns/ast-clones.js +171 -0
- package/dist/sdd/patterns/ast-clones.js.map +1 -0
- package/dist/sdd/patterns/config-drift.d.ts +16 -0
- package/dist/sdd/patterns/config-drift.d.ts.map +1 -0
- package/dist/sdd/patterns/config-drift.js +322 -0
- package/dist/sdd/patterns/config-drift.js.map +1 -0
- package/dist/sdd/patterns/contradictions.d.ts +38 -0
- package/dist/sdd/patterns/contradictions.d.ts.map +1 -0
- package/dist/sdd/patterns/contradictions.js +237 -0
- package/dist/sdd/patterns/contradictions.js.map +1 -0
- package/dist/sdd/patterns/learner.d.ts +49 -0
- package/dist/sdd/patterns/learner.d.ts.map +1 -0
- package/dist/sdd/patterns/learner.js +226 -0
- package/dist/sdd/patterns/learner.js.map +1 -0
- package/dist/sdd/permissions/access.d.ts +69 -0
- package/dist/sdd/permissions/access.d.ts.map +1 -0
- package/dist/sdd/permissions/access.js +333 -0
- package/dist/sdd/permissions/access.js.map +1 -0
- package/dist/sdd/persistence/repository.d.ts +60 -0
- package/dist/sdd/persistence/repository.d.ts.map +1 -0
- package/dist/sdd/persistence/repository.js +96 -0
- package/dist/sdd/persistence/repository.js.map +1 -0
- package/dist/sdd/persistence/sqlite.d.ts +122 -0
- package/dist/sdd/persistence/sqlite.d.ts.map +1 -0
- package/dist/sdd/persistence/sqlite.js +602 -0
- package/dist/sdd/persistence/sqlite.js.map +1 -0
- package/dist/sdd/persistence/yaml.d.ts +41 -0
- package/dist/sdd/persistence/yaml.d.ts.map +1 -0
- package/dist/sdd/persistence/yaml.js +382 -0
- package/dist/sdd/persistence/yaml.js.map +1 -0
- package/dist/sdd/promises/classifier.d.ts +48 -0
- package/dist/sdd/promises/classifier.d.ts.map +1 -0
- package/dist/sdd/promises/classifier.js +215 -0
- package/dist/sdd/promises/classifier.js.map +1 -0
- package/dist/sdd/promises/tracker.d.ts +20 -0
- package/dist/sdd/promises/tracker.d.ts.map +1 -0
- package/dist/sdd/promises/tracker.js +204 -0
- package/dist/sdd/promises/tracker.js.map +1 -0
- package/dist/sdd/quality/scorer.d.ts +44 -0
- package/dist/sdd/quality/scorer.d.ts.map +1 -0
- package/dist/sdd/quality/scorer.js +216 -0
- package/dist/sdd/quality/scorer.js.map +1 -0
- package/dist/sdd/rollback/manager.d.ts +45 -0
- package/dist/sdd/rollback/manager.d.ts.map +1 -0
- package/dist/sdd/rollback/manager.js +266 -0
- package/dist/sdd/rollback/manager.js.map +1 -0
- package/dist/sdd/session/handoff.d.ts +52 -0
- package/dist/sdd/session/handoff.d.ts.map +1 -0
- package/dist/sdd/session/handoff.js +264 -0
- package/dist/sdd/session/handoff.js.map +1 -0
- package/dist/sdd/sla/tracker.d.ts +11 -0
- package/dist/sdd/sla/tracker.d.ts.map +1 -0
- package/dist/sdd/sla/tracker.js +52 -0
- package/dist/sdd/sla/tracker.js.map +1 -0
- package/dist/sdd/sync/git-sync.d.ts +61 -0
- package/dist/sdd/sync/git-sync.d.ts.map +1 -0
- package/dist/sdd/sync/git-sync.js +297 -0
- package/dist/sdd/sync/git-sync.js.map +1 -0
- package/dist/sdd/toggle/state.d.ts +8 -0
- package/dist/sdd/toggle/state.d.ts.map +1 -0
- package/dist/sdd/toggle/state.js +32 -0
- package/dist/sdd/toggle/state.js.map +1 -0
- package/dist/sdd/transactions/manager.d.ts +12 -0
- package/dist/sdd/transactions/manager.d.ts.map +1 -0
- package/dist/sdd/transactions/manager.js +80 -0
- package/dist/sdd/transactions/manager.js.map +1 -0
- package/dist/sdd/validation/coverage-index.d.ts +117 -0
- package/dist/sdd/validation/coverage-index.d.ts.map +1 -0
- package/dist/sdd/validation/coverage-index.js +251 -0
- package/dist/sdd/validation/coverage-index.js.map +1 -0
- package/dist/sdd/validation/executable.d.ts +26 -0
- package/dist/sdd/validation/executable.d.ts.map +1 -0
- package/dist/sdd/validation/executable.js +122 -0
- package/dist/sdd/validation/executable.js.map +1 -0
- package/dist/sdd/validation/smart-validator.d.ts +53 -0
- package/dist/sdd/validation/smart-validator.d.ts.map +1 -0
- package/dist/sdd/validation/smart-validator.js +347 -0
- package/dist/sdd/validation/smart-validator.js.map +1 -0
- package/dist/sdd/validation/validator.d.ts +39 -0
- package/dist/sdd/validation/validator.d.ts.map +1 -0
- package/dist/sdd/validation/validator.js +512 -0
- package/dist/sdd/validation/validator.js.map +1 -0
- package/dist/sdd/workflow/exporter.d.ts +36 -0
- package/dist/sdd/workflow/exporter.d.ts.map +1 -0
- package/dist/sdd/workflow/exporter.js +112 -0
- package/dist/sdd/workflow/exporter.js.map +1 -0
- package/dist/sdd/workflows/ab-testing.d.ts +18 -0
- package/dist/sdd/workflows/ab-testing.d.ts.map +1 -0
- package/dist/sdd/workflows/ab-testing.js +67 -0
- package/dist/sdd/workflows/ab-testing.js.map +1 -0
- package/dist/sdd/workflows/bug-fix.d.ts +13 -0
- package/dist/sdd/workflows/bug-fix.d.ts.map +1 -0
- package/dist/sdd/workflows/bug-fix.js +65 -0
- package/dist/sdd/workflows/bug-fix.js.map +1 -0
- package/dist/sdd/workflows/data-migration.d.ts +14 -0
- package/dist/sdd/workflows/data-migration.d.ts.map +1 -0
- package/dist/sdd/workflows/data-migration.js +68 -0
- package/dist/sdd/workflows/data-migration.js.map +1 -0
- package/dist/sdd/workflows/deprecation.d.ts +15 -0
- package/dist/sdd/workflows/deprecation.d.ts.map +1 -0
- package/dist/sdd/workflows/deprecation.js +68 -0
- package/dist/sdd/workflows/deprecation.js.map +1 -0
- package/dist/sdd/workflows/feature-flags.d.ts +14 -0
- package/dist/sdd/workflows/feature-flags.d.ts.map +1 -0
- package/dist/sdd/workflows/feature-flags.js +73 -0
- package/dist/sdd/workflows/feature-flags.js.map +1 -0
- package/dist/sdd/workflows/hotfix.d.ts +13 -0
- package/dist/sdd/workflows/hotfix.d.ts.map +1 -0
- package/dist/sdd/workflows/hotfix.js +67 -0
- package/dist/sdd/workflows/hotfix.js.map +1 -0
- package/dist/sdd/workflows/multi-tenancy.d.ts +13 -0
- package/dist/sdd/workflows/multi-tenancy.d.ts.map +1 -0
- package/dist/sdd/workflows/multi-tenancy.js +68 -0
- package/dist/sdd/workflows/multi-tenancy.js.map +1 -0
- package/dist/sdd/workflows/onboarding.d.ts +7 -0
- package/dist/sdd/workflows/onboarding.d.ts.map +1 -0
- package/dist/sdd/workflows/onboarding.js +43 -0
- package/dist/sdd/workflows/onboarding.js.map +1 -0
- package/dist/sdd/workflows/refactoring.d.ts +14 -0
- package/dist/sdd/workflows/refactoring.d.ts.map +1 -0
- package/dist/sdd/workflows/refactoring.js +73 -0
- package/dist/sdd/workflows/refactoring.js.map +1 -0
- package/dist/server/events.d.ts +64 -0
- package/dist/server/events.d.ts.map +1 -0
- package/dist/server/events.js +149 -0
- package/dist/server/events.js.map +1 -0
- package/dist/server/server.d.ts +33 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +1019 -0
- package/dist/server/server.js.map +1 -0
- package/marketplace.json +39 -0
- package/package.json +65 -0
- package/src/code-intelligence/analyzer.ts +350 -0
- package/src/code-intelligence/ast/cache.ts +61 -0
- package/src/code-intelligence/ast/common.ts +62 -0
- package/src/code-intelligence/ast/component.ts +39 -0
- package/src/code-intelligence/ast/fallback.ts +44 -0
- package/src/code-intelligence/ast/index.ts +4 -0
- package/src/code-intelligence/ast/ir.ts +91 -0
- package/src/code-intelligence/ast/metrics.ts +65 -0
- package/src/code-intelligence/ast/registry.ts +28 -0
- package/src/code-intelligence/ast/tree-sitter.ts +226 -0
- package/src/code-intelligence/ast/typescript.ts +140 -0
- package/src/index.ts +22 -0
- package/src/mcp/server.ts +77 -0
- package/src/opencode/hooks.ts +728 -0
- package/src/opencode/router/categories.ts +192 -0
- package/src/opencode/router/embeddings.ts +149 -0
- package/src/opencode/router/graph-state-snapshot.ts +163 -0
- package/src/opencode/router/index.ts +44 -0
- package/src/opencode/router/intent-classifier.ts +140 -0
- package/src/opencode/router/semantic-nudge.ts +89 -0
- package/src/opencode/router/state-gate.ts +192 -0
- package/src/opencode/router/tool-embeddings.ts +162 -0
- package/src/opencode/router/tool-registry.ts +135 -0
- package/src/opencode/router/tool-taxonomy.ts +284 -0
- package/src/opencode/router/tools-composite.ts +685 -0
- package/src/opencode/shell-hooks.ts +115 -0
- package/src/opencode/system-prompt.ts +617 -0
- package/src/opencode/tools.ts +4102 -0
- package/src/opencode/workflows/chains.ts +205 -0
- package/src/opencode/workflows/executor.ts +172 -0
- package/src/opencode/workflows/index.ts +21 -0
- package/src/opencode/workflows/tools-workflow.ts +91 -0
- package/src/opencode/workflows/types.ts +42 -0
- package/src/sdd/analysis/compliance.ts +279 -0
- package/src/sdd/analysis/scalability.ts +97 -0
- package/src/sdd/analysis/security.ts +135 -0
- package/src/sdd/brownfield/scanner.ts +276 -0
- package/src/sdd/cache/manager.ts +899 -0
- package/src/sdd/cache/snapshot-store.ts +185 -0
- package/src/sdd/changes/manager.ts +326 -0
- package/src/sdd/cicd/generators.ts +1095 -0
- package/src/sdd/code-quality/complexity.ts +235 -0
- package/src/sdd/code-quality/conventions.ts +220 -0
- package/src/sdd/code-quality/dependencies.ts +203 -0
- package/src/sdd/code-quality/import-analyzer.ts +294 -0
- package/src/sdd/code-quality/metrics.ts +232 -0
- package/src/sdd/code-quality/smells.ts +415 -0
- package/src/sdd/code-quality/symbol-parser.ts +335 -0
- package/src/sdd/code-quality/usage-tracker.ts +527 -0
- package/src/sdd/code-quality/utils.ts +13 -0
- package/src/sdd/codegen/generator.ts +1181 -0
- package/src/sdd/constitution/validator.ts +253 -0
- package/src/sdd/cost/estimator.ts +147 -0
- package/src/sdd/coverage/tracker.ts +342 -0
- package/src/sdd/disaster/recovery.ts +79 -0
- package/src/sdd/discovery/adaptive.ts +167 -0
- package/src/sdd/discovery/briefing-analyzer.ts +802 -0
- package/src/sdd/discovery/briefing.ts +770 -0
- package/src/sdd/discovery/graph-builder.ts +598 -0
- package/src/sdd/documentation/generator.ts +158 -0
- package/src/sdd/domain/types.ts +658 -0
- package/src/sdd/drift/detector.ts +465 -0
- package/src/sdd/drift/exclusion.ts +223 -0
- package/src/sdd/drift/signals.ts +577 -0
- package/src/sdd/enforcement/interceptor.ts +444 -0
- package/src/sdd/enforcement/workflow-tracker.ts +263 -0
- package/src/sdd/graph/engine.ts +277 -0
- package/src/sdd/graph/index.ts +700 -0
- package/src/sdd/graph/integrity-guard.ts +348 -0
- package/src/sdd/graph/integrity.ts +628 -0
- package/src/sdd/graph/pruner.ts +221 -0
- package/src/sdd/graph/traverse.ts +331 -0
- package/src/sdd/incidents/manager.ts +87 -0
- package/src/sdd/knowledge/transfer.ts +140 -0
- package/src/sdd/migrations/fixes.ts +154 -0
- package/src/sdd/migrations/index.ts +14 -0
- package/src/sdd/migrations/migration-runner.ts +118 -0
- package/src/sdd/monitoring/setup.ts +237 -0
- package/src/sdd/monitoring/telemetry.ts +44 -0
- package/src/sdd/patterns/anti-patterns.ts +333 -0
- package/src/sdd/patterns/ast-clones.ts +214 -0
- package/src/sdd/patterns/config-drift.ts +346 -0
- package/src/sdd/patterns/contradictions.ts +323 -0
- package/src/sdd/patterns/learner.ts +266 -0
- package/src/sdd/permissions/access.ts +478 -0
- package/src/sdd/persistence/repository.ts +166 -0
- package/src/sdd/persistence/sqlite.ts +703 -0
- package/src/sdd/persistence/yaml.ts +409 -0
- package/src/sdd/promises/classifier.ts +253 -0
- package/src/sdd/promises/tracker.ts +258 -0
- package/src/sdd/quality/scorer.ts +263 -0
- package/src/sdd/rollback/manager.ts +361 -0
- package/src/sdd/session/handoff.ts +354 -0
- package/src/sdd/sla/tracker.ts +68 -0
- package/src/sdd/sync/git-sync.ts +401 -0
- package/src/sdd/toggle/state.ts +38 -0
- package/src/sdd/transactions/manager.ts +93 -0
- package/src/sdd/validation/coverage-index.ts +339 -0
- package/src/sdd/validation/executable.ts +127 -0
- package/src/sdd/validation/smart-validator.ts +470 -0
- package/src/sdd/validation/validator.ts +641 -0
- package/src/sdd/workflow/exporter.ts +169 -0
- package/src/sdd/workflows/ab-testing.ts +90 -0
- package/src/sdd/workflows/bug-fix.ts +81 -0
- package/src/sdd/workflows/data-migration.ts +86 -0
- package/src/sdd/workflows/deprecation.ts +87 -0
- package/src/sdd/workflows/feature-flags.ts +91 -0
- package/src/sdd/workflows/hotfix.ts +83 -0
- package/src/sdd/workflows/multi-tenancy.ts +84 -0
- package/src/sdd/workflows/onboarding.ts +82 -0
- package/src/sdd/workflows/refactoring.ts +90 -0
- package/src/server/events.ts +184 -0
- package/src/server/server.ts +1088 -0
|
@@ -0,0 +1,583 @@
|
|
|
1
|
+
import { createRepository } from "../sdd/persistence/repository.js";
|
|
2
|
+
import { SDD_CORE_SYSTEM_PROMPT, buildSddContextPack } from "./system-prompt.js";
|
|
3
|
+
import { validateGraph } from "../sdd/validation/validator.js";
|
|
4
|
+
import { getPendingChanges } from "../sdd/changes/manager.js";
|
|
5
|
+
import { isSddEnabled, setToggleState, getToggleState } from "../sdd/toggle/state.js";
|
|
6
|
+
import { checkPermission, getUserRoleWithAuth, addAuditEntry } from "../sdd/permissions/access.js";
|
|
7
|
+
import { createSnapshot } from "../sdd/rollback/manager.js";
|
|
8
|
+
import { getCacheManager } from "../sdd/cache/manager.js";
|
|
9
|
+
import { checkToolAccess, resetWorkflowState, getWorkflowState, markSpecUpdated } from "../sdd/enforcement/workflow-tracker.js";
|
|
10
|
+
import { formatNudgeInput } from "./router/semantic-nudge.js";
|
|
11
|
+
import { invalidateSnapshotCache } from "./router/graph-state-snapshot.js";
|
|
12
|
+
import { runMigrations, hasPendingMigrations } from "../sdd/migrations/index.js";
|
|
13
|
+
const SDD_FILE_PATTERNS = [
|
|
14
|
+
/\.ts$/,
|
|
15
|
+
/\.tsx$/,
|
|
16
|
+
/\.js$/,
|
|
17
|
+
/\.jsx$/,
|
|
18
|
+
/\.py$/,
|
|
19
|
+
/\.go$/,
|
|
20
|
+
/\.rs$/,
|
|
21
|
+
/\.java$/,
|
|
22
|
+
/\.rb$/,
|
|
23
|
+
/\.vue$/,
|
|
24
|
+
/\.svelte$/,
|
|
25
|
+
];
|
|
26
|
+
const SDD_EXCLUDED_PATTERNS = [
|
|
27
|
+
/node_modules/,
|
|
28
|
+
/\.sdd\//,
|
|
29
|
+
/dist\//,
|
|
30
|
+
/build\//,
|
|
31
|
+
/\.git\//,
|
|
32
|
+
/\.opencode\//,
|
|
33
|
+
/package\.json/,
|
|
34
|
+
/tsconfig\.json/,
|
|
35
|
+
/\.env/,
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* Patterns that indicate a shell command is writing source files.
|
|
39
|
+
* Used to enforce SDD-first even when agents try to bypass via run_terminal_command.
|
|
40
|
+
*/
|
|
41
|
+
const SRC_EXT = /\.(?:ts|tsx|js|jsx|mjs|mts|py|go|rs|java|rb|vue|svelte|c|cpp|h|hpp|cs|swift|kt)$/;
|
|
42
|
+
const SRC_FILE = /([^\s>"]+\.(?:ts|tsx|js|jsx|mjs|mts|py|go|rs|java|rb|vue|svelte|c|cpp|h|hpp|cs|swift|kt))/;
|
|
43
|
+
const SHELL_WRITE_PATTERNS = [
|
|
44
|
+
// open('file','w').write(...) pattern (primary detection for python heredocs and -c)
|
|
45
|
+
{
|
|
46
|
+
pattern: /open\(['"]([^'"]+)['"]/g,
|
|
47
|
+
extractor: (m) => [m[1]],
|
|
48
|
+
},
|
|
49
|
+
// node -e "fs.writeFileSync('file',...)"
|
|
50
|
+
{
|
|
51
|
+
pattern: /node\s+(-e|--eval)\s+['"].*writeFile(?:Sync)?\s*\(\s*['"]([^'"]+)['"]/,
|
|
52
|
+
extractor: (m) => [m[2]],
|
|
53
|
+
},
|
|
54
|
+
// touch file.ts (creates new files)
|
|
55
|
+
{
|
|
56
|
+
pattern: /touch\s+(\S+\.\w+)/,
|
|
57
|
+
extractor: (m) => [m[1]],
|
|
58
|
+
},
|
|
59
|
+
// install [options] source dest.ts (copies/creates files)
|
|
60
|
+
{
|
|
61
|
+
pattern: /install\s+(?:[^\s]+\s+)*?(\S+\.\w+)\s*$/,
|
|
62
|
+
extractor: (m) => [m[1]],
|
|
63
|
+
},
|
|
64
|
+
// dd if=... of=file.ts
|
|
65
|
+
{
|
|
66
|
+
pattern: /dd\s+.*of=([^\s>]+)/,
|
|
67
|
+
extractor: (m) => [m[1]],
|
|
68
|
+
},
|
|
69
|
+
// truncate -s 0 file.ts or truncate --size=0 file.ts
|
|
70
|
+
{
|
|
71
|
+
pattern: /truncate\s+(?:\S+\s+)*?(\S+\.\w+)$/,
|
|
72
|
+
extractor: (m) => [m[1]],
|
|
73
|
+
},
|
|
74
|
+
// Generic shell redirect: any command > file.ts or >> file.ts
|
|
75
|
+
{
|
|
76
|
+
pattern: />\s*(\S+\.\w+)/,
|
|
77
|
+
extractor: (m) => [m[1]],
|
|
78
|
+
},
|
|
79
|
+
// sed -i 's/...' file.ts
|
|
80
|
+
{
|
|
81
|
+
pattern: /sed\s+(-i[^\s]*|--in-place)\s+['"][^"]*['"]\s+([^\s]+)/,
|
|
82
|
+
extractor: (m) => [m[2]],
|
|
83
|
+
},
|
|
84
|
+
// mv/rename to source file
|
|
85
|
+
{
|
|
86
|
+
pattern: /mv\s+\S+\s+(\S+\.\w+)/,
|
|
87
|
+
extractor: (m) => [m[1]],
|
|
88
|
+
},
|
|
89
|
+
// cp source dest (copying to source file)
|
|
90
|
+
{
|
|
91
|
+
pattern: /cp\s+\S+\s+(\S+\.\w+)/,
|
|
92
|
+
extractor: (m) => [m[1]],
|
|
93
|
+
},
|
|
94
|
+
// tee file.ts
|
|
95
|
+
{
|
|
96
|
+
pattern: /tee\s+(?:-a\s+)?(\S+\.\w+)/,
|
|
97
|
+
extractor: (m) => [m[1]],
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
/**
|
|
101
|
+
* Detect if a shell command attempts to write source code files.
|
|
102
|
+
* Returns extracted file paths that match source patterns.
|
|
103
|
+
* Exported for testing.
|
|
104
|
+
*/
|
|
105
|
+
export function detectShellFileWrites(command) {
|
|
106
|
+
const files = [];
|
|
107
|
+
for (const { pattern, extractor } of SHELL_WRITE_PATTERNS) {
|
|
108
|
+
// Reset lastIndex for global patterns
|
|
109
|
+
pattern.lastIndex = 0;
|
|
110
|
+
if (pattern.global) {
|
|
111
|
+
let match;
|
|
112
|
+
while ((match = pattern.exec(command)) !== null) {
|
|
113
|
+
const paths = extractor(match);
|
|
114
|
+
for (const p of paths) {
|
|
115
|
+
if (p && SRC_EXT.test(p) &&
|
|
116
|
+
!SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
|
|
117
|
+
files.push(p);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const match = command.match(pattern);
|
|
124
|
+
if (match) {
|
|
125
|
+
const paths = extractor(match);
|
|
126
|
+
for (const p of paths) {
|
|
127
|
+
if (p && SRC_EXT.test(p) &&
|
|
128
|
+
!SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
|
|
129
|
+
files.push(p);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Also detect heredoc-style writes (python3 - <<'EOF' ... open('file','w') ... EOF)
|
|
136
|
+
// These are multi-line patterns; the command string may contain newlines
|
|
137
|
+
if (/python[3]?\s+\-/.test(command) || /node\s+(-e|--eval)/.test(command)) {
|
|
138
|
+
// Extract all open('file','w') or writeFileSync calls
|
|
139
|
+
const openPattern = /open\(['"]([^'"]+)['"]/g;
|
|
140
|
+
let match;
|
|
141
|
+
while ((match = openPattern.exec(command)) !== null) {
|
|
142
|
+
const p = match[1];
|
|
143
|
+
if (p && SRC_EXT.test(p) &&
|
|
144
|
+
!SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
|
|
145
|
+
if (!files.includes(p))
|
|
146
|
+
files.push(p);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const writePattern = /writeFile(?:Sync)?\s*\(\s*['"]([^'"]+)['"]/g;
|
|
150
|
+
while ((match = writePattern.exec(command)) !== null) {
|
|
151
|
+
const p = match[1];
|
|
152
|
+
if (p && SRC_EXT.test(p) &&
|
|
153
|
+
!SDD_EXCLUDED_PATTERNS.some((ep) => ep.test(p))) {
|
|
154
|
+
if (!files.includes(p))
|
|
155
|
+
files.push(p);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return [...new Set(files)];
|
|
160
|
+
}
|
|
161
|
+
export function createSddHooks() {
|
|
162
|
+
let systemInjected = false;
|
|
163
|
+
return {
|
|
164
|
+
"experimental.chat.system.transform": async (_input, output) => {
|
|
165
|
+
if (systemInjected)
|
|
166
|
+
return;
|
|
167
|
+
if (!isSddEnabled(process.cwd()))
|
|
168
|
+
return;
|
|
169
|
+
// Run pending migrations on first load
|
|
170
|
+
if (hasPendingMigrations(process.cwd())) {
|
|
171
|
+
try {
|
|
172
|
+
const migrationResults = runMigrations(process.cwd());
|
|
173
|
+
const successful = migrationResults.filter(r => r.success);
|
|
174
|
+
if (successful.length > 0) {
|
|
175
|
+
output.system.push(`## 🔄 opencode-telos Migrations: ${successful.length} fix(es) applied`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
// Don't block system init on migration errors
|
|
180
|
+
console.error("[opencode-telos] Migration error:", err);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
const repo = createRepository(process.cwd());
|
|
184
|
+
if (repo.isInitialized()) {
|
|
185
|
+
// Restore persistent cache from disk (cross-session)
|
|
186
|
+
const cacheMgr = getCacheManager(process.cwd());
|
|
187
|
+
cacheMgr.restoreFromPersistentCache();
|
|
188
|
+
output.system.push(SDD_CORE_SYSTEM_PROMPT);
|
|
189
|
+
// Tool Registry: injeta tools relevantes para o estado atual do grafo
|
|
190
|
+
try {
|
|
191
|
+
const { getGraphSnapshot } = await import("./router/graph-state-snapshot.js");
|
|
192
|
+
const snapshot = getGraphSnapshot(process.cwd());
|
|
193
|
+
const { formatGraphState } = await import("./router/graph-state-snapshot.js");
|
|
194
|
+
output.system.push(formatGraphState(snapshot));
|
|
195
|
+
}
|
|
196
|
+
catch { }
|
|
197
|
+
try {
|
|
198
|
+
const graph = repo.loadGraph();
|
|
199
|
+
// Inject context pack for focused node info
|
|
200
|
+
const contextPack = buildSddContextPack(graph);
|
|
201
|
+
output.system.push(contextPack);
|
|
202
|
+
// Validation is cheap enough to expose blocking state. Drift, full
|
|
203
|
+
// health, promises, coverage and handoff are available on demand;
|
|
204
|
+
// running all of them at session start is expensive on large repos.
|
|
205
|
+
const validation = validateGraph(graph);
|
|
206
|
+
if (!validation.valid || validation.warnings.length > 0) {
|
|
207
|
+
const valLines = ["## SDD Validation"];
|
|
208
|
+
valLines.push(`**Valid:** ${validation.valid ? "✅" : "❌"}`);
|
|
209
|
+
if (validation.errors.length > 0)
|
|
210
|
+
valLines.push(`**Errors:** ${validation.errors.length}`);
|
|
211
|
+
if (validation.warnings.length > 0)
|
|
212
|
+
valLines.push(`**Warnings:** ${validation.warnings.length}`);
|
|
213
|
+
output.system.push(valLines.join("\n"));
|
|
214
|
+
}
|
|
215
|
+
// Inject pending changes summary
|
|
216
|
+
const pending = getPendingChanges(graph);
|
|
217
|
+
if (pending.length > 0) {
|
|
218
|
+
output.system.push(`## Pending Changes: ${pending.length} change(s) awaiting action`);
|
|
219
|
+
}
|
|
220
|
+
// G: Save graph snapshot to disk for fast cross-session restore
|
|
221
|
+
try {
|
|
222
|
+
const cacheMgrForSnapshot = getCacheManager(process.cwd());
|
|
223
|
+
cacheMgrForSnapshot.saveGraphSnapshot(graph);
|
|
224
|
+
}
|
|
225
|
+
catch { }
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
// Handoff is optional, don't fail if it can't be generated
|
|
229
|
+
}
|
|
230
|
+
// Persist cache to disk for cross-session reuse
|
|
231
|
+
try {
|
|
232
|
+
const cacheMgr = getCacheManager(process.cwd());
|
|
233
|
+
cacheMgr.persistToDisk();
|
|
234
|
+
}
|
|
235
|
+
catch { }
|
|
236
|
+
systemInjected = true;
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"chat.message": async (_input, output) => {
|
|
240
|
+
if (!output.parts)
|
|
241
|
+
return;
|
|
242
|
+
for (const part of output.parts) {
|
|
243
|
+
if (part.type !== "text")
|
|
244
|
+
continue;
|
|
245
|
+
const text = part.text.trim();
|
|
246
|
+
// Detect /sdd commands
|
|
247
|
+
if (text === "/sdd on") {
|
|
248
|
+
const state = setToggleState(process.cwd(), true);
|
|
249
|
+
systemInjected = false;
|
|
250
|
+
part.text = `✅ SDD enforcement **enabled** at ${state.changed_at}.\n\nSpec-Driven Development is now active. All code changes will go through the SDD workflow.`;
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (text === "/sdd off") {
|
|
254
|
+
const state = setToggleState(process.cwd(), false);
|
|
255
|
+
systemInjected = false;
|
|
256
|
+
resetWorkflowState();
|
|
257
|
+
part.text = `⏸️ SDD enforcement **disabled** at ${state.changed_at}.\n\nYou can now make code changes freely without SDD workflow. Use \`/sdd on\` to re-enable.`;
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
if (text === "/sdd status") {
|
|
261
|
+
const state = getToggleState(process.cwd());
|
|
262
|
+
const status = state.enabled ? "🟢 ON" : "🔴 OFF";
|
|
263
|
+
part.text = `SDD Status: ${status}\nLast changed: ${state.changed_at}\n\nCommands: \`/sdd on\`, \`/sdd off\`, \`/sdd status\`, \`/sdd cache reset\``;
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
// H: /sdd cache reset — full cache reset without killing the process
|
|
267
|
+
if (text === "/sdd cache reset") {
|
|
268
|
+
const cacheMgr = getCacheManager(process.cwd());
|
|
269
|
+
const result = cacheMgr.fullReset();
|
|
270
|
+
const lines = ["## 🧹 Cache Reset Complete"];
|
|
271
|
+
lines.push(`- Memory cache: ${result.cleared.memory ? "✅ cleared" : "⏭️ skipped"}`);
|
|
272
|
+
lines.push(`- Persistent cache: ${result.cleared.disk ? "✅ cleared" : "⏭️ no file"}`);
|
|
273
|
+
lines.push(`- Graph snapshot: ${result.cleared.snapshot ? "✅ cleared" : "⏭️ no snapshot"}`);
|
|
274
|
+
lines.push(`- Lock file: ${result.cleared.lock ? "✅ released" : "⏭️ no lock"}`);
|
|
275
|
+
lines.push(`\nInvalidation version: ${cacheMgr.getInvalidationVersion()}`);
|
|
276
|
+
lines.push("\nThe next tool call will recompute fresh results.");
|
|
277
|
+
part.text = lines.join("\n");
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
// Semantic nudge — replaces regex-based pattern detection
|
|
281
|
+
if (isSddEnabled(process.cwd())) {
|
|
282
|
+
const nudge = formatNudgeInput(text);
|
|
283
|
+
if (nudge) {
|
|
284
|
+
part.text += `\n\n${nudge}`;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"tool.execute.before": async (input, output) => {
|
|
290
|
+
// Skip enforcement if SDD is disabled
|
|
291
|
+
if (!isSddEnabled(process.cwd()))
|
|
292
|
+
return;
|
|
293
|
+
// Enforce workflow context for SDD graph mutation tools
|
|
294
|
+
if (input.tool.startsWith("sdd.")) {
|
|
295
|
+
const access = checkToolAccess(input.tool);
|
|
296
|
+
if (!access.allowed) {
|
|
297
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", input.tool, "graph", "denied", access.reason || "Workflow not active");
|
|
298
|
+
throw new Error(access.reason);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// Intercept shell commands that write source files (bypass prevention)
|
|
302
|
+
if (input.tool === "run_terminal_command") {
|
|
303
|
+
const command = output.args?.command || output.args?.cmd || "";
|
|
304
|
+
if (typeof command === "string" && command.length > 0) {
|
|
305
|
+
// ENFORCEMENT: Block shell writes to .sdd/ directory
|
|
306
|
+
if (command.includes(".sdd/") && (/[>]|writeFile|open\(['"].*['"],\s*['"]w/.test(command))) {
|
|
307
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", ".sdd/", "denied", "Shell command writes to .sdd/ directory");
|
|
308
|
+
throw new Error([
|
|
309
|
+
`[SDD BLOCKED] Shell command detected that writes to .sdd/ directory.`,
|
|
310
|
+
` Command: ${command.slice(0, 200)}`,
|
|
311
|
+
"",
|
|
312
|
+
"The Knowledge Graph can ONLY be modified through SDD tools.",
|
|
313
|
+
"Direct shell edits to .sdd/ are not allowed.",
|
|
314
|
+
].join("\n"));
|
|
315
|
+
}
|
|
316
|
+
const detectedFiles = detectShellFileWrites(command);
|
|
317
|
+
if (detectedFiles.length > 0) {
|
|
318
|
+
const repo = createRepository(process.cwd());
|
|
319
|
+
if (!repo.isInitialized())
|
|
320
|
+
return;
|
|
321
|
+
const graph = repo.loadGraph();
|
|
322
|
+
// Check spec nodes exist
|
|
323
|
+
const specNodeTypes = ["feature", "entity", "requirement", "architecture_component", "module"];
|
|
324
|
+
const hasSpecNodes = graph.nodes.some(n => specNodeTypes.includes(n.type));
|
|
325
|
+
if (!hasSpecNodes && graph.nodes.length > 0) {
|
|
326
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "Shell command writes source files without spec nodes");
|
|
327
|
+
throw new Error([
|
|
328
|
+
`[SDD BLOCKED] Shell command detected that writes source files:`,
|
|
329
|
+
` Files: ${detectedFiles.join(", ")}`,
|
|
330
|
+
"",
|
|
331
|
+
"The Knowledge Graph has no feature, entity, requirement, or component nodes.",
|
|
332
|
+
"You MUST create specification nodes before writing code:",
|
|
333
|
+
"",
|
|
334
|
+
"1. Run sdd.discover to create features and entities",
|
|
335
|
+
"2. Run sdd.update_from_answers to populate the specification",
|
|
336
|
+
"3. THEN retry this write",
|
|
337
|
+
"",
|
|
338
|
+
"Or run sdd.full_cycle for the complete automated cycle.",
|
|
339
|
+
].join("\n"));
|
|
340
|
+
}
|
|
341
|
+
// Check for approved Change node covering these files
|
|
342
|
+
const approvedChanges = getPendingChanges(graph).filter((c) => {
|
|
343
|
+
if (c.status !== "APPROVED")
|
|
344
|
+
return false;
|
|
345
|
+
const affectedFiles = c.metadata.affected_files || [];
|
|
346
|
+
return detectedFiles.some((f) => affectedFiles.some((af) => f.includes(af) || af.includes(f)));
|
|
347
|
+
});
|
|
348
|
+
if (approvedChanges.length === 0) {
|
|
349
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "No approved Change node for shell-written files");
|
|
350
|
+
throw new Error([
|
|
351
|
+
`[SDD BLOCKED] Shell command detected that writes source files without SDD approval:`,
|
|
352
|
+
` Command: ${command.slice(0, 200)}`,
|
|
353
|
+
` Files: ${detectedFiles.join(", ")}`,
|
|
354
|
+
"",
|
|
355
|
+
"Using shell commands to bypass SDD enforcement is not allowed.",
|
|
356
|
+
"You MUST follow the SDD workflow before writing code:",
|
|
357
|
+
"",
|
|
358
|
+
"1. Run sdd.enforce to classify and create a Change node",
|
|
359
|
+
"2. Run sdd.update_from_answers to update the specification",
|
|
360
|
+
"3. Run sdd.approve_change to approve the Change",
|
|
361
|
+
"4. THEN retry this write",
|
|
362
|
+
"",
|
|
363
|
+
"Or run sdd.full_cycle for the complete automated cycle.",
|
|
364
|
+
].join("\n"));
|
|
365
|
+
}
|
|
366
|
+
// ENFORCEMENT: Require spec update before shell write
|
|
367
|
+
const shellWorkflow = getWorkflowState();
|
|
368
|
+
if (shellWorkflow.enforced && !shellWorkflow.specUpdated) {
|
|
369
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "denied", "SDD spec not updated after enforce");
|
|
370
|
+
throw new Error([
|
|
371
|
+
`[SDD BLOCKED] Cannot write code before updating the specification.`,
|
|
372
|
+
` Files: ${detectedFiles.join(", ")}`,
|
|
373
|
+
` Change: ${shellWorkflow.changeId}`,
|
|
374
|
+
"",
|
|
375
|
+
"After sdd.enforce, you MUST update the SDD graph BEFORE writing code:",
|
|
376
|
+
"",
|
|
377
|
+
"1. Run sdd.add_node to create feature/entity/business_rule nodes",
|
|
378
|
+
"2. Run sdd.update_from_answers to populate the specification",
|
|
379
|
+
"3. Run sdd.validate to verify the updated spec",
|
|
380
|
+
"4. THEN retry this write",
|
|
381
|
+
"",
|
|
382
|
+
"The SDD specification is the source of truth. Code must follow the spec, not the other way around.",
|
|
383
|
+
].join("\n"));
|
|
384
|
+
}
|
|
385
|
+
// Approved — create snapshots
|
|
386
|
+
for (const change of approvedChanges) {
|
|
387
|
+
createSnapshot(graph, change.id, process.cwd());
|
|
388
|
+
}
|
|
389
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "shell_command", detectedFiles.join(", "), "allowed", `Approved changes: ${approvedChanges.map((c) => c.id).join(", ")}`);
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
// Intercept file write tools (Write, Edit) to enforce SDD-first
|
|
395
|
+
if (input.tool === "Write" || input.tool === "Edit") {
|
|
396
|
+
const filePath = output.args?.filePath || output.args?.path || "";
|
|
397
|
+
// ENFORCEMENT: Block direct writes to .sdd/ directory
|
|
398
|
+
// The SDD graph can ONLY be modified through sdd.* tools
|
|
399
|
+
if (filePath.includes(".sdd/")) {
|
|
400
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", input.tool, filePath, "denied", "Direct .sdd/ modification blocked");
|
|
401
|
+
throw new Error([
|
|
402
|
+
`[SDD BLOCKED] Cannot write directly to .sdd/ directory.`,
|
|
403
|
+
` File: ${filePath}`,
|
|
404
|
+
"",
|
|
405
|
+
"The Knowledge Graph can ONLY be modified through SDD tools:",
|
|
406
|
+
"- sdd.add_node / sdd.update_node / sdd.remove_node",
|
|
407
|
+
"- sdd.add_relationship / sdd.remove_relationship",
|
|
408
|
+
"- sdd.build_graph (initial setup)",
|
|
409
|
+
"",
|
|
410
|
+
"Direct file edits to .sdd/ are not allowed.",
|
|
411
|
+
].join("\n"));
|
|
412
|
+
}
|
|
413
|
+
// Check if this is a source code file
|
|
414
|
+
const isSourceFile = SDD_FILE_PATTERNS.some((p) => p.test(filePath)) &&
|
|
415
|
+
!SDD_EXCLUDED_PATTERNS.some((p) => p.test(filePath));
|
|
416
|
+
if (!isSourceFile)
|
|
417
|
+
return;
|
|
418
|
+
// Check if SDD is initialized
|
|
419
|
+
const repo = createRepository(process.cwd());
|
|
420
|
+
if (!repo.isInitialized())
|
|
421
|
+
return;
|
|
422
|
+
const graph = repo.loadGraph();
|
|
423
|
+
// Check if graph has required spec nodes before allowing code creation
|
|
424
|
+
const specNodeTypes = ["feature", "entity", "requirement", "architecture_component", "module"];
|
|
425
|
+
const hasSpecNodes = graph.nodes.some(n => specNodeTypes.includes(n.type));
|
|
426
|
+
if (!hasSpecNodes && graph.nodes.length > 0) {
|
|
427
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "No spec nodes in graph");
|
|
428
|
+
throw new Error([
|
|
429
|
+
`[SDD BLOCKED] Cannot create code without specification.`,
|
|
430
|
+
"",
|
|
431
|
+
"The Knowledge Graph has no feature, entity, requirement, or component nodes.",
|
|
432
|
+
"You MUST create specification nodes before writing code:",
|
|
433
|
+
"",
|
|
434
|
+
"1. Run sdd.discover to create features and entities",
|
|
435
|
+
"2. Run sdd.update_from_answers to populate the specification",
|
|
436
|
+
"3. THEN retry this write",
|
|
437
|
+
"",
|
|
438
|
+
"Or run sdd.full_cycle for the complete automated cycle.",
|
|
439
|
+
].join("\n"));
|
|
440
|
+
}
|
|
441
|
+
// Check permissions before allowing changes
|
|
442
|
+
const userRole = getUserRoleWithAuth(process.cwd(), process.env.USER || "current");
|
|
443
|
+
const hasPermission = checkPermission(userRole, "create_change", process.cwd());
|
|
444
|
+
if (!hasPermission) {
|
|
445
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "Insufficient permissions");
|
|
446
|
+
throw new Error([
|
|
447
|
+
`[SDD PERMISSION DENIED] Cannot modify ${filePath}.`,
|
|
448
|
+
"",
|
|
449
|
+
`Your role (${userRole}) does not have permission to create changes.`,
|
|
450
|
+
"Contact an admin to grant you the 'create_change' permission.",
|
|
451
|
+
].join("\n"));
|
|
452
|
+
}
|
|
453
|
+
// Find an approved Change node that covers this file
|
|
454
|
+
const approvedChanges = getPendingChanges(graph).filter((c) => {
|
|
455
|
+
if (c.status !== "APPROVED")
|
|
456
|
+
return false;
|
|
457
|
+
const files = c.metadata.affected_files || [];
|
|
458
|
+
return files.some((f) => filePath.includes(f) || f.includes(filePath));
|
|
459
|
+
});
|
|
460
|
+
if (approvedChanges.length > 0) {
|
|
461
|
+
// ENFORCEMENT: Require spec update before code write
|
|
462
|
+
const workflow = getWorkflowState();
|
|
463
|
+
if (workflow.enforced && !workflow.specUpdated) {
|
|
464
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "SDD spec not updated after enforce");
|
|
465
|
+
throw new Error([
|
|
466
|
+
`[SDD BLOCKED] Cannot write code before updating the specification.`,
|
|
467
|
+
` File: ${filePath}`,
|
|
468
|
+
` Change: ${workflow.changeId}`,
|
|
469
|
+
"",
|
|
470
|
+
"After sdd.enforce, you MUST update the SDD graph BEFORE writing code:",
|
|
471
|
+
"",
|
|
472
|
+
"1. Run sdd.add_node to create feature/entity/business_rule nodes",
|
|
473
|
+
"2. Run sdd.update_from_answers to populate the specification",
|
|
474
|
+
"3. Run sdd.validate to verify the updated spec",
|
|
475
|
+
"4. THEN retry this write",
|
|
476
|
+
"",
|
|
477
|
+
"The SDD specification is the source of truth. Code must follow the spec, not the other way around.",
|
|
478
|
+
].join("\n"));
|
|
479
|
+
}
|
|
480
|
+
// Create snapshot before approving change
|
|
481
|
+
for (const change of approvedChanges) {
|
|
482
|
+
createSnapshot(graph, change.id, process.cwd());
|
|
483
|
+
}
|
|
484
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "allowed", `Approved changes: ${approvedChanges.map((c) => c.id).join(", ")}`);
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
// File not covered by any approved Change → BLOCK the write
|
|
488
|
+
addAuditEntry(process.cwd(), process.env.USER || "current", "write_file", filePath, "denied", "No approved Change node");
|
|
489
|
+
throw new Error([
|
|
490
|
+
`[SDD BLOCKED] Cannot modify ${filePath}.`,
|
|
491
|
+
"",
|
|
492
|
+
"This file is not covered by an approved SDD Change node.",
|
|
493
|
+
"You MUST follow the SDD workflow before writing code:",
|
|
494
|
+
"",
|
|
495
|
+
"1. Run sdd.enforce to classify and create a Change node",
|
|
496
|
+
"2. Run sdd.update_from_answers to update the specification",
|
|
497
|
+
"3. Run sdd.approve_change to approve the Change",
|
|
498
|
+
"4. THEN retry this write",
|
|
499
|
+
"",
|
|
500
|
+
"Or run sdd.full_cycle for the complete automated cycle.",
|
|
501
|
+
].join("\n"));
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
"tool.execute.after": async (input, output) => {
|
|
505
|
+
if (!input.tool.startsWith("sdd."))
|
|
506
|
+
return;
|
|
507
|
+
const timestamp = new Date().toISOString();
|
|
508
|
+
if (output.metadata) {
|
|
509
|
+
output.metadata.sdd_tool = true;
|
|
510
|
+
output.metadata.sdd_timestamp = timestamp;
|
|
511
|
+
}
|
|
512
|
+
// Invalidate state snapshot cache after mutations
|
|
513
|
+
const mutationTools = [
|
|
514
|
+
"sdd.add_node", "sdd.update_node", "sdd.remove_node",
|
|
515
|
+
"sdd.add_relationship", "sdd.remove_relationship",
|
|
516
|
+
"sdd.build_graph", "sdd.update_from_answers",
|
|
517
|
+
"sdd.enforce", "sdd.approve_change", "sdd.complete_change",
|
|
518
|
+
"sdd.generate_code",
|
|
519
|
+
// Composite tools
|
|
520
|
+
"sdd.graph_mutation", "sdd.graph_admin",
|
|
521
|
+
"sdd.workflow_new_feature", "sdd.workflow_bug_fix",
|
|
522
|
+
"sdd.workflow_hotfix", "sdd.workflow_refactor",
|
|
523
|
+
"sdd.workflow_full_cycle",
|
|
524
|
+
];
|
|
525
|
+
if (mutationTools.includes(input.tool)) {
|
|
526
|
+
invalidateSnapshotCache();
|
|
527
|
+
}
|
|
528
|
+
// Mark spec as updated when spec-mutating tools are called
|
|
529
|
+
const specMutationTools = new Set([
|
|
530
|
+
"sdd.add_node", "sdd.update_node", "sdd.remove_node",
|
|
531
|
+
"sdd.add_relationship", "sdd.remove_relationship",
|
|
532
|
+
"sdd.update_from_answers",
|
|
533
|
+
"sdd.build_graph",
|
|
534
|
+
"sdd.generate_code",
|
|
535
|
+
// Composite tools that update spec
|
|
536
|
+
"sdd.graph_mutation", "sdd.graph_admin",
|
|
537
|
+
"sdd.workflow_new_feature", "sdd.workflow_bug_fix",
|
|
538
|
+
"sdd.workflow_hotfix", "sdd.workflow_refactor",
|
|
539
|
+
"sdd.workflow_full_cycle",
|
|
540
|
+
]);
|
|
541
|
+
if (specMutationTools.has(input.tool)) {
|
|
542
|
+
markSpecUpdated();
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
"tool.definition": async (input, output) => {
|
|
546
|
+
if (!isSddEnabled(process.cwd()))
|
|
547
|
+
return;
|
|
548
|
+
// Inject SDD enforcement warning into run_terminal_command description
|
|
549
|
+
if (input.toolID === "run_terminal_command") {
|
|
550
|
+
const warning = [
|
|
551
|
+
"",
|
|
552
|
+
"",
|
|
553
|
+
"[SDD ENFORCEMENT] This tool is monitored. Any command that writes",
|
|
554
|
+
"source code files (.ts, .tsx, .js, .jsx, .py, .go, .rs, etc.)",
|
|
555
|
+
"WILL BE BLOCKED unless an approved SDD Change node covers those files.",
|
|
556
|
+
"",
|
|
557
|
+
"Use sdd.enforce BEFORE modifying code. Shell commands cannot",
|
|
558
|
+
"bypass SDD-first workflow.",
|
|
559
|
+
].join("\n");
|
|
560
|
+
output.description = (output.description || "") + warning;
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
"permission.ask": async (input, output) => {
|
|
564
|
+
const pattern = input.pattern;
|
|
565
|
+
if (typeof pattern === "string" && pattern.includes("sdd.")) {
|
|
566
|
+
output.status = "allow";
|
|
567
|
+
}
|
|
568
|
+
else if (Array.isArray(pattern) && pattern.some((p) => p.includes("sdd."))) {
|
|
569
|
+
output.status = "allow";
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
dispose: async () => {
|
|
573
|
+
// E: Persist cache and release resources on session end
|
|
574
|
+
try {
|
|
575
|
+
const cacheMgr = getCacheManager(process.cwd());
|
|
576
|
+
cacheMgr.persistToDisk();
|
|
577
|
+
cacheMgr.releaseWriteLock();
|
|
578
|
+
}
|
|
579
|
+
catch { }
|
|
580
|
+
},
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/opencode/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Categories — Mapeamento de tools para categorias de intenção.
|
|
3
|
+
*
|
|
4
|
+
* Cada tool é classificada em uma ou mais categorias.
|
|
5
|
+
* O intent classifier usa isso para filtrar tools por categoria.
|
|
6
|
+
*
|
|
7
|
+
* Consumido por: intent-classifier.ts, tool-registry.ts
|
|
8
|
+
* Dependências: tool-taxonomy.ts
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Categorias de intenção do usuário.
|
|
12
|
+
*/
|
|
13
|
+
export type IntentCategory = "mutation" | "query" | "workflow" | "analysis" | "quality" | "enterprise" | "admin" | "discovery" | "implementation" | "info";
|
|
14
|
+
/**
|
|
15
|
+
* Obtém as categorias de intenção para uma tool.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getToolCategories(toolName: string): IntentCategory[];
|
|
18
|
+
/**
|
|
19
|
+
* Obtém todas as tools de uma categoria de intenção.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getToolsByCategory(category: IntentCategory): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Obtém categorias representadas em um conjunto de tools.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getCategoriesInToolSet(toolNames: Set<string>): IntentCategory[];
|
|
26
|
+
/**
|
|
27
|
+
* Keywords associadas a cada categoria de intenção.
|
|
28
|
+
* Usado como sinal auxiliar no intent classifier.
|
|
29
|
+
*/
|
|
30
|
+
export declare const CATEGORY_KEYWORDS: Record<IntentCategory, string[]>;
|
|
31
|
+
//# sourceMappingURL=categories.d.ts.map
|