@planu/cli 1.1.1 → 1.2.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/dist/config/license-plans.json +110 -9
- package/dist/config/spec-cookbook.json +341 -0
- package/dist/engine/asana-sync.d.ts +12 -0
- package/dist/engine/asana-sync.d.ts.map +1 -0
- package/dist/engine/asana-sync.js +72 -0
- package/dist/engine/asana-sync.js.map +1 -0
- package/dist/engine/code-impact-analyzer.d.ts +6 -0
- package/dist/engine/code-impact-analyzer.d.ts.map +1 -0
- package/dist/engine/code-impact-analyzer.js +152 -0
- package/dist/engine/code-impact-analyzer.js.map +1 -0
- package/dist/engine/compliance-reporter.d.ts +11 -0
- package/dist/engine/compliance-reporter.d.ts.map +1 -0
- package/dist/engine/compliance-reporter.js +245 -0
- package/dist/engine/compliance-reporter.js.map +1 -0
- package/dist/engine/context-manager.d.ts +7 -0
- package/dist/engine/context-manager.d.ts.map +1 -0
- package/dist/engine/context-manager.js +76 -0
- package/dist/engine/context-manager.js.map +1 -0
- package/dist/engine/cost-budget-manager.d.ts +10 -0
- package/dist/engine/cost-budget-manager.d.ts.map +1 -0
- package/dist/engine/cost-budget-manager.js +165 -0
- package/dist/engine/cost-budget-manager.js.map +1 -0
- package/dist/engine/dependency-impact-analyzer.d.ts +14 -0
- package/dist/engine/dependency-impact-analyzer.d.ts.map +1 -0
- package/dist/engine/dependency-impact-analyzer.js +133 -0
- package/dist/engine/dependency-impact-analyzer.js.map +1 -0
- package/dist/engine/diff-spec-generator.d.ts +6 -0
- package/dist/engine/diff-spec-generator.d.ts.map +1 -0
- package/dist/engine/diff-spec-generator.js +181 -0
- package/dist/engine/diff-spec-generator.js.map +1 -0
- package/dist/engine/drift-monitor.d.ts +5 -0
- package/dist/engine/drift-monitor.d.ts.map +1 -0
- package/dist/engine/drift-monitor.js +92 -0
- package/dist/engine/drift-monitor.js.map +1 -0
- package/dist/engine/global-rules-manager.d.ts +10 -0
- package/dist/engine/global-rules-manager.d.ts.map +1 -0
- package/dist/engine/global-rules-manager.js +214 -0
- package/dist/engine/global-rules-manager.js.map +1 -0
- package/dist/engine/knowledge-base.d.ts +12 -0
- package/dist/engine/knowledge-base.d.ts.map +1 -0
- package/dist/engine/knowledge-base.js +250 -0
- package/dist/engine/knowledge-base.js.map +1 -0
- package/dist/engine/monday-sync.d.ts +10 -0
- package/dist/engine/monday-sync.d.ts.map +1 -0
- package/dist/engine/monday-sync.js +56 -0
- package/dist/engine/monday-sync.js.map +1 -0
- package/dist/engine/notion-sync.d.ts +13 -0
- package/dist/engine/notion-sync.d.ts.map +1 -0
- package/dist/engine/notion-sync.js +87 -0
- package/dist/engine/notion-sync.js.map +1 -0
- package/dist/engine/onboarding-engine.d.ts +11 -0
- package/dist/engine/onboarding-engine.d.ts.map +1 -0
- package/dist/engine/onboarding-engine.js +575 -0
- package/dist/engine/onboarding-engine.js.map +1 -0
- package/dist/engine/parallel-safety-engine.d.ts +8 -0
- package/dist/engine/parallel-safety-engine.d.ts.map +1 -0
- package/dist/engine/parallel-safety-engine.js +106 -0
- package/dist/engine/parallel-safety-engine.js.map +1 -0
- package/dist/engine/schema-generator.d.ts +6 -0
- package/dist/engine/schema-generator.d.ts.map +1 -0
- package/dist/engine/schema-generator.js +321 -0
- package/dist/engine/schema-generator.js.map +1 -0
- package/dist/engine/spec-cookbook.d.ts +12 -0
- package/dist/engine/spec-cookbook.d.ts.map +1 -0
- package/dist/engine/spec-cookbook.js +176 -0
- package/dist/engine/spec-cookbook.js.map +1 -0
- package/dist/engine/spec-diff-engine.d.ts +8 -0
- package/dist/engine/spec-diff-engine.d.ts.map +1 -0
- package/dist/engine/spec-diff-engine.js +321 -0
- package/dist/engine/spec-diff-engine.js.map +1 -0
- package/dist/engine/spec-hooks-engine.d.ts +12 -0
- package/dist/engine/spec-hooks-engine.d.ts.map +1 -0
- package/dist/engine/spec-hooks-engine.js +79 -0
- package/dist/engine/spec-hooks-engine.js.map +1 -0
- package/dist/engine/spec-lint-engine.d.ts +6 -0
- package/dist/engine/spec-lint-engine.d.ts.map +1 -0
- package/dist/engine/spec-lint-engine.js +164 -0
- package/dist/engine/spec-lint-engine.js.map +1 -0
- package/dist/engine/spec-scheduler.d.ts +13 -0
- package/dist/engine/spec-scheduler.d.ts.map +1 -0
- package/dist/engine/spec-scheduler.js +154 -0
- package/dist/engine/spec-scheduler.js.map +1 -0
- package/dist/engine/spec-source-sync.d.ts +14 -0
- package/dist/engine/spec-source-sync.d.ts.map +1 -0
- package/dist/engine/spec-source-sync.js +148 -0
- package/dist/engine/spec-source-sync.js.map +1 -0
- package/dist/engine/tech-debt-manager.d.ts +12 -0
- package/dist/engine/tech-debt-manager.d.ts.map +1 -0
- package/dist/engine/tech-debt-manager.js +152 -0
- package/dist/engine/tech-debt-manager.js.map +1 -0
- package/dist/engine/validation-loop.d.ts +4 -0
- package/dist/engine/validation-loop.d.ts.map +1 -0
- package/dist/engine/validation-loop.js +133 -0
- package/dist/engine/validation-loop.js.map +1 -0
- package/dist/engine/webhook-server.d.ts +19 -0
- package/dist/engine/webhook-server.d.ts.map +1 -0
- package/dist/engine/webhook-server.js +169 -0
- package/dist/engine/webhook-server.js.map +1 -0
- package/dist/engine/workspace-manager.d.ts +8 -0
- package/dist/engine/workspace-manager.d.ts.map +1 -0
- package/dist/engine/workspace-manager.js +255 -0
- package/dist/engine/workspace-manager.js.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -1
- package/dist/storage/api-surfaces-store.d.ts +8 -0
- package/dist/storage/api-surfaces-store.d.ts.map +1 -0
- package/dist/storage/api-surfaces-store.js +31 -0
- package/dist/storage/api-surfaces-store.js.map +1 -0
- package/dist/storage/asana-config-store.d.ts +9 -0
- package/dist/storage/asana-config-store.d.ts.map +1 -0
- package/dist/storage/asana-config-store.js +51 -0
- package/dist/storage/asana-config-store.js.map +1 -0
- package/dist/storage/context-config-store.d.ts +4 -0
- package/dist/storage/context-config-store.d.ts.map +1 -0
- package/dist/storage/context-config-store.js +20 -0
- package/dist/storage/context-config-store.js.map +1 -0
- package/dist/storage/cost-budget-store.d.ts +6 -0
- package/dist/storage/cost-budget-store.d.ts.map +1 -0
- package/dist/storage/cost-budget-store.js +42 -0
- package/dist/storage/cost-budget-store.js.map +1 -0
- package/dist/storage/drift-monitor-store.d.ts +9 -0
- package/dist/storage/drift-monitor-store.d.ts.map +1 -0
- package/dist/storage/drift-monitor-store.js +45 -0
- package/dist/storage/drift-monitor-store.js.map +1 -0
- package/dist/storage/monday-config-store.d.ts +9 -0
- package/dist/storage/monday-config-store.d.ts.map +1 -0
- package/dist/storage/monday-config-store.js +51 -0
- package/dist/storage/monday-config-store.js.map +1 -0
- package/dist/storage/notion-config-store.d.ts +9 -0
- package/dist/storage/notion-config-store.d.ts.map +1 -0
- package/dist/storage/notion-config-store.js +51 -0
- package/dist/storage/notion-config-store.js.map +1 -0
- package/dist/storage/onboarding-store.d.ts +4 -0
- package/dist/storage/onboarding-store.d.ts.map +1 -0
- package/dist/storage/onboarding-store.js +14 -0
- package/dist/storage/onboarding-store.js.map +1 -0
- package/dist/storage/retention-policy-store.d.ts +4 -0
- package/dist/storage/retention-policy-store.d.ts.map +1 -0
- package/dist/storage/retention-policy-store.js +20 -0
- package/dist/storage/retention-policy-store.js.map +1 -0
- package/dist/storage/spec-bindings-store.d.ts +8 -0
- package/dist/storage/spec-bindings-store.d.ts.map +1 -0
- package/dist/storage/spec-bindings-store.js +44 -0
- package/dist/storage/spec-bindings-store.js.map +1 -0
- package/dist/storage/spec-hooks-store.d.ts +8 -0
- package/dist/storage/spec-hooks-store.d.ts.map +1 -0
- package/dist/storage/spec-hooks-store.js +56 -0
- package/dist/storage/spec-hooks-store.js.map +1 -0
- package/dist/storage/spec-lint-rules-store.d.ts +5 -0
- package/dist/storage/spec-lint-rules-store.d.ts.map +1 -0
- package/dist/storage/spec-lint-rules-store.js +40 -0
- package/dist/storage/spec-lint-rules-store.js.map +1 -0
- package/dist/storage/tech-debt-store.d.ts +12 -0
- package/dist/storage/tech-debt-store.d.ts.map +1 -0
- package/dist/storage/tech-debt-store.js +51 -0
- package/dist/storage/tech-debt-store.js.map +1 -0
- package/dist/storage/webhook-server-store.d.ts +5 -0
- package/dist/storage/webhook-server-store.d.ts.map +1 -0
- package/dist/storage/webhook-server-store.js +14 -0
- package/dist/storage/webhook-server-store.js.map +1 -0
- package/dist/tools/asana-handler.d.ts +6 -0
- package/dist/tools/asana-handler.d.ts.map +1 -0
- package/dist/tools/asana-handler.js +199 -0
- package/dist/tools/asana-handler.js.map +1 -0
- package/dist/tools/code-impact-handler.d.ts +6 -0
- package/dist/tools/code-impact-handler.d.ts.map +1 -0
- package/dist/tools/code-impact-handler.js +158 -0
- package/dist/tools/code-impact-handler.js.map +1 -0
- package/dist/tools/compliance-audit-handler.d.ts +6 -0
- package/dist/tools/compliance-audit-handler.d.ts.map +1 -0
- package/dist/tools/compliance-audit-handler.js +87 -0
- package/dist/tools/compliance-audit-handler.js.map +1 -0
- package/dist/tools/context-manager-handler.d.ts +8 -0
- package/dist/tools/context-manager-handler.d.ts.map +1 -0
- package/dist/tools/context-manager-handler.js +180 -0
- package/dist/tools/context-manager-handler.js.map +1 -0
- package/dist/tools/cost-budget-handler.d.ts +7 -0
- package/dist/tools/cost-budget-handler.d.ts.map +1 -0
- package/dist/tools/cost-budget-handler.js +242 -0
- package/dist/tools/cost-budget-handler.js.map +1 -0
- package/dist/tools/dependency-impact-handler.d.ts +6 -0
- package/dist/tools/dependency-impact-handler.d.ts.map +1 -0
- package/dist/tools/dependency-impact-handler.js +100 -0
- package/dist/tools/dependency-impact-handler.js.map +1 -0
- package/dist/tools/diff-spec-generator-handler.d.ts +22 -0
- package/dist/tools/diff-spec-generator-handler.d.ts.map +1 -0
- package/dist/tools/diff-spec-generator-handler.js +87 -0
- package/dist/tools/diff-spec-generator-handler.js.map +1 -0
- package/dist/tools/drift-monitor-handler.d.ts +25 -0
- package/dist/tools/drift-monitor-handler.d.ts.map +1 -0
- package/dist/tools/drift-monitor-handler.js +95 -0
- package/dist/tools/drift-monitor-handler.js.map +1 -0
- package/dist/tools/global-rules-handler.d.ts +17 -0
- package/dist/tools/global-rules-handler.d.ts.map +1 -0
- package/dist/tools/global-rules-handler.js +178 -0
- package/dist/tools/global-rules-handler.js.map +1 -0
- package/dist/tools/incoming-webhook-handler.d.ts +6 -0
- package/dist/tools/incoming-webhook-handler.d.ts.map +1 -0
- package/dist/tools/incoming-webhook-handler.js +247 -0
- package/dist/tools/incoming-webhook-handler.js.map +1 -0
- package/dist/tools/knowledge-base-handler.d.ts +7 -0
- package/dist/tools/knowledge-base-handler.d.ts.map +1 -0
- package/dist/tools/knowledge-base-handler.js +137 -0
- package/dist/tools/knowledge-base-handler.js.map +1 -0
- package/dist/tools/monday-handler.d.ts +6 -0
- package/dist/tools/monday-handler.d.ts.map +1 -0
- package/dist/tools/monday-handler.js +190 -0
- package/dist/tools/monday-handler.js.map +1 -0
- package/dist/tools/notion-handler.d.ts +6 -0
- package/dist/tools/notion-handler.d.ts.map +1 -0
- package/dist/tools/notion-handler.js +197 -0
- package/dist/tools/notion-handler.js.map +1 -0
- package/dist/tools/onboarding-handler.d.ts +7 -0
- package/dist/tools/onboarding-handler.d.ts.map +1 -0
- package/dist/tools/onboarding-handler.js +59 -0
- package/dist/tools/onboarding-handler.js.map +1 -0
- package/dist/tools/parallel-safety-handler.d.ts +7 -0
- package/dist/tools/parallel-safety-handler.d.ts.map +1 -0
- package/dist/tools/parallel-safety-handler.js +29 -0
- package/dist/tools/parallel-safety-handler.js.map +1 -0
- package/dist/tools/register-asana-tools.d.ts +3 -0
- package/dist/tools/register-asana-tools.d.ts.map +1 -0
- package/dist/tools/register-asana-tools.js +74 -0
- package/dist/tools/register-asana-tools.js.map +1 -0
- package/dist/tools/register-code-impact-tools.d.ts +3 -0
- package/dist/tools/register-code-impact-tools.d.ts.map +1 -0
- package/dist/tools/register-code-impact-tools.js +58 -0
- package/dist/tools/register-code-impact-tools.js.map +1 -0
- package/dist/tools/register-compliance-audit-tools.d.ts +3 -0
- package/dist/tools/register-compliance-audit-tools.d.ts.map +1 -0
- package/dist/tools/register-compliance-audit-tools.js +106 -0
- package/dist/tools/register-compliance-audit-tools.js.map +1 -0
- package/dist/tools/register-context-manager-tools.d.ts +3 -0
- package/dist/tools/register-context-manager-tools.d.ts.map +1 -0
- package/dist/tools/register-context-manager-tools.js +138 -0
- package/dist/tools/register-context-manager-tools.js.map +1 -0
- package/dist/tools/register-cost-budget-tools.d.ts +3 -0
- package/dist/tools/register-cost-budget-tools.d.ts.map +1 -0
- package/dist/tools/register-cost-budget-tools.js +98 -0
- package/dist/tools/register-cost-budget-tools.js.map +1 -0
- package/dist/tools/register-dependency-impact-tools.d.ts +3 -0
- package/dist/tools/register-dependency-impact-tools.d.ts.map +1 -0
- package/dist/tools/register-dependency-impact-tools.js +63 -0
- package/dist/tools/register-dependency-impact-tools.js.map +1 -0
- package/dist/tools/register-diff-spec-tools.d.ts +3 -0
- package/dist/tools/register-diff-spec-tools.d.ts.map +1 -0
- package/dist/tools/register-diff-spec-tools.js +55 -0
- package/dist/tools/register-diff-spec-tools.js.map +1 -0
- package/dist/tools/register-drift-monitor-tools.d.ts +3 -0
- package/dist/tools/register-drift-monitor-tools.d.ts.map +1 -0
- package/dist/tools/register-drift-monitor-tools.js +64 -0
- package/dist/tools/register-drift-monitor-tools.js.map +1 -0
- package/dist/tools/register-global-rules-tools.d.ts +3 -0
- package/dist/tools/register-global-rules-tools.d.ts.map +1 -0
- package/dist/tools/register-global-rules-tools.js +44 -0
- package/dist/tools/register-global-rules-tools.js.map +1 -0
- package/dist/tools/register-incoming-webhook-tools.d.ts +3 -0
- package/dist/tools/register-incoming-webhook-tools.d.ts.map +1 -0
- package/dist/tools/register-incoming-webhook-tools.js +50 -0
- package/dist/tools/register-incoming-webhook-tools.js.map +1 -0
- package/dist/tools/register-knowledge-base-tools.d.ts +3 -0
- package/dist/tools/register-knowledge-base-tools.d.ts.map +1 -0
- package/dist/tools/register-knowledge-base-tools.js +66 -0
- package/dist/tools/register-knowledge-base-tools.js.map +1 -0
- package/dist/tools/register-monday-tools.d.ts +3 -0
- package/dist/tools/register-monday-tools.d.ts.map +1 -0
- package/dist/tools/register-monday-tools.js +69 -0
- package/dist/tools/register-monday-tools.js.map +1 -0
- package/dist/tools/register-notion-tools.d.ts +3 -0
- package/dist/tools/register-notion-tools.d.ts.map +1 -0
- package/dist/tools/register-notion-tools.js +76 -0
- package/dist/tools/register-notion-tools.js.map +1 -0
- package/dist/tools/register-onboarding-tools.d.ts +3 -0
- package/dist/tools/register-onboarding-tools.d.ts.map +1 -0
- package/dist/tools/register-onboarding-tools.js +70 -0
- package/dist/tools/register-onboarding-tools.js.map +1 -0
- package/dist/tools/register-parallel-safety-tools.d.ts +3 -0
- package/dist/tools/register-parallel-safety-tools.d.ts.map +1 -0
- package/dist/tools/register-parallel-safety-tools.js +18 -0
- package/dist/tools/register-parallel-safety-tools.js.map +1 -0
- package/dist/tools/register-schema-generator-tools.d.ts +3 -0
- package/dist/tools/register-schema-generator-tools.d.ts.map +1 -0
- package/dist/tools/register-schema-generator-tools.js +46 -0
- package/dist/tools/register-schema-generator-tools.js.map +1 -0
- package/dist/tools/register-spec-cookbook-tools.d.ts +3 -0
- package/dist/tools/register-spec-cookbook-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-cookbook-tools.js +90 -0
- package/dist/tools/register-spec-cookbook-tools.js.map +1 -0
- package/dist/tools/register-spec-diff-tools.d.ts +3 -0
- package/dist/tools/register-spec-diff-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-diff-tools.js +67 -0
- package/dist/tools/register-spec-diff-tools.js.map +1 -0
- package/dist/tools/register-spec-hooks-tools.d.ts +3 -0
- package/dist/tools/register-spec-hooks-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-hooks-tools.js +124 -0
- package/dist/tools/register-spec-hooks-tools.js.map +1 -0
- package/dist/tools/register-spec-lint-tools.d.ts +3 -0
- package/dist/tools/register-spec-lint-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-lint-tools.js +79 -0
- package/dist/tools/register-spec-lint-tools.js.map +1 -0
- package/dist/tools/register-spec-scheduler-tools.d.ts +3 -0
- package/dist/tools/register-spec-scheduler-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-scheduler-tools.js +73 -0
- package/dist/tools/register-spec-scheduler-tools.js.map +1 -0
- package/dist/tools/register-spec-source-tools.d.ts +3 -0
- package/dist/tools/register-spec-source-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-source-tools.js +48 -0
- package/dist/tools/register-spec-source-tools.js.map +1 -0
- package/dist/tools/register-tech-debt-tools.d.ts +3 -0
- package/dist/tools/register-tech-debt-tools.d.ts.map +1 -0
- package/dist/tools/register-tech-debt-tools.js +95 -0
- package/dist/tools/register-tech-debt-tools.js.map +1 -0
- package/dist/tools/register-validation-loop-tools.d.ts +3 -0
- package/dist/tools/register-validation-loop-tools.d.ts.map +1 -0
- package/dist/tools/register-validation-loop-tools.js +77 -0
- package/dist/tools/register-validation-loop-tools.js.map +1 -0
- package/dist/tools/register-workspace-dashboard-tools.d.ts +3 -0
- package/dist/tools/register-workspace-dashboard-tools.d.ts.map +1 -0
- package/dist/tools/register-workspace-dashboard-tools.js +98 -0
- package/dist/tools/register-workspace-dashboard-tools.js.map +1 -0
- package/dist/tools/schema-generator-handler.d.ts +4 -0
- package/dist/tools/schema-generator-handler.d.ts.map +1 -0
- package/dist/tools/schema-generator-handler.js +129 -0
- package/dist/tools/schema-generator-handler.js.map +1 -0
- package/dist/tools/spec-cookbook-handler.d.ts +7 -0
- package/dist/tools/spec-cookbook-handler.d.ts.map +1 -0
- package/dist/tools/spec-cookbook-handler.js +83 -0
- package/dist/tools/spec-cookbook-handler.js.map +1 -0
- package/dist/tools/spec-hooks-handler.d.ts +7 -0
- package/dist/tools/spec-hooks-handler.d.ts.map +1 -0
- package/dist/tools/spec-hooks-handler.js +112 -0
- package/dist/tools/spec-hooks-handler.js.map +1 -0
- package/dist/tools/spec-lint-handler.d.ts +6 -0
- package/dist/tools/spec-lint-handler.d.ts.map +1 -0
- package/dist/tools/spec-lint-handler.js +165 -0
- package/dist/tools/spec-lint-handler.js.map +1 -0
- package/dist/tools/spec-scheduler-handler.d.ts +6 -0
- package/dist/tools/spec-scheduler-handler.d.ts.map +1 -0
- package/dist/tools/spec-scheduler-handler.js +108 -0
- package/dist/tools/spec-scheduler-handler.js.map +1 -0
- package/dist/tools/spec-source-handler.d.ts +21 -0
- package/dist/tools/spec-source-handler.d.ts.map +1 -0
- package/dist/tools/spec-source-handler.js +75 -0
- package/dist/tools/spec-source-handler.js.map +1 -0
- package/dist/tools/spec-visual-diff-handler.d.ts +7 -0
- package/dist/tools/spec-visual-diff-handler.d.ts.map +1 -0
- package/dist/tools/spec-visual-diff-handler.js +130 -0
- package/dist/tools/spec-visual-diff-handler.js.map +1 -0
- package/dist/tools/tech-debt-handler.d.ts +8 -0
- package/dist/tools/tech-debt-handler.d.ts.map +1 -0
- package/dist/tools/tech-debt-handler.js +150 -0
- package/dist/tools/tech-debt-handler.js.map +1 -0
- package/dist/tools/validation-loop-handler.d.ts +5 -0
- package/dist/tools/validation-loop-handler.d.ts.map +1 -0
- package/dist/tools/validation-loop-handler.js +59 -0
- package/dist/tools/validation-loop-handler.js.map +1 -0
- package/dist/tools/workspace-dashboard-handler.d.ts +8 -0
- package/dist/tools/workspace-dashboard-handler.d.ts.map +1 -0
- package/dist/tools/workspace-dashboard-handler.js +108 -0
- package/dist/tools/workspace-dashboard-handler.js.map +1 -0
- package/dist/types/code-impact.d.ts +57 -0
- package/dist/types/code-impact.d.ts.map +1 -0
- package/dist/types/code-impact.js +3 -0
- package/dist/types/code-impact.js.map +1 -0
- package/dist/types/compliance-audit.d.ts +55 -0
- package/dist/types/compliance-audit.d.ts.map +1 -0
- package/dist/types/compliance-audit.js +3 -0
- package/dist/types/compliance-audit.js.map +1 -0
- package/dist/types/context-manager.d.ts +57 -0
- package/dist/types/context-manager.d.ts.map +1 -0
- package/dist/types/context-manager.js +3 -0
- package/dist/types/context-manager.js.map +1 -0
- package/dist/types/cost-budget.d.ts +84 -0
- package/dist/types/cost-budget.d.ts.map +1 -0
- package/dist/types/cost-budget.js +3 -0
- package/dist/types/cost-budget.js.map +1 -0
- package/dist/types/dependency-impact.d.ts +45 -0
- package/dist/types/dependency-impact.d.ts.map +1 -0
- package/dist/types/dependency-impact.js +3 -0
- package/dist/types/dependency-impact.js.map +1 -0
- package/dist/types/diff-spec-types.d.ts +39 -0
- package/dist/types/diff-spec-types.d.ts.map +1 -0
- package/dist/types/diff-spec-types.js +3 -0
- package/dist/types/diff-spec-types.js.map +1 -0
- package/dist/types/drift-monitor-types.d.ts +47 -0
- package/dist/types/drift-monitor-types.d.ts.map +1 -0
- package/dist/types/drift-monitor-types.js +3 -0
- package/dist/types/drift-monitor-types.js.map +1 -0
- package/dist/types/global-rules-types.d.ts +31 -0
- package/dist/types/global-rules-types.d.ts.map +1 -0
- package/dist/types/global-rules-types.js +3 -0
- package/dist/types/global-rules-types.js.map +1 -0
- package/dist/types/incoming-webhook.d.ts +40 -0
- package/dist/types/incoming-webhook.d.ts.map +1 -0
- package/dist/types/incoming-webhook.js +3 -0
- package/dist/types/incoming-webhook.js.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/knowledge-base.d.ts +57 -0
- package/dist/types/knowledge-base.d.ts.map +1 -0
- package/dist/types/knowledge-base.js +3 -0
- package/dist/types/knowledge-base.js.map +1 -0
- package/dist/types/notion-asana-monday.d.ts +196 -0
- package/dist/types/notion-asana-monday.d.ts.map +1 -0
- package/dist/types/notion-asana-monday.js +3 -0
- package/dist/types/notion-asana-monday.js.map +1 -0
- package/dist/types/onboarding-types.d.ts +69 -0
- package/dist/types/onboarding-types.d.ts.map +1 -0
- package/dist/types/onboarding-types.js +3 -0
- package/dist/types/onboarding-types.js.map +1 -0
- package/dist/types/parallel-safety-types.d.ts +14 -0
- package/dist/types/parallel-safety-types.d.ts.map +1 -0
- package/dist/types/parallel-safety-types.js +3 -0
- package/dist/types/parallel-safety-types.js.map +1 -0
- package/dist/types/schema-generator.d.ts +61 -0
- package/dist/types/schema-generator.d.ts.map +1 -0
- package/dist/types/schema-generator.js +3 -0
- package/dist/types/schema-generator.js.map +1 -0
- package/dist/types/spec-cookbook-types.d.ts +45 -0
- package/dist/types/spec-cookbook-types.d.ts.map +1 -0
- package/dist/types/spec-cookbook-types.js +3 -0
- package/dist/types/spec-cookbook-types.js.map +1 -0
- package/dist/types/spec-diff-visual-types.d.ts +75 -0
- package/dist/types/spec-diff-visual-types.d.ts.map +1 -0
- package/dist/types/spec-diff-visual-types.js +3 -0
- package/dist/types/spec-diff-visual-types.js.map +1 -0
- package/dist/types/spec-hooks.d.ts +62 -0
- package/dist/types/spec-hooks.d.ts.map +1 -0
- package/dist/types/spec-hooks.js +3 -0
- package/dist/types/spec-hooks.js.map +1 -0
- package/dist/types/spec-lint.d.ts +79 -0
- package/dist/types/spec-lint.d.ts.map +1 -0
- package/dist/types/spec-lint.js +3 -0
- package/dist/types/spec-lint.js.map +1 -0
- package/dist/types/spec-scheduler.d.ts +58 -0
- package/dist/types/spec-scheduler.d.ts.map +1 -0
- package/dist/types/spec-scheduler.js +3 -0
- package/dist/types/spec-scheduler.js.map +1 -0
- package/dist/types/spec-source-types.d.ts +37 -0
- package/dist/types/spec-source-types.d.ts.map +1 -0
- package/dist/types/spec-source-types.js +3 -0
- package/dist/types/spec-source-types.js.map +1 -0
- package/dist/types/tech-debt.d.ts +66 -0
- package/dist/types/tech-debt.d.ts.map +1 -0
- package/dist/types/tech-debt.js +3 -0
- package/dist/types/tech-debt.js.map +1 -0
- package/dist/types/validation-loop.d.ts +39 -0
- package/dist/types/validation-loop.d.ts.map +1 -0
- package/dist/types/validation-loop.js +3 -0
- package/dist/types/validation-loop.js.map +1 -0
- package/dist/types/workspace-dashboard-types.d.ts +74 -0
- package/dist/types/workspace-dashboard-types.d.ts.map +1 -0
- package/dist/types/workspace-dashboard-types.js +3 -0
- package/dist/types/workspace-dashboard-types.js.map +1 -0
- package/package.json +2 -1
- package/src/config/license-plans.json +110 -9
- package/src/config/spec-cookbook.json +341 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeLicensed } from './safe-handler.js';
|
|
3
|
+
import { handleVisualSpecDiff, handleThreeWayMerge, handleSmartMergeConflictResolver, handleMergePreview, handleApplyMerge, } from './spec-visual-diff-handler.js';
|
|
4
|
+
export function registerSpecDiffVisualTools(server) {
|
|
5
|
+
// visual_spec_diff
|
|
6
|
+
server.registerTool('visual_spec_diff', {
|
|
7
|
+
description: 'Compute a visual line-by-line diff between two spec texts using LCS algorithm. Returns HTML output (default) or text format with +/- markers.',
|
|
8
|
+
inputSchema: {
|
|
9
|
+
textA: z.string().max(500000).describe('First spec text (base/original)'),
|
|
10
|
+
textB: z.string().max(500000).describe('Second spec text (new/modified)'),
|
|
11
|
+
labelA: z.string().max(100).optional().describe('Label for textA (default: A)'),
|
|
12
|
+
labelB: z.string().max(100).optional().describe('Label for textB (default: B)'),
|
|
13
|
+
outputFormat: z
|
|
14
|
+
.enum(['html', 'text'])
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Output format: html (default) or text'),
|
|
17
|
+
},
|
|
18
|
+
annotations: { readOnlyHint: true },
|
|
19
|
+
}, safeLicensed('visual_spec_diff', (args) => handleVisualSpecDiff(args)));
|
|
20
|
+
// three_way_merge
|
|
21
|
+
server.registerTool('three_way_merge', {
|
|
22
|
+
description: 'Perform a 3-way merge of two spec texts against a common base. Returns merged text with conflict markers (<<<<<<< A, =======, >>>>>>> B) where conflicts exist.',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
base: z.string().max(500000).describe('Common base text'),
|
|
25
|
+
textA: z.string().max(500000).describe('First branch text'),
|
|
26
|
+
textB: z.string().max(500000).describe('Second branch text'),
|
|
27
|
+
labelA: z.string().max(100).optional().describe('Label for textA (default: A)'),
|
|
28
|
+
labelB: z.string().max(100).optional().describe('Label for textB (default: B)'),
|
|
29
|
+
},
|
|
30
|
+
annotations: { readOnlyHint: true },
|
|
31
|
+
}, safeLicensed('three_way_merge', (args) => handleThreeWayMerge(args)));
|
|
32
|
+
// smart_merge_conflict_resolver
|
|
33
|
+
server.registerTool('smart_merge_conflict_resolver', {
|
|
34
|
+
description: 'Automatically resolve simple merge conflicts: identical content on both sides, or whitespace-only differences. Remaining conflicts kept as-is for manual resolution.',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
mergedText: z
|
|
37
|
+
.string()
|
|
38
|
+
.max(500000)
|
|
39
|
+
.describe('Text containing conflict markers from three_way_merge'),
|
|
40
|
+
},
|
|
41
|
+
annotations: { readOnlyHint: true },
|
|
42
|
+
}, safeLicensed('smart_merge_conflict_resolver', (args) => handleSmartMergeConflictResolver(args)));
|
|
43
|
+
// merge_preview
|
|
44
|
+
server.registerTool('merge_preview', {
|
|
45
|
+
description: 'Preview the result of merging two spec texts against a base. Shows whether auto-merge is possible and the merged content.',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
base: z.string().max(500000).describe('Common base text'),
|
|
48
|
+
textA: z.string().max(500000).describe('First branch text'),
|
|
49
|
+
textB: z.string().max(500000).describe('Second branch text'),
|
|
50
|
+
},
|
|
51
|
+
annotations: { readOnlyHint: true },
|
|
52
|
+
}, safeLicensed('merge_preview', (args) => handleMergePreview(args)));
|
|
53
|
+
// apply_merge
|
|
54
|
+
server.registerTool('apply_merge', {
|
|
55
|
+
description: 'Apply merged spec content to a spec file on disk. Fails if unresolved conflict markers are present.',
|
|
56
|
+
inputSchema: {
|
|
57
|
+
mergedText: z
|
|
58
|
+
.string()
|
|
59
|
+
.max(500000)
|
|
60
|
+
.describe('Fully resolved merged text (no conflict markers)'),
|
|
61
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root'),
|
|
62
|
+
specId: z.string().min(1).max(100).describe('Spec ID to update (e.g. SPEC-001)'),
|
|
63
|
+
},
|
|
64
|
+
annotations: { readOnlyHint: false, destructiveHint: true },
|
|
65
|
+
}, safeLicensed('apply_merge', async (args) => handleApplyMerge(args)));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=register-spec-diff-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-diff-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-diff-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-hooks-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-hooks-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyJ9D"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// tools/register-spec-hooks-tools.ts — SPEC-368: Register spec lifecycle hook tools
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { safeLicensed } from './safe-handler.js';
|
|
4
|
+
import { handleConfigureSpecHooks, handleListSpecHooks, handleTestSpecHook, handleDisableSpecHook, handleEnableSpecHook, } from './spec-hooks-handler.js';
|
|
5
|
+
const EVENT_DESCRIBE = 'Event that triggers the hook. Valid values: on-status-change | on-create | on-approve | on-done | on-drift-alert | on-validation-fail';
|
|
6
|
+
const ACTION_DESCRIBE = 'Action to execute. Valid values: challenge-spec | check-readiness | notify-slack | create-git-branch | generate-changelog | send-email-digest | run-validate';
|
|
7
|
+
export function registerSpecHooksTools(server) {
|
|
8
|
+
server.registerTool('configure_spec_hooks', {
|
|
9
|
+
description: 'Configure an event-driven hook for the spec lifecycle. ' +
|
|
10
|
+
'Hooks automatically trigger actions when spec events fire (status change, creation, approval, etc.). ' +
|
|
11
|
+
'Examples: auto-challenge high-risk specs on approve, auto-create git branch on implementing.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
projectPath: z
|
|
14
|
+
.string()
|
|
15
|
+
.min(1)
|
|
16
|
+
.max(4096)
|
|
17
|
+
.describe('Absolute path to the project root directory'),
|
|
18
|
+
hookName: z
|
|
19
|
+
.string()
|
|
20
|
+
.min(1)
|
|
21
|
+
.max(200)
|
|
22
|
+
.describe('Unique name for this hook (e.g. "auto-challenge-on-approve")'),
|
|
23
|
+
event: z
|
|
24
|
+
.enum([
|
|
25
|
+
'on-status-change',
|
|
26
|
+
'on-create',
|
|
27
|
+
'on-approve',
|
|
28
|
+
'on-done',
|
|
29
|
+
'on-drift-alert',
|
|
30
|
+
'on-validation-fail',
|
|
31
|
+
])
|
|
32
|
+
.describe(EVENT_DESCRIBE),
|
|
33
|
+
action: z
|
|
34
|
+
.enum([
|
|
35
|
+
'challenge-spec',
|
|
36
|
+
'check-readiness',
|
|
37
|
+
'notify-slack',
|
|
38
|
+
'create-git-branch',
|
|
39
|
+
'generate-changelog',
|
|
40
|
+
'send-email-digest',
|
|
41
|
+
'run-validate',
|
|
42
|
+
])
|
|
43
|
+
.describe(ACTION_DESCRIBE),
|
|
44
|
+
filter: z
|
|
45
|
+
.object({
|
|
46
|
+
tags: z.array(z.string().max(100)).optional().describe('Only fire for specs with these tags'),
|
|
47
|
+
priority: z.string().max(50).optional().describe('Only fire for specs with this priority'),
|
|
48
|
+
fromStatus: z.string().max(50).optional().describe('Only fire when status changes FROM this value'),
|
|
49
|
+
toStatus: z.string().max(50).optional().describe('Only fire when status changes TO this value'),
|
|
50
|
+
})
|
|
51
|
+
.optional()
|
|
52
|
+
.describe('Optional filter conditions — hook only fires when all conditions match'),
|
|
53
|
+
enabled: z.boolean().optional().describe('Whether the hook is active (default: true)'),
|
|
54
|
+
},
|
|
55
|
+
annotations: {
|
|
56
|
+
title: 'Configure Spec Hook',
|
|
57
|
+
readOnlyHint: false,
|
|
58
|
+
},
|
|
59
|
+
}, safeLicensed('configure_spec_hooks', async (args) => handleConfigureSpecHooks(args)));
|
|
60
|
+
server.registerTool('list_spec_hooks', {
|
|
61
|
+
description: 'List all configured spec lifecycle hooks with their run statistics ' +
|
|
62
|
+
'(runCount, failCount, lastRunAt) and current enabled/disabled status.',
|
|
63
|
+
inputSchema: {
|
|
64
|
+
projectPath: z
|
|
65
|
+
.string()
|
|
66
|
+
.min(1)
|
|
67
|
+
.max(4096)
|
|
68
|
+
.describe('Absolute path to the project root directory'),
|
|
69
|
+
},
|
|
70
|
+
annotations: {
|
|
71
|
+
title: 'List Spec Hooks',
|
|
72
|
+
readOnlyHint: true,
|
|
73
|
+
},
|
|
74
|
+
}, safeLicensed('list_spec_hooks', async (args) => handleListSpecHooks(args)));
|
|
75
|
+
server.registerTool('test_spec_hook', {
|
|
76
|
+
description: 'Simulate a spec lifecycle event and describe what hooks would fire and what actions ' +
|
|
77
|
+
'would be triggered — without executing any side effects. ' +
|
|
78
|
+
'Use this to verify hook configuration before it fires in production.',
|
|
79
|
+
inputSchema: {
|
|
80
|
+
projectPath: z
|
|
81
|
+
.string()
|
|
82
|
+
.min(1)
|
|
83
|
+
.max(4096)
|
|
84
|
+
.describe('Absolute path to the project root directory'),
|
|
85
|
+
hookName: z.string().min(1).max(200).describe('Name of the hook to test'),
|
|
86
|
+
specId: z.string().min(1).max(200).describe('Spec ID to use in the simulation (e.g. SPEC-001)'),
|
|
87
|
+
},
|
|
88
|
+
annotations: {
|
|
89
|
+
title: 'Test Spec Hook (Simulation)',
|
|
90
|
+
readOnlyHint: true,
|
|
91
|
+
},
|
|
92
|
+
}, safeLicensed('test_spec_hook', async (args) => handleTestSpecHook(args)));
|
|
93
|
+
server.registerTool('disable_spec_hook', {
|
|
94
|
+
description: 'Disable a spec lifecycle hook so it no longer fires. The hook config is preserved and can be re-enabled.',
|
|
95
|
+
inputSchema: {
|
|
96
|
+
projectPath: z
|
|
97
|
+
.string()
|
|
98
|
+
.min(1)
|
|
99
|
+
.max(4096)
|
|
100
|
+
.describe('Absolute path to the project root directory'),
|
|
101
|
+
hookName: z.string().min(1).max(200).describe('Name of the hook to disable'),
|
|
102
|
+
},
|
|
103
|
+
annotations: {
|
|
104
|
+
title: 'Disable Spec Hook',
|
|
105
|
+
readOnlyHint: false,
|
|
106
|
+
},
|
|
107
|
+
}, safeLicensed('disable_spec_hook', async (args) => handleDisableSpecHook(args)));
|
|
108
|
+
server.registerTool('enable_spec_hook', {
|
|
109
|
+
description: 'Enable a previously disabled spec lifecycle hook.',
|
|
110
|
+
inputSchema: {
|
|
111
|
+
projectPath: z
|
|
112
|
+
.string()
|
|
113
|
+
.min(1)
|
|
114
|
+
.max(4096)
|
|
115
|
+
.describe('Absolute path to the project root directory'),
|
|
116
|
+
hookName: z.string().min(1).max(200).describe('Name of the hook to enable'),
|
|
117
|
+
},
|
|
118
|
+
annotations: {
|
|
119
|
+
title: 'Enable Spec Hook',
|
|
120
|
+
readOnlyHint: false,
|
|
121
|
+
},
|
|
122
|
+
}, safeLicensed('enable_spec_hook', async (args) => handleEnableSpecHook(args)));
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=register-spec-hooks-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-hooks-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-hooks-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-lint-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-lint-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4CzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6E7D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// tools/register-spec-lint-tools.ts — Registers Custom Spec Lint Rules tools (SPEC-364)
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { safeTracked } from './safe-handler.js';
|
|
4
|
+
import { handleDefineLintRule, handleListLintRules, handleRunSpecLint, handleDeleteLintRule, } from './spec-lint-handler.js';
|
|
5
|
+
const LintConditionSchema = z.object({
|
|
6
|
+
field: z
|
|
7
|
+
.enum(['tags', 'acceptanceCriteria', 'estimatedHours', 'priority', 'description', 'title'])
|
|
8
|
+
.describe('Field to check. Values: tags, acceptanceCriteria, estimatedHours, priority, description, title.'),
|
|
9
|
+
operator: z
|
|
10
|
+
.enum([
|
|
11
|
+
'includes',
|
|
12
|
+
'not-includes',
|
|
13
|
+
'min-length',
|
|
14
|
+
'max-length',
|
|
15
|
+
'any-contains',
|
|
16
|
+
'none-contain',
|
|
17
|
+
'greater-than',
|
|
18
|
+
'less-than',
|
|
19
|
+
'exists',
|
|
20
|
+
'not-exists',
|
|
21
|
+
])
|
|
22
|
+
.describe('Operator. Values: includes, not-includes, min-length, max-length, any-contains, none-contain, greater-than, less-than, exists, not-exists.'),
|
|
23
|
+
value: z
|
|
24
|
+
.union([z.string(), z.number()])
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Value to compare against. Not required for exists/not-exists operators.'),
|
|
27
|
+
});
|
|
28
|
+
export function registerSpecLintTools(server) {
|
|
29
|
+
server.registerTool('define_spec_lint_rule', {
|
|
30
|
+
description: 'Define a custom lint rule for specs. Rules check that specs satisfy structural or content conditions. ' +
|
|
31
|
+
'Use "when" for a guard condition (rule only applies when guard is true), ' +
|
|
32
|
+
'"then" for the condition that must be satisfied. ' +
|
|
33
|
+
'Use appliesTo.all=true to apply to all specs, or appliesTo.tags to target specific tags.',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
36
|
+
name: z.string().min(1).max(200).describe('Human-readable name for the rule.'),
|
|
37
|
+
description: z.string().min(1).max(500).describe('What this rule checks.'),
|
|
38
|
+
when: LintConditionSchema.optional().describe('Optional guard condition. Rule only activates when this is true.'),
|
|
39
|
+
then: LintConditionSchema.describe('Condition that MUST be satisfied.'),
|
|
40
|
+
severity: z.enum(['warning', 'error']).describe('Severity. Values: warning, error.'),
|
|
41
|
+
appliesTo: z
|
|
42
|
+
.object({
|
|
43
|
+
tags: z.array(z.string()).optional().describe('Spec tags this rule applies to.'),
|
|
44
|
+
all: z.boolean().optional().describe('If true, applies to all specs.'),
|
|
45
|
+
})
|
|
46
|
+
.describe('Scope of the rule.'),
|
|
47
|
+
},
|
|
48
|
+
annotations: { title: 'Define Spec Lint Rule' },
|
|
49
|
+
}, safeTracked('define_spec_lint_rule', (args) => handleDefineLintRule(args)));
|
|
50
|
+
server.registerTool('list_spec_lint_rules', {
|
|
51
|
+
description: 'List all custom lint rules defined for a project.',
|
|
52
|
+
inputSchema: {
|
|
53
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
54
|
+
},
|
|
55
|
+
annotations: { title: 'List Spec Lint Rules', readOnlyHint: true },
|
|
56
|
+
}, safeTracked('list_spec_lint_rules', (args) => handleListLintRules(args)));
|
|
57
|
+
server.registerTool('run_spec_lint', {
|
|
58
|
+
description: 'Run all custom lint rules against specs in a project. ' +
|
|
59
|
+
'If specId is provided, only that spec is linted. Otherwise all specs are checked. ' +
|
|
60
|
+
'Returns a list of violations with severity, field, and message.',
|
|
61
|
+
inputSchema: {
|
|
62
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
63
|
+
specId: z
|
|
64
|
+
.string()
|
|
65
|
+
.optional()
|
|
66
|
+
.describe('Optional spec ID to lint (e.g. SPEC-042). Omit to lint all specs.'),
|
|
67
|
+
},
|
|
68
|
+
annotations: { title: 'Run Spec Lint', readOnlyHint: true },
|
|
69
|
+
}, safeTracked('run_spec_lint', (args) => handleRunSpecLint(args)));
|
|
70
|
+
server.registerTool('delete_spec_lint_rule', {
|
|
71
|
+
description: 'Delete a custom lint rule by ID.',
|
|
72
|
+
inputSchema: {
|
|
73
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
74
|
+
ruleId: z.string().min(1).max(100).describe('ID of the rule to delete (e.g. rule-abc123).'),
|
|
75
|
+
},
|
|
76
|
+
annotations: { title: 'Delete Spec Lint Rule', destructiveHint: true },
|
|
77
|
+
}, safeTracked('delete_spec_lint_rule', (args) => handleDeleteLintRule(args)));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=register-spec-lint-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-lint-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-lint-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-scheduler-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-scheduler-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6FlE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeTracked } from './safe-handler.js';
|
|
3
|
+
import { handleSimulateParallelExecution, handleCriticalPathAnalyzer, handleParallelEfficiencyScore, handleOptimizeSpecScheduling, } from './spec-scheduler-handler.js';
|
|
4
|
+
export function registerSpecSchedulerTools(server) {
|
|
5
|
+
// simulate_parallel_execution
|
|
6
|
+
server.registerTool('simulate_parallel_execution', {
|
|
7
|
+
description: 'Simulate parallel execution of a set of specs across multiple agents. Returns a timeline with Gantt chart and critical path.',
|
|
8
|
+
annotations: { readOnlyHint: true },
|
|
9
|
+
inputSchema: {
|
|
10
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
11
|
+
specIds: z
|
|
12
|
+
.array(z.string())
|
|
13
|
+
.min(1)
|
|
14
|
+
.describe('List of spec IDs to include in the simulation.'),
|
|
15
|
+
numAgents: z
|
|
16
|
+
.number()
|
|
17
|
+
.int()
|
|
18
|
+
.min(1)
|
|
19
|
+
.max(20)
|
|
20
|
+
.describe('Number of agents (parallel workers) to simulate.'),
|
|
21
|
+
},
|
|
22
|
+
}, safeTracked('simulate_parallel_execution', async (args) => handleSimulateParallelExecution(args)));
|
|
23
|
+
// critical_path_analyzer
|
|
24
|
+
server.registerTool('critical_path_analyzer', {
|
|
25
|
+
description: 'Identify the critical path (longest chain of specs by estimated hours) for a project or a subset of specs.',
|
|
26
|
+
annotations: { readOnlyHint: true },
|
|
27
|
+
inputSchema: {
|
|
28
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
29
|
+
specIds: z
|
|
30
|
+
.array(z.string())
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Optional subset of spec IDs. Omit to analyze all project specs.'),
|
|
33
|
+
},
|
|
34
|
+
}, safeTracked('critical_path_analyzer', async (args) => handleCriticalPathAnalyzer(args)));
|
|
35
|
+
// parallel_efficiency_score
|
|
36
|
+
server.registerTool('parallel_efficiency_score', {
|
|
37
|
+
description: 'Calculate the parallel efficiency (utilization ratio) for executing a set of specs with N agents. Returns a score and interpretation.',
|
|
38
|
+
annotations: { readOnlyHint: true },
|
|
39
|
+
inputSchema: {
|
|
40
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
41
|
+
specIds: z
|
|
42
|
+
.array(z.string())
|
|
43
|
+
.min(1)
|
|
44
|
+
.describe('List of spec IDs to include in the efficiency calculation.'),
|
|
45
|
+
numAgents: z
|
|
46
|
+
.number()
|
|
47
|
+
.int()
|
|
48
|
+
.min(1)
|
|
49
|
+
.max(20)
|
|
50
|
+
.describe('Number of agents to calculate efficiency for.'),
|
|
51
|
+
},
|
|
52
|
+
}, safeTracked('parallel_efficiency_score', async (args) => handleParallelEfficiencyScore(args)));
|
|
53
|
+
// optimize_spec_scheduling
|
|
54
|
+
server.registerTool('optimize_spec_scheduling', {
|
|
55
|
+
description: 'Suggest an optimized scheduling order for specs to minimize agent idle time when executing in parallel.',
|
|
56
|
+
annotations: { readOnlyHint: true },
|
|
57
|
+
inputSchema: {
|
|
58
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
59
|
+
specIds: z
|
|
60
|
+
.array(z.string())
|
|
61
|
+
.optional()
|
|
62
|
+
.describe('Optional subset of spec IDs. Omit to optimize all project specs.'),
|
|
63
|
+
numAgents: z
|
|
64
|
+
.number()
|
|
65
|
+
.int()
|
|
66
|
+
.min(1)
|
|
67
|
+
.max(20)
|
|
68
|
+
.optional()
|
|
69
|
+
.describe('Number of agents (default: 2).'),
|
|
70
|
+
},
|
|
71
|
+
}, safeTracked('optimize_spec_scheduling', async (args) => handleOptimizeSpecScheduling(args)));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=register-spec-scheduler-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-scheduler-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-scheduler-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-source-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-source-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkE/D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeTracked } from './safe-handler.js';
|
|
3
|
+
import { handleSyncSpecFromCode, handleMarkAsSpecSource, handleListSpecBindings, } from './spec-source-handler.js';
|
|
4
|
+
export function registerSpecSourceTools(server) {
|
|
5
|
+
server.registerTool('sync_spec_from_code', {
|
|
6
|
+
description: 'Scan source files for @spec markers and sync them with the spec bindings store. Detects // @spec SPEC-XXX comments in code.',
|
|
7
|
+
inputSchema: {
|
|
8
|
+
projectPath: z.string().describe('Absolute path to the project root.'),
|
|
9
|
+
filePaths: z
|
|
10
|
+
.array(z.string())
|
|
11
|
+
.describe('List of absolute file paths to scan for @spec markers.'),
|
|
12
|
+
},
|
|
13
|
+
annotations: { title: 'Sync Spec from Code', destructiveHint: false },
|
|
14
|
+
}, safeTracked('sync_spec_from_code', async (args) => handleSyncSpecFromCode(args)));
|
|
15
|
+
server.registerTool('mark_as_spec_source', {
|
|
16
|
+
description: 'Mark a source file as implementing a specific spec by creating a binding. Also shows the marker comment to add to the file.',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
projectPath: z.string().describe('Absolute path to the project root.'),
|
|
19
|
+
specId: z.string().describe('Spec ID to bind (e.g. SPEC-001).'),
|
|
20
|
+
filePath: z.string().describe('Absolute path to the source file implementing the spec.'),
|
|
21
|
+
lineNumber: z
|
|
22
|
+
.number()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('Optional line number where the implementation starts.'),
|
|
25
|
+
},
|
|
26
|
+
annotations: { title: 'Mark as Spec Source', destructiveHint: false },
|
|
27
|
+
}, safeTracked('mark_as_spec_source', async (args) => handleMarkAsSpecSource(args)));
|
|
28
|
+
server.registerTool('list_spec_bindings', {
|
|
29
|
+
description: 'List all spec-to-code bindings for a project. Optionally filter by spec ID or unmark a binding.',
|
|
30
|
+
inputSchema: {
|
|
31
|
+
projectPath: z.string().describe('Absolute path to the project root.'),
|
|
32
|
+
specId: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Filter bindings to a specific spec ID (e.g. SPEC-001).'),
|
|
36
|
+
action: z
|
|
37
|
+
.enum(['list', 'unmark'])
|
|
38
|
+
.optional()
|
|
39
|
+
.describe('Action to perform. Values: list (default), unmark.'),
|
|
40
|
+
bindingId: z
|
|
41
|
+
.string()
|
|
42
|
+
.optional()
|
|
43
|
+
.describe('Binding ID to remove. Required for unmark action.'),
|
|
44
|
+
},
|
|
45
|
+
annotations: { title: 'List Spec Bindings', readOnlyHint: true },
|
|
46
|
+
}, safeTracked('list_spec_bindings', async (args) => handleListSpecBindings(args)));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=register-spec-source-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-spec-source-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-source-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GAIvB,MAAM,0BAA0B,CAAC;AAElC,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,6HAA6H;QAC/H,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACtE,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,wDAAwD,CAAC;SACtE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,WAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAChD,sBAAsB,CAAC,IAA6B,CAAC,CACtD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,6HAA6H;QAC/H,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACxF,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uDAAuD,CAAC;SACrE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,WAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAChD,sBAAsB,CAAC,IAA6B,CAAC,CACtD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,iGAAiG;QACnG,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACtE,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;YACrE,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACxB,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;YACjE,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;SACjE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE;KACjE,EACD,WAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC/C,sBAAsB,CAAC,IAA6B,CAAC,CACtD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-tech-debt-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-tech-debt-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmH7D"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeTracked } from './safe-handler.js';
|
|
3
|
+
import { handleTrackTechDebt, handleTechDebtBudget, handleListTechDebt, handleDebtForecast, handleResolveTechDebt, handleTechDebtReport, } from './tech-debt-handler.js';
|
|
4
|
+
const SEVERITY_ENUM = z
|
|
5
|
+
.enum(['low', 'medium', 'high', 'critical'])
|
|
6
|
+
.describe('Severity level. Values: low, medium, high, critical.');
|
|
7
|
+
const CATEGORY_ENUM = z
|
|
8
|
+
.enum(['testing', 'documentation', 'refactoring', 'architecture', 'security'])
|
|
9
|
+
.describe('Category. Values: testing, documentation, refactoring, architecture, security.');
|
|
10
|
+
const STATUS_ENUM = z
|
|
11
|
+
.enum(['open', 'resolved', 'all'])
|
|
12
|
+
.describe('Filter by status. Values: open, resolved, all.');
|
|
13
|
+
export function registerTechDebtTools(server) {
|
|
14
|
+
// track_tech_debt
|
|
15
|
+
server.registerTool('track_tech_debt', {
|
|
16
|
+
description: 'Track a new tech debt item for a project. Records description, estimated hours, severity, and category.',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
19
|
+
description: z.string().min(1).max(500).describe('Description of the tech debt.'),
|
|
20
|
+
estimatedHours: z
|
|
21
|
+
.number()
|
|
22
|
+
.min(0.5)
|
|
23
|
+
.max(1000)
|
|
24
|
+
.describe('Estimated hours to resolve this debt.'),
|
|
25
|
+
severity: SEVERITY_ENUM,
|
|
26
|
+
category: CATEGORY_ENUM,
|
|
27
|
+
specId: z.string().optional().describe('Optional spec ID this debt is linked to.'),
|
|
28
|
+
},
|
|
29
|
+
}, safeTracked('track_tech_debt', async (args) => handleTrackTechDebt(args)));
|
|
30
|
+
// tech_debt_budget
|
|
31
|
+
server.registerTool('tech_debt_budget', {
|
|
32
|
+
description: 'Configure tech debt budget limits: max hours allowed, max percent of backlog, and alert threshold.',
|
|
33
|
+
inputSchema: {
|
|
34
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
35
|
+
maxHours: z
|
|
36
|
+
.number()
|
|
37
|
+
.min(1)
|
|
38
|
+
.optional()
|
|
39
|
+
.describe('Maximum total open hours of tech debt allowed.'),
|
|
40
|
+
maxPercentOfBacklog: z
|
|
41
|
+
.number()
|
|
42
|
+
.min(1)
|
|
43
|
+
.max(100)
|
|
44
|
+
.optional()
|
|
45
|
+
.describe('Maximum tech debt as a percentage of backlog hours.'),
|
|
46
|
+
alertThreshold: z
|
|
47
|
+
.number()
|
|
48
|
+
.min(1)
|
|
49
|
+
.max(100)
|
|
50
|
+
.optional()
|
|
51
|
+
.describe('Percentage of budget that triggers an alert.'),
|
|
52
|
+
},
|
|
53
|
+
}, safeTracked('tech_debt_budget', async (args) => handleTechDebtBudget(args)));
|
|
54
|
+
// list_tech_debt
|
|
55
|
+
server.registerTool('list_tech_debt', {
|
|
56
|
+
description: 'List tech debt items for a project, optionally filtered by status, severity, or category.',
|
|
57
|
+
annotations: { readOnlyHint: true },
|
|
58
|
+
inputSchema: {
|
|
59
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
60
|
+
status: STATUS_ENUM.optional().default('open'),
|
|
61
|
+
severity: SEVERITY_ENUM.optional(),
|
|
62
|
+
category: CATEGORY_ENUM.optional(),
|
|
63
|
+
},
|
|
64
|
+
}, safeTracked('list_tech_debt', async (args) => handleListTechDebt(args)));
|
|
65
|
+
// debt_forecast
|
|
66
|
+
server.registerTool('debt_forecast', {
|
|
67
|
+
description: 'Forecast tech debt growth based on historical accumulation rate. Projects weeks until budget is exceeded.',
|
|
68
|
+
annotations: { readOnlyHint: true },
|
|
69
|
+
inputSchema: {
|
|
70
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
71
|
+
},
|
|
72
|
+
}, safeTracked('debt_forecast', async (args) => handleDebtForecast(args)));
|
|
73
|
+
// resolve_tech_debt
|
|
74
|
+
server.registerTool('resolve_tech_debt', {
|
|
75
|
+
description: 'Mark a tech debt item as resolved.',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
78
|
+
id: z.string().min(1).describe('ID of the tech debt item to resolve.'),
|
|
79
|
+
resolvedNotes: z
|
|
80
|
+
.string()
|
|
81
|
+
.max(500)
|
|
82
|
+
.optional()
|
|
83
|
+
.describe('Optional notes on how it was resolved.'),
|
|
84
|
+
},
|
|
85
|
+
}, safeTracked('resolve_tech_debt', async (args) => handleResolveTechDebt(args)));
|
|
86
|
+
// tech_debt_report
|
|
87
|
+
server.registerTool('tech_debt_report', {
|
|
88
|
+
description: 'Generate an HTML report of all tech debt items with metrics and forecast summary.',
|
|
89
|
+
annotations: { readOnlyHint: true },
|
|
90
|
+
inputSchema: {
|
|
91
|
+
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
|
|
92
|
+
},
|
|
93
|
+
}, safeTracked('tech_debt_report', async (args) => handleTechDebtReport(args)));
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=register-tech-debt-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-tech-debt-tools.js","sourceRoot":"","sources":["../../src/tools/register-tech-debt-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-validation-loop-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-validation-loop-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8FnE"}
|