@decibelsystems/tools 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +342 -0
- package/dist/agentic/compiler.d.ts +21 -0
- package/dist/agentic/compiler.d.ts.map +1 -0
- package/dist/agentic/compiler.js +267 -0
- package/dist/agentic/compiler.js.map +1 -0
- package/dist/agentic/golden.d.ts +25 -0
- package/dist/agentic/golden.d.ts.map +1 -0
- package/dist/agentic/golden.js +255 -0
- package/dist/agentic/golden.js.map +1 -0
- package/dist/agentic/index.d.ts +17 -0
- package/dist/agentic/index.d.ts.map +1 -0
- package/dist/agentic/index.js +153 -0
- package/dist/agentic/index.js.map +1 -0
- package/dist/agentic/linter.d.ts +20 -0
- package/dist/agentic/linter.d.ts.map +1 -0
- package/dist/agentic/linter.js +340 -0
- package/dist/agentic/linter.js.map +1 -0
- package/dist/agentic/renderer.d.ts +17 -0
- package/dist/agentic/renderer.d.ts.map +1 -0
- package/dist/agentic/renderer.js +277 -0
- package/dist/agentic/renderer.js.map +1 -0
- package/dist/agentic/types.d.ts +199 -0
- package/dist/agentic/types.d.ts.map +1 -0
- package/dist/agentic/types.js +8 -0
- package/dist/agentic/types.js.map +1 -0
- package/dist/architectAdrs.d.ts +32 -0
- package/dist/architectAdrs.d.ts.map +1 -0
- package/dist/architectAdrs.js +162 -0
- package/dist/architectAdrs.js.map +1 -0
- package/dist/client/facade-client.d.ts +41 -0
- package/dist/client/facade-client.d.ts.map +1 -0
- package/dist/client/facade-client.js +243 -0
- package/dist/client/facade-client.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +18 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/transports.d.ts +78 -0
- package/dist/client/transports.d.ts.map +1 -0
- package/dist/client/transports.js +258 -0
- package/dist/client/transports.js.map +1 -0
- package/dist/client/types.d.ts +49 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +8 -0
- package/dist/client/types.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -0
- package/dist/daemon.d.ts +77 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +374 -0
- package/dist/daemon.js.map +1 -0
- package/dist/daemonConfig.d.ts +43 -0
- package/dist/daemonConfig.d.ts.map +1 -0
- package/dist/daemonConfig.js +113 -0
- package/dist/daemonConfig.js.map +1 -0
- package/dist/dataRoot.d.ts +5 -0
- package/dist/dataRoot.d.ts.map +1 -0
- package/dist/dataRoot.js +23 -0
- package/dist/dataRoot.js.map +1 -0
- package/dist/decibelPaths.d.ts +42 -0
- package/dist/decibelPaths.d.ts.map +1 -0
- package/dist/decibelPaths.js +150 -0
- package/dist/decibelPaths.js.map +1 -0
- package/dist/facades/definitions.d.ts +6 -0
- package/dist/facades/definitions.d.ts.map +1 -0
- package/dist/facades/definitions.js +450 -0
- package/dist/facades/definitions.js.map +1 -0
- package/dist/facades/index.d.ts +27 -0
- package/dist/facades/index.d.ts.map +1 -0
- package/dist/facades/index.js +124 -0
- package/dist/facades/index.js.map +1 -0
- package/dist/facades/types.d.ts +38 -0
- package/dist/facades/types.d.ts.map +1 -0
- package/dist/facades/types.js +8 -0
- package/dist/facades/types.js.map +1 -0
- package/dist/httpServer.d.ts +66 -0
- package/dist/httpServer.d.ts.map +1 -0
- package/dist/httpServer.js +1723 -0
- package/dist/httpServer.js.map +1 -0
- package/dist/kernel.d.ts +87 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +256 -0
- package/dist/kernel.js.map +1 -0
- package/dist/lib/agent-services/assumptions.d.ts +16 -0
- package/dist/lib/agent-services/assumptions.d.ts.map +1 -0
- package/dist/lib/agent-services/assumptions.js +284 -0
- package/dist/lib/agent-services/assumptions.js.map +1 -0
- package/dist/lib/agent-services/context-pack.d.ts +6 -0
- package/dist/lib/agent-services/context-pack.d.ts.map +1 -0
- package/dist/lib/agent-services/context-pack.js +354 -0
- package/dist/lib/agent-services/context-pack.js.map +1 -0
- package/dist/lib/agent-services/drift-guard.d.ts +14 -0
- package/dist/lib/agent-services/drift-guard.d.ts.map +1 -0
- package/dist/lib/agent-services/drift-guard.js +355 -0
- package/dist/lib/agent-services/drift-guard.js.map +1 -0
- package/dist/lib/agent-services/index.d.ts +5 -0
- package/dist/lib/agent-services/index.d.ts.map +1 -0
- package/dist/lib/agent-services/index.js +10 -0
- package/dist/lib/agent-services/index.js.map +1 -0
- package/dist/lib/benchmark.d.ts +110 -0
- package/dist/lib/benchmark.d.ts.map +1 -0
- package/dist/lib/benchmark.js +338 -0
- package/dist/lib/benchmark.js.map +1 -0
- package/dist/lib/supabase.d.ts +123 -0
- package/dist/lib/supabase.d.ts.map +1 -0
- package/dist/lib/supabase.js +91 -0
- package/dist/lib/supabase.js.map +1 -0
- package/dist/license.d.ts +30 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +131 -0
- package/dist/license.js.map +1 -0
- package/dist/projectPaths.d.ts +27 -0
- package/dist/projectPaths.d.ts.map +1 -0
- package/dist/projectPaths.js +86 -0
- package/dist/projectPaths.js.map +1 -0
- package/dist/projectRegistry.d.ts +97 -0
- package/dist/projectRegistry.d.ts.map +1 -0
- package/dist/projectRegistry.js +374 -0
- package/dist/projectRegistry.js.map +1 -0
- package/dist/sentinelIssues.d.ts +65 -0
- package/dist/sentinelIssues.d.ts.map +1 -0
- package/dist/sentinelIssues.js +297 -0
- package/dist/sentinelIssues.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +195 -0
- package/dist/server.js.map +1 -0
- package/dist/test.d.ts +7 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +77 -0
- package/dist/test.js.map +1 -0
- package/dist/tools/agentic/index.d.ts +7 -0
- package/dist/tools/agentic/index.d.ts.map +1 -0
- package/dist/tools/agentic/index.js +203 -0
- package/dist/tools/agentic/index.js.map +1 -0
- package/dist/tools/architect/index.d.ts +11 -0
- package/dist/tools/architect/index.d.ts.map +1 -0
- package/dist/tools/architect/index.js +506 -0
- package/dist/tools/architect/index.js.map +1 -0
- package/dist/tools/architect.d.ts +19 -0
- package/dist/tools/architect.d.ts.map +1 -0
- package/dist/tools/architect.js +88 -0
- package/dist/tools/architect.js.map +1 -0
- package/dist/tools/auditor/index.d.ts +10 -0
- package/dist/tools/auditor/index.d.ts.map +1 -0
- package/dist/tools/auditor/index.js +310 -0
- package/dist/tools/auditor/index.js.map +1 -0
- package/dist/tools/auditor.d.ts +149 -0
- package/dist/tools/auditor.d.ts.map +1 -0
- package/dist/tools/auditor.js +775 -0
- package/dist/tools/auditor.js.map +1 -0
- package/dist/tools/bench/index.d.ts +3 -0
- package/dist/tools/bench/index.d.ts.map +1 -0
- package/dist/tools/bench/index.js +220 -0
- package/dist/tools/bench/index.js.map +1 -0
- package/dist/tools/bench.d.ts +89 -0
- package/dist/tools/bench.d.ts.map +1 -0
- package/dist/tools/bench.js +826 -0
- package/dist/tools/bench.js.map +1 -0
- package/dist/tools/context/index.d.ts +11 -0
- package/dist/tools/context/index.d.ts.map +1 -0
- package/dist/tools/context/index.js +482 -0
- package/dist/tools/context/index.js.map +1 -0
- package/dist/tools/context.d.ts +146 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +481 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/coordinator/coordinator.d.ts +168 -0
- package/dist/tools/coordinator/coordinator.d.ts.map +1 -0
- package/dist/tools/coordinator/coordinator.js +535 -0
- package/dist/tools/coordinator/coordinator.js.map +1 -0
- package/dist/tools/coordinator/index.d.ts +12 -0
- package/dist/tools/coordinator/index.d.ts.map +1 -0
- package/dist/tools/coordinator/index.js +381 -0
- package/dist/tools/coordinator/index.js.map +1 -0
- package/dist/tools/corpus/index.d.ts +5 -0
- package/dist/tools/corpus/index.d.ts.map +1 -0
- package/dist/tools/corpus/index.js +105 -0
- package/dist/tools/corpus/index.js.map +1 -0
- package/dist/tools/corpus.d.ts +33 -0
- package/dist/tools/corpus.d.ts.map +1 -0
- package/dist/tools/corpus.js +180 -0
- package/dist/tools/corpus.js.map +1 -0
- package/dist/tools/crit.d.ts +63 -0
- package/dist/tools/crit.d.ts.map +1 -0
- package/dist/tools/crit.js +159 -0
- package/dist/tools/crit.js.map +1 -0
- package/dist/tools/data-inspector.d.ts +189 -0
- package/dist/tools/data-inspector.d.ts.map +1 -0
- package/dist/tools/data-inspector.js +669 -0
- package/dist/tools/data-inspector.js.map +1 -0
- package/dist/tools/deck.d.ts +11 -0
- package/dist/tools/deck.d.ts.map +1 -0
- package/dist/tools/deck.js +188 -0
- package/dist/tools/deck.js.map +1 -0
- package/dist/tools/designer/index.d.ts +11 -0
- package/dist/tools/designer/index.d.ts.map +1 -0
- package/dist/tools/designer/index.js +442 -0
- package/dist/tools/designer/index.js.map +1 -0
- package/dist/tools/designer/lateral-tools.d.ts +6 -0
- package/dist/tools/designer/lateral-tools.d.ts.map +1 -0
- package/dist/tools/designer/lateral-tools.js +190 -0
- package/dist/tools/designer/lateral-tools.js.map +1 -0
- package/dist/tools/designer.d.ts +122 -0
- package/dist/tools/designer.d.ts.map +1 -0
- package/dist/tools/designer.js +495 -0
- package/dist/tools/designer.js.map +1 -0
- package/dist/tools/dojo/index.d.ts +13 -0
- package/dist/tools/dojo/index.d.ts.map +1 -0
- package/dist/tools/dojo/index.js +613 -0
- package/dist/tools/dojo/index.js.map +1 -0
- package/dist/tools/dojo.d.ts +254 -0
- package/dist/tools/dojo.d.ts.map +1 -0
- package/dist/tools/dojo.js +933 -0
- package/dist/tools/dojo.js.map +1 -0
- package/dist/tools/dojoBench.d.ts +49 -0
- package/dist/tools/dojoBench.d.ts.map +1 -0
- package/dist/tools/dojoBench.js +205 -0
- package/dist/tools/dojoBench.js.map +1 -0
- package/dist/tools/dojoGraduated.d.ts +50 -0
- package/dist/tools/dojoGraduated.d.ts.map +1 -0
- package/dist/tools/dojoGraduated.js +174 -0
- package/dist/tools/dojoGraduated.js.map +1 -0
- package/dist/tools/dojoPolicy.d.ts +65 -0
- package/dist/tools/dojoPolicy.d.ts.map +1 -0
- package/dist/tools/dojoPolicy.js +263 -0
- package/dist/tools/dojoPolicy.js.map +1 -0
- package/dist/tools/feedback/index.d.ts +5 -0
- package/dist/tools/feedback/index.d.ts.map +1 -0
- package/dist/tools/feedback/index.js +153 -0
- package/dist/tools/feedback/index.js.map +1 -0
- package/dist/tools/feedback.d.ts +61 -0
- package/dist/tools/feedback.d.ts.map +1 -0
- package/dist/tools/feedback.js +209 -0
- package/dist/tools/feedback.js.map +1 -0
- package/dist/tools/forecast/index.d.ts +8 -0
- package/dist/tools/forecast/index.d.ts.map +1 -0
- package/dist/tools/forecast/index.js +283 -0
- package/dist/tools/forecast/index.js.map +1 -0
- package/dist/tools/forecast.d.ts +147 -0
- package/dist/tools/forecast.d.ts.map +1 -0
- package/dist/tools/forecast.js +417 -0
- package/dist/tools/forecast.js.map +1 -0
- package/dist/tools/friction/index.d.ts +7 -0
- package/dist/tools/friction/index.d.ts.map +1 -0
- package/dist/tools/friction/index.js +265 -0
- package/dist/tools/friction/index.js.map +1 -0
- package/dist/tools/friction.d.ts +82 -0
- package/dist/tools/friction.d.ts.map +1 -0
- package/dist/tools/friction.js +331 -0
- package/dist/tools/friction.js.map +1 -0
- package/dist/tools/git/index.d.ts +9 -0
- package/dist/tools/git/index.d.ts.map +1 -0
- package/dist/tools/git/index.js +237 -0
- package/dist/tools/git/index.js.map +1 -0
- package/dist/tools/git-sentinel/index.d.ts +7 -0
- package/dist/tools/git-sentinel/index.d.ts.map +1 -0
- package/dist/tools/git-sentinel/index.js +178 -0
- package/dist/tools/git-sentinel/index.js.map +1 -0
- package/dist/tools/git-sentinel.d.ts +78 -0
- package/dist/tools/git-sentinel.d.ts.map +1 -0
- package/dist/tools/git-sentinel.js +391 -0
- package/dist/tools/git-sentinel.js.map +1 -0
- package/dist/tools/git.d.ts +134 -0
- package/dist/tools/git.d.ts.map +1 -0
- package/dist/tools/git.js +374 -0
- package/dist/tools/git.js.map +1 -0
- package/dist/tools/guardian/index.d.ts +8 -0
- package/dist/tools/guardian/index.d.ts.map +1 -0
- package/dist/tools/guardian/index.js +171 -0
- package/dist/tools/guardian/index.js.map +1 -0
- package/dist/tools/guardian.d.ts +62 -0
- package/dist/tools/guardian.d.ts.map +1 -0
- package/dist/tools/guardian.js +332 -0
- package/dist/tools/guardian.js.map +1 -0
- package/dist/tools/hygiene/codebase-scanner.d.ts +38 -0
- package/dist/tools/hygiene/codebase-scanner.d.ts.map +1 -0
- package/dist/tools/hygiene/codebase-scanner.js +411 -0
- package/dist/tools/hygiene/codebase-scanner.js.map +1 -0
- package/dist/tools/hygiene/config-scanner.d.ts +33 -0
- package/dist/tools/hygiene/config-scanner.d.ts.map +1 -0
- package/dist/tools/hygiene/config-scanner.js +482 -0
- package/dist/tools/hygiene/config-scanner.js.map +1 -0
- package/dist/tools/hygiene/coverage-scanner.d.ts +41 -0
- package/dist/tools/hygiene/coverage-scanner.d.ts.map +1 -0
- package/dist/tools/hygiene/coverage-scanner.js +331 -0
- package/dist/tools/hygiene/coverage-scanner.js.map +1 -0
- package/dist/tools/hygiene/index.d.ts +7 -0
- package/dist/tools/hygiene/index.d.ts.map +1 -0
- package/dist/tools/hygiene/index.js +291 -0
- package/dist/tools/hygiene/index.js.map +1 -0
- package/dist/tools/hygiene/oracle-hygiene.d.ts +68 -0
- package/dist/tools/hygiene/oracle-hygiene.d.ts.map +1 -0
- package/dist/tools/hygiene/oracle-hygiene.js +324 -0
- package/dist/tools/hygiene/oracle-hygiene.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +130 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/lateral.d.ts +114 -0
- package/dist/tools/lateral.d.ts.map +1 -0
- package/dist/tools/lateral.js +536 -0
- package/dist/tools/lateral.js.map +1 -0
- package/dist/tools/learnings/index.d.ts +5 -0
- package/dist/tools/learnings/index.d.ts.map +1 -0
- package/dist/tools/learnings/index.js +138 -0
- package/dist/tools/learnings/index.js.map +1 -0
- package/dist/tools/learnings.d.ts +41 -0
- package/dist/tools/learnings.d.ts.map +1 -0
- package/dist/tools/learnings.js +149 -0
- package/dist/tools/learnings.js.map +1 -0
- package/dist/tools/oracle/index.d.ts +6 -0
- package/dist/tools/oracle/index.d.ts.map +1 -0
- package/dist/tools/oracle/index.js +217 -0
- package/dist/tools/oracle/index.js.map +1 -0
- package/dist/tools/oracle.d.ts +90 -0
- package/dist/tools/oracle.d.ts.map +1 -0
- package/dist/tools/oracle.js +529 -0
- package/dist/tools/oracle.js.map +1 -0
- package/dist/tools/policy.d.ts +119 -0
- package/dist/tools/policy.d.ts.map +1 -0
- package/dist/tools/policy.js +406 -0
- package/dist/tools/policy.js.map +1 -0
- package/dist/tools/provenance/index.d.ts +4 -0
- package/dist/tools/provenance/index.d.ts.map +1 -0
- package/dist/tools/provenance/index.js +63 -0
- package/dist/tools/provenance/index.js.map +1 -0
- package/dist/tools/provenance.d.ts +75 -0
- package/dist/tools/provenance.d.ts.map +1 -0
- package/dist/tools/provenance.js +224 -0
- package/dist/tools/provenance.js.map +1 -0
- package/dist/tools/rateLimiter.d.ts +45 -0
- package/dist/tools/rateLimiter.d.ts.map +1 -0
- package/dist/tools/rateLimiter.js +91 -0
- package/dist/tools/rateLimiter.js.map +1 -0
- package/dist/tools/registry/index.d.ts +10 -0
- package/dist/tools/registry/index.d.ts.map +1 -0
- package/dist/tools/registry/index.js +506 -0
- package/dist/tools/registry/index.js.map +1 -0
- package/dist/tools/registry.d.ts +3 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +189 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/roadmap/index.d.ts +11 -0
- package/dist/tools/roadmap/index.d.ts.map +1 -0
- package/dist/tools/roadmap/index.js +364 -0
- package/dist/tools/roadmap/index.js.map +1 -0
- package/dist/tools/roadmap.d.ts +103 -0
- package/dist/tools/roadmap.d.ts.map +1 -0
- package/dist/tools/roadmap.js +407 -0
- package/dist/tools/roadmap.js.map +1 -0
- package/dist/tools/senken.d.ts +11 -0
- package/dist/tools/senken.d.ts.map +1 -0
- package/dist/tools/senken.js +482 -0
- package/dist/tools/senken.js.map +1 -0
- package/dist/tools/sentinel/index.d.ts +21 -0
- package/dist/tools/sentinel/index.d.ts.map +1 -0
- package/dist/tools/sentinel/index.js +1067 -0
- package/dist/tools/sentinel/index.js.map +1 -0
- package/dist/tools/sentinel-scan-data.d.ts +90 -0
- package/dist/tools/sentinel-scan-data.d.ts.map +1 -0
- package/dist/tools/sentinel-scan-data.js +122 -0
- package/dist/tools/sentinel-scan-data.js.map +1 -0
- package/dist/tools/sentinel.d.ts +156 -0
- package/dist/tools/sentinel.d.ts.map +1 -0
- package/dist/tools/sentinel.js +603 -0
- package/dist/tools/sentinel.js.map +1 -0
- package/dist/tools/shared/index.d.ts +5 -0
- package/dist/tools/shared/index.d.ts.map +1 -0
- package/dist/tools/shared/index.js +8 -0
- package/dist/tools/shared/index.js.map +1 -0
- package/dist/tools/shared/project.d.ts +17 -0
- package/dist/tools/shared/project.d.ts.map +1 -0
- package/dist/tools/shared/project.js +36 -0
- package/dist/tools/shared/project.js.map +1 -0
- package/dist/tools/shared/response.d.ts +15 -0
- package/dist/tools/shared/response.d.ts.map +1 -0
- package/dist/tools/shared/response.js +77 -0
- package/dist/tools/shared/response.js.map +1 -0
- package/dist/tools/shared/runTracker.d.ts +87 -0
- package/dist/tools/shared/runTracker.d.ts.map +1 -0
- package/dist/tools/shared/runTracker.js +225 -0
- package/dist/tools/shared/runTracker.js.map +1 -0
- package/dist/tools/shared/validation.d.ts +10 -0
- package/dist/tools/shared/validation.d.ts.map +1 -0
- package/dist/tools/shared/validation.js +26 -0
- package/dist/tools/shared/validation.js.map +1 -0
- package/dist/tools/studio/cloud-spine.d.ts +27 -0
- package/dist/tools/studio/cloud-spine.d.ts.map +1 -0
- package/dist/tools/studio/cloud-spine.js +845 -0
- package/dist/tools/studio/cloud-spine.js.map +1 -0
- package/dist/tools/studio/index.d.ts +154 -0
- package/dist/tools/studio/index.d.ts.map +1 -0
- package/dist/tools/studio/index.js +541 -0
- package/dist/tools/studio/index.js.map +1 -0
- package/dist/tools/testSpec.d.ts +122 -0
- package/dist/tools/testSpec.d.ts.map +1 -0
- package/dist/tools/testSpec.js +525 -0
- package/dist/tools/testSpec.js.map +1 -0
- package/dist/tools/toolsIndex.d.ts +5 -0
- package/dist/tools/toolsIndex.d.ts.map +1 -0
- package/dist/tools/toolsIndex.js +37 -0
- package/dist/tools/toolsIndex.js.map +1 -0
- package/dist/tools/types.d.ts +47 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +7 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/vector/index.d.ts +13 -0
- package/dist/tools/vector/index.d.ts.map +1 -0
- package/dist/tools/vector/index.js +592 -0
- package/dist/tools/vector/index.js.map +1 -0
- package/dist/tools/vector.d.ts +189 -0
- package/dist/tools/vector.d.ts.map +1 -0
- package/dist/tools/vector.js +570 -0
- package/dist/tools/vector.js.map +1 -0
- package/dist/tools/velocity/index.d.ts +9 -0
- package/dist/tools/velocity/index.d.ts.map +1 -0
- package/dist/tools/velocity/index.js +306 -0
- package/dist/tools/velocity/index.js.map +1 -0
- package/dist/tools/velocity.d.ts +143 -0
- package/dist/tools/velocity.d.ts.map +1 -0
- package/dist/tools/velocity.js +628 -0
- package/dist/tools/velocity.js.map +1 -0
- package/dist/tools/voice/index.d.ts +8 -0
- package/dist/tools/voice/index.d.ts.map +1 -0
- package/dist/tools/voice/index.js +203 -0
- package/dist/tools/voice/index.js.map +1 -0
- package/dist/tools/voice.d.ts +291 -0
- package/dist/tools/voice.d.ts.map +1 -0
- package/dist/tools/voice.js +734 -0
- package/dist/tools/voice.js.map +1 -0
- package/dist/tools/workflow/index.d.ts +8 -0
- package/dist/tools/workflow/index.d.ts.map +1 -0
- package/dist/tools/workflow/index.js +199 -0
- package/dist/tools/workflow/index.js.map +1 -0
- package/dist/tools/workflow.d.ts +123 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +647 -0
- package/dist/tools/workflow.js.map +1 -0
- package/dist/transports/bridge.d.ts +22 -0
- package/dist/transports/bridge.d.ts.map +1 -0
- package/dist/transports/bridge.js +177 -0
- package/dist/transports/bridge.js.map +1 -0
- package/dist/transports/http.d.ts +9 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +35 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/index.d.ts +6 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports/index.js +8 -0
- package/dist/transports/index.js.map +1 -0
- package/dist/transports/mcp.d.ts +9 -0
- package/dist/transports/mcp.d.ts.map +1 -0
- package/dist/transports/mcp.js +51 -0
- package/dist/transports/mcp.js.map +1 -0
- package/dist/transports/stdio.d.ts +9 -0
- package/dist/transports/stdio.d.ts.map +1 -0
- package/dist/transports/stdio.js +26 -0
- package/dist/transports/stdio.js.map +1 -0
- package/dist/transports/types.d.ts +27 -0
- package/dist/transports/types.d.ts.map +1 -0
- package/dist/transports/types.js +8 -0
- package/dist/transports/types.js.map +1 -0
- package/dist/types/agent-services.d.ts +193 -0
- package/dist/types/agent-services.d.ts.map +1 -0
- package/dist/types/agent-services.js +8 -0
- package/dist/types/agent-services.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +72 -0
- package/templates/AGENT.md +87 -0
- package/templates/com.decibel.daemon.plist +47 -0
- package/templates/sentinel/ISSUE_TEMPLATE.md +20 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Decibel Systems
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
# @decibel/tools
|
|
2
|
+
|
|
3
|
+
MCP server for project intelligence. 26 facade tools (170+ internal handlers) across 20 domains: work tracking, architecture, experiments, design, git forensics, agent coordination, and more.
|
|
4
|
+
|
|
5
|
+
Tested with Claude Desktop, Claude Code, and Cursor. [Learn more →](https://decibel.systems/tools)
|
|
6
|
+
|
|
7
|
+
<a href="https://github.com/decibelsystems/decibel-tools-mcp#cursor">
|
|
8
|
+
<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add to Cursor" height="32" />
|
|
9
|
+
</a>
|
|
10
|
+
|
|
11
|
+
> **Note:** The one-click Cursor install only works on GitHub. [Click here](https://github.com/decibelsystems/decibel-tools-mcp#cursor) or see manual setup below.
|
|
12
|
+
|
|
13
|
+
## What It Does
|
|
14
|
+
|
|
15
|
+
| Domain | Purpose | Example Tools |
|
|
16
|
+
|--------|---------|---------------|
|
|
17
|
+
| **Sentinel** | Work tracking | `sentinel_create_issue`, `sentinel_log_epic`, `sentinel_list_epics` |
|
|
18
|
+
| **Dojo** | AI incubator | `dojo_add_wish`, `dojo_create_proposal`, `dojo_run_experiment` |
|
|
19
|
+
| **Architect** | Decisions | `architect_createAdr`, `architect_createPolicy` |
|
|
20
|
+
| **Roadmap** | Strategy | `roadmap_get`, `roadmap_getHealth`, `roadmap_linkEpic` |
|
|
21
|
+
| **Oracle** | Recommendations | `oracle_next_actions`, `oracle_roadmap` |
|
|
22
|
+
| **Designer** | Design decisions | `designer_record_design_decision`, `designer_crit` |
|
|
23
|
+
| **Friction** | Pain points | `friction_log`, `friction_bump`, `friction_resolve` |
|
|
24
|
+
| **Learnings** | Knowledge base | `learnings_append`, `learnings_list` |
|
|
25
|
+
| **Context** | AI memory | `decibel_context_pin`, `decibel_context_refresh` |
|
|
26
|
+
| **Registry** | Project management | `project_init`, `registry_list`, `registry_add` |
|
|
27
|
+
| **Agentic** | Config compilation | `agentic_compile_pack`, `agentic_render` |
|
|
28
|
+
| **Provenance** | Audit trail | `provenance_list` |
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Install globally
|
|
34
|
+
npm install -g @decibel/tools
|
|
35
|
+
|
|
36
|
+
# Or run directly with npx
|
|
37
|
+
npx @decibel/tools
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Platform Setup
|
|
41
|
+
|
|
42
|
+
### Cursor
|
|
43
|
+
|
|
44
|
+
Add to `~/.cursor/mcp.json`:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"mcpServers": {
|
|
49
|
+
"decibel-tools": {
|
|
50
|
+
"command": "npx",
|
|
51
|
+
"args": ["-y", "@decibel/tools"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Claude Code
|
|
58
|
+
|
|
59
|
+
Add to `.mcp.json` in your project root or `~/.claude/settings.json`:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"mcpServers": {
|
|
64
|
+
"decibel-tools": {
|
|
65
|
+
"command": "npx",
|
|
66
|
+
"args": ["-y", "@decibel/tools"]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Claude Desktop
|
|
73
|
+
|
|
74
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"decibel-tools": {
|
|
80
|
+
"command": "npx",
|
|
81
|
+
"args": ["-y", "@decibel/tools"]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Tools Reference
|
|
90
|
+
|
|
91
|
+
### Sentinel (16 tools)
|
|
92
|
+
*Work tracking: issues, epics, test specs*
|
|
93
|
+
|
|
94
|
+
| Tool | Description |
|
|
95
|
+
|------|-------------|
|
|
96
|
+
| `sentinel_create_issue` | Create a tracked issue with severity (low/med/high/critical) |
|
|
97
|
+
| `sentinel_close_issue` | Close an issue with resolution note |
|
|
98
|
+
| `sentinel_list_repo_issues` | List issues for a project, optionally filtered by status |
|
|
99
|
+
| `sentinel_listIssues` | List issues with filtering by epic or status |
|
|
100
|
+
| `sentinel_createIssue` | Create issue (YAML format with auto-generated ID) |
|
|
101
|
+
| `sentinel_log_epic` | Create a new epic (large feature) record |
|
|
102
|
+
| `sentinel_list_epics` | List all epics with optional filters |
|
|
103
|
+
| `sentinel_get_epic` | Get details of a specific epic |
|
|
104
|
+
| `sentinel_get_epic_issues` | Get all issues linked to an epic |
|
|
105
|
+
| `sentinel_resolve_epic` | Fuzzy search for epics by name or keyword |
|
|
106
|
+
| `sentinel_scan` | Scan project data for validation, orphans, stale items |
|
|
107
|
+
| `sentinel_scanData` | Scan using Python Sentinel Data Inspector |
|
|
108
|
+
| `sentinel_createTestSpec` | Create a test specification atom |
|
|
109
|
+
| `sentinel_listTestSpecs` | List all test specifications |
|
|
110
|
+
| `sentinel_compileTests` | Compile test specs into documentation |
|
|
111
|
+
| `sentinel_auditPolicies` | Audit policy compliance and freshness |
|
|
112
|
+
|
|
113
|
+
### Dojo (10 tools)
|
|
114
|
+
*AI Feature Incubator: wishes, proposals, experiments*
|
|
115
|
+
|
|
116
|
+
| Tool | Description |
|
|
117
|
+
|------|-------------|
|
|
118
|
+
| `dojo_add_wish` | Add a capability wish (what, why, inputs, outputs) |
|
|
119
|
+
| `dojo_list_wishes` | List wishes from the wishlist |
|
|
120
|
+
| `dojo_create_proposal` | Create a proposal for a feature or capability |
|
|
121
|
+
| `dojo_scaffold_experiment` | Create experiment skeleton from a proposal |
|
|
122
|
+
| `dojo_list` | List proposals, experiments, and wishes |
|
|
123
|
+
| `dojo_run_experiment` | Run an experiment in sandbox mode |
|
|
124
|
+
| `dojo_get_results` | Get results from a previous experiment run |
|
|
125
|
+
| `dojo_read_artifact` | Read artifact file from experiment results |
|
|
126
|
+
| `dojo_can_graduate` | Check if experiment can graduate to real tool |
|
|
127
|
+
| `dojo_projects` | List available projects for Dojo operations |
|
|
128
|
+
|
|
129
|
+
### Architect (6 tools)
|
|
130
|
+
*Architecture decisions and policies*
|
|
131
|
+
|
|
132
|
+
| Tool | Description |
|
|
133
|
+
|------|-------------|
|
|
134
|
+
| `architect_record_arch_decision` | Record an ADR (markdown format) |
|
|
135
|
+
| `architect_createAdr` | Create ADR (YAML format with auto ID) |
|
|
136
|
+
| `architect_createPolicy` | Create a policy with rules and enforcement |
|
|
137
|
+
| `architect_listPolicies` | List all policies, filter by severity/tags |
|
|
138
|
+
| `architect_getPolicy` | Get details of a specific policy |
|
|
139
|
+
| `architect_compileOversight` | Compile policies into documentation |
|
|
140
|
+
|
|
141
|
+
### Roadmap (6 tools)
|
|
142
|
+
*Strategic planning and health tracking*
|
|
143
|
+
|
|
144
|
+
| Tool | Description |
|
|
145
|
+
|------|-------------|
|
|
146
|
+
| `roadmap_get` | Get full roadmap (objectives, themes, milestones) |
|
|
147
|
+
| `roadmap_list` | List epics with roadmap context and health scores |
|
|
148
|
+
| `roadmap_getEpicContext` | Get strategic context for a specific epic |
|
|
149
|
+
| `roadmap_getHealth` | Get epics with low health scores needing attention |
|
|
150
|
+
| `roadmap_linkEpic` | Link epic to theme, milestone, objectives |
|
|
151
|
+
| `roadmap_init` | Initialize a new roadmap.yaml scaffold |
|
|
152
|
+
|
|
153
|
+
### Oracle (2 tools)
|
|
154
|
+
*AI-powered recommendations*
|
|
155
|
+
|
|
156
|
+
| Tool | Description |
|
|
157
|
+
|------|-------------|
|
|
158
|
+
| `oracle_next_actions` | Get recommended next actions for a project |
|
|
159
|
+
| `oracle_roadmap` | Evaluate roadmap progress against milestones |
|
|
160
|
+
|
|
161
|
+
### Designer (7 tools)
|
|
162
|
+
*Design decisions, Figma integration, and creative feedback*
|
|
163
|
+
|
|
164
|
+
| Tool | Description |
|
|
165
|
+
|------|-------------|
|
|
166
|
+
| `designer_record_design_decision` | Record a design decision |
|
|
167
|
+
| `designer_crit` | Log early creative feedback (gut reactions, hunches) |
|
|
168
|
+
| `designer_list_crits` | List crit observations, filter by area/sentiment |
|
|
169
|
+
| `designer_sync_tokens` | Sync design tokens from Figma variables |
|
|
170
|
+
| `designer_review_figma` | Review Figma component against design principles |
|
|
171
|
+
| `designer_upsert_principle` | Create or update a design principle |
|
|
172
|
+
| `designer_list_principles` | List design principles, filter by category |
|
|
173
|
+
|
|
174
|
+
### Friction (4 tools)
|
|
175
|
+
*Track recurring pain points*
|
|
176
|
+
|
|
177
|
+
| Tool | Description |
|
|
178
|
+
|------|-------------|
|
|
179
|
+
| `friction_log` | Log a friction point (context, description, impact) |
|
|
180
|
+
| `friction_list` | List friction points sorted by impact/signal |
|
|
181
|
+
| `friction_resolve` | Mark friction as resolved with solution reference |
|
|
182
|
+
| `friction_bump` | Bump signal count when encountering same friction |
|
|
183
|
+
|
|
184
|
+
### Learnings (2 tools)
|
|
185
|
+
*Living knowledge documents*
|
|
186
|
+
|
|
187
|
+
| Tool | Description |
|
|
188
|
+
|------|-------------|
|
|
189
|
+
| `learnings_append` | Append entry to project's learnings document |
|
|
190
|
+
| `learnings_list` | List entries, filter by category |
|
|
191
|
+
|
|
192
|
+
### Context (8 tools)
|
|
193
|
+
*AI memory: pinned facts, events, artifacts*
|
|
194
|
+
|
|
195
|
+
| Tool | Description |
|
|
196
|
+
|------|-------------|
|
|
197
|
+
| `decibel_context_refresh` | Compile full context pack for AI memory |
|
|
198
|
+
| `decibel_context_pin` | Pin a fact to persistent memory |
|
|
199
|
+
| `decibel_context_unpin` | Remove a pinned fact |
|
|
200
|
+
| `decibel_context_list` | List all pinned facts |
|
|
201
|
+
| `decibel_event_append` | Append event to activity journal |
|
|
202
|
+
| `decibel_event_search` | Search events in journal |
|
|
203
|
+
| `decibel_artifact_list` | List artifacts for a run |
|
|
204
|
+
| `decibel_artifact_read` | Read artifact content |
|
|
205
|
+
|
|
206
|
+
### Registry (7 tools)
|
|
207
|
+
*Project discovery and management*
|
|
208
|
+
|
|
209
|
+
| Tool | Description |
|
|
210
|
+
|------|-------------|
|
|
211
|
+
| `project_init` | Initialize .decibel/ folder in a project |
|
|
212
|
+
| `project_status` | Check project status and available tools |
|
|
213
|
+
| `registry_list` | List all registered projects |
|
|
214
|
+
| `registry_add` | Register a project in the registry |
|
|
215
|
+
| `registry_remove` | Remove project from registry |
|
|
216
|
+
| `registry_alias` | Add alias to a project |
|
|
217
|
+
| `registry_resolve` | Test resolution of project ID/alias |
|
|
218
|
+
|
|
219
|
+
### Agentic (4 tools)
|
|
220
|
+
*Configuration compilation and rendering*
|
|
221
|
+
|
|
222
|
+
| Tool | Description |
|
|
223
|
+
|------|-------------|
|
|
224
|
+
| `agentic_compile_pack` | Compile config into versioned, hashed pack |
|
|
225
|
+
| `agentic_render` | Transform payload into rendered text |
|
|
226
|
+
| `agentic_lint` | Validate output against renderer constraints |
|
|
227
|
+
| `agentic_golden_eval` | Run golden eval regression tests |
|
|
228
|
+
|
|
229
|
+
### Provenance (1 tool)
|
|
230
|
+
*Audit trail*
|
|
231
|
+
|
|
232
|
+
| Tool | Description |
|
|
233
|
+
|------|-------------|
|
|
234
|
+
| `provenance_list` | List provenance events for artifact/actor |
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Data Storage
|
|
239
|
+
|
|
240
|
+
Data is stored in project-local `.decibel/` folders:
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
{project}/
|
|
244
|
+
└── .decibel/
|
|
245
|
+
├── sentinel/
|
|
246
|
+
│ ├── issues/ # ISS-{nnnn}.yml
|
|
247
|
+
│ └── epics/ # EPIC-{nnnn}.yml
|
|
248
|
+
├── architect/
|
|
249
|
+
│ ├── adrs/ # ADR-{nnnn}.yml
|
|
250
|
+
│ └── policies/ # POL-{nnnn}.yaml
|
|
251
|
+
├── dojo/
|
|
252
|
+
│ ├── proposals/ # DOJO-PROP-{nnnn}.yml
|
|
253
|
+
│ ├── experiments/ # DOJO-EXP-{nnnn}/
|
|
254
|
+
│ └── wishes/ # WISH-{nnnn}.yml
|
|
255
|
+
├── designer/ # Design decisions
|
|
256
|
+
├── friction/ # Pain point logs
|
|
257
|
+
├── learnings/ # Knowledge documents
|
|
258
|
+
├── context/ # Pinned facts, events
|
|
259
|
+
└── voice/inbox/ # Voice messages
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Configuration
|
|
263
|
+
|
|
264
|
+
| Variable | Default | Description |
|
|
265
|
+
|----------|---------|-------------|
|
|
266
|
+
| `DECIBEL_ENV` | `dev` | Environment (dev, staging, prod) |
|
|
267
|
+
| `DECIBEL_ORG` | `mediareason` | Organization name |
|
|
268
|
+
| `DECIBEL_MCP_ROOT` | `~/.decibel` | Global data storage root |
|
|
269
|
+
|
|
270
|
+
Optional for cloud features:
|
|
271
|
+
- `SUPABASE_URL` - Supabase project URL
|
|
272
|
+
- `SUPABASE_SERVICE_KEY` - Supabase service role key
|
|
273
|
+
- `OPENAI_API_KEY` - For image generation
|
|
274
|
+
- `FIGMA_ACCESS_TOKEN` - For Figma integration (designer_sync_tokens, designer_review_figma)
|
|
275
|
+
|
|
276
|
+
## Usage Examples
|
|
277
|
+
|
|
278
|
+
### Example 1: Initialize a Project and Create an Epic
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
User: "Initialize decibel for this project and create an epic for user authentication"
|
|
282
|
+
|
|
283
|
+
AI uses: project_init → sentinel_log_epic
|
|
284
|
+
|
|
285
|
+
Result: Creates .decibel/ folder structure and EPIC-0001.yml for "User Authentication"
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Example 2: Track Work with Issues Linked to Epics
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
User: "Create issues for the auth epic: login form, password reset, and session management"
|
|
292
|
+
|
|
293
|
+
AI uses: sentinel_resolve_epic → sentinel_createIssue (×3)
|
|
294
|
+
|
|
295
|
+
Result: Creates ISS-0001, ISS-0002, ISS-0003 all linked to EPIC-0001
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Example 3: Record Architecture Decisions
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
User: "We decided to use JWT tokens instead of sessions. Document this ADR."
|
|
302
|
+
|
|
303
|
+
AI uses: architect_createAdr
|
|
304
|
+
|
|
305
|
+
Result: Creates ADR-0001.yml with context, decision, and consequences
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Example 4: AI Feature Incubation (Dojo)
|
|
309
|
+
|
|
310
|
+
```
|
|
311
|
+
User: "I wish we had a tool that detects rate limit patterns in logs"
|
|
312
|
+
|
|
313
|
+
AI uses: dojo_add_wish → dojo_create_proposal → dojo_scaffold_experiment
|
|
314
|
+
|
|
315
|
+
Result: WISH-0001.yml → DOJO-PROP-0001.yml → DOJO-EXP-0001/ with entrypoint ready to implement
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Example 5: Get Recommended Next Actions
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
User: "What should I work on next?"
|
|
322
|
+
|
|
323
|
+
AI uses: oracle_next_actions
|
|
324
|
+
|
|
325
|
+
Result: Prioritized list based on stale issues, epic health, pending experiments
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Privacy Policy
|
|
329
|
+
|
|
330
|
+
**Local Storage Only**: All project data is stored locally in `.decibel/` folders within your project directories. No data is sent to external servers by default.
|
|
331
|
+
|
|
332
|
+
**Optional Cloud Integrations**: Some tools optionally connect to external services when you explicitly configure API keys:
|
|
333
|
+
- **Figma API** (`designer_sync_tokens`, `designer_review_figma`) - requires `FIGMA_ACCESS_TOKEN`
|
|
334
|
+
- **Supabase** (voice inbox sync) - requires `SUPABASE_URL` and `SUPABASE_SERVICE_KEY`
|
|
335
|
+
|
|
336
|
+
These optional integrations are clearly marked with `openWorldHint: true` in their tool annotations.
|
|
337
|
+
|
|
338
|
+
**No Telemetry**: This MCP server does not collect telemetry, usage analytics, or any form of tracking data.
|
|
339
|
+
|
|
340
|
+
## License
|
|
341
|
+
|
|
342
|
+
MIT - [Decibel Systems](https://decibel.systems)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Pack Compiler
|
|
3
|
+
*
|
|
4
|
+
* Compiles agentic configuration files into a versioned, hashed pack.
|
|
5
|
+
* Reads from .decibel/architect/agentic/ and outputs compiled_agentic_pack.json
|
|
6
|
+
*/
|
|
7
|
+
import { ResolvedProjectPaths } from '../projectRegistry.js';
|
|
8
|
+
import { CompileResult, CompilePackInput, CompilePackOutput } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Compile agentic pack from project configuration
|
|
11
|
+
*/
|
|
12
|
+
export declare function compilePack(input: CompilePackInput): Promise<CompilePackOutput>;
|
|
13
|
+
/**
|
|
14
|
+
* Load a previously compiled pack
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadCompiledPack(resolved: ResolvedProjectPaths): Promise<CompileResult | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Get or compile pack (compile if not exists or outdated)
|
|
19
|
+
*/
|
|
20
|
+
export declare function getOrCompilePack(resolved: ResolvedProjectPaths): Promise<CompileResult>;
|
|
21
|
+
//# sourceMappingURL=compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/agentic/compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAuB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAEL,aAAa,EAKb,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA0MpB;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2CrF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQpG;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic Pack Compiler
|
|
3
|
+
*
|
|
4
|
+
* Compiles agentic configuration files into a versioned, hashed pack.
|
|
5
|
+
* Reads from .decibel/architect/agentic/ and outputs compiled_agentic_pack.json
|
|
6
|
+
*/
|
|
7
|
+
import fs from 'fs/promises';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
import crypto from 'crypto';
|
|
10
|
+
import yaml from 'yaml';
|
|
11
|
+
import { log } from '../config.js';
|
|
12
|
+
import { resolveProjectPaths } from '../projectRegistry.js';
|
|
13
|
+
import { ensureDir } from '../dataRoot.js';
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Default Configurations
|
|
16
|
+
// ============================================================================
|
|
17
|
+
const DEFAULT_TAXONOMY = {
|
|
18
|
+
roles: {
|
|
19
|
+
Sensor: { emoji: '👁️', description: 'Data collection and observation' },
|
|
20
|
+
Analyst: { emoji: '🧠', description: 'Pattern recognition and analysis' },
|
|
21
|
+
Overmind: { emoji: '🎯', description: 'Decision making and coordination' },
|
|
22
|
+
Specialist: { emoji: '🔧', description: 'Domain-specific expertise' },
|
|
23
|
+
},
|
|
24
|
+
statuses: {
|
|
25
|
+
OK: { emoji: '✓', color: 'green' },
|
|
26
|
+
DEGRADED: { emoji: '⚠️', color: 'yellow' },
|
|
27
|
+
BLOCKED: { emoji: '🛑', color: 'red' },
|
|
28
|
+
ALERT: { emoji: '🚨', color: 'magenta' },
|
|
29
|
+
},
|
|
30
|
+
loads: {
|
|
31
|
+
GREEN: { emoji: '🟢', color: 'green' },
|
|
32
|
+
YELLOW: { emoji: '🟡', color: 'yellow' },
|
|
33
|
+
RED: { emoji: '🔴', color: 'red' },
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
const DEFAULT_RENDERER = {
|
|
37
|
+
id: 'default',
|
|
38
|
+
name: 'Default Renderer',
|
|
39
|
+
description: 'Basic text output with minimal formatting',
|
|
40
|
+
template: `{{role_emoji}} {{role}} | {{status}} | Load: {{load}}
|
|
41
|
+
|
|
42
|
+
{{summary}}
|
|
43
|
+
|
|
44
|
+
{{#evidence}}
|
|
45
|
+
Evidence:
|
|
46
|
+
{{#items}}
|
|
47
|
+
- {{source}}: {{value}}
|
|
48
|
+
{{/items}}
|
|
49
|
+
{{/evidence}}
|
|
50
|
+
|
|
51
|
+
{{#missing_data}}
|
|
52
|
+
Missing Data:
|
|
53
|
+
{{#items}}
|
|
54
|
+
- {{field}}: {{reason}}
|
|
55
|
+
{{/items}}
|
|
56
|
+
{{/missing_data}}
|
|
57
|
+
|
|
58
|
+
{{#decision}}
|
|
59
|
+
Decision: {{decision}}
|
|
60
|
+
{{/decision}}`,
|
|
61
|
+
constraints: {
|
|
62
|
+
max_emoji_count: 5,
|
|
63
|
+
emoji_position: 'header-only',
|
|
64
|
+
max_lines: 50,
|
|
65
|
+
banned_words: ['amazing', 'incredible', 'revolutionary', 'game-changing'],
|
|
66
|
+
banned_punctuation: ['!'],
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
const DEFAULT_CONSENSUS = {
|
|
70
|
+
quorum_threshold: 0.67,
|
|
71
|
+
dissent_highlight_threshold: 0.3,
|
|
72
|
+
max_pending_decisions: 10,
|
|
73
|
+
};
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// YAML Loading Helpers
|
|
76
|
+
// ============================================================================
|
|
77
|
+
async function loadYamlFile(filePath) {
|
|
78
|
+
try {
|
|
79
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
80
|
+
return yaml.parse(content);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (error.code === 'ENOENT') {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function loadYamlDir(dirPath) {
|
|
90
|
+
const result = {};
|
|
91
|
+
try {
|
|
92
|
+
const files = await fs.readdir(dirPath);
|
|
93
|
+
for (const file of files) {
|
|
94
|
+
if (file.endsWith('.yaml') || file.endsWith('.yml')) {
|
|
95
|
+
const filePath = path.join(dirPath, file);
|
|
96
|
+
const content = await loadYamlFile(filePath);
|
|
97
|
+
if (content) {
|
|
98
|
+
const id = path.basename(file, path.extname(file));
|
|
99
|
+
result[id] = content;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (error.code !== 'ENOENT') {
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
// ============================================================================
|
|
112
|
+
// Pack Compiler
|
|
113
|
+
// ============================================================================
|
|
114
|
+
async function loadPackConfigs(agenticDir) {
|
|
115
|
+
const sourceFiles = [];
|
|
116
|
+
// Load taxonomy
|
|
117
|
+
const taxonomyPath = path.join(agenticDir, 'taxonomy.yaml');
|
|
118
|
+
const taxonomy = (await loadYamlFile(taxonomyPath)) || DEFAULT_TAXONOMY;
|
|
119
|
+
if (await fileExists(taxonomyPath))
|
|
120
|
+
sourceFiles.push(taxonomyPath);
|
|
121
|
+
// Load renderers
|
|
122
|
+
const renderersPath = path.join(agenticDir, 'renderers.yaml');
|
|
123
|
+
let renderers = { default: DEFAULT_RENDERER };
|
|
124
|
+
const loadedRenderers = await loadYamlFile(renderersPath);
|
|
125
|
+
if (loadedRenderers) {
|
|
126
|
+
renderers = { ...renderers, ...loadedRenderers };
|
|
127
|
+
sourceFiles.push(renderersPath);
|
|
128
|
+
}
|
|
129
|
+
// Also load from renderers/ directory
|
|
130
|
+
const renderersDir = path.join(agenticDir, 'renderers');
|
|
131
|
+
const dirRenderers = await loadYamlDir(renderersDir);
|
|
132
|
+
for (const [id, config] of Object.entries(dirRenderers)) {
|
|
133
|
+
renderers[id] = { ...config, id };
|
|
134
|
+
sourceFiles.push(path.join(renderersDir, `${id}.yaml`));
|
|
135
|
+
}
|
|
136
|
+
// Load consensus
|
|
137
|
+
const consensusPath = path.join(agenticDir, 'consensus.yaml');
|
|
138
|
+
const consensus = (await loadYamlFile(consensusPath)) || DEFAULT_CONSENSUS;
|
|
139
|
+
if (await fileExists(consensusPath))
|
|
140
|
+
sourceFiles.push(consensusPath);
|
|
141
|
+
// Load ANSI styles
|
|
142
|
+
const ansiStylesPath = path.join(agenticDir, 'ansi_styles.yaml');
|
|
143
|
+
const ansiStyles = await loadYamlFile(ansiStylesPath);
|
|
144
|
+
if (await fileExists(ansiStylesPath))
|
|
145
|
+
sourceFiles.push(ansiStylesPath);
|
|
146
|
+
// Load avatars
|
|
147
|
+
const avatarsDir = path.join(agenticDir, 'avatars');
|
|
148
|
+
const avatars = await loadYamlDir(avatarsDir);
|
|
149
|
+
for (const file of Object.keys(avatars)) {
|
|
150
|
+
sourceFiles.push(path.join(avatarsDir, `${file}.yaml`));
|
|
151
|
+
}
|
|
152
|
+
// Load pack overrides
|
|
153
|
+
const packsDir = path.join(agenticDir, 'packs');
|
|
154
|
+
const packs = await loadYamlDir(packsDir);
|
|
155
|
+
for (const [packId, packConfig] of Object.entries(packs)) {
|
|
156
|
+
// Merge pack-specific overrides
|
|
157
|
+
if (packConfig.renderers) {
|
|
158
|
+
renderers = { ...renderers, ...packConfig.renderers };
|
|
159
|
+
}
|
|
160
|
+
if (packConfig.avatars) {
|
|
161
|
+
Object.assign(avatars, packConfig.avatars);
|
|
162
|
+
}
|
|
163
|
+
sourceFiles.push(path.join(packsDir, `${packId}.yaml`));
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
pack: {
|
|
167
|
+
taxonomy,
|
|
168
|
+
renderers,
|
|
169
|
+
consensus,
|
|
170
|
+
avatars,
|
|
171
|
+
ansi_styles: ansiStyles || undefined,
|
|
172
|
+
},
|
|
173
|
+
sourceFiles,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
async function fileExists(filePath) {
|
|
177
|
+
try {
|
|
178
|
+
await fs.access(filePath);
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function computePackHash(pack) {
|
|
186
|
+
const content = JSON.stringify(pack, Object.keys(pack).sort());
|
|
187
|
+
return crypto.createHash('sha256').update(content).digest('hex').substring(0, 12);
|
|
188
|
+
}
|
|
189
|
+
function generatePackId() {
|
|
190
|
+
const timestamp = new Date().toISOString().replace(/[-:]/g, '').split('.')[0];
|
|
191
|
+
const random = Math.random().toString(36).substring(2, 6);
|
|
192
|
+
return `pack-${timestamp}-${random}`;
|
|
193
|
+
}
|
|
194
|
+
// ============================================================================
|
|
195
|
+
// Public API
|
|
196
|
+
// ============================================================================
|
|
197
|
+
/**
|
|
198
|
+
* Compile agentic pack from project configuration
|
|
199
|
+
*/
|
|
200
|
+
export async function compilePack(input) {
|
|
201
|
+
try {
|
|
202
|
+
const resolved = resolveProjectPaths(input.projectId);
|
|
203
|
+
const agenticDir = resolved.subPath('architect', 'agentic');
|
|
204
|
+
log(`agentic-compiler: Compiling pack from ${agenticDir}`);
|
|
205
|
+
// Load all configs
|
|
206
|
+
const { pack, sourceFiles } = await loadPackConfigs(agenticDir);
|
|
207
|
+
// Generate pack ID and hash
|
|
208
|
+
const packId = generatePackId();
|
|
209
|
+
const packHash = computePackHash(pack);
|
|
210
|
+
const result = {
|
|
211
|
+
pack_id: packId,
|
|
212
|
+
pack_hash: packHash,
|
|
213
|
+
compiled_at: new Date().toISOString(),
|
|
214
|
+
content: pack,
|
|
215
|
+
source_files: sourceFiles,
|
|
216
|
+
};
|
|
217
|
+
// Write compiled pack to output
|
|
218
|
+
const outputDir = resolved.subPath('architect', 'agentic', 'compiled');
|
|
219
|
+
ensureDir(outputDir);
|
|
220
|
+
const outputPath = path.join(outputDir, 'compiled_agentic_pack.json');
|
|
221
|
+
await fs.writeFile(outputPath, JSON.stringify(result, null, 2), 'utf-8');
|
|
222
|
+
log(`agentic-compiler: Pack compiled successfully (${packHash})`);
|
|
223
|
+
log(`agentic-compiler: Output written to ${outputPath}`);
|
|
224
|
+
return {
|
|
225
|
+
status: 'compiled',
|
|
226
|
+
result,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
231
|
+
log(`agentic-compiler: Error compiling pack: ${message}`);
|
|
232
|
+
return {
|
|
233
|
+
status: 'error',
|
|
234
|
+
error: message,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Load a previously compiled pack
|
|
240
|
+
*/
|
|
241
|
+
export async function loadCompiledPack(resolved) {
|
|
242
|
+
const outputPath = resolved.subPath('architect', 'agentic', 'compiled', 'compiled_agentic_pack.json');
|
|
243
|
+
try {
|
|
244
|
+
const content = await fs.readFile(outputPath, 'utf-8');
|
|
245
|
+
return JSON.parse(content);
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get or compile pack (compile if not exists or outdated)
|
|
253
|
+
*/
|
|
254
|
+
export async function getOrCompilePack(resolved) {
|
|
255
|
+
// Try to load existing
|
|
256
|
+
const existing = await loadCompiledPack(resolved);
|
|
257
|
+
if (existing) {
|
|
258
|
+
return existing;
|
|
259
|
+
}
|
|
260
|
+
// Compile new
|
|
261
|
+
const result = await compilePack({ projectId: resolved.id });
|
|
262
|
+
if (result.status === 'error' || !result.result) {
|
|
263
|
+
throw new Error(result.error || 'Failed to compile pack');
|
|
264
|
+
}
|
|
265
|
+
return result.result;
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/agentic/compiler.ts"],"names":[],"mappings":"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"}
|