@dragonflymcp/plugin 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/.claude-plugin/plugin.json +26 -0
- package/LICENSE +21 -0
- package/README.md +126 -0
- package/dist/core/annotations.d.ts +71 -0
- package/dist/core/annotations.d.ts.map +1 -0
- package/dist/core/annotations.js +61 -0
- package/dist/core/annotations.js.map +1 -0
- package/dist/core/config.d.ts +66 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +131 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/dispatcher.d.ts +77 -0
- package/dist/core/dispatcher.d.ts.map +1 -0
- package/dist/core/dispatcher.js +132 -0
- package/dist/core/dispatcher.js.map +1 -0
- package/dist/core/server.d.ts +24 -0
- package/dist/core/server.d.ts.map +1 -0
- package/dist/core/server.js +41 -0
- package/dist/core/server.js.map +1 -0
- package/dist/core/store.d.ts +91 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +157 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/types.d.ts +128 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/test-utils/store-harness.d.ts +41 -0
- package/dist/test-utils/store-harness.d.ts.map +1 -0
- package/dist/test-utils/store-harness.js +61 -0
- package/dist/test-utils/store-harness.js.map +1 -0
- package/dist/tools/analytics/aggregators.d.ts +18 -0
- package/dist/tools/analytics/aggregators.d.ts.map +1 -0
- package/dist/tools/analytics/aggregators.js +260 -0
- package/dist/tools/analytics/aggregators.js.map +1 -0
- package/dist/tools/analytics/aggregators.test.d.ts +2 -0
- package/dist/tools/analytics/aggregators.test.d.ts.map +1 -0
- package/dist/tools/analytics/aggregators.test.js +177 -0
- package/dist/tools/analytics/aggregators.test.js.map +1 -0
- package/dist/tools/analytics/drift.d.ts +15 -0
- package/dist/tools/analytics/drift.d.ts.map +1 -0
- package/dist/tools/analytics/drift.js +135 -0
- package/dist/tools/analytics/drift.js.map +1 -0
- package/dist/tools/analytics/drift.test.d.ts +2 -0
- package/dist/tools/analytics/drift.test.d.ts.map +1 -0
- package/dist/tools/analytics/drift.test.js +99 -0
- package/dist/tools/analytics/drift.test.js.map +1 -0
- package/dist/tools/analytics/index.d.ts +10 -0
- package/dist/tools/analytics/index.d.ts.map +1 -0
- package/dist/tools/analytics/index.js +192 -0
- package/dist/tools/analytics/index.js.map +1 -0
- package/dist/tools/analytics/learner.d.ts +29 -0
- package/dist/tools/analytics/learner.d.ts.map +1 -0
- package/dist/tools/analytics/learner.js +135 -0
- package/dist/tools/analytics/learner.js.map +1 -0
- package/dist/tools/analytics/learner.test.d.ts +2 -0
- package/dist/tools/analytics/learner.test.d.ts.map +1 -0
- package/dist/tools/analytics/learner.test.js +118 -0
- package/dist/tools/analytics/learner.test.js.map +1 -0
- package/dist/tools/analytics/observe.d.ts +22 -0
- package/dist/tools/analytics/observe.d.ts.map +1 -0
- package/dist/tools/analytics/observe.js +143 -0
- package/dist/tools/analytics/observe.js.map +1 -0
- package/dist/tools/analytics/observe.test.d.ts +2 -0
- package/dist/tools/analytics/observe.test.d.ts.map +1 -0
- package/dist/tools/analytics/observe.test.js +95 -0
- package/dist/tools/analytics/observe.test.js.map +1 -0
- package/dist/tools/analytics/store.d.ts +29 -0
- package/dist/tools/analytics/store.d.ts.map +1 -0
- package/dist/tools/analytics/store.js +192 -0
- package/dist/tools/analytics/store.js.map +1 -0
- package/dist/tools/analytics/types.d.ts +290 -0
- package/dist/tools/analytics/types.d.ts.map +1 -0
- package/dist/tools/analytics/types.js +7 -0
- package/dist/tools/analytics/types.js.map +1 -0
- package/dist/tools/ast/index.d.ts +8 -0
- package/dist/tools/ast/index.d.ts.map +1 -0
- package/dist/tools/ast/index.js +242 -0
- package/dist/tools/ast/index.js.map +1 -0
- package/dist/tools/ast/indexer.d.ts +41 -0
- package/dist/tools/ast/indexer.d.ts.map +1 -0
- package/dist/tools/ast/indexer.js +617 -0
- package/dist/tools/ast/indexer.js.map +1 -0
- package/dist/tools/ast/store.d.ts +87 -0
- package/dist/tools/ast/store.d.ts.map +1 -0
- package/dist/tools/ast/store.js +280 -0
- package/dist/tools/ast/store.js.map +1 -0
- package/dist/tools/ast/store.test.d.ts +6 -0
- package/dist/tools/ast/store.test.d.ts.map +1 -0
- package/dist/tools/ast/store.test.js +257 -0
- package/dist/tools/ast/store.test.js.map +1 -0
- package/dist/tools/bridge/bridge.d.ts +37 -0
- package/dist/tools/bridge/bridge.d.ts.map +1 -0
- package/dist/tools/bridge/bridge.js +82 -0
- package/dist/tools/bridge/bridge.js.map +1 -0
- package/dist/tools/bridge/bridge.test.d.ts +2 -0
- package/dist/tools/bridge/bridge.test.d.ts.map +1 -0
- package/dist/tools/bridge/bridge.test.js +119 -0
- package/dist/tools/bridge/bridge.test.js.map +1 -0
- package/dist/tools/bridge/index.d.ts +8 -0
- package/dist/tools/bridge/index.d.ts.map +1 -0
- package/dist/tools/bridge/index.js +153 -0
- package/dist/tools/bridge/index.js.map +1 -0
- package/dist/tools/bridge/store.d.ts +45 -0
- package/dist/tools/bridge/store.d.ts.map +1 -0
- package/dist/tools/bridge/store.js +307 -0
- package/dist/tools/bridge/store.js.map +1 -0
- package/dist/tools/bridge/store.test.d.ts +2 -0
- package/dist/tools/bridge/store.test.d.ts.map +1 -0
- package/dist/tools/bridge/store.test.js +180 -0
- package/dist/tools/bridge/store.test.js.map +1 -0
- package/dist/tools/bridge/types.d.ts +44 -0
- package/dist/tools/bridge/types.d.ts.map +1 -0
- package/dist/tools/bridge/types.js +6 -0
- package/dist/tools/bridge/types.js.map +1 -0
- package/dist/tools/evolve/algorithm.d.ts +33 -0
- package/dist/tools/evolve/algorithm.d.ts.map +1 -0
- package/dist/tools/evolve/algorithm.js +64 -0
- package/dist/tools/evolve/algorithm.js.map +1 -0
- package/dist/tools/evolve/algorithm.test.d.ts +6 -0
- package/dist/tools/evolve/algorithm.test.d.ts.map +1 -0
- package/dist/tools/evolve/algorithm.test.js +138 -0
- package/dist/tools/evolve/algorithm.test.js.map +1 -0
- package/dist/tools/evolve/index.d.ts +11 -0
- package/dist/tools/evolve/index.d.ts.map +1 -0
- package/dist/tools/evolve/index.js +300 -0
- package/dist/tools/evolve/index.js.map +1 -0
- package/dist/tools/evolve/store.d.ts +27 -0
- package/dist/tools/evolve/store.d.ts.map +1 -0
- package/dist/tools/evolve/store.js +147 -0
- package/dist/tools/evolve/store.js.map +1 -0
- package/dist/tools/evolve/store.test.d.ts +6 -0
- package/dist/tools/evolve/store.test.d.ts.map +1 -0
- package/dist/tools/evolve/store.test.js +162 -0
- package/dist/tools/evolve/store.test.js.map +1 -0
- package/dist/tools/evolve/types.d.ts +38 -0
- package/dist/tools/evolve/types.d.ts.map +1 -0
- package/dist/tools/evolve/types.js +6 -0
- package/dist/tools/evolve/types.js.map +1 -0
- package/dist/tools/framework/content-loader.d.ts +45 -0
- package/dist/tools/framework/content-loader.d.ts.map +1 -0
- package/dist/tools/framework/content-loader.js +258 -0
- package/dist/tools/framework/content-loader.js.map +1 -0
- package/dist/tools/framework/content-loader.test.d.ts +5 -0
- package/dist/tools/framework/content-loader.test.d.ts.map +1 -0
- package/dist/tools/framework/content-loader.test.js +262 -0
- package/dist/tools/framework/content-loader.test.js.map +1 -0
- package/dist/tools/framework/index.d.ts +30 -0
- package/dist/tools/framework/index.d.ts.map +1 -0
- package/dist/tools/framework/index.js +517 -0
- package/dist/tools/framework/index.js.map +1 -0
- package/dist/tools/framework/session.d.ts +85 -0
- package/dist/tools/framework/session.d.ts.map +1 -0
- package/dist/tools/framework/session.js +311 -0
- package/dist/tools/framework/session.js.map +1 -0
- package/dist/tools/framework/session.test.d.ts +5 -0
- package/dist/tools/framework/session.test.d.ts.map +1 -0
- package/dist/tools/framework/session.test.js +291 -0
- package/dist/tools/framework/session.test.js.map +1 -0
- package/dist/tools/framework/sync-evaluator.d.ts +41 -0
- package/dist/tools/framework/sync-evaluator.d.ts.map +1 -0
- package/dist/tools/framework/sync-evaluator.js +298 -0
- package/dist/tools/framework/sync-evaluator.js.map +1 -0
- package/dist/tools/framework/sync-evaluator.test.d.ts +5 -0
- package/dist/tools/framework/sync-evaluator.test.d.ts.map +1 -0
- package/dist/tools/framework/sync-evaluator.test.js +288 -0
- package/dist/tools/framework/sync-evaluator.test.js.map +1 -0
- package/dist/tools/framework/types.d.ts +279 -0
- package/dist/tools/framework/types.d.ts.map +1 -0
- package/dist/tools/framework/types.js +6 -0
- package/dist/tools/framework/types.js.map +1 -0
- package/dist/tools/framework/workflow-intelligence.d.ts +55 -0
- package/dist/tools/framework/workflow-intelligence.d.ts.map +1 -0
- package/dist/tools/framework/workflow-intelligence.js +199 -0
- package/dist/tools/framework/workflow-intelligence.js.map +1 -0
- package/dist/tools/framework/workflow-intelligence.test.d.ts +6 -0
- package/dist/tools/framework/workflow-intelligence.test.d.ts.map +1 -0
- package/dist/tools/framework/workflow-intelligence.test.js +257 -0
- package/dist/tools/framework/workflow-intelligence.test.js.map +1 -0
- package/dist/tools/framework/workflow-planner.d.ts +10 -0
- package/dist/tools/framework/workflow-planner.d.ts.map +1 -0
- package/dist/tools/framework/workflow-planner.js +214 -0
- package/dist/tools/framework/workflow-planner.js.map +1 -0
- package/dist/tools/framework/workflow-planner.test.d.ts +5 -0
- package/dist/tools/framework/workflow-planner.test.d.ts.map +1 -0
- package/dist/tools/framework/workflow-planner.test.js +137 -0
- package/dist/tools/framework/workflow-planner.test.js.map +1 -0
- package/dist/tools/knowledge/bridge.d.ts +34 -0
- package/dist/tools/knowledge/bridge.d.ts.map +1 -0
- package/dist/tools/knowledge/bridge.js +249 -0
- package/dist/tools/knowledge/bridge.js.map +1 -0
- package/dist/tools/knowledge/bridge.test.d.ts +5 -0
- package/dist/tools/knowledge/bridge.test.d.ts.map +1 -0
- package/dist/tools/knowledge/bridge.test.js +221 -0
- package/dist/tools/knowledge/bridge.test.js.map +1 -0
- package/dist/tools/knowledge/extractor.d.ts +22 -0
- package/dist/tools/knowledge/extractor.d.ts.map +1 -0
- package/dist/tools/knowledge/extractor.js +154 -0
- package/dist/tools/knowledge/extractor.js.map +1 -0
- package/dist/tools/knowledge/index.d.ts +12 -0
- package/dist/tools/knowledge/index.d.ts.map +1 -0
- package/dist/tools/knowledge/index.js +505 -0
- package/dist/tools/knowledge/index.js.map +1 -0
- package/dist/tools/knowledge/retrieval.d.ts +28 -0
- package/dist/tools/knowledge/retrieval.d.ts.map +1 -0
- package/dist/tools/knowledge/retrieval.js +164 -0
- package/dist/tools/knowledge/retrieval.js.map +1 -0
- package/dist/tools/knowledge/store.d.ts +96 -0
- package/dist/tools/knowledge/store.d.ts.map +1 -0
- package/dist/tools/knowledge/store.js +562 -0
- package/dist/tools/knowledge/store.js.map +1 -0
- package/dist/tools/knowledge/store.test.d.ts +6 -0
- package/dist/tools/knowledge/store.test.d.ts.map +1 -0
- package/dist/tools/knowledge/store.test.js +385 -0
- package/dist/tools/knowledge/store.test.js.map +1 -0
- package/dist/tools/knowledge/types.d.ts +168 -0
- package/dist/tools/knowledge/types.d.ts.map +1 -0
- package/dist/tools/knowledge/types.js +6 -0
- package/dist/tools/knowledge/types.js.map +1 -0
- package/dist/tools/memory/evolution.d.ts +31 -0
- package/dist/tools/memory/evolution.d.ts.map +1 -0
- package/dist/tools/memory/evolution.js +130 -0
- package/dist/tools/memory/evolution.js.map +1 -0
- package/dist/tools/memory/index.d.ts +11 -0
- package/dist/tools/memory/index.d.ts.map +1 -0
- package/dist/tools/memory/index.js +239 -0
- package/dist/tools/memory/index.js.map +1 -0
- package/dist/tools/memory/store.d.ts +75 -0
- package/dist/tools/memory/store.d.ts.map +1 -0
- package/dist/tools/memory/store.js +398 -0
- package/dist/tools/memory/store.js.map +1 -0
- package/dist/tools/memory/store.test.d.ts +6 -0
- package/dist/tools/memory/store.test.d.ts.map +1 -0
- package/dist/tools/memory/store.test.js +429 -0
- package/dist/tools/memory/store.test.js.map +1 -0
- package/dist/tools/memory/types.d.ts +171 -0
- package/dist/tools/memory/types.d.ts.map +1 -0
- package/dist/tools/memory/types.js +6 -0
- package/dist/tools/memory/types.js.map +1 -0
- package/dist/tools/pipeline/composer.d.ts +29 -0
- package/dist/tools/pipeline/composer.d.ts.map +1 -0
- package/dist/tools/pipeline/composer.js +225 -0
- package/dist/tools/pipeline/composer.js.map +1 -0
- package/dist/tools/pipeline/composer.test.d.ts +2 -0
- package/dist/tools/pipeline/composer.test.d.ts.map +1 -0
- package/dist/tools/pipeline/composer.test.js +162 -0
- package/dist/tools/pipeline/composer.test.js.map +1 -0
- package/dist/tools/pipeline/index.d.ts +8 -0
- package/dist/tools/pipeline/index.d.ts.map +1 -0
- package/dist/tools/pipeline/index.js +102 -0
- package/dist/tools/pipeline/index.js.map +1 -0
- package/dist/tools/pipeline/planner.d.ts +10 -0
- package/dist/tools/pipeline/planner.d.ts.map +1 -0
- package/dist/tools/pipeline/planner.js +147 -0
- package/dist/tools/pipeline/planner.js.map +1 -0
- package/dist/tools/pipeline/planner.test.d.ts +2 -0
- package/dist/tools/pipeline/planner.test.d.ts.map +1 -0
- package/dist/tools/pipeline/planner.test.js +96 -0
- package/dist/tools/pipeline/planner.test.js.map +1 -0
- package/dist/tools/pipeline/preconditions.d.ts +14 -0
- package/dist/tools/pipeline/preconditions.d.ts.map +1 -0
- package/dist/tools/pipeline/preconditions.js +65 -0
- package/dist/tools/pipeline/preconditions.js.map +1 -0
- package/dist/tools/pipeline/preconditions.test.d.ts +2 -0
- package/dist/tools/pipeline/preconditions.test.d.ts.map +1 -0
- package/dist/tools/pipeline/preconditions.test.js +74 -0
- package/dist/tools/pipeline/preconditions.test.js.map +1 -0
- package/dist/tools/pipeline/types.d.ts +105 -0
- package/dist/tools/pipeline/types.d.ts.map +1 -0
- package/dist/tools/pipeline/types.js +6 -0
- package/dist/tools/pipeline/types.js.map +1 -0
- package/dist/tools/repair/index.d.ts +8 -0
- package/dist/tools/repair/index.d.ts.map +1 -0
- package/dist/tools/repair/index.js +384 -0
- package/dist/tools/repair/index.js.map +1 -0
- package/dist/tools/repair/repairer.d.ts +67 -0
- package/dist/tools/repair/repairer.d.ts.map +1 -0
- package/dist/tools/repair/repairer.js +257 -0
- package/dist/tools/repair/repairer.js.map +1 -0
- package/dist/tools/repair/repairer.test.d.ts +6 -0
- package/dist/tools/repair/repairer.test.d.ts.map +1 -0
- package/dist/tools/repair/repairer.test.js +159 -0
- package/dist/tools/repair/repairer.test.js.map +1 -0
- package/dist/tools/semantic/chunker.d.ts +23 -0
- package/dist/tools/semantic/chunker.d.ts.map +1 -0
- package/dist/tools/semantic/chunker.js +244 -0
- package/dist/tools/semantic/chunker.js.map +1 -0
- package/dist/tools/semantic/embedder.d.ts +16 -0
- package/dist/tools/semantic/embedder.d.ts.map +1 -0
- package/dist/tools/semantic/embedder.js +88 -0
- package/dist/tools/semantic/embedder.js.map +1 -0
- package/dist/tools/semantic/index.d.ts +8 -0
- package/dist/tools/semantic/index.d.ts.map +1 -0
- package/dist/tools/semantic/index.js +144 -0
- package/dist/tools/semantic/index.js.map +1 -0
- package/dist/tools/semantic/store.d.ts +31 -0
- package/dist/tools/semantic/store.d.ts.map +1 -0
- package/dist/tools/semantic/store.js +168 -0
- package/dist/tools/semantic/store.js.map +1 -0
- package/dist/tools/semantic/store.test.d.ts +6 -0
- package/dist/tools/semantic/store.test.d.ts.map +1 -0
- package/dist/tools/semantic/store.test.js +240 -0
- package/dist/tools/semantic/store.test.js.map +1 -0
- package/dist/tools/spec/generator.d.ts +32 -0
- package/dist/tools/spec/generator.d.ts.map +1 -0
- package/dist/tools/spec/generator.js +278 -0
- package/dist/tools/spec/generator.js.map +1 -0
- package/dist/tools/spec/generator.test.d.ts +6 -0
- package/dist/tools/spec/generator.test.d.ts.map +1 -0
- package/dist/tools/spec/generator.test.js +208 -0
- package/dist/tools/spec/generator.test.js.map +1 -0
- package/dist/tools/spec/index.d.ts +11 -0
- package/dist/tools/spec/index.d.ts.map +1 -0
- package/dist/tools/spec/index.js +426 -0
- package/dist/tools/spec/index.js.map +1 -0
- package/dist/tools/spec/store.d.ts +24 -0
- package/dist/tools/spec/store.d.ts.map +1 -0
- package/dist/tools/spec/store.js +104 -0
- package/dist/tools/spec/store.js.map +1 -0
- package/dist/tools/spec/store.test.d.ts +6 -0
- package/dist/tools/spec/store.test.d.ts.map +1 -0
- package/dist/tools/spec/store.test.js +173 -0
- package/dist/tools/spec/store.test.js.map +1 -0
- package/dist/tools/spec/types.d.ts +61 -0
- package/dist/tools/spec/types.d.ts.map +1 -0
- package/dist/tools/spec/types.js +6 -0
- package/dist/tools/spec/types.js.map +1 -0
- package/dist/tools/state/index.d.ts +11 -0
- package/dist/tools/state/index.d.ts.map +1 -0
- package/dist/tools/state/index.js +386 -0
- package/dist/tools/state/index.js.map +1 -0
- package/dist/tools/state/migrate.d.ts +39 -0
- package/dist/tools/state/migrate.d.ts.map +1 -0
- package/dist/tools/state/migrate.js +242 -0
- package/dist/tools/state/migrate.js.map +1 -0
- package/dist/tools/state/migrate.test.d.ts +2 -0
- package/dist/tools/state/migrate.test.d.ts.map +1 -0
- package/dist/tools/state/migrate.test.js +265 -0
- package/dist/tools/state/migrate.test.js.map +1 -0
- package/dist/tools/state/store.d.ts +107 -0
- package/dist/tools/state/store.d.ts.map +1 -0
- package/dist/tools/state/store.js +365 -0
- package/dist/tools/state/store.js.map +1 -0
- package/dist/tools/state/store.test.d.ts +5 -0
- package/dist/tools/state/store.test.d.ts.map +1 -0
- package/dist/tools/state/store.test.js +293 -0
- package/dist/tools/state/store.test.js.map +1 -0
- package/dist/tools/state/types.d.ts +90 -0
- package/dist/tools/state/types.d.ts.map +1 -0
- package/dist/tools/state/types.js +6 -0
- package/dist/tools/state/types.js.map +1 -0
- package/dist/tools/testing/analyzer.d.ts +44 -0
- package/dist/tools/testing/analyzer.d.ts.map +1 -0
- package/dist/tools/testing/analyzer.js +280 -0
- package/dist/tools/testing/analyzer.js.map +1 -0
- package/dist/tools/testing/generator.d.ts +57 -0
- package/dist/tools/testing/generator.d.ts.map +1 -0
- package/dist/tools/testing/generator.js +478 -0
- package/dist/tools/testing/generator.js.map +1 -0
- package/dist/tools/testing/generator.test.d.ts +6 -0
- package/dist/tools/testing/generator.test.d.ts.map +1 -0
- package/dist/tools/testing/generator.test.js +285 -0
- package/dist/tools/testing/generator.test.js.map +1 -0
- package/dist/tools/testing/index.d.ts +8 -0
- package/dist/tools/testing/index.d.ts.map +1 -0
- package/dist/tools/testing/index.js +373 -0
- package/dist/tools/testing/index.js.map +1 -0
- package/dist/utils/embedder.d.ts +7 -0
- package/dist/utils/embedder.d.ts.map +1 -0
- package/dist/utils/embedder.js +13 -0
- package/dist/utils/embedder.js.map +1 -0
- package/dist/utils/execution.d.ts +68 -0
- package/dist/utils/execution.d.ts.map +1 -0
- package/dist/utils/execution.js +467 -0
- package/dist/utils/execution.js.map +1 -0
- package/dist/utils/graph.d.ts +26 -0
- package/dist/utils/graph.d.ts.map +1 -0
- package/dist/utils/graph.js +32 -0
- package/dist/utils/graph.js.map +1 -0
- package/dist/utils/guards.d.ts +32 -0
- package/dist/utils/guards.d.ts.map +1 -0
- package/dist/utils/guards.js +40 -0
- package/dist/utils/guards.js.map +1 -0
- package/dist/utils/ids.d.ts +5 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +7 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/languages.d.ts +34 -0
- package/dist/utils/languages.d.ts.map +1 -0
- package/dist/utils/languages.js +153 -0
- package/dist/utils/languages.js.map +1 -0
- package/dist/utils/lazy.d.ts +17 -0
- package/dist/utils/lazy.d.ts.map +1 -0
- package/dist/utils/lazy.js +35 -0
- package/dist/utils/lazy.js.map +1 -0
- package/dist/utils/project.d.ts +41 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +82 -0
- package/dist/utils/project.js.map +1 -0
- package/dist/utils/responses.d.ts +27 -0
- package/dist/utils/responses.d.ts.map +1 -0
- package/dist/utils/responses.js +72 -0
- package/dist/utils/responses.js.map +1 -0
- package/dist/utils/vectors.d.ts +33 -0
- package/dist/utils/vectors.d.ts.map +1 -0
- package/dist/utils/vectors.js +80 -0
- package/dist/utils/vectors.js.map +1 -0
- package/dist/utils/vectors.test.d.ts +6 -0
- package/dist/utils/vectors.test.d.ts.map +1 -0
- package/dist/utils/vectors.test.js +96 -0
- package/dist/utils/vectors.test.js.map +1 -0
- package/package.json +69 -0
- package/scripts/init.js +142 -0
- package/templates/CLAUDE.md.template +96 -0
- package/templates/agents/architecture-concept.md +237 -0
- package/templates/agents/checkpoint-concept.md +218 -0
- package/templates/agents/code-analysis-concept.md +171 -0
- package/templates/agents/compete-control.md +44 -0
- package/templates/agents/compete-evaluator.md +87 -0
- package/templates/agents/compete-treatment.md +55 -0
- package/templates/agents/context-concept.md +254 -0
- package/templates/agents/debate-advocate.md +127 -0
- package/templates/agents/debate-critic.md +119 -0
- package/templates/agents/debate-synthesis.md +160 -0
- package/templates/agents/documentation-concept.md +294 -0
- package/templates/agents/implementation-concept.md +165 -0
- package/templates/agents/quality-concept.md +299 -0
- package/templates/agents/research-concept.md +169 -0
- package/templates/agents/security-concept.md +255 -0
- package/templates/agents/story-concept.md +207 -0
- package/templates/agents/verification-concept.md +456 -0
- package/templates/agents/version-concept.md +163 -0
- package/templates/anchors/directory.anchor.yaml.template +53 -0
- package/templates/anchors/rules.anchor.yaml.template +70 -0
- package/templates/anchors/safety.anchor.yaml.template +96 -0
- package/templates/claude-md-managed.template +105 -0
- package/templates/commands/cache.md.template +439 -0
- package/templates/commands/checkpoint.md.template +121 -0
- package/templates/commands/classify.md.template +138 -0
- package/templates/commands/compete.md.template +90 -0
- package/templates/commands/costs.md.template +111 -0
- package/templates/commands/estimate.md.template +196 -0
- package/templates/commands/explore.md.template +186 -0
- package/templates/commands/feature.md.template +216 -0
- package/templates/commands/forget.md.template +104 -0
- package/templates/commands/global-recall.md.template +250 -0
- package/templates/commands/global-remember.md.template +187 -0
- package/templates/commands/health.md.template +107 -0
- package/templates/commands/help.md.template +253 -0
- package/templates/commands/observe.md.template +211 -0
- package/templates/commands/pr-review.md.template +164 -0
- package/templates/commands/predict-cost.md.template +251 -0
- package/templates/commands/profile.md.template +142 -0
- package/templates/commands/reasoning.md.template +228 -0
- package/templates/commands/recall.md.template +197 -0
- package/templates/commands/remember.md.template +148 -0
- package/templates/commands/replay.md.template +449 -0
- package/templates/commands/restore.md.template +87 -0
- package/templates/commands/retrospective.md.template +47 -0
- package/templates/commands/slo.md.template +286 -0
- package/templates/commands/spec.md.template +164 -0
- package/templates/commands/status.md.template +53 -0
- package/templates/commands/sync.md.template +321 -0
- package/templates/commands/task.md.template +86 -0
- package/templates/commands/trace.md.template +86 -0
- package/templates/commands/visualize.md.template +216 -0
- package/templates/commands/workflow.md.template +375 -0
- package/templates/concepts/README.md +329 -0
- package/templates/concepts/architecture.md.template +74 -0
- package/templates/concepts/code-analysis.md.template +186 -0
- package/templates/concepts/context-compactor.md.template +393 -0
- package/templates/concepts/context.md.template +62 -0
- package/templates/concepts/documentation.md.template +452 -0
- package/templates/concepts/estimator.md.template +214 -0
- package/templates/concepts/exploration.md.template +257 -0
- package/templates/concepts/global-memory.md.template +222 -0
- package/templates/concepts/implementation.md.template +62 -0
- package/templates/concepts/pr-review.md.template +277 -0
- package/templates/concepts/project-profile.md.template +358 -0
- package/templates/concepts/quality.md.template +63 -0
- package/templates/concepts/react-fallback.md.template +286 -0
- package/templates/concepts/research.md.template +221 -0
- package/templates/concepts/retrospective.md.template +93 -0
- package/templates/concepts/security.md.template +442 -0
- package/templates/concepts/slo.md.template +274 -0
- package/templates/concepts/spec.md.template +71 -0
- package/templates/concepts/story.md.template +50 -0
- package/templates/concepts/tool-router.md.template +289 -0
- package/templates/concepts/verification-synthesizer.md.template +279 -0
- package/templates/concepts/version.md.template +61 -0
- package/templates/config.yaml.template +347 -0
- package/templates/examples/README.md +77 -0
- package/templates/examples/architecture/api-design.yaml.template +286 -0
- package/templates/examples/architecture/oauth-authentication.yaml.template +305 -0
- package/templates/health/status.yaml.template +120 -0
- package/templates/hooks/concept-complete.sh.template +45 -0
- package/templates/hooks/lib/common.sh.template +160 -0
- package/templates/hooks/post-commit.sh.template +37 -0
- package/templates/hooks/post-concept-action.template +39 -0
- package/templates/hooks/post-tool-structure-check.sh.template +138 -0
- package/templates/hooks/post-tool-use.sh.template +51 -0
- package/templates/hooks/pre-compact.sh.template +48 -0
- package/templates/hooks/pre-tool-grounding.template +148 -0
- package/templates/hooks/session-exit-checkpoint.sh.template +35 -0
- package/templates/hooks/session-start.sh.template +67 -0
- package/templates/hooks/statusline.sh.template +148 -0
- package/templates/hooks/stop.sh.template +45 -0
- package/templates/hooks/subagent-stop.sh.template +40 -0
- package/templates/hooks/sync-blocked.sh.template +45 -0
- package/templates/hooks/timeout.sh.template +48 -0
- package/templates/hooks/user-prompt-submit.sh.template +68 -0
- package/templates/koan/README.md +58 -0
- package/templates/memory/index.yaml.template +48 -0
- package/templates/memory/procedural/debugging.yaml.template +24 -0
- package/templates/memory/procedural/workflows.yaml.template +22 -0
- package/templates/memory/semantic/architecture.yaml.template +21 -0
- package/templates/memory/semantic/conventions.yaml.template +18 -0
- package/templates/memory/semantic/patterns.yaml.template +21 -0
- package/templates/memory/semantic/preferences.yaml.template +18 -0
- package/templates/prompts/architecture.yaml.template +349 -0
- package/templates/prompts/context.yaml.template +384 -0
- package/templates/prompts/implementation.yaml.template +365 -0
- package/templates/prompts/planning.yaml.template +303 -0
- package/templates/prompts/quality.yaml.template +345 -0
- package/templates/prompts/retrospective.yaml.template +231 -0
- package/templates/prompts/slo.yaml.template +360 -0
- package/templates/prompts/story.yaml.template +236 -0
- package/templates/prompts/tree-of-thoughts.yaml.template +299 -0
- package/templates/prompts/verification.yaml.template +286 -0
- package/templates/prompts/version.yaml.template +279 -0
- package/templates/schemas/agent-schema.json +98 -0
- package/templates/schemas/architecture.schema.json +69 -0
- package/templates/schemas/config-schema.json +165 -0
- package/templates/schemas/implementation.schema.json +75 -0
- package/templates/schemas/planning.schema.json +243 -0
- package/templates/schemas/provenance.schema.json +111 -0
- package/templates/schemas/retrospective.schema.json +174 -0
- package/templates/schemas/review.schema.json +284 -0
- package/templates/schemas/slo.schema.json +443 -0
- package/templates/schemas/story.schema.json +68 -0
- package/templates/schemas/sync-schema.json +196 -0
- package/templates/schemas/task.schema.json +127 -0
- package/templates/schemas/tree-of-thoughts.schema.json +175 -0
- package/templates/schemas/verification.schema.json +106 -0
- package/templates/settings.full.json.template +135 -0
- package/templates/settings.minimal.json.template +68 -0
- package/templates/settings.standard.json.template +135 -0
- package/templates/skills/acceptance-criteria-generation.md.template +330 -0
- package/templates/skills/accessibility-checking.md.template +341 -0
- package/templates/skills/api-design-patterns.md.template +395 -0
- package/templates/skills/batch-processing.md.template +605 -0
- package/templates/skills/branch-strategy.md.template +362 -0
- package/templates/skills/changelog-generation.md.template +403 -0
- package/templates/skills/code-coverage-analysis.md.template +362 -0
- package/templates/skills/code-style-enforcement.md.template +294 -0
- package/templates/skills/code-template-patterns.md.template +419 -0
- package/templates/skills/concept-development.md.template +159 -0
- package/templates/skills/context-prioritization.md.template +306 -0
- package/templates/skills/cost-optimization.md.template +482 -0
- package/templates/skills/cross-project-knowledge.md.template +316 -0
- package/templates/skills/dependency-impact-analysis.md.template +263 -0
- package/templates/skills/documentation-generation.md.template +409 -0
- package/templates/skills/effort-estimation.md.template +350 -0
- package/templates/skills/error-classification.md.template +709 -0
- package/templates/skills/error-messages.md.template +339 -0
- package/templates/skills/ide-diagnostics.md.template +480 -0
- package/templates/skills/incremental-loading.md.template +574 -0
- package/templates/skills/output-caching.md.template +524 -0
- package/templates/skills/performance-estimation.md.template +325 -0
- package/templates/skills/performance-testing-patterns.md.template +341 -0
- package/templates/skills/phase2-optimizations-summary.md.template +458 -0
- package/templates/skills/progressive-disclosure-pattern.md.template +190 -0
- package/templates/skills/project-structure.md.template +372 -0
- package/templates/skills/provenance-analysis.md.template +609 -0
- package/templates/skills/react-executor.md.template +366 -0
- package/templates/skills/refactoring-patterns.md.template +422 -0
- package/templates/skills/release-management.md.template +373 -0
- package/templates/skills/requirement-prioritization.md.template +357 -0
- package/templates/skills/schema-validation.md.template +321 -0
- package/templates/skills/security-design-patterns.md.template +692 -0
- package/templates/skills/security-vulnerability-scanning.md.template +663 -0
- package/templates/skills/semantic-memory.md.template +266 -0
- package/templates/skills/semantic-versioning.md.template +371 -0
- package/templates/skills/smart-retry.md.template +676 -0
- package/templates/skills/smart-summarization.md.template +358 -0
- package/templates/skills/story-decomposition.md.template +278 -0
- package/templates/skills/synchronization-patterns.md.template +303 -0
- package/templates/skills/test-generation-strategy.md.template +247 -0
- package/templates/skills/workflow-replay.md.template +478 -0
- package/templates/skills/wysiwid-principles.md.template +364 -0
- package/templates/skills-manifest.yaml.template +526 -0
- package/templates/stubs/agents/architecture-concept.md +20 -0
- package/templates/stubs/agents/checkpoint-concept.md +19 -0
- package/templates/stubs/agents/code-analysis-concept.md +36 -0
- package/templates/stubs/agents/context-concept.md +37 -0
- package/templates/stubs/agents/debate-advocate.md +12 -0
- package/templates/stubs/agents/debate-critic.md +12 -0
- package/templates/stubs/agents/debate-synthesis.md +12 -0
- package/templates/stubs/agents/documentation-concept.md +39 -0
- package/templates/stubs/agents/implementation-concept.md +41 -0
- package/templates/stubs/agents/quality-concept.md +41 -0
- package/templates/stubs/agents/research-concept.md +35 -0
- package/templates/stubs/agents/security-concept.md +40 -0
- package/templates/stubs/agents/spec-concept.md +35 -0
- package/templates/stubs/agents/story-concept.md +36 -0
- package/templates/stubs/agents/verification-concept.md +39 -0
- package/templates/stubs/agents/version-concept.md +37 -0
- package/templates/stubs/commands/cache.md.template +2 -0
- package/templates/stubs/commands/checkpoint.md.template +2 -0
- package/templates/stubs/commands/classify.md.template +2 -0
- package/templates/stubs/commands/compete.md.template +2 -0
- package/templates/stubs/commands/costs.md.template +2 -0
- package/templates/stubs/commands/estimate.md.template +2 -0
- package/templates/stubs/commands/explore.md.template +2 -0
- package/templates/stubs/commands/feature.md.template +2 -0
- package/templates/stubs/commands/forget.md.template +2 -0
- package/templates/stubs/commands/global-recall.md.template +2 -0
- package/templates/stubs/commands/global-remember.md.template +2 -0
- package/templates/stubs/commands/health.md.template +2 -0
- package/templates/stubs/commands/help.md.template +2 -0
- package/templates/stubs/commands/observe.md.template +2 -0
- package/templates/stubs/commands/pr-review.md.template +2 -0
- package/templates/stubs/commands/predict-cost.md.template +2 -0
- package/templates/stubs/commands/profile.md.template +2 -0
- package/templates/stubs/commands/reasoning.md.template +2 -0
- package/templates/stubs/commands/recall.md.template +2 -0
- package/templates/stubs/commands/remember.md.template +2 -0
- package/templates/stubs/commands/replay.md.template +2 -0
- package/templates/stubs/commands/restore.md.template +2 -0
- package/templates/stubs/commands/retrospective.md.template +2 -0
- package/templates/stubs/commands/slo.md.template +2 -0
- package/templates/stubs/commands/spec.md.template +2 -0
- package/templates/stubs/commands/sync.md.template +2 -0
- package/templates/stubs/commands/task.md.template +2 -0
- package/templates/stubs/commands/trace.md.template +2 -0
- package/templates/stubs/commands/visualize.md.template +2 -0
- package/templates/stubs/commands/workflow.md.template +2 -0
- package/templates/synchronizations/archive/adaptive-learning.yaml.template +595 -0
- package/templates/synchronizations/archive/code-understanding-flow.yaml.template +533 -0
- package/templates/synchronizations/archive/collaboration-flow.yaml.template +521 -0
- package/templates/synchronizations/archive/context-folding.yaml.template +353 -0
- package/templates/synchronizations/archive/dead-letter-queue.yaml.template +530 -0
- package/templates/synchronizations/archive/documentation-flow.yaml.template +560 -0
- package/templates/synchronizations/archive/error-recovery-flow.yaml.template +1031 -0
- package/templates/synchronizations/archive/execution-loop.yaml.template +336 -0
- package/templates/synchronizations/archive/exploration-flow.yaml.template +369 -0
- package/templates/synchronizations/archive/feature-development.yaml.template +2145 -0
- package/templates/synchronizations/archive/learning-loop.yaml.template +657 -0
- package/templates/synchronizations/archive/multi-verify.yaml.template +346 -0
- package/templates/synchronizations/archive/planning-flow.yaml.template +312 -0
- package/templates/synchronizations/archive/retrospective-flow.yaml.template +277 -0
- package/templates/synchronizations/archive/security-flow.yaml.template +477 -0
- package/templates/synchronizations/archive/slo-monitoring.yaml.template +209 -0
- package/templates/synchronizations/archive/task-routing.yaml.template +489 -0
- package/templates/synchronizations/archive/test-driven.yaml.template +291 -0
- package/templates/synchronizations/archive/tool-routing.yaml.template +326 -0
- package/templates/synchronizations/archive/verification-flow.yaml.template +407 -0
- package/templates/synchronizations/error-policy.yaml.template +188 -0
- package/templates/synchronizations/main.sync.template +319 -0
- package/templates/synchronizations/slo-registry.yaml.template +229 -0
- package/templates/tasks/task.yaml.template +67 -0
- package/templates/zen-profile.yaml.template +14 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# Zen Prompt Template: Implementation Concept
|
|
2
|
+
# Version: 1.0.0
|
|
3
|
+
# Model: sonnet (recommended)
|
|
4
|
+
#
|
|
5
|
+
# This prompt generates code from architecture specifications,
|
|
6
|
+
# following established patterns and project conventions.
|
|
7
|
+
|
|
8
|
+
concept: implementation
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
recommended_model: sonnet
|
|
11
|
+
|
|
12
|
+
# ============================================================================
|
|
13
|
+
# PROMPTS
|
|
14
|
+
# ============================================================================
|
|
15
|
+
|
|
16
|
+
prompts:
|
|
17
|
+
# Primary action: Generate code from architecture
|
|
18
|
+
generate:
|
|
19
|
+
system: |
|
|
20
|
+
You are a senior software engineer implementing code from architecture specifications.
|
|
21
|
+
Your code is clean, well-tested, and follows established patterns.
|
|
22
|
+
|
|
23
|
+
## Core Principles
|
|
24
|
+
1. **Follow the Architecture**: Implement exactly what was designed
|
|
25
|
+
2. **Pattern Consistency**: Match existing codebase patterns
|
|
26
|
+
3. **Test Coverage**: Every public function gets tests
|
|
27
|
+
4. **Error Handling**: Handle all failure modes gracefully
|
|
28
|
+
5. **Security First**: Never introduce vulnerabilities
|
|
29
|
+
|
|
30
|
+
## Implementation Process
|
|
31
|
+
1. Review the architecture specification
|
|
32
|
+
2. Identify files to create or modify
|
|
33
|
+
3. Plan the implementation order (dependencies first)
|
|
34
|
+
4. Generate code for each file
|
|
35
|
+
5. Generate corresponding tests
|
|
36
|
+
6. Document any deviations or blockers
|
|
37
|
+
|
|
38
|
+
## Output Format
|
|
39
|
+
Respond with valid YAML:
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
impl_id: "impl-{number}"
|
|
43
|
+
arch_id: "arch-{number}"
|
|
44
|
+
status: "generating" | "completed" | "blocked"
|
|
45
|
+
|
|
46
|
+
# Summary for quick scanning
|
|
47
|
+
summary:
|
|
48
|
+
files_changed: 5
|
|
49
|
+
tests_added: 12
|
|
50
|
+
patterns_applied: ["repository", "dependency-injection"]
|
|
51
|
+
blockers: 0
|
|
52
|
+
|
|
53
|
+
files:
|
|
54
|
+
- path: "src/services/auth.ts"
|
|
55
|
+
action: "create" | "modify"
|
|
56
|
+
description: "Authentication service implementation"
|
|
57
|
+
content: |
|
|
58
|
+
// Full file content here
|
|
59
|
+
...
|
|
60
|
+
|
|
61
|
+
tests:
|
|
62
|
+
- path: "tests/services/auth.test.ts"
|
|
63
|
+
description: "Unit tests for AuthService"
|
|
64
|
+
content: |
|
|
65
|
+
// Full test file content here
|
|
66
|
+
...
|
|
67
|
+
|
|
68
|
+
patterns_applied:
|
|
69
|
+
- pattern: "Repository Pattern"
|
|
70
|
+
location: "src/repositories/"
|
|
71
|
+
rationale: "Separates data access from business logic"
|
|
72
|
+
|
|
73
|
+
deviations:
|
|
74
|
+
- from_architecture: "Used Redis instead of in-memory cache"
|
|
75
|
+
reason: "Production requirements discovered during implementation"
|
|
76
|
+
approved: false # Needs architecture revision
|
|
77
|
+
|
|
78
|
+
blockers:
|
|
79
|
+
- blocker: "Missing database migration for users table"
|
|
80
|
+
severity: "blocking"
|
|
81
|
+
suggested_resolution: "Run migration: npm run migrate"
|
|
82
|
+
|
|
83
|
+
implementation_notes:
|
|
84
|
+
- "Used existing ErrorHandler for consistency"
|
|
85
|
+
- "Added index on user.email for query performance"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Code Quality Standards
|
|
89
|
+
- TypeScript: Use strict mode, no `any` types
|
|
90
|
+
- Naming: camelCase for functions, PascalCase for classes
|
|
91
|
+
- Functions: Single responsibility, max 30 lines preferred
|
|
92
|
+
- Error handling: Use custom error classes, not generic Error
|
|
93
|
+
- Comments: Only for non-obvious logic ("why" not "what")
|
|
94
|
+
|
|
95
|
+
user: |
|
|
96
|
+
Implement the following architecture:
|
|
97
|
+
|
|
98
|
+
## Architecture Specification
|
|
99
|
+
```yaml
|
|
100
|
+
{{arch_yaml}}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
{{#if existing_code}}
|
|
104
|
+
## Existing Code Context
|
|
105
|
+
Files to be aware of:
|
|
106
|
+
{{#each existing_code}}
|
|
107
|
+
### {{this.path}}
|
|
108
|
+
```{{this.language}}
|
|
109
|
+
{{this.content}}
|
|
110
|
+
```
|
|
111
|
+
{{/each}}
|
|
112
|
+
{{/if}}
|
|
113
|
+
|
|
114
|
+
{{#if project_conventions}}
|
|
115
|
+
## Project Conventions
|
|
116
|
+
{{project_conventions}}
|
|
117
|
+
{{/if}}
|
|
118
|
+
|
|
119
|
+
{{#if tech_stack}}
|
|
120
|
+
## Tech Stack
|
|
121
|
+
{{tech_stack}}
|
|
122
|
+
{{/if}}
|
|
123
|
+
|
|
124
|
+
# Fix implementation based on test failures
|
|
125
|
+
fix:
|
|
126
|
+
system: |
|
|
127
|
+
You are fixing implementation code based on test failures or review feedback.
|
|
128
|
+
|
|
129
|
+
## Rules
|
|
130
|
+
- Focus only on the failing tests or specific feedback
|
|
131
|
+
- Don't refactor unrelated code
|
|
132
|
+
- Explain what was wrong and how you fixed it
|
|
133
|
+
- Update tests if the specification was misunderstood
|
|
134
|
+
|
|
135
|
+
user: |
|
|
136
|
+
Fix the implementation based on these issues:
|
|
137
|
+
|
|
138
|
+
## Current Implementation
|
|
139
|
+
```yaml
|
|
140
|
+
{{impl_yaml}}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Issues to Fix
|
|
144
|
+
{{#if test_failures}}
|
|
145
|
+
### Test Failures
|
|
146
|
+
{{#each test_failures}}
|
|
147
|
+
- Test: {{this.name}}
|
|
148
|
+
Error: {{this.error}}
|
|
149
|
+
Expected: {{this.expected}}
|
|
150
|
+
Actual: {{this.actual}}
|
|
151
|
+
{{/each}}
|
|
152
|
+
{{/if}}
|
|
153
|
+
|
|
154
|
+
{{#if review_feedback}}
|
|
155
|
+
### Review Feedback
|
|
156
|
+
{{#each review_feedback}}
|
|
157
|
+
- {{this}}
|
|
158
|
+
{{/each}}
|
|
159
|
+
{{/if}}
|
|
160
|
+
|
|
161
|
+
# Refactor existing code
|
|
162
|
+
refactor:
|
|
163
|
+
system: |
|
|
164
|
+
You are refactoring existing code to improve quality without changing behavior.
|
|
165
|
+
|
|
166
|
+
## Refactoring Guidelines
|
|
167
|
+
- Preserve all existing functionality
|
|
168
|
+
- Improve readability and maintainability
|
|
169
|
+
- Apply consistent patterns
|
|
170
|
+
- Add missing error handling
|
|
171
|
+
- Ensure test coverage remains complete
|
|
172
|
+
|
|
173
|
+
## Output Format
|
|
174
|
+
Show the before/after for each file changed, with explanation.
|
|
175
|
+
|
|
176
|
+
user: |
|
|
177
|
+
Refactor this code:
|
|
178
|
+
|
|
179
|
+
## Files to Refactor
|
|
180
|
+
{{#each files}}
|
|
181
|
+
### {{this.path}}
|
|
182
|
+
```{{this.language}}
|
|
183
|
+
{{this.content}}
|
|
184
|
+
```
|
|
185
|
+
{{/each}}
|
|
186
|
+
|
|
187
|
+
## Refactoring Goals
|
|
188
|
+
{{#each goals}}
|
|
189
|
+
- {{this}}
|
|
190
|
+
{{/each}}
|
|
191
|
+
|
|
192
|
+
# ============================================================================
|
|
193
|
+
# EXAMPLES (Few-Shot Learning)
|
|
194
|
+
# ============================================================================
|
|
195
|
+
|
|
196
|
+
examples:
|
|
197
|
+
generate:
|
|
198
|
+
- input:
|
|
199
|
+
arch_summary: "JWT authentication with refresh tokens"
|
|
200
|
+
components:
|
|
201
|
+
- name: "TokenService"
|
|
202
|
+
responsibility: "JWT creation and validation"
|
|
203
|
+
output: |
|
|
204
|
+
impl_id: "impl-001"
|
|
205
|
+
arch_id: "arch-001"
|
|
206
|
+
status: "completed"
|
|
207
|
+
|
|
208
|
+
summary:
|
|
209
|
+
files_changed: 2
|
|
210
|
+
tests_added: 8
|
|
211
|
+
patterns_applied: ["service-pattern", "dependency-injection"]
|
|
212
|
+
blockers: 0
|
|
213
|
+
|
|
214
|
+
files:
|
|
215
|
+
- path: "src/services/token.service.ts"
|
|
216
|
+
action: "create"
|
|
217
|
+
description: "JWT token creation and validation service"
|
|
218
|
+
content: |
|
|
219
|
+
import jwt from 'jsonwebtoken';
|
|
220
|
+
import { TokenPayload, TokenPair } from '../types/auth';
|
|
221
|
+
import { AuthenticationError } from '../errors';
|
|
222
|
+
|
|
223
|
+
export interface TokenServiceConfig {
|
|
224
|
+
accessTokenSecret: string;
|
|
225
|
+
refreshTokenSecret: string;
|
|
226
|
+
accessTokenExpiry: string;
|
|
227
|
+
refreshTokenExpiry: string;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export class TokenService {
|
|
231
|
+
constructor(private readonly config: TokenServiceConfig) {}
|
|
232
|
+
|
|
233
|
+
createTokenPair(payload: TokenPayload): TokenPair {
|
|
234
|
+
const accessToken = jwt.sign(payload, this.config.accessTokenSecret, {
|
|
235
|
+
expiresIn: this.config.accessTokenExpiry,
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
const refreshToken = jwt.sign(
|
|
239
|
+
{ userId: payload.userId },
|
|
240
|
+
this.config.refreshTokenSecret,
|
|
241
|
+
{ expiresIn: this.config.refreshTokenExpiry }
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
return { accessToken, refreshToken };
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
validateAccessToken(token: string): TokenPayload {
|
|
248
|
+
try {
|
|
249
|
+
return jwt.verify(token, this.config.accessTokenSecret) as TokenPayload;
|
|
250
|
+
} catch (error) {
|
|
251
|
+
throw new AuthenticationError('Invalid or expired access token');
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
validateRefreshToken(token: string): { userId: string } {
|
|
256
|
+
try {
|
|
257
|
+
return jwt.verify(token, this.config.refreshTokenSecret) as { userId: string };
|
|
258
|
+
} catch (error) {
|
|
259
|
+
throw new AuthenticationError('Invalid or expired refresh token');
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
tests:
|
|
265
|
+
- path: "tests/services/token.service.test.ts"
|
|
266
|
+
description: "Unit tests for TokenService"
|
|
267
|
+
content: |
|
|
268
|
+
import { TokenService } from '../../src/services/token.service';
|
|
269
|
+
import { AuthenticationError } from '../../src/errors';
|
|
270
|
+
|
|
271
|
+
describe('TokenService', () => {
|
|
272
|
+
const config = {
|
|
273
|
+
accessTokenSecret: 'test-access-secret',
|
|
274
|
+
refreshTokenSecret: 'test-refresh-secret',
|
|
275
|
+
accessTokenExpiry: '15m',
|
|
276
|
+
refreshTokenExpiry: '7d',
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
let tokenService: TokenService;
|
|
280
|
+
|
|
281
|
+
beforeEach(() => {
|
|
282
|
+
tokenService = new TokenService(config);
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
describe('createTokenPair', () => {
|
|
286
|
+
it('should create valid access and refresh tokens', () => {
|
|
287
|
+
const payload = { userId: 'user-123', email: 'test@example.com' };
|
|
288
|
+
const tokens = tokenService.createTokenPair(payload);
|
|
289
|
+
|
|
290
|
+
expect(tokens.accessToken).toBeDefined();
|
|
291
|
+
expect(tokens.refreshToken).toBeDefined();
|
|
292
|
+
expect(tokens.accessToken).not.toBe(tokens.refreshToken);
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
describe('validateAccessToken', () => {
|
|
297
|
+
it('should validate a valid access token', () => {
|
|
298
|
+
const payload = { userId: 'user-123', email: 'test@example.com' };
|
|
299
|
+
const tokens = tokenService.createTokenPair(payload);
|
|
300
|
+
|
|
301
|
+
const decoded = tokenService.validateAccessToken(tokens.accessToken);
|
|
302
|
+
|
|
303
|
+
expect(decoded.userId).toBe(payload.userId);
|
|
304
|
+
expect(decoded.email).toBe(payload.email);
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
it('should throw AuthenticationError for invalid token', () => {
|
|
308
|
+
expect(() => {
|
|
309
|
+
tokenService.validateAccessToken('invalid-token');
|
|
310
|
+
}).toThrow(AuthenticationError);
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
describe('validateRefreshToken', () => {
|
|
315
|
+
it('should validate a valid refresh token', () => {
|
|
316
|
+
const payload = { userId: 'user-123', email: 'test@example.com' };
|
|
317
|
+
const tokens = tokenService.createTokenPair(payload);
|
|
318
|
+
|
|
319
|
+
const decoded = tokenService.validateRefreshToken(tokens.refreshToken);
|
|
320
|
+
|
|
321
|
+
expect(decoded.userId).toBe(payload.userId);
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
it('should throw AuthenticationError for invalid token', () => {
|
|
325
|
+
expect(() => {
|
|
326
|
+
tokenService.validateRefreshToken('invalid-token');
|
|
327
|
+
}).toThrow(AuthenticationError);
|
|
328
|
+
});
|
|
329
|
+
});
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
patterns_applied:
|
|
333
|
+
- pattern: "Service Pattern"
|
|
334
|
+
location: "src/services/"
|
|
335
|
+
rationale: "Encapsulates business logic, easily testable"
|
|
336
|
+
- pattern: "Dependency Injection"
|
|
337
|
+
location: "Constructor config"
|
|
338
|
+
rationale: "Allows different configs for test/prod"
|
|
339
|
+
|
|
340
|
+
deviations: []
|
|
341
|
+
blockers: []
|
|
342
|
+
|
|
343
|
+
implementation_notes:
|
|
344
|
+
- "Used jsonwebtoken library (industry standard)"
|
|
345
|
+
- "Custom AuthenticationError for clear error handling"
|
|
346
|
+
- "Config injected via constructor for testability"
|
|
347
|
+
|
|
348
|
+
# ============================================================================
|
|
349
|
+
# VALIDATION
|
|
350
|
+
# ============================================================================
|
|
351
|
+
|
|
352
|
+
validation:
|
|
353
|
+
required_fields:
|
|
354
|
+
- impl_id
|
|
355
|
+
- arch_id
|
|
356
|
+
- status
|
|
357
|
+
- files
|
|
358
|
+
|
|
359
|
+
code_quality_checks:
|
|
360
|
+
- no_any_types: true
|
|
361
|
+
- no_console_log: true
|
|
362
|
+
- has_error_handling: true
|
|
363
|
+
- has_tests: true
|
|
364
|
+
|
|
365
|
+
test_coverage_minimum: 0.8
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
concept: planning
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
recommended_model: sonnet
|
|
4
|
+
|
|
5
|
+
description: |
|
|
6
|
+
Explicit Chain-of-Thought planning phase that precedes complex concept actions.
|
|
7
|
+
Forces structured reasoning before implementation decisions.
|
|
8
|
+
|
|
9
|
+
prompts:
|
|
10
|
+
create:
|
|
11
|
+
system: |
|
|
12
|
+
You are a senior technical planner specializing in structured reasoning.
|
|
13
|
+
Your role is to think through problems systematically before solutions are designed.
|
|
14
|
+
|
|
15
|
+
## Chain-of-Thought Process
|
|
16
|
+
|
|
17
|
+
You MUST work through these steps explicitly, showing your reasoning:
|
|
18
|
+
|
|
19
|
+
### Step 1: Decompose the Problem
|
|
20
|
+
- What is being asked?
|
|
21
|
+
- What are the sub-problems?
|
|
22
|
+
- What are the dependencies between sub-problems?
|
|
23
|
+
- What is the scope boundary?
|
|
24
|
+
|
|
25
|
+
### Step 2: Gather Constraints
|
|
26
|
+
- Technical constraints (language, framework, existing patterns)
|
|
27
|
+
- Business constraints (timeline, resources, compliance)
|
|
28
|
+
- Quality constraints (performance, security, maintainability)
|
|
29
|
+
- Integration constraints (APIs, databases, services)
|
|
30
|
+
|
|
31
|
+
### Step 3: Identify Unknowns
|
|
32
|
+
- What information is missing?
|
|
33
|
+
- What assumptions are we making?
|
|
34
|
+
- What risks exist?
|
|
35
|
+
- What clarifications are needed?
|
|
36
|
+
|
|
37
|
+
### Step 4: Generate Options
|
|
38
|
+
- List at least 3 possible approaches
|
|
39
|
+
- For each approach:
|
|
40
|
+
- Brief description
|
|
41
|
+
- Key trade-offs
|
|
42
|
+
- Fit with constraints
|
|
43
|
+
- Risk level
|
|
44
|
+
|
|
45
|
+
### Step 5: Evaluate and Recommend
|
|
46
|
+
- Score each option against constraints
|
|
47
|
+
- Identify the recommended approach
|
|
48
|
+
- Explain why this approach is best
|
|
49
|
+
- Note what would change the recommendation
|
|
50
|
+
|
|
51
|
+
### Step 6: Define Success Criteria
|
|
52
|
+
- How will we know this succeeded?
|
|
53
|
+
- What metrics matter?
|
|
54
|
+
- What are the acceptance conditions?
|
|
55
|
+
|
|
56
|
+
## Output Requirements
|
|
57
|
+
- Show ALL reasoning steps explicitly
|
|
58
|
+
- Do not skip to conclusions
|
|
59
|
+
- Include confidence levels
|
|
60
|
+
- Flag any blockers that need resolution
|
|
61
|
+
|
|
62
|
+
user: |
|
|
63
|
+
Create a plan for the following:
|
|
64
|
+
|
|
65
|
+
## Context
|
|
66
|
+
{{context}}
|
|
67
|
+
|
|
68
|
+
## Objective
|
|
69
|
+
{{objective}}
|
|
70
|
+
|
|
71
|
+
## Known Constraints
|
|
72
|
+
{{#each constraints}}
|
|
73
|
+
- {{this}}
|
|
74
|
+
{{/each}}
|
|
75
|
+
|
|
76
|
+
## Relevant Learnings from Past Failures
|
|
77
|
+
{{#each learnings}}
|
|
78
|
+
- {{this.insight}}
|
|
79
|
+
{{/each}}
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
Work through all 6 planning steps explicitly.
|
|
84
|
+
Show your reasoning at each step.
|
|
85
|
+
Output as YAML matching the planning schema.
|
|
86
|
+
|
|
87
|
+
review:
|
|
88
|
+
system: |
|
|
89
|
+
You review plans created by the planning process.
|
|
90
|
+
Check for completeness, logical consistency, and overlooked factors.
|
|
91
|
+
|
|
92
|
+
## Review Checklist
|
|
93
|
+
- Are all sub-problems identified?
|
|
94
|
+
- Are constraints complete and accurate?
|
|
95
|
+
- Are assumptions explicitly stated?
|
|
96
|
+
- Are at least 3 options considered?
|
|
97
|
+
- Is the evaluation criteria clear?
|
|
98
|
+
- Is the recommendation well-justified?
|
|
99
|
+
- Are success criteria measurable?
|
|
100
|
+
|
|
101
|
+
user: |
|
|
102
|
+
Review this plan:
|
|
103
|
+
|
|
104
|
+
```yaml
|
|
105
|
+
{{plan}}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Check against the review checklist.
|
|
109
|
+
Identify any gaps or improvements needed.
|
|
110
|
+
|
|
111
|
+
examples:
|
|
112
|
+
create:
|
|
113
|
+
- input:
|
|
114
|
+
context: |
|
|
115
|
+
E-commerce platform with 10K daily users.
|
|
116
|
+
React frontend, Node.js backend, PostgreSQL database.
|
|
117
|
+
Currently no caching layer.
|
|
118
|
+
objective: |
|
|
119
|
+
Add product search functionality with autocomplete.
|
|
120
|
+
constraints:
|
|
121
|
+
- Search results must appear within 200ms
|
|
122
|
+
- Must work with existing product catalog (50K products)
|
|
123
|
+
- Cannot significantly increase hosting costs
|
|
124
|
+
learnings:
|
|
125
|
+
- insight: Consider rate limits when integrating external APIs
|
|
126
|
+
- insight: Add input validation at all API boundaries
|
|
127
|
+
output: |
|
|
128
|
+
plan_id: plan-001
|
|
129
|
+
objective: Add product search functionality with autocomplete
|
|
130
|
+
timestamp: 2025-01-15T10:00:00Z
|
|
131
|
+
|
|
132
|
+
step_1_decomposition:
|
|
133
|
+
main_problem: Implement fast product search with autocomplete
|
|
134
|
+
sub_problems:
|
|
135
|
+
- name: Search indexing
|
|
136
|
+
description: Index 50K products for fast retrieval
|
|
137
|
+
dependencies: []
|
|
138
|
+
|
|
139
|
+
- name: Search API
|
|
140
|
+
description: Backend endpoint for search queries
|
|
141
|
+
dependencies: [search_indexing]
|
|
142
|
+
|
|
143
|
+
- name: Autocomplete UI
|
|
144
|
+
description: Frontend component with debounced input
|
|
145
|
+
dependencies: [search_api]
|
|
146
|
+
|
|
147
|
+
- name: Search ranking
|
|
148
|
+
description: Relevance algorithm for results
|
|
149
|
+
dependencies: [search_indexing]
|
|
150
|
+
|
|
151
|
+
scope_boundary: |
|
|
152
|
+
In scope: Basic text search, autocomplete, relevance ranking
|
|
153
|
+
Out of scope: Faceted search, filters, search analytics
|
|
154
|
+
|
|
155
|
+
step_2_constraints:
|
|
156
|
+
technical:
|
|
157
|
+
- React frontend (must use existing component patterns)
|
|
158
|
+
- Node.js backend (Express, existing middleware)
|
|
159
|
+
- PostgreSQL (50K products, ~100MB data)
|
|
160
|
+
|
|
161
|
+
performance:
|
|
162
|
+
- 200ms response time requirement
|
|
163
|
+
- Support 10K daily users
|
|
164
|
+
- Handle burst traffic during sales
|
|
165
|
+
|
|
166
|
+
cost:
|
|
167
|
+
- Minimize hosting cost increase
|
|
168
|
+
- Prefer solutions with free tier
|
|
169
|
+
|
|
170
|
+
quality:
|
|
171
|
+
- Input validation required (learning from past failures)
|
|
172
|
+
- Rate limiting needed (learning from past failures)
|
|
173
|
+
|
|
174
|
+
step_3_unknowns:
|
|
175
|
+
missing_information:
|
|
176
|
+
- Current database query performance
|
|
177
|
+
- Peak concurrent users
|
|
178
|
+
- Product data structure
|
|
179
|
+
|
|
180
|
+
assumptions:
|
|
181
|
+
- Product titles and descriptions are searchable
|
|
182
|
+
- English language only
|
|
183
|
+
- No personalization required
|
|
184
|
+
|
|
185
|
+
risks:
|
|
186
|
+
- PostgreSQL full-text may not meet 200ms at scale
|
|
187
|
+
- Autocomplete could overwhelm API without rate limiting
|
|
188
|
+
|
|
189
|
+
clarifications_needed:
|
|
190
|
+
- Is fuzzy matching required?
|
|
191
|
+
- Should search history be stored?
|
|
192
|
+
|
|
193
|
+
step_4_options:
|
|
194
|
+
- name: PostgreSQL Full-Text Search
|
|
195
|
+
description: Use native PostgreSQL tsvector/tsquery
|
|
196
|
+
trade_offs:
|
|
197
|
+
pros:
|
|
198
|
+
- No additional infrastructure
|
|
199
|
+
- Zero additional cost
|
|
200
|
+
- Simpler deployment
|
|
201
|
+
cons:
|
|
202
|
+
- May not meet 200ms at 50K products
|
|
203
|
+
- Limited autocomplete support
|
|
204
|
+
- Scaling limited to DB scaling
|
|
205
|
+
fit_with_constraints: Medium
|
|
206
|
+
risk_level: Medium
|
|
207
|
+
|
|
208
|
+
- name: Elasticsearch
|
|
209
|
+
description: Dedicated search cluster
|
|
210
|
+
trade_offs:
|
|
211
|
+
pros:
|
|
212
|
+
- Excellent performance at scale
|
|
213
|
+
- Built-in autocomplete
|
|
214
|
+
- Advanced relevance tuning
|
|
215
|
+
cons:
|
|
216
|
+
- Additional infrastructure cost
|
|
217
|
+
- Operational complexity
|
|
218
|
+
- Data sync required
|
|
219
|
+
fit_with_constraints: Low (cost constraint)
|
|
220
|
+
risk_level: Low
|
|
221
|
+
|
|
222
|
+
- name: Meilisearch (Self-hosted)
|
|
223
|
+
description: Lightweight search engine, self-hosted
|
|
224
|
+
trade_offs:
|
|
225
|
+
pros:
|
|
226
|
+
- Fast and lightweight
|
|
227
|
+
- Easy autocomplete
|
|
228
|
+
- Minimal resource needs
|
|
229
|
+
- Free and open source
|
|
230
|
+
cons:
|
|
231
|
+
- Another service to manage
|
|
232
|
+
- Less mature than Elasticsearch
|
|
233
|
+
fit_with_constraints: High
|
|
234
|
+
risk_level: Low
|
|
235
|
+
|
|
236
|
+
step_5_evaluation:
|
|
237
|
+
scoring:
|
|
238
|
+
postgresql:
|
|
239
|
+
performance: 2/5
|
|
240
|
+
cost: 5/5
|
|
241
|
+
complexity: 5/5
|
|
242
|
+
total: 12/15
|
|
243
|
+
|
|
244
|
+
elasticsearch:
|
|
245
|
+
performance: 5/5
|
|
246
|
+
cost: 2/5
|
|
247
|
+
complexity: 2/5
|
|
248
|
+
total: 9/15
|
|
249
|
+
|
|
250
|
+
meilisearch:
|
|
251
|
+
performance: 4/5
|
|
252
|
+
cost: 4/5
|
|
253
|
+
complexity: 4/5
|
|
254
|
+
total: 12/15
|
|
255
|
+
|
|
256
|
+
recommendation: Meilisearch (Self-hosted)
|
|
257
|
+
rationale: |
|
|
258
|
+
Meilisearch offers the best balance of performance and cost.
|
|
259
|
+
It meets the 200ms requirement easily, has excellent autocomplete
|
|
260
|
+
support, and can run on minimal resources (256MB RAM).
|
|
261
|
+
The operational overhead is low compared to Elasticsearch.
|
|
262
|
+
|
|
263
|
+
would_change_if: |
|
|
264
|
+
- If cost is no concern: Elasticsearch
|
|
265
|
+
- If <10K products: PostgreSQL full-text
|
|
266
|
+
- If already using Elasticsearch: Use existing cluster
|
|
267
|
+
|
|
268
|
+
step_6_success_criteria:
|
|
269
|
+
metrics:
|
|
270
|
+
- p95 search latency < 200ms
|
|
271
|
+
- Autocomplete suggestions appear < 100ms
|
|
272
|
+
- Search relevance satisfaction > 80%
|
|
273
|
+
|
|
274
|
+
acceptance_conditions:
|
|
275
|
+
- All 50K products indexed and searchable
|
|
276
|
+
- Autocomplete shows suggestions after 2 characters
|
|
277
|
+
- Results ranked by relevance
|
|
278
|
+
- Rate limiting prevents abuse
|
|
279
|
+
- Input properly validated
|
|
280
|
+
|
|
281
|
+
confidence: high
|
|
282
|
+
blockers: []
|
|
283
|
+
status: ready
|
|
284
|
+
|
|
285
|
+
validation:
|
|
286
|
+
required_fields:
|
|
287
|
+
- plan_id
|
|
288
|
+
- objective
|
|
289
|
+
- step_1_decomposition
|
|
290
|
+
- step_2_constraints
|
|
291
|
+
- step_3_unknowns
|
|
292
|
+
- step_4_options
|
|
293
|
+
- step_5_evaluation
|
|
294
|
+
- step_6_success_criteria
|
|
295
|
+
- status
|
|
296
|
+
|
|
297
|
+
options_requirements:
|
|
298
|
+
minimum_count: 3
|
|
299
|
+
must_have_trade_offs: true
|
|
300
|
+
|
|
301
|
+
evaluation_requirements:
|
|
302
|
+
must_have_recommendation: true
|
|
303
|
+
must_have_rationale: true
|