@planu/cli 0.90.2 → 0.92.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/domain-best-practices.json +413 -0
- package/dist/config/ide-registry.json +25 -0
- package/dist/config/license-plans.json +61 -2
- package/dist/engine/ai-integration/agent-frameworks/autogen-exporter.d.ts +11 -0
- package/dist/engine/ai-integration/agent-frameworks/autogen-exporter.d.ts.map +1 -0
- package/dist/engine/ai-integration/agent-frameworks/autogen-exporter.js +52 -0
- package/dist/engine/ai-integration/agent-frameworks/autogen-exporter.js.map +1 -0
- package/dist/engine/ai-integration/agent-frameworks/crewai-exporter.d.ts +11 -0
- package/dist/engine/ai-integration/agent-frameworks/crewai-exporter.d.ts.map +1 -0
- package/dist/engine/ai-integration/agent-frameworks/crewai-exporter.js +89 -0
- package/dist/engine/ai-integration/agent-frameworks/crewai-exporter.js.map +1 -0
- package/dist/engine/ai-integration/agent-frameworks/index.d.ts +4 -0
- package/dist/engine/ai-integration/agent-frameworks/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/agent-frameworks/index.js +5 -0
- package/dist/engine/ai-integration/agent-frameworks/index.js.map +1 -0
- package/dist/engine/ai-integration/agent-frameworks/langgraph-exporter.d.ts +11 -0
- package/dist/engine/ai-integration/agent-frameworks/langgraph-exporter.d.ts.map +1 -0
- package/dist/engine/ai-integration/agent-frameworks/langgraph-exporter.js +71 -0
- package/dist/engine/ai-integration/agent-frameworks/langgraph-exporter.js.map +1 -0
- package/dist/engine/ai-integration/agents-md/generator.d.ts +11 -0
- package/dist/engine/ai-integration/agents-md/generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/agents-md/generator.js +139 -0
- package/dist/engine/ai-integration/agents-md/generator.js.map +1 -0
- package/dist/engine/ai-integration/agents-md/index.d.ts +3 -0
- package/dist/engine/ai-integration/agents-md/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/agents-md/index.js +4 -0
- package/dist/engine/ai-integration/agents-md/index.js.map +1 -0
- package/dist/engine/ai-integration/agents-md/updater.d.ts +10 -0
- package/dist/engine/ai-integration/agents-md/updater.d.ts.map +1 -0
- package/dist/engine/ai-integration/agents-md/updater.js +33 -0
- package/dist/engine/ai-integration/agents-md/updater.js.map +1 -0
- package/dist/engine/ai-integration/aider/aider-config-generator.d.ts +5 -0
- package/dist/engine/ai-integration/aider/aider-config-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/aider/aider-config-generator.js +34 -0
- package/dist/engine/ai-integration/aider/aider-config-generator.js.map +1 -0
- package/dist/engine/ai-integration/cline/clinerules-generator.d.ts +5 -0
- package/dist/engine/ai-integration/cline/clinerules-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/cline/clinerules-generator.js +86 -0
- package/dist/engine/ai-integration/cline/clinerules-generator.js.map +1 -0
- package/dist/engine/ai-integration/cline/index.d.ts +3 -0
- package/dist/engine/ai-integration/cline/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/cline/index.js +3 -0
- package/dist/engine/ai-integration/cline/index.js.map +1 -0
- package/dist/engine/ai-integration/codex/agent-roles-generator.d.ts +12 -0
- package/dist/engine/ai-integration/codex/agent-roles-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/codex/agent-roles-generator.js +62 -0
- package/dist/engine/ai-integration/codex/agent-roles-generator.js.map +1 -0
- package/dist/engine/ai-integration/codex/agents-md-generator.d.ts +10 -0
- package/dist/engine/ai-integration/codex/agents-md-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/codex/agents-md-generator.js +114 -0
- package/dist/engine/ai-integration/codex/agents-md-generator.js.map +1 -0
- package/dist/engine/ai-integration/codex/config-generator.d.ts +9 -0
- package/dist/engine/ai-integration/codex/config-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/codex/config-generator.js +66 -0
- package/dist/engine/ai-integration/codex/config-generator.js.map +1 -0
- package/dist/engine/ai-integration/codex/hooks-generator.d.ts +6 -0
- package/dist/engine/ai-integration/codex/hooks-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/codex/hooks-generator.js +55 -0
- package/dist/engine/ai-integration/codex/hooks-generator.js.map +1 -0
- package/dist/engine/ai-integration/codex/index.d.ts +5 -0
- package/dist/engine/ai-integration/codex/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/codex/index.js +6 -0
- package/dist/engine/ai-integration/codex/index.js.map +1 -0
- package/dist/engine/ai-integration/continue/ai-checks-generator.d.ts +12 -0
- package/dist/engine/ai-integration/continue/ai-checks-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/continue/ai-checks-generator.js +63 -0
- package/dist/engine/ai-integration/continue/ai-checks-generator.js.map +1 -0
- package/dist/engine/ai-integration/continue/config-generator.d.ts +5 -0
- package/dist/engine/ai-integration/continue/config-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/continue/config-generator.js +56 -0
- package/dist/engine/ai-integration/continue/config-generator.js.map +1 -0
- package/dist/engine/ai-integration/continue/index.d.ts +5 -0
- package/dist/engine/ai-integration/continue/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/continue/index.js +4 -0
- package/dist/engine/ai-integration/continue/index.js.map +1 -0
- package/dist/engine/ai-integration/cursor/cursorrules-generator.d.ts +5 -0
- package/dist/engine/ai-integration/cursor/cursorrules-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/cursor/cursorrules-generator.js +75 -0
- package/dist/engine/ai-integration/cursor/cursorrules-generator.js.map +1 -0
- package/dist/engine/ai-integration/detector.d.ts +5 -0
- package/dist/engine/ai-integration/detector.d.ts.map +1 -0
- package/dist/engine/ai-integration/detector.js +127 -0
- package/dist/engine/ai-integration/detector.js.map +1 -0
- package/dist/engine/ai-integration/gemini/extensions-advisor.d.ts +4 -0
- package/dist/engine/ai-integration/gemini/extensions-advisor.d.ts.map +1 -0
- package/dist/engine/ai-integration/gemini/extensions-advisor.js +64 -0
- package/dist/engine/ai-integration/gemini/extensions-advisor.js.map +1 -0
- package/dist/engine/ai-integration/gemini/gemini-md-generator.d.ts +4 -0
- package/dist/engine/ai-integration/gemini/gemini-md-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/gemini/gemini-md-generator.js +94 -0
- package/dist/engine/ai-integration/gemini/gemini-md-generator.js.map +1 -0
- package/dist/engine/ai-integration/gemini/index.d.ts +5 -0
- package/dist/engine/ai-integration/gemini/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/gemini/index.js +6 -0
- package/dist/engine/ai-integration/gemini/index.js.map +1 -0
- package/dist/engine/ai-integration/gemini/policy-generator.d.ts +6 -0
- package/dist/engine/ai-integration/gemini/policy-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/gemini/policy-generator.js +63 -0
- package/dist/engine/ai-integration/gemini/policy-generator.js.map +1 -0
- package/dist/engine/ai-integration/gemini/settings-generator.d.ts +4 -0
- package/dist/engine/ai-integration/gemini/settings-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/gemini/settings-generator.js +191 -0
- package/dist/engine/ai-integration/gemini/settings-generator.js.map +1 -0
- package/dist/engine/ai-integration/github-copilot/index.d.ts +4 -0
- package/dist/engine/ai-integration/github-copilot/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/github-copilot/index.js +5 -0
- package/dist/engine/ai-integration/github-copilot/index.js.map +1 -0
- package/dist/engine/ai-integration/github-copilot/instructions-generator.d.ts +5 -0
- package/dist/engine/ai-integration/github-copilot/instructions-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/github-copilot/instructions-generator.js +102 -0
- package/dist/engine/ai-integration/github-copilot/instructions-generator.js.map +1 -0
- package/dist/engine/ai-integration/github-copilot/prompt-files-generator.d.ts +11 -0
- package/dist/engine/ai-integration/github-copilot/prompt-files-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/github-copilot/prompt-files-generator.js +86 -0
- package/dist/engine/ai-integration/github-copilot/prompt-files-generator.js.map +1 -0
- package/dist/engine/ai-integration/github-copilot/workspace-bridge.d.ts +3 -0
- package/dist/engine/ai-integration/github-copilot/workspace-bridge.d.ts.map +1 -0
- package/dist/engine/ai-integration/github-copilot/workspace-bridge.js +39 -0
- package/dist/engine/ai-integration/github-copilot/workspace-bridge.js.map +1 -0
- package/dist/engine/ai-integration/kiro/hooks-generator.d.ts +6 -0
- package/dist/engine/ai-integration/kiro/hooks-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/kiro/hooks-generator.js +74 -0
- package/dist/engine/ai-integration/kiro/hooks-generator.js.map +1 -0
- package/dist/engine/ai-integration/kiro/index.d.ts +4 -0
- package/dist/engine/ai-integration/kiro/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/kiro/index.js +5 -0
- package/dist/engine/ai-integration/kiro/index.js.map +1 -0
- package/dist/engine/ai-integration/kiro/spec-exporter.d.ts +6 -0
- package/dist/engine/ai-integration/kiro/spec-exporter.d.ts.map +1 -0
- package/dist/engine/ai-integration/kiro/spec-exporter.js +57 -0
- package/dist/engine/ai-integration/kiro/spec-exporter.js.map +1 -0
- package/dist/engine/ai-integration/kiro/steering-generator.d.ts +6 -0
- package/dist/engine/ai-integration/kiro/steering-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/kiro/steering-generator.js +112 -0
- package/dist/engine/ai-integration/kiro/steering-generator.js.map +1 -0
- package/dist/engine/ai-integration/mastra/agent-scaffold.d.ts +16 -0
- package/dist/engine/ai-integration/mastra/agent-scaffold.d.ts.map +1 -0
- package/dist/engine/ai-integration/mastra/agent-scaffold.js +111 -0
- package/dist/engine/ai-integration/mastra/agent-scaffold.js.map +1 -0
- package/dist/engine/ai-integration/mastra/config-generator.d.ts +12 -0
- package/dist/engine/ai-integration/mastra/config-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/mastra/config-generator.js +64 -0
- package/dist/engine/ai-integration/mastra/config-generator.js.map +1 -0
- package/dist/engine/ai-integration/mastra/index.d.ts +3 -0
- package/dist/engine/ai-integration/mastra/index.d.ts.map +1 -0
- package/dist/engine/ai-integration/mastra/index.js +4 -0
- package/dist/engine/ai-integration/mastra/index.js.map +1 -0
- package/dist/engine/ai-integration/universal-config-generator.d.ts +4 -0
- package/dist/engine/ai-integration/universal-config-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/universal-config-generator.js +87 -0
- package/dist/engine/ai-integration/universal-config-generator.js.map +1 -0
- package/dist/engine/ai-integration/windsurf/windsurfrules-generator.d.ts +5 -0
- package/dist/engine/ai-integration/windsurf/windsurfrules-generator.d.ts.map +1 -0
- package/dist/engine/ai-integration/windsurf/windsurfrules-generator.js +75 -0
- package/dist/engine/ai-integration/windsurf/windsurfrules-generator.js.map +1 -0
- package/dist/engine/api-spec-generator/ac-builder.d.ts +5 -0
- package/dist/engine/api-spec-generator/ac-builder.d.ts.map +1 -0
- package/dist/engine/api-spec-generator/ac-builder.js +114 -0
- package/dist/engine/api-spec-generator/ac-builder.js.map +1 -0
- package/dist/engine/api-spec-generator/graphql-parser.d.ts +3 -0
- package/dist/engine/api-spec-generator/graphql-parser.d.ts.map +1 -0
- package/dist/engine/api-spec-generator/graphql-parser.js +166 -0
- package/dist/engine/api-spec-generator/graphql-parser.js.map +1 -0
- package/dist/engine/api-spec-generator/openapi-parser.d.ts +3 -0
- package/dist/engine/api-spec-generator/openapi-parser.d.ts.map +1 -0
- package/dist/engine/api-spec-generator/openapi-parser.js +161 -0
- package/dist/engine/api-spec-generator/openapi-parser.js.map +1 -0
- package/dist/engine/approval-workflow.d.ts +21 -0
- package/dist/engine/approval-workflow.d.ts.map +1 -0
- package/dist/engine/approval-workflow.js +82 -0
- package/dist/engine/approval-workflow.js.map +1 -0
- package/dist/engine/batch-script-generator/index.d.ts +6 -0
- package/dist/engine/batch-script-generator/index.d.ts.map +1 -0
- package/dist/engine/batch-script-generator/index.js +126 -0
- package/dist/engine/batch-script-generator/index.js.map +1 -0
- package/dist/engine/best-practices-library.d.ts +31 -0
- package/dist/engine/best-practices-library.d.ts.map +1 -0
- package/dist/engine/best-practices-library.js +111 -0
- package/dist/engine/best-practices-library.js.map +1 -0
- package/dist/engine/ci-generator/index.d.ts.map +1 -1
- package/dist/engine/ci-generator/index.js +32 -1
- package/dist/engine/ci-generator/index.js.map +1 -1
- package/dist/engine/ci-generator/output-formats.d.ts +15 -0
- package/dist/engine/ci-generator/output-formats.d.ts.map +1 -0
- package/dist/engine/ci-generator/output-formats.js +52 -0
- package/dist/engine/ci-generator/output-formats.js.map +1 -0
- package/dist/engine/claude-config-auditor/claudemd-auditor.d.ts.map +1 -1
- package/dist/engine/claude-config-auditor/claudemd-auditor.js +139 -31
- package/dist/engine/claude-config-auditor/claudemd-auditor.js.map +1 -1
- package/dist/engine/claude-config-auditor/rules-auditor.d.ts.map +1 -1
- package/dist/engine/claude-config-auditor/rules-auditor.js +87 -49
- package/dist/engine/claude-config-auditor/rules-auditor.js.map +1 -1
- package/dist/engine/claude-config-auditor/scoring.d.ts.map +1 -1
- package/dist/engine/claude-config-auditor/scoring.js +37 -1
- package/dist/engine/claude-config-auditor/scoring.js.map +1 -1
- package/dist/engine/claude-config-auditor/settings-auditor.d.ts.map +1 -1
- package/dist/engine/claude-config-auditor/settings-auditor.js +55 -40
- package/dist/engine/claude-config-auditor/settings-auditor.js.map +1 -1
- package/dist/engine/config-schemas.d.ts.map +1 -1
- package/dist/engine/config-schemas.js +1 -0
- package/dist/engine/config-schemas.js.map +1 -1
- package/dist/engine/confluence-exporter.d.ts +27 -0
- package/dist/engine/confluence-exporter.d.ts.map +1 -0
- package/dist/engine/confluence-exporter.js +238 -0
- package/dist/engine/confluence-exporter.js.map +1 -0
- package/dist/engine/context-advisor/btw-advisor.d.ts +11 -0
- package/dist/engine/context-advisor/btw-advisor.d.ts.map +1 -0
- package/dist/engine/context-advisor/btw-advisor.js +29 -0
- package/dist/engine/context-advisor/btw-advisor.js.map +1 -0
- package/dist/engine/cross-repo-searcher.d.ts +13 -0
- package/dist/engine/cross-repo-searcher.d.ts.map +1 -0
- package/dist/engine/cross-repo-searcher.js +51 -0
- package/dist/engine/cross-repo-searcher.js.map +1 -0
- package/dist/engine/desktop-notifier.d.ts +16 -0
- package/dist/engine/desktop-notifier.d.ts.map +1 -0
- package/dist/engine/desktop-notifier.js +64 -0
- package/dist/engine/desktop-notifier.js.map +1 -0
- package/dist/engine/domain-detector.d.ts +12 -0
- package/dist/engine/domain-detector.d.ts.map +1 -0
- package/dist/engine/domain-detector.js +286 -0
- package/dist/engine/domain-detector.js.map +1 -0
- package/dist/engine/email-digest-generator.d.ts +8 -0
- package/dist/engine/email-digest-generator.d.ts.map +1 -0
- package/dist/engine/email-digest-generator.js +192 -0
- package/dist/engine/email-digest-generator.js.map +1 -0
- package/dist/engine/email-sender.d.ts +22 -0
- package/dist/engine/email-sender.d.ts.map +1 -0
- package/dist/engine/email-sender.js +78 -0
- package/dist/engine/email-sender.js.map +1 -0
- package/dist/engine/estimation-calibrator.d.ts +19 -0
- package/dist/engine/estimation-calibrator.d.ts.map +1 -0
- package/dist/engine/estimation-calibrator.js +176 -0
- package/dist/engine/estimation-calibrator.js.map +1 -0
- package/dist/engine/facilitate/context-loader.d.ts +12 -0
- package/dist/engine/facilitate/context-loader.d.ts.map +1 -0
- package/dist/engine/facilitate/context-loader.js +156 -0
- package/dist/engine/facilitate/context-loader.js.map +1 -0
- package/dist/engine/facilitate/intent-classifier.d.ts +6 -0
- package/dist/engine/facilitate/intent-classifier.d.ts.map +1 -0
- package/dist/engine/facilitate/intent-classifier.js +153 -0
- package/dist/engine/facilitate/intent-classifier.js.map +1 -0
- package/dist/engine/facilitate/plan-parser.d.ts +7 -0
- package/dist/engine/facilitate/plan-parser.d.ts.map +1 -0
- package/dist/engine/facilitate/plan-parser.js +115 -0
- package/dist/engine/facilitate/plan-parser.js.map +1 -0
- package/dist/engine/facilitate/router.d.ts +6 -0
- package/dist/engine/facilitate/router.d.ts.map +1 -0
- package/dist/engine/facilitate/router.js +71 -0
- package/dist/engine/facilitate/router.js.map +1 -0
- package/dist/engine/hooks/context-injector.d.ts +11 -0
- package/dist/engine/hooks/context-injector.d.ts.map +1 -0
- package/dist/engine/hooks/context-injector.js +163 -0
- package/dist/engine/hooks/context-injector.js.map +1 -0
- package/dist/engine/hooks/custom-commands-generator.d.ts +11 -0
- package/dist/engine/hooks/custom-commands-generator.d.ts.map +1 -0
- package/dist/engine/hooks/custom-commands-generator.js +88 -0
- package/dist/engine/hooks/custom-commands-generator.js.map +1 -0
- package/dist/engine/hooks/effort-configurator.d.ts +13 -0
- package/dist/engine/hooks/effort-configurator.d.ts.map +1 -0
- package/dist/engine/hooks/effort-configurator.js +54 -0
- package/dist/engine/hooks/effort-configurator.js.map +1 -0
- package/dist/engine/hooks/full-spectrum-generator.d.ts +31 -0
- package/dist/engine/hooks/full-spectrum-generator.d.ts.map +1 -0
- package/dist/engine/hooks/full-spectrum-generator.js +115 -0
- package/dist/engine/hooks/full-spectrum-generator.js.map +1 -0
- package/dist/engine/hooks/hook-templates.d.ts +16 -0
- package/dist/engine/hooks/hook-templates.d.ts.map +1 -0
- package/dist/engine/hooks/hook-templates.js +148 -0
- package/dist/engine/hooks/hook-templates.js.map +1 -0
- package/dist/engine/hooks/plan-mode-detector.d.ts +27 -0
- package/dist/engine/hooks/plan-mode-detector.d.ts.map +1 -0
- package/dist/engine/hooks/plan-mode-detector.js +68 -0
- package/dist/engine/hooks/plan-mode-detector.js.map +1 -0
- package/dist/engine/hooks/plan-mode-scripts.d.ts +10 -0
- package/dist/engine/hooks/plan-mode-scripts.d.ts.map +1 -0
- package/dist/engine/hooks/plan-mode-scripts.js +45 -0
- package/dist/engine/hooks/plan-mode-scripts.js.map +1 -0
- package/dist/engine/hooks/profile-generator.d.ts +21 -0
- package/dist/engine/hooks/profile-generator.d.ts.map +1 -0
- package/dist/engine/hooks/profile-generator.js +90 -0
- package/dist/engine/hooks/profile-generator.js.map +1 -0
- package/dist/engine/ide-config/generators.d.ts.map +1 -1
- package/dist/engine/ide-config/generators.js +28 -1
- package/dist/engine/ide-config/generators.js.map +1 -1
- package/dist/engine/importers/csv-importer.d.ts +9 -0
- package/dist/engine/importers/csv-importer.d.ts.map +1 -0
- package/dist/engine/importers/csv-importer.js +116 -0
- package/dist/engine/importers/csv-importer.js.map +1 -0
- package/dist/engine/importers/jira-importer.d.ts +7 -0
- package/dist/engine/importers/jira-importer.d.ts.map +1 -0
- package/dist/engine/importers/jira-importer.js +57 -0
- package/dist/engine/importers/jira-importer.js.map +1 -0
- package/dist/engine/importers/linear-importer.d.ts +6 -0
- package/dist/engine/importers/linear-importer.d.ts.map +1 -0
- package/dist/engine/importers/linear-importer.js +59 -0
- package/dist/engine/importers/linear-importer.js.map +1 -0
- package/dist/engine/importers/markdown-importer.d.ts +7 -0
- package/dist/engine/importers/markdown-importer.d.ts.map +1 -0
- package/dist/engine/importers/markdown-importer.js +74 -0
- package/dist/engine/importers/markdown-importer.js.map +1 -0
- package/dist/engine/model-router/complexity-analyzer.d.ts +9 -1
- package/dist/engine/model-router/complexity-analyzer.d.ts.map +1 -1
- package/dist/engine/model-router/complexity-analyzer.js +44 -1
- package/dist/engine/model-router/complexity-analyzer.js.map +1 -1
- package/dist/engine/model-router/rules-engine.d.ts.map +1 -1
- package/dist/engine/model-router/rules-engine.js +14 -1
- package/dist/engine/model-router/rules-engine.js.map +1 -1
- package/dist/engine/nfr-profile-detector.d.ts.map +1 -1
- package/dist/engine/nfr-profile-detector.js +2 -1
- package/dist/engine/nfr-profile-detector.js.map +1 -1
- package/dist/engine/outbound-webhook-dispatcher.d.ts +4 -0
- package/dist/engine/outbound-webhook-dispatcher.d.ts.map +1 -0
- package/dist/engine/outbound-webhook-dispatcher.js +94 -0
- package/dist/engine/outbound-webhook-dispatcher.js.map +1 -0
- package/dist/engine/performance-analyzer.d.ts +18 -0
- package/dist/engine/performance-analyzer.d.ts.map +1 -0
- package/dist/engine/performance-analyzer.js +152 -0
- package/dist/engine/performance-analyzer.js.map +1 -0
- package/dist/engine/registry/composio-publisher.d.ts +17 -0
- package/dist/engine/registry/composio-publisher.d.ts.map +1 -0
- package/dist/engine/registry/composio-publisher.js +51 -0
- package/dist/engine/registry/composio-publisher.js.map +1 -0
- package/dist/engine/registry/glama-publisher.d.ts +17 -0
- package/dist/engine/registry/glama-publisher.d.ts.map +1 -0
- package/dist/engine/registry/glama-publisher.js +43 -0
- package/dist/engine/registry/glama-publisher.js.map +1 -0
- package/dist/engine/registry/index.d.ts +4 -0
- package/dist/engine/registry/index.d.ts.map +1 -1
- package/dist/engine/registry/index.js +5 -0
- package/dist/engine/registry/index.js.map +1 -1
- package/dist/engine/registry/mcp-official-publisher.d.ts +16 -0
- package/dist/engine/registry/mcp-official-publisher.d.ts.map +1 -0
- package/dist/engine/registry/mcp-official-publisher.js +44 -0
- package/dist/engine/registry/mcp-official-publisher.js.map +1 -0
- package/dist/engine/registry/smithery-generator.d.ts +16 -0
- package/dist/engine/registry/smithery-generator.d.ts.map +1 -0
- package/dist/engine/registry/smithery-generator.js +71 -0
- package/dist/engine/registry/smithery-generator.js.map +1 -0
- package/dist/engine/reverse-engineer/test-file-parser.d.ts +26 -0
- package/dist/engine/reverse-engineer/test-file-parser.d.ts.map +1 -0
- package/dist/engine/reverse-engineer/test-file-parser.js +165 -0
- package/dist/engine/reverse-engineer/test-file-parser.js.map +1 -0
- package/dist/engine/slack-dispatcher.d.ts +15 -0
- package/dist/engine/slack-dispatcher.d.ts.map +1 -0
- package/dist/engine/slack-dispatcher.js +73 -0
- package/dist/engine/slack-dispatcher.js.map +1 -0
- package/dist/engine/spec-coverage/core.js.map +1 -1
- package/dist/engine/spec-differ.d.ts +15 -0
- package/dist/engine/spec-differ.d.ts.map +1 -0
- package/dist/engine/spec-differ.js +115 -0
- package/dist/engine/spec-differ.js.map +1 -0
- package/dist/engine/spec-exporter.d.ts +27 -0
- package/dist/engine/spec-exporter.d.ts.map +1 -0
- package/dist/engine/spec-exporter.js +122 -0
- package/dist/engine/spec-exporter.js.map +1 -0
- package/dist/engine/spec-searcher.d.ts +31 -0
- package/dist/engine/spec-searcher.d.ts.map +1 -0
- package/dist/engine/spec-searcher.js +240 -0
- package/dist/engine/spec-searcher.js.map +1 -0
- package/dist/engine/spec-splitter.d.ts +11 -1
- package/dist/engine/spec-splitter.d.ts.map +1 -1
- package/dist/engine/spec-splitter.js +178 -0
- package/dist/engine/spec-splitter.js.map +1 -1
- package/dist/engine/team-analytics-calculator.d.ts +14 -0
- package/dist/engine/team-analytics-calculator.d.ts.map +1 -0
- package/dist/engine/team-analytics-calculator.js +114 -0
- package/dist/engine/team-analytics-calculator.js.map +1 -0
- package/dist/engine/team-planner/writer-reviewer.d.ts +12 -0
- package/dist/engine/team-planner/writer-reviewer.d.ts.map +1 -0
- package/dist/engine/team-planner/writer-reviewer.js +48 -0
- package/dist/engine/team-planner/writer-reviewer.js.map +1 -0
- package/dist/engine/telemetry/error-reporter.d.ts +16 -0
- package/dist/engine/telemetry/error-reporter.d.ts.map +1 -0
- package/dist/engine/telemetry/error-reporter.js +46 -0
- package/dist/engine/telemetry/error-reporter.js.map +1 -0
- package/dist/engine/tool-groups/group-manager.js.map +1 -1
- package/dist/engine/velocity-calculator.d.ts +44 -0
- package/dist/engine/velocity-calculator.d.ts.map +1 -0
- package/dist/engine/velocity-calculator.js +425 -0
- package/dist/engine/velocity-calculator.js.map +1 -0
- package/dist/index.js +55 -3
- package/dist/index.js.map +1 -1
- package/dist/storage/actuals-store.d.ts +8 -0
- package/dist/storage/actuals-store.d.ts.map +1 -0
- package/dist/storage/actuals-store.js +57 -0
- package/dist/storage/actuals-store.js.map +1 -0
- package/dist/storage/approval-store.d.ts +12 -0
- package/dist/storage/approval-store.d.ts.map +1 -0
- package/dist/storage/approval-store.js +46 -0
- package/dist/storage/approval-store.js.map +1 -0
- package/dist/storage/comments-store.d.ts +38 -0
- package/dist/storage/comments-store.d.ts.map +1 -0
- package/dist/storage/comments-store.js +167 -0
- package/dist/storage/comments-store.js.map +1 -0
- package/dist/storage/confluence-store.d.ts +35 -0
- package/dist/storage/confluence-store.d.ts.map +1 -0
- package/dist/storage/confluence-store.js +85 -0
- package/dist/storage/confluence-store.js.map +1 -0
- package/dist/storage/desktop-notification-store.d.ts +19 -0
- package/dist/storage/desktop-notification-store.d.ts.map +1 -0
- package/dist/storage/desktop-notification-store.js +44 -0
- package/dist/storage/desktop-notification-store.js.map +1 -0
- package/dist/storage/drift-cache-store.js.map +1 -1
- package/dist/storage/email-digest-store.d.ts +19 -0
- package/dist/storage/email-digest-store.d.ts.map +1 -0
- package/dist/storage/email-digest-store.js +51 -0
- package/dist/storage/email-digest-store.js.map +1 -0
- package/dist/storage/error-telemetry-store.js.map +1 -1
- package/dist/storage/federation-store.js.map +1 -1
- package/dist/storage/global-projects-store.d.ts +27 -0
- package/dist/storage/global-projects-store.d.ts.map +1 -0
- package/dist/storage/global-projects-store.js +78 -0
- package/dist/storage/global-projects-store.js.map +1 -0
- package/dist/storage/global-store.js.map +1 -1
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +2 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/living-dashboard-store.js.map +1 -1
- package/dist/storage/metrics-store.js.map +1 -1
- package/dist/storage/outbound-webhook-store.d.ts +9 -0
- package/dist/storage/outbound-webhook-store.d.ts.map +1 -0
- package/dist/storage/outbound-webhook-store.js +105 -0
- package/dist/storage/outbound-webhook-store.js.map +1 -0
- package/dist/storage/rbac-store.js.map +1 -1
- package/dist/storage/slack-store.d.ts +22 -0
- package/dist/storage/slack-store.d.ts.map +1 -0
- package/dist/storage/slack-store.js +55 -0
- package/dist/storage/slack-store.js.map +1 -0
- package/dist/storage/spec-lock-store.d.ts +22 -0
- package/dist/storage/spec-lock-store.d.ts.map +1 -0
- package/dist/storage/spec-lock-store.js +99 -0
- package/dist/storage/spec-lock-store.js.map +1 -0
- package/dist/storage/spec-observability-store.js.map +1 -1
- package/dist/storage/worker-metrics-store.js.map +1 -1
- package/dist/storage/worker-store.js.map +1 -1
- package/dist/tools/ai-ecosystem-status.d.ts +13 -0
- package/dist/tools/ai-ecosystem-status.d.ts.map +1 -0
- package/dist/tools/ai-ecosystem-status.js +219 -0
- package/dist/tools/ai-ecosystem-status.js.map +1 -0
- package/dist/tools/api-spec-generator-handler.d.ts +3 -0
- package/dist/tools/api-spec-generator-handler.d.ts.map +1 -0
- package/dist/tools/api-spec-generator-handler.js +193 -0
- package/dist/tools/api-spec-generator-handler.js.map +1 -0
- package/dist/tools/approval-handler.d.ts +6 -0
- package/dist/tools/approval-handler.d.ts.map +1 -0
- package/dist/tools/approval-handler.js +193 -0
- package/dist/tools/approval-handler.js.map +1 -0
- package/dist/tools/checkpoint-handler.d.ts.map +1 -1
- package/dist/tools/checkpoint-handler.js +31 -0
- package/dist/tools/checkpoint-handler.js.map +1 -1
- package/dist/tools/clarify-requirements/interview-mode.d.ts +42 -0
- package/dist/tools/clarify-requirements/interview-mode.d.ts.map +1 -0
- package/dist/tools/clarify-requirements/interview-mode.js +342 -0
- package/dist/tools/clarify-requirements/interview-mode.js.map +1 -0
- package/dist/tools/comments-handler.d.ts +6 -0
- package/dist/tools/comments-handler.d.ts.map +1 -0
- package/dist/tools/comments-handler.js +137 -0
- package/dist/tools/comments-handler.js.map +1 -0
- package/dist/tools/configure-workers-handler.d.ts.map +1 -1
- package/dist/tools/configure-workers-handler.js +81 -0
- package/dist/tools/configure-workers-handler.js.map +1 -1
- package/dist/tools/confluence-handler.d.ts +6 -0
- package/dist/tools/confluence-handler.d.ts.map +1 -0
- package/dist/tools/confluence-handler.js +220 -0
- package/dist/tools/confluence-handler.js.map +1 -0
- package/dist/tools/cross-repo-search-handler.d.ts +19 -0
- package/dist/tools/cross-repo-search-handler.d.ts.map +1 -0
- package/dist/tools/cross-repo-search-handler.js +151 -0
- package/dist/tools/cross-repo-search-handler.js.map +1 -0
- package/dist/tools/desktop-notification-handler.d.ts +17 -0
- package/dist/tools/desktop-notification-handler.d.ts.map +1 -0
- package/dist/tools/desktop-notification-handler.js +90 -0
- package/dist/tools/desktop-notification-handler.js.map +1 -0
- package/dist/tools/domain-criteria-handler.d.ts +16 -0
- package/dist/tools/domain-criteria-handler.d.ts.map +1 -0
- package/dist/tools/domain-criteria-handler.js +216 -0
- package/dist/tools/domain-criteria-handler.js.map +1 -0
- package/dist/tools/email-digest-handler.d.ts +6 -0
- package/dist/tools/email-digest-handler.d.ts.map +1 -0
- package/dist/tools/email-digest-handler.js +198 -0
- package/dist/tools/email-digest-handler.js.map +1 -0
- package/dist/tools/estimate.d.ts.map +1 -1
- package/dist/tools/estimate.js +22 -0
- package/dist/tools/estimate.js.map +1 -1
- package/dist/tools/estimation-accuracy-handler.d.ts +5 -0
- package/dist/tools/estimation-accuracy-handler.d.ts.map +1 -0
- package/dist/tools/estimation-accuracy-handler.js +171 -0
- package/dist/tools/estimation-accuracy-handler.js.map +1 -0
- package/dist/tools/facilitate.d.ts +1 -5
- package/dist/tools/facilitate.d.ts.map +1 -1
- package/dist/tools/facilitate.js +100 -23
- package/dist/tools/facilitate.js.map +1 -1
- package/dist/tools/generate-automation-guide.d.ts +10 -0
- package/dist/tools/generate-automation-guide.d.ts.map +1 -0
- package/dist/tools/generate-automation-guide.js +266 -0
- package/dist/tools/generate-automation-guide.js.map +1 -0
- package/dist/tools/generate-batch-script.d.ts +27 -0
- package/dist/tools/generate-batch-script.d.ts.map +1 -0
- package/dist/tools/generate-batch-script.js +77 -0
- package/dist/tools/generate-batch-script.js.map +1 -0
- package/dist/tools/generate-sub-agent.d.ts.map +1 -1
- package/dist/tools/generate-sub-agent.js +16 -2
- package/dist/tools/generate-sub-agent.js.map +1 -1
- package/dist/tools/git/branch-ops.d.ts +18 -0
- package/dist/tools/git/branch-ops.d.ts.map +1 -1
- package/dist/tools/git/branch-ops.js +121 -0
- package/dist/tools/git/branch-ops.js.map +1 -1
- package/dist/tools/git/pr-ops.d.ts.map +1 -1
- package/dist/tools/git/pr-ops.js +7 -0
- package/dist/tools/git/pr-ops.js.map +1 -1
- package/dist/tools/import-spec-handler.d.ts +10 -0
- package/dist/tools/import-spec-handler.d.ts.map +1 -0
- package/dist/tools/import-spec-handler.js +242 -0
- package/dist/tools/import-spec-handler.js.map +1 -0
- package/dist/tools/init-project/claude-md-generator.d.ts +1 -0
- package/dist/tools/init-project/claude-md-generator.d.ts.map +1 -1
- package/dist/tools/init-project/claude-md-generator.js +35 -0
- package/dist/tools/init-project/claude-md-generator.js.map +1 -1
- package/dist/tools/init-project/handler.d.ts.map +1 -1
- package/dist/tools/init-project/handler.js +4 -1
- package/dist/tools/init-project/handler.js.map +1 -1
- package/dist/tools/init-project/hooks-configurator.d.ts +17 -0
- package/dist/tools/init-project/hooks-configurator.d.ts.map +1 -0
- package/dist/tools/init-project/hooks-configurator.js +102 -0
- package/dist/tools/init-project/hooks-configurator.js.map +1 -0
- package/dist/tools/init-project/planu-workflow-generator.d.ts +21 -0
- package/dist/tools/init-project/planu-workflow-generator.d.ts.map +1 -0
- package/dist/tools/init-project/planu-workflow-generator.js +84 -0
- package/dist/tools/init-project/planu-workflow-generator.js.map +1 -0
- package/dist/tools/init-project/rules-generator.d.ts +26 -0
- package/dist/tools/init-project/rules-generator.d.ts.map +1 -0
- package/dist/tools/init-project/rules-generator.js +189 -0
- package/dist/tools/init-project/rules-generator.js.map +1 -0
- package/dist/tools/init-project/scaffold-writer.d.ts +4 -0
- package/dist/tools/init-project/scaffold-writer.d.ts.map +1 -1
- package/dist/tools/init-project/scaffold-writer.js +42 -0
- package/dist/tools/init-project/scaffold-writer.js.map +1 -1
- package/dist/tools/integrate-pm.js.map +1 -1
- package/dist/tools/list-sessions.d.ts.map +1 -1
- package/dist/tools/list-sessions.js +8 -0
- package/dist/tools/list-sessions.js.map +1 -1
- package/dist/tools/list-specs.d.ts.map +1 -1
- package/dist/tools/list-specs.js +11 -1
- package/dist/tools/list-specs.js.map +1 -1
- package/dist/tools/manage-git.d.ts.map +1 -1
- package/dist/tools/manage-git.js +15 -1
- package/dist/tools/manage-git.js.map +1 -1
- package/dist/tools/orchestrate/state.js.map +1 -1
- package/dist/tools/outbound-webhook-handler.d.ts +13 -0
- package/dist/tools/outbound-webhook-handler.d.ts.map +1 -0
- package/dist/tools/outbound-webhook-handler.js +161 -0
- package/dist/tools/outbound-webhook-handler.js.map +1 -0
- package/dist/tools/performance-analysis-handler.d.ts +3 -0
- package/dist/tools/performance-analysis-handler.d.ts.map +1 -0
- package/dist/tools/performance-analysis-handler.js +95 -0
- package/dist/tools/performance-analysis-handler.js.map +1 -0
- package/dist/tools/recommend-model-handler.d.ts.map +1 -1
- package/dist/tools/recommend-model-handler.js +7 -0
- package/dist/tools/recommend-model-handler.js.map +1 -1
- package/dist/tools/register-api-spec-generator.d.ts +3 -0
- package/dist/tools/register-api-spec-generator.d.ts.map +1 -0
- package/dist/tools/register-api-spec-generator.js +49 -0
- package/dist/tools/register-api-spec-generator.js.map +1 -0
- package/dist/tools/register-approval-tools.d.ts +3 -0
- package/dist/tools/register-approval-tools.d.ts.map +1 -0
- package/dist/tools/register-approval-tools.js +87 -0
- package/dist/tools/register-approval-tools.js.map +1 -0
- package/dist/tools/register-comments-tools.d.ts +3 -0
- package/dist/tools/register-comments-tools.d.ts.map +1 -0
- package/dist/tools/register-comments-tools.js +79 -0
- package/dist/tools/register-comments-tools.js.map +1 -0
- package/dist/tools/register-confluence-tools.d.ts +3 -0
- package/dist/tools/register-confluence-tools.d.ts.map +1 -0
- package/dist/tools/register-confluence-tools.js +62 -0
- package/dist/tools/register-confluence-tools.js.map +1 -0
- package/dist/tools/register-cross-repo-search-tools.d.ts +10 -0
- package/dist/tools/register-cross-repo-search-tools.d.ts.map +1 -0
- package/dist/tools/register-cross-repo-search-tools.js +82 -0
- package/dist/tools/register-cross-repo-search-tools.js.map +1 -0
- package/dist/tools/register-desktop-notification-tools.d.ts +3 -0
- package/dist/tools/register-desktop-notification-tools.d.ts.map +1 -0
- package/dist/tools/register-desktop-notification-tools.js +56 -0
- package/dist/tools/register-desktop-notification-tools.js.map +1 -0
- package/dist/tools/register-domain-criteria-tools.d.ts +3 -0
- package/dist/tools/register-domain-criteria-tools.d.ts.map +1 -0
- package/dist/tools/register-domain-criteria-tools.js +46 -0
- package/dist/tools/register-domain-criteria-tools.js.map +1 -0
- package/dist/tools/register-email-digest-tools.d.ts +3 -0
- package/dist/tools/register-email-digest-tools.d.ts.map +1 -0
- package/dist/tools/register-email-digest-tools.js +109 -0
- package/dist/tools/register-email-digest-tools.js.map +1 -0
- package/dist/tools/register-estimation-accuracy-tools.d.ts +3 -0
- package/dist/tools/register-estimation-accuracy-tools.d.ts.map +1 -0
- package/dist/tools/register-estimation-accuracy-tools.js +71 -0
- package/dist/tools/register-estimation-accuracy-tools.js.map +1 -0
- package/dist/tools/register-facilitator-tools.d.ts.map +1 -1
- package/dist/tools/register-facilitator-tools.js +12 -7
- package/dist/tools/register-facilitator-tools.js.map +1 -1
- package/dist/tools/register-generate-automation-guide.d.ts +3 -0
- package/dist/tools/register-generate-automation-guide.d.ts.map +1 -0
- package/dist/tools/register-generate-automation-guide.js +10 -0
- package/dist/tools/register-generate-automation-guide.js.map +1 -0
- package/dist/tools/register-generate-batch-script.d.ts +3 -0
- package/dist/tools/register-generate-batch-script.d.ts.map +1 -0
- package/dist/tools/register-generate-batch-script.js +10 -0
- package/dist/tools/register-generate-batch-script.js.map +1 -0
- package/dist/tools/register-hooks-tools.d.ts.map +1 -1
- package/dist/tools/register-hooks-tools.js +27 -0
- package/dist/tools/register-hooks-tools.js.map +1 -1
- package/dist/tools/register-import-tools.d.ts +3 -0
- package/dist/tools/register-import-tools.d.ts.map +1 -0
- package/dist/tools/register-import-tools.js +63 -0
- package/dist/tools/register-import-tools.js.map +1 -0
- package/dist/tools/register-outbound-webhook-tools.d.ts +3 -0
- package/dist/tools/register-outbound-webhook-tools.d.ts.map +1 -0
- package/dist/tools/register-outbound-webhook-tools.js +79 -0
- package/dist/tools/register-outbound-webhook-tools.js.map +1 -0
- package/dist/tools/register-performance-analysis-tools.d.ts +3 -0
- package/dist/tools/register-performance-analysis-tools.d.ts.map +1 -0
- package/dist/tools/register-performance-analysis-tools.js +24 -0
- package/dist/tools/register-performance-analysis-tools.js.map +1 -0
- package/dist/tools/register-platform-tools/design-stack-tools.d.ts.map +1 -1
- package/dist/tools/register-platform-tools/design-stack-tools.js +4 -0
- package/dist/tools/register-platform-tools/design-stack-tools.js.map +1 -1
- package/dist/tools/register-slack-tools.d.ts +3 -0
- package/dist/tools/register-slack-tools.d.ts.map +1 -0
- package/dist/tools/register-slack-tools.js +55 -0
- package/dist/tools/register-slack-tools.js.map +1 -0
- package/dist/tools/register-spec-export-tools.d.ts +3 -0
- package/dist/tools/register-spec-export-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-export-tools.js +67 -0
- package/dist/tools/register-spec-export-tools.js.map +1 -0
- package/dist/tools/register-spec-lock-tools.d.ts +3 -0
- package/dist/tools/register-spec-lock-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-lock-tools.js +72 -0
- package/dist/tools/register-spec-lock-tools.js.map +1 -0
- package/dist/tools/register-spec-search-tools.d.ts +3 -0
- package/dist/tools/register-spec-search-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-search-tools.js +122 -0
- package/dist/tools/register-spec-search-tools.js.map +1 -0
- package/dist/tools/register-spec-split-tools.d.ts +3 -0
- package/dist/tools/register-spec-split-tools.d.ts.map +1 -0
- package/dist/tools/register-spec-split-tools.js +51 -0
- package/dist/tools/register-spec-split-tools.js.map +1 -0
- package/dist/tools/register-spec-tools/core-spec-tools.d.ts.map +1 -1
- package/dist/tools/register-spec-tools/core-spec-tools.js +20 -2
- package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -1
- package/dist/tools/register-team-analytics-tools.d.ts +3 -0
- package/dist/tools/register-team-analytics-tools.d.ts.map +1 -0
- package/dist/tools/register-team-analytics-tools.js +37 -0
- package/dist/tools/register-team-analytics-tools.js.map +1 -0
- package/dist/tools/register-test-reverse-engineer-tools.d.ts +3 -0
- package/dist/tools/register-test-reverse-engineer-tools.d.ts.map +1 -0
- package/dist/tools/register-test-reverse-engineer-tools.js +10 -0
- package/dist/tools/register-test-reverse-engineer-tools.js.map +1 -0
- package/dist/tools/register-velocity-tools.d.ts +3 -0
- package/dist/tools/register-velocity-tools.d.ts.map +1 -0
- package/dist/tools/register-velocity-tools.js +72 -0
- package/dist/tools/register-velocity-tools.js.map +1 -0
- package/dist/tools/register-versioning-tools.d.ts.map +1 -1
- package/dist/tools/register-versioning-tools.js +55 -0
- package/dist/tools/register-versioning-tools.js.map +1 -1
- package/dist/tools/restore-session.d.ts.map +1 -1
- package/dist/tools/restore-session.js +10 -0
- package/dist/tools/restore-session.js.map +1 -1
- package/dist/tools/safe-handler.d.ts.map +1 -1
- package/dist/tools/safe-handler.js +5 -0
- package/dist/tools/safe-handler.js.map +1 -1
- package/dist/tools/schemas/ide-config.d.ts +4 -2
- package/dist/tools/schemas/ide-config.d.ts.map +1 -1
- package/dist/tools/schemas/ide-config.js +2 -1
- package/dist/tools/schemas/ide-config.js.map +1 -1
- package/dist/tools/schemas/output-schemas.d.ts +24 -0
- package/dist/tools/schemas/output-schemas.d.ts.map +1 -1
- package/dist/tools/schemas/output-schemas.js +30 -0
- package/dist/tools/schemas/output-schemas.js.map +1 -1
- package/dist/tools/schemas/workers-schema.d.ts +1 -0
- package/dist/tools/schemas/workers-schema.d.ts.map +1 -1
- package/dist/tools/schemas/workers-schema.js +10 -2
- package/dist/tools/schemas/workers-schema.js.map +1 -1
- package/dist/tools/search-handler.d.ts +4 -0
- package/dist/tools/search-handler.d.ts.map +1 -0
- package/dist/tools/search-handler.js +62 -0
- package/dist/tools/search-handler.js.map +1 -0
- package/dist/tools/slack-handler.d.ts +6 -0
- package/dist/tools/slack-handler.d.ts.map +1 -0
- package/dist/tools/slack-handler.js +162 -0
- package/dist/tools/slack-handler.js.map +1 -0
- package/dist/tools/spec-diff-handler.d.ts +6 -0
- package/dist/tools/spec-diff-handler.d.ts.map +1 -0
- package/dist/tools/spec-diff-handler.js +94 -0
- package/dist/tools/spec-diff-handler.js.map +1 -0
- package/dist/tools/spec-export-handler.d.ts +5 -0
- package/dist/tools/spec-export-handler.d.ts.map +1 -0
- package/dist/tools/spec-export-handler.js +64 -0
- package/dist/tools/spec-export-handler.js.map +1 -0
- package/dist/tools/spec-lock-handler.d.ts +10 -0
- package/dist/tools/spec-lock-handler.d.ts.map +1 -0
- package/dist/tools/spec-lock-handler.js +163 -0
- package/dist/tools/spec-lock-handler.js.map +1 -0
- package/dist/tools/spec-split-handler.d.ts +4 -0
- package/dist/tools/spec-split-handler.d.ts.map +1 -0
- package/dist/tools/spec-split-handler.js +250 -0
- package/dist/tools/spec-split-handler.js.map +1 -0
- package/dist/tools/start-hooks.d.ts.map +1 -1
- package/dist/tools/start-hooks.js +104 -1
- package/dist/tools/start-hooks.js.map +1 -1
- package/dist/tools/status-handler.d.ts.map +1 -1
- package/dist/tools/status-handler.js +49 -3
- package/dist/tools/status-handler.js.map +1 -1
- package/dist/tools/sync-ai-configs.d.ts +15 -0
- package/dist/tools/sync-ai-configs.d.ts.map +1 -0
- package/dist/tools/sync-ai-configs.js +86 -0
- package/dist/tools/sync-ai-configs.js.map +1 -0
- package/dist/tools/team-analytics-handler.d.ts +5 -0
- package/dist/tools/team-analytics-handler.d.ts.map +1 -0
- package/dist/tools/team-analytics-handler.js +67 -0
- package/dist/tools/team-analytics-handler.js.map +1 -0
- package/dist/tools/test-reverse-engineer-handler.d.ts +15 -0
- package/dist/tools/test-reverse-engineer-handler.d.ts.map +1 -0
- package/dist/tools/test-reverse-engineer-handler.js +94 -0
- package/dist/tools/test-reverse-engineer-handler.js.map +1 -0
- package/dist/tools/update-status/index.d.ts.map +1 -1
- package/dist/tools/update-status/index.js +135 -20
- package/dist/tools/update-status/index.js.map +1 -1
- package/dist/tools/update-status/response-builder.d.ts +1 -1
- package/dist/tools/update-status/response-builder.d.ts.map +1 -1
- package/dist/tools/update-status/response-builder.js +4 -1
- package/dist/tools/update-status/response-builder.js.map +1 -1
- package/dist/tools/update-status/side-effects.d.ts.map +1 -1
- package/dist/tools/update-status/side-effects.js +71 -0
- package/dist/tools/update-status/side-effects.js.map +1 -1
- package/dist/tools/update-status/transition-guard.d.ts +8 -0
- package/dist/tools/update-status/transition-guard.d.ts.map +1 -1
- package/dist/tools/update-status/transition-guard.js +23 -0
- package/dist/tools/update-status/transition-guard.js.map +1 -1
- package/dist/tools/update-status-actions.d.ts +1 -0
- package/dist/tools/update-status-actions.d.ts.map +1 -1
- package/dist/tools/update-status-actions.js +15 -1
- package/dist/tools/update-status-actions.js.map +1 -1
- package/dist/tools/velocity-handler.d.ts +4 -0
- package/dist/tools/velocity-handler.d.ts.map +1 -0
- package/dist/tools/velocity-handler.js +103 -0
- package/dist/tools/velocity-handler.js.map +1 -0
- package/dist/types/actuals.d.ts +100 -0
- package/dist/types/actuals.d.ts.map +1 -0
- package/dist/types/actuals.js +2 -0
- package/dist/types/actuals.js.map +1 -0
- package/dist/types/agent-frameworks.d.ts +62 -0
- package/dist/types/agent-frameworks.d.ts.map +1 -0
- package/dist/types/agent-frameworks.js +3 -0
- package/dist/types/agent-frameworks.js.map +1 -0
- package/dist/types/agents-md.d.ts +20 -0
- package/dist/types/agents-md.d.ts.map +1 -0
- package/dist/types/agents-md.js +3 -0
- package/dist/types/agents-md.js.map +1 -0
- package/dist/types/ai-integration.d.ts +65 -0
- package/dist/types/ai-integration.d.ts.map +1 -0
- package/dist/types/ai-integration.js +3 -0
- package/dist/types/ai-integration.js.map +1 -0
- package/dist/types/analysis.d.ts +8 -0
- package/dist/types/analysis.d.ts.map +1 -1
- package/dist/types/api-contract.d.ts +154 -0
- package/dist/types/api-contract.d.ts.map +1 -0
- package/dist/types/api-contract.js +3 -0
- package/dist/types/api-contract.js.map +1 -0
- package/dist/types/approval.d.ts +82 -0
- package/dist/types/approval.d.ts.map +1 -0
- package/dist/types/approval.js +3 -0
- package/dist/types/approval.js.map +1 -0
- package/dist/types/batch-script.d.ts +36 -0
- package/dist/types/batch-script.d.ts.map +1 -0
- package/dist/types/batch-script.js +3 -0
- package/dist/types/batch-script.js.map +1 -0
- package/dist/types/ci.d.ts +4 -0
- package/dist/types/ci.d.ts.map +1 -1
- package/dist/types/cline-integration.d.ts +30 -0
- package/dist/types/cline-integration.d.ts.map +1 -0
- package/dist/types/cline-integration.js +3 -0
- package/dist/types/cline-integration.js.map +1 -0
- package/dist/types/codex-integration.d.ts +55 -0
- package/dist/types/codex-integration.d.ts.map +1 -0
- package/dist/types/codex-integration.js +3 -0
- package/dist/types/codex-integration.js.map +1 -0
- package/dist/types/comments.d.ts +68 -0
- package/dist/types/comments.d.ts.map +1 -0
- package/dist/types/comments.js +3 -0
- package/dist/types/comments.js.map +1 -0
- package/dist/types/common/tech-enums.d.ts +1 -1
- package/dist/types/common/tech-enums.d.ts.map +1 -1
- package/dist/types/confluence.d.ts +102 -0
- package/dist/types/confluence.d.ts.map +1 -0
- package/dist/types/confluence.js +3 -0
- package/dist/types/confluence.js.map +1 -0
- package/dist/types/cross-repo-search.d.ts +104 -0
- package/dist/types/cross-repo-search.d.ts.map +1 -0
- package/dist/types/cross-repo-search.js +2 -0
- package/dist/types/cross-repo-search.js.map +1 -0
- package/dist/types/desktop-notification.d.ts +38 -0
- package/dist/types/desktop-notification.d.ts.map +1 -0
- package/dist/types/desktop-notification.js +3 -0
- package/dist/types/desktop-notification.js.map +1 -0
- package/dist/types/domain-criteria.d.ts +62 -0
- package/dist/types/domain-criteria.d.ts.map +1 -0
- package/dist/types/domain-criteria.js +3 -0
- package/dist/types/domain-criteria.js.map +1 -0
- package/dist/types/email-digest.d.ts +119 -0
- package/dist/types/email-digest.d.ts.map +1 -0
- package/dist/types/email-digest.js +3 -0
- package/dist/types/email-digest.js.map +1 -0
- package/dist/types/execution.d.ts +9 -0
- package/dist/types/execution.d.ts.map +1 -1
- package/dist/types/facilitator.d.ts +67 -0
- package/dist/types/facilitator.d.ts.map +1 -1
- package/dist/types/file-hooks.d.ts +7 -0
- package/dist/types/file-hooks.d.ts.map +1 -1
- package/dist/types/file-hooks.js +0 -1
- package/dist/types/file-hooks.js.map +1 -1
- package/dist/types/gemini-integration.d.ts +40 -0
- package/dist/types/gemini-integration.d.ts.map +1 -0
- package/dist/types/gemini-integration.js +3 -0
- package/dist/types/gemini-integration.js.map +1 -0
- package/dist/types/git.d.ts +12 -0
- package/dist/types/git.d.ts.map +1 -1
- package/dist/types/github-copilot-integration.d.ts +30 -0
- package/dist/types/github-copilot-integration.d.ts.map +1 -0
- package/dist/types/github-copilot-integration.js +3 -0
- package/dist/types/github-copilot-integration.js.map +1 -0
- package/dist/types/hooks-advanced.d.ts +34 -0
- package/dist/types/hooks-advanced.d.ts.map +1 -0
- package/dist/types/hooks-advanced.js +3 -0
- package/dist/types/hooks-advanced.js.map +1 -0
- package/dist/types/hooks.d.ts +77 -0
- package/dist/types/hooks.d.ts.map +1 -1
- package/dist/types/ide.d.ts +1 -1
- package/dist/types/ide.d.ts.map +1 -1
- package/dist/types/import-spec.d.ts +123 -0
- package/dist/types/import-spec.d.ts.map +1 -0
- package/dist/types/import-spec.js +3 -0
- package/dist/types/import-spec.js.map +1 -0
- package/dist/types/index.d.ts +30 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +30 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/kiro-integration.d.ts +44 -0
- package/dist/types/kiro-integration.d.ts.map +1 -0
- package/dist/types/kiro-integration.js +3 -0
- package/dist/types/kiro-integration.js.map +1 -0
- package/dist/types/model-routing.d.ts +16 -0
- package/dist/types/model-routing.d.ts.map +1 -1
- package/dist/types/outbound-webhook.d.ts +51 -0
- package/dist/types/outbound-webhook.d.ts.map +1 -0
- package/dist/types/outbound-webhook.js +3 -0
- package/dist/types/outbound-webhook.js.map +1 -0
- package/dist/types/performance-analysis.d.ts +33 -0
- package/dist/types/performance-analysis.d.ts.map +1 -0
- package/dist/types/performance-analysis.js +3 -0
- package/dist/types/performance-analysis.js.map +1 -0
- package/dist/types/project/planu-config.d.ts +6 -0
- package/dist/types/project/planu-config.d.ts.map +1 -1
- package/dist/types/registry-publishers.d.ts +63 -0
- package/dist/types/registry-publishers.d.ts.map +1 -0
- package/dist/types/registry-publishers.js +4 -0
- package/dist/types/registry-publishers.js.map +1 -0
- package/dist/types/search.d.ts +49 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +3 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/session.d.ts +2 -0
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/slack.d.ts +41 -0
- package/dist/types/slack.d.ts.map +1 -0
- package/dist/types/slack.js +3 -0
- package/dist/types/slack.js.map +1 -0
- package/dist/types/spec/inputs.d.ts +46 -2
- package/dist/types/spec/inputs.d.ts.map +1 -1
- package/dist/types/spec-export.d.ts +18 -0
- package/dist/types/spec-export.d.ts.map +1 -0
- package/dist/types/spec-export.js +3 -0
- package/dist/types/spec-export.js.map +1 -0
- package/dist/types/spec-lock.d.ts +42 -0
- package/dist/types/spec-lock.d.ts.map +1 -0
- package/dist/types/spec-lock.js +3 -0
- package/dist/types/spec-lock.js.map +1 -0
- package/dist/types/spec-versioning.d.ts +35 -0
- package/dist/types/spec-versioning.d.ts.map +1 -1
- package/dist/types/stack/recommend.d.ts +1 -0
- package/dist/types/stack/recommend.d.ts.map +1 -1
- package/dist/types/status.d.ts +7 -0
- package/dist/types/status.d.ts.map +1 -1
- package/dist/types/team-analytics.d.ts +52 -0
- package/dist/types/team-analytics.d.ts.map +1 -0
- package/dist/types/team-analytics.js +3 -0
- package/dist/types/team-analytics.js.map +1 -0
- package/dist/types/team-planner.d.ts +18 -0
- package/dist/types/team-planner.d.ts.map +1 -1
- package/dist/types/telemetry.d.ts +1 -1
- package/dist/types/telemetry.d.ts.map +1 -1
- package/dist/types/test-reverse-engineer.d.ts +32 -0
- package/dist/types/test-reverse-engineer.d.ts.map +1 -0
- package/dist/types/test-reverse-engineer.js +3 -0
- package/dist/types/test-reverse-engineer.js.map +1 -0
- package/dist/types/velocity.d.ts +147 -0
- package/dist/types/velocity.d.ts.map +1 -0
- package/dist/types/velocity.js +4 -0
- package/dist/types/velocity.js.map +1 -0
- package/dist/types/workers.d.ts +1 -1
- package/dist/types/workers.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/config/domain-best-practices.json +413 -0
- package/src/config/ide-registry.json +25 -0
- package/src/config/license-plans.json +61 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nfr-profile-detector.js","sourceRoot":"","sources":["../../src/engine/nfr-profile-detector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"nfr-profile-detector.js","sourceRoot":"","sources":["../../src/engine/nfr-profile-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OutboundWebhookPayload, OutboundWebhookEventType, OutboundWebhookConfig, OutboundWebhookDelivery } from '../types/index.js';
|
|
2
|
+
export declare function dispatchToWebhooks(webhooks: readonly OutboundWebhookConfig[], payload: OutboundWebhookPayload, onDelivery: (delivery: OutboundWebhookDelivery) => Promise<void>): Promise<void>;
|
|
3
|
+
export declare function buildSpecLifecyclePayload(event: OutboundWebhookEventType, specId: string, specTitle: string, status: string, projectPath: string): OutboundWebhookPayload;
|
|
4
|
+
//# sourceMappingURL=outbound-webhook-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound-webhook-dispatcher.d.ts","sourceRoot":"","sources":["../../src/engine/outbound-webhook-dispatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AA6F3B,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,EAC1C,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/D,OAAO,CAAC,IAAI,CAAC,CAQf;AAMD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,wBAAwB,EAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,sBAAsB,CASxB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// engine/outbound-webhook-dispatcher.ts — Pure HTTP delivery engine with HMAC + retry (SPEC-281)
|
|
2
|
+
// This module has NO storage imports — dependency injection via callbacks.
|
|
3
|
+
import { createHmac } from 'node:crypto';
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// HMAC signature
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
function signPayload(secret, body) {
|
|
8
|
+
return `sha256=${createHmac('sha256', secret).update(body).digest('hex')}`;
|
|
9
|
+
}
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Single HTTP attempt
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
async function attemptDelivery(url, body, signature) {
|
|
14
|
+
const start = Date.now();
|
|
15
|
+
const controller = new AbortController();
|
|
16
|
+
const timeout = setTimeout(() => {
|
|
17
|
+
controller.abort();
|
|
18
|
+
}, 10_000);
|
|
19
|
+
try {
|
|
20
|
+
const res = await fetch(url, {
|
|
21
|
+
method: 'POST',
|
|
22
|
+
headers: {
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
'X-Planu-Signature': signature,
|
|
25
|
+
'User-Agent': 'Planu-Webhook/1.0',
|
|
26
|
+
},
|
|
27
|
+
body,
|
|
28
|
+
signal: controller.signal,
|
|
29
|
+
});
|
|
30
|
+
clearTimeout(timeout);
|
|
31
|
+
return { statusCode: res.status, latencyMs: Date.now() - start, success: res.ok };
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
clearTimeout(timeout);
|
|
35
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
36
|
+
return { statusCode: 0, latencyMs: Date.now() - start, success: false, error: message };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
// Retry logic: 3 attempts with exponential backoff (1s, 5s, 30s)
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
const RETRY_DELAYS_MS = [1_000, 5_000, 30_000];
|
|
43
|
+
async function deliverWithRetry(webhook, body, payload, onDelivery) {
|
|
44
|
+
let lastResult = null;
|
|
45
|
+
const signature = signPayload(webhook.secret, body);
|
|
46
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
47
|
+
if (attempt > 0) {
|
|
48
|
+
const delay = RETRY_DELAYS_MS[attempt - 1] ?? 1_000;
|
|
49
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
50
|
+
}
|
|
51
|
+
lastResult = await attemptDelivery(webhook.url, body, signature);
|
|
52
|
+
if (lastResult.success) {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (lastResult !== null) {
|
|
57
|
+
const deliveryRecord = {
|
|
58
|
+
webhookId: webhook.id,
|
|
59
|
+
deliveredAt: new Date().toISOString(),
|
|
60
|
+
event: payload.event,
|
|
61
|
+
statusCode: lastResult.statusCode,
|
|
62
|
+
latencyMs: lastResult.latencyMs,
|
|
63
|
+
success: lastResult.success,
|
|
64
|
+
...(lastResult.error !== undefined ? { error: lastResult.error } : {}),
|
|
65
|
+
};
|
|
66
|
+
await onDelivery(deliveryRecord).catch(() => {
|
|
67
|
+
/* best-effort — never throw */
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// Core dispatch (pure — no storage deps)
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
export async function dispatchToWebhooks(webhooks, payload, onDelivery) {
|
|
75
|
+
if (webhooks.length === 0) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const body = JSON.stringify(payload);
|
|
79
|
+
await Promise.allSettled(webhooks.map((webhook) => deliverWithRetry(webhook, body, payload, onDelivery)));
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Helper to build spec lifecycle payloads
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
export function buildSpecLifecyclePayload(event, specId, specTitle, status, projectPath) {
|
|
85
|
+
return {
|
|
86
|
+
event,
|
|
87
|
+
specId,
|
|
88
|
+
specTitle,
|
|
89
|
+
status,
|
|
90
|
+
timestamp: new Date().toISOString(),
|
|
91
|
+
projectPath,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=outbound-webhook-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbound-webhook-dispatcher.js","sourceRoot":"","sources":["../../src/engine/outbound-webhook-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PerfRisk, PerfOverallRisk, PerformanceAnalysisResult, PerfRiskPattern, Spec } from '../types/index.js';
|
|
2
|
+
export declare const RISK_PATTERNS: PerfRiskPattern[];
|
|
3
|
+
/**
|
|
4
|
+
* Analyze text against the risk patterns and return all detected risks.
|
|
5
|
+
* Each pattern is checked independently; negate keywords suppress a match.
|
|
6
|
+
*/
|
|
7
|
+
export declare function analyzeText(text: string, patterns: PerfRiskPattern[]): PerfRisk[];
|
|
8
|
+
/**
|
|
9
|
+
* Compute overall risk level from a list of detected risks.
|
|
10
|
+
* 'high' if any high-severity, 'medium' if any medium, 'low' if any low, 'none' if empty.
|
|
11
|
+
*/
|
|
12
|
+
export declare function computeOverallRisk(risks: PerfRisk[]): PerfOverallRisk;
|
|
13
|
+
/**
|
|
14
|
+
* Analyze a spec for performance risks.
|
|
15
|
+
* Combines spec title with the raw markdown content for analysis.
|
|
16
|
+
*/
|
|
17
|
+
export declare function analyzeSpecPerformance(spec: Spec, specContent: string): PerformanceAnalysisResult;
|
|
18
|
+
//# sourceMappingURL=performance-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-analyzer.d.ts","sourceRoot":"","sources":["../../src/engine/performance-analyzer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,QAAQ,EAER,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,IAAI,EACL,MAAM,mBAAmB,CAAC;AAM3B,eAAO,MAAM,aAAa,EAAE,eAAe,EA6E1C,CAAC;AAMF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,QAAQ,EAAE,CAwBjF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,eAAe,CAWrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,yBAAyB,CAiCjG"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// engine/performance-analyzer.ts — SPEC-300: Detect performance risks in spec text
|
|
2
|
+
//
|
|
3
|
+
// Analyzes spec content for common performance anti-patterns using keyword matching.
|
|
4
|
+
// Detection is intentionally conservative: negate keywords prevent false positives.
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Risk pattern definitions
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export const RISK_PATTERNS = [
|
|
9
|
+
{
|
|
10
|
+
category: 'n-plus-one',
|
|
11
|
+
severity: 'high',
|
|
12
|
+
triggerKeywords: [
|
|
13
|
+
'for each',
|
|
14
|
+
'per user',
|
|
15
|
+
'per item',
|
|
16
|
+
'loop through',
|
|
17
|
+
'every record',
|
|
18
|
+
'for every',
|
|
19
|
+
'iterate over all',
|
|
20
|
+
],
|
|
21
|
+
negateIfPresent: ['batch', 'bulk', 'single query'],
|
|
22
|
+
description: 'Spec implies iterating over records with per-record DB queries, creating N+1 query risk.',
|
|
23
|
+
recommendation: 'Use batch/bulk queries or eager loading to fetch related data in a single query.',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
category: 'large-data',
|
|
27
|
+
severity: 'high',
|
|
28
|
+
triggerKeywords: [
|
|
29
|
+
'import all',
|
|
30
|
+
'export all',
|
|
31
|
+
'bulk import',
|
|
32
|
+
'migrate all',
|
|
33
|
+
'all records',
|
|
34
|
+
'full table',
|
|
35
|
+
'entire dataset',
|
|
36
|
+
],
|
|
37
|
+
negateIfPresent: ['paginated', 'chunked', 'streaming'],
|
|
38
|
+
description: 'Spec involves loading or transferring large volumes of data without chunking or streaming.',
|
|
39
|
+
recommendation: 'Process data in paginated chunks or use streaming to avoid memory exhaustion and timeouts.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
category: 'missing-pagination',
|
|
43
|
+
severity: 'medium',
|
|
44
|
+
triggerKeywords: ['list all', 'get all', 'fetch all', 'return all', 'show all'],
|
|
45
|
+
negateIfPresent: ['page', 'limit', 'cursor', 'paginate', 'offset'],
|
|
46
|
+
description: 'Spec returns unbounded lists of records without pagination, risking slow responses at scale.',
|
|
47
|
+
recommendation: 'Add page/limit or cursor-based pagination to all list endpoints from the start.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
category: 'missing-cache',
|
|
51
|
+
severity: 'medium',
|
|
52
|
+
triggerKeywords: ['real-time', 'always fresh', 'live data', 'no cache', 'every request'],
|
|
53
|
+
negateIfPresent: ['cache', 'ttl', 'redis', 'memoize', 'cdn'],
|
|
54
|
+
description: 'Spec requires fresh data on every request with no caching strategy, risking high DB load.',
|
|
55
|
+
recommendation: 'Define an appropriate TTL or cache invalidation strategy (Redis, CDN, in-memory).',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
category: 'blocking-ops',
|
|
59
|
+
severity: 'medium',
|
|
60
|
+
triggerKeywords: ['synchronous', 'blocking call', 'wait for response', 'sequential processing'],
|
|
61
|
+
negateIfPresent: ['async', 'queue', 'background job', 'worker', 'non-blocking'],
|
|
62
|
+
description: 'Spec describes synchronous blocking operations that hold threads and degrade throughput.',
|
|
63
|
+
recommendation: 'Move heavy operations to async queues or background workers to keep the request thread free.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
category: 'missing-index',
|
|
67
|
+
severity: 'low',
|
|
68
|
+
triggerKeywords: ['filter by', 'search by', 'sort by', 'query by', 'find by'],
|
|
69
|
+
negateIfPresent: ['indexed', 'index on', 'composite index', 'b-tree'],
|
|
70
|
+
description: 'Spec queries data by fields that may lack database indexes, causing full-table scans.',
|
|
71
|
+
recommendation: 'Add database indexes on all filter/sort/search columns mentioned in acceptance criteria.',
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// Core analysis functions
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
/**
|
|
78
|
+
* Analyze text against the risk patterns and return all detected risks.
|
|
79
|
+
* Each pattern is checked independently; negate keywords suppress a match.
|
|
80
|
+
*/
|
|
81
|
+
export function analyzeText(text, patterns) {
|
|
82
|
+
const lower = text.toLowerCase();
|
|
83
|
+
const risks = [];
|
|
84
|
+
for (const pattern of patterns) {
|
|
85
|
+
const triggered = pattern.triggerKeywords.some((kw) => lower.includes(kw.toLowerCase()));
|
|
86
|
+
if (!triggered) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const negated = (pattern.negateIfPresent ?? []).some((kw) => lower.includes(kw.toLowerCase()));
|
|
90
|
+
if (negated) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
risks.push({
|
|
94
|
+
category: pattern.category,
|
|
95
|
+
severity: pattern.severity,
|
|
96
|
+
description: pattern.description,
|
|
97
|
+
recommendation: pattern.recommendation,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return risks;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Compute overall risk level from a list of detected risks.
|
|
104
|
+
* 'high' if any high-severity, 'medium' if any medium, 'low' if any low, 'none' if empty.
|
|
105
|
+
*/
|
|
106
|
+
export function computeOverallRisk(risks) {
|
|
107
|
+
if (risks.length === 0) {
|
|
108
|
+
return 'none';
|
|
109
|
+
}
|
|
110
|
+
if (risks.some((r) => r.severity === 'high')) {
|
|
111
|
+
return 'high';
|
|
112
|
+
}
|
|
113
|
+
if (risks.some((r) => r.severity === 'medium')) {
|
|
114
|
+
return 'medium';
|
|
115
|
+
}
|
|
116
|
+
return 'low';
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Analyze a spec for performance risks.
|
|
120
|
+
* Combines spec title with the raw markdown content for analysis.
|
|
121
|
+
*/
|
|
122
|
+
export function analyzeSpecPerformance(spec, specContent) {
|
|
123
|
+
const combinedText = `${spec.title} ${specContent}`;
|
|
124
|
+
const risks = analyzeText(combinedText, RISK_PATTERNS);
|
|
125
|
+
// Group by category
|
|
126
|
+
const risksByCategory = {};
|
|
127
|
+
const allCategories = [
|
|
128
|
+
'n-plus-one',
|
|
129
|
+
'large-data',
|
|
130
|
+
'missing-pagination',
|
|
131
|
+
'missing-cache',
|
|
132
|
+
'blocking-ops',
|
|
133
|
+
'missing-index',
|
|
134
|
+
];
|
|
135
|
+
for (const cat of allCategories) {
|
|
136
|
+
risksByCategory[cat] = [];
|
|
137
|
+
}
|
|
138
|
+
for (const risk of risks) {
|
|
139
|
+
risksByCategory[risk.category].push(risk);
|
|
140
|
+
}
|
|
141
|
+
const overallRisk = computeOverallRisk(risks);
|
|
142
|
+
// Deduplicate recommendations
|
|
143
|
+
const recommendations = [...new Set(risks.map((r) => r.recommendation))];
|
|
144
|
+
return {
|
|
145
|
+
specId: spec.id,
|
|
146
|
+
riskCount: risks.length,
|
|
147
|
+
risksByCategory,
|
|
148
|
+
overallRisk,
|
|
149
|
+
recommendations,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=performance-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-analyzer.js","sourceRoot":"","sources":["../../src/engine/performance-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComposioSchema } from '../../types/registry-publishers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a Composio schema from a list of tool names.
|
|
4
|
+
* Each tool gets a basic description derived from its name.
|
|
5
|
+
*
|
|
6
|
+
* @param tools Array of tool names to include in the schema.
|
|
7
|
+
* @returns A ComposioSchema with mapped tool descriptors.
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateComposioSchema(tools: string[]): ComposioSchema;
|
|
10
|
+
/**
|
|
11
|
+
* Writes .composio-schema.json to the given project directory.
|
|
12
|
+
*
|
|
13
|
+
* @param projectPath Absolute path to the project root.
|
|
14
|
+
* @param tools Array of tool names to include.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeComposioSchema(projectPath: string, tools: string[]): void;
|
|
17
|
+
//# sourceMappingURL=composio-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio-publisher.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/composio-publisher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAczE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,CAQtE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAY9E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// engine/registry/composio-publisher.ts — SPEC-273: Composio integration schema publisher
|
|
2
|
+
// Generates .composio-schema.json for composio.dev tool integration platform.
|
|
3
|
+
import { writeFileSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
/** Current schema format version for Composio entries. */
|
|
6
|
+
const COMPOSIO_SCHEMA_VERSION = '1.0';
|
|
7
|
+
/**
|
|
8
|
+
* Converts a tool name (snake_case or kebab-case) into a human-readable description.
|
|
9
|
+
*/
|
|
10
|
+
function toolNameToDescription(name) {
|
|
11
|
+
return name
|
|
12
|
+
.replace(/[-_]/g, ' ')
|
|
13
|
+
.replace(/\b\w/g, (ch) => ch.toUpperCase());
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Generates a Composio schema from a list of tool names.
|
|
17
|
+
* Each tool gets a basic description derived from its name.
|
|
18
|
+
*
|
|
19
|
+
* @param tools Array of tool names to include in the schema.
|
|
20
|
+
* @returns A ComposioSchema with mapped tool descriptors.
|
|
21
|
+
*/
|
|
22
|
+
export function generateComposioSchema(tools) {
|
|
23
|
+
return {
|
|
24
|
+
tools: tools.map((name) => ({
|
|
25
|
+
name,
|
|
26
|
+
description: toolNameToDescription(name),
|
|
27
|
+
})),
|
|
28
|
+
version: COMPOSIO_SCHEMA_VERSION,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Writes .composio-schema.json to the given project directory.
|
|
33
|
+
*
|
|
34
|
+
* @param projectPath Absolute path to the project root.
|
|
35
|
+
* @param tools Array of tool names to include.
|
|
36
|
+
*/
|
|
37
|
+
export function writeComposioSchema(projectPath, tools) {
|
|
38
|
+
const filePath = join(projectPath, '.composio-schema.json');
|
|
39
|
+
const schema = generateComposioSchema(tools);
|
|
40
|
+
const content = JSON.stringify(schema, null, 2) + '\n';
|
|
41
|
+
/* v8 ignore start */
|
|
42
|
+
try {
|
|
43
|
+
writeFileSync(filePath, content, 'utf-8');
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
47
|
+
throw new Error(`Failed to write .composio-schema.json to ${filePath}: ${msg}`, { cause: err });
|
|
48
|
+
}
|
|
49
|
+
/* v8 ignore stop */
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=composio-publisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio-publisher.js","sourceRoot":"","sources":["../../../src/engine/registry/composio-publisher.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,0DAA0D;AAC1D,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,IAAI;SACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAe;IACpD,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI;YACJ,WAAW,EAAE,qBAAqB,CAAC,IAAI,CAAC;SACzC,CAAC,CAAC;QACH,OAAO,EAAE,uBAAuB;KACjC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,KAAe;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,qBAAqB;IACrB,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,oBAAoB;AACtB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { GlamaOptions, GlamaEntry } from '../../types/registry-publishers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a Glama directory entry from the given options.
|
|
4
|
+
* featured and verified default to false — these are set by Glama's team, not by the publisher.
|
|
5
|
+
*
|
|
6
|
+
* @param options Configuration for the Glama entry.
|
|
7
|
+
* @returns A fully populated GlamaEntry.
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateGlamaEntry(options: GlamaOptions): GlamaEntry;
|
|
10
|
+
/**
|
|
11
|
+
* Writes .glama.json to the given project directory.
|
|
12
|
+
*
|
|
13
|
+
* @param projectPath Absolute path to the project root.
|
|
14
|
+
* @param options Glama directory options.
|
|
15
|
+
*/
|
|
16
|
+
export declare function writeGlamaEntry(projectPath: string, options: GlamaOptions): void;
|
|
17
|
+
//# sourceMappingURL=glama-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glama-publisher.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/glama-publisher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEnF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAUpE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAYhF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// engine/registry/glama-publisher.ts — SPEC-273: Glama MCP directory publisher
|
|
2
|
+
// Generates .glama.json for glama.ai/mcp community directory.
|
|
3
|
+
import { writeFileSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Generates a Glama directory entry from the given options.
|
|
7
|
+
* featured and verified default to false — these are set by Glama's team, not by the publisher.
|
|
8
|
+
*
|
|
9
|
+
* @param options Configuration for the Glama entry.
|
|
10
|
+
* @returns A fully populated GlamaEntry.
|
|
11
|
+
*/
|
|
12
|
+
export function generateGlamaEntry(options) {
|
|
13
|
+
return {
|
|
14
|
+
name: options.name,
|
|
15
|
+
description: options.description,
|
|
16
|
+
repository: options.repository,
|
|
17
|
+
tags: options.tags,
|
|
18
|
+
author: options.author,
|
|
19
|
+
featured: false,
|
|
20
|
+
verified: false,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Writes .glama.json to the given project directory.
|
|
25
|
+
*
|
|
26
|
+
* @param projectPath Absolute path to the project root.
|
|
27
|
+
* @param options Glama directory options.
|
|
28
|
+
*/
|
|
29
|
+
export function writeGlamaEntry(projectPath, options) {
|
|
30
|
+
const filePath = join(projectPath, '.glama.json');
|
|
31
|
+
const entry = generateGlamaEntry(options);
|
|
32
|
+
const content = JSON.stringify(entry, null, 2) + '\n';
|
|
33
|
+
/* v8 ignore start */
|
|
34
|
+
try {
|
|
35
|
+
writeFileSync(filePath, content, 'utf-8');
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
39
|
+
throw new Error(`Failed to write .glama.json to ${filePath}: ${msg}`, { cause: err });
|
|
40
|
+
}
|
|
41
|
+
/* v8 ignore stop */
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=glama-publisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glama-publisher.js","sourceRoot":"","sources":["../../../src/engine/registry/glama-publisher.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8DAA8D;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,OAAqB;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,qBAAqB;IACrB,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,oBAAoB;AACtB,CAAC"}
|
|
@@ -3,4 +3,8 @@ export { loadBaseRegistry, loadCustomRegistry, loadRegistry } from './loader.js'
|
|
|
3
3
|
export { detectFrameworks, extractReferences, detectUnknownFrameworks } from './matcher.js';
|
|
4
4
|
export { validateReference, validateReferences, detectStaleEntries } from './validator.js';
|
|
5
5
|
export { buildReport } from './reporter.js';
|
|
6
|
+
export { generateSmitheryYaml, writeSmitheryYaml } from './smithery-generator.js';
|
|
7
|
+
export { generateMcpRegistryEntry, writeMcpRegistryEntry } from './mcp-official-publisher.js';
|
|
8
|
+
export { generateGlamaEntry, writeGlamaEntry } from './glama-publisher.js';
|
|
9
|
+
export { generateComposioSchema, writeComposioSchema } from './composio-publisher.js';
|
|
6
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -5,4 +5,9 @@ export { loadBaseRegistry, loadCustomRegistry, loadRegistry } from './loader.js'
|
|
|
5
5
|
export { detectFrameworks, extractReferences, detectUnknownFrameworks } from './matcher.js';
|
|
6
6
|
export { validateReference, validateReferences, detectStaleEntries } from './validator.js';
|
|
7
7
|
export { buildReport } from './reporter.js';
|
|
8
|
+
// SPEC-273: MCP Registry & Smithery publication publishers
|
|
9
|
+
export { generateSmitheryYaml, writeSmitheryYaml } from './smithery-generator.js';
|
|
10
|
+
export { generateMcpRegistryEntry, writeMcpRegistryEntry } from './mcp-official-publisher.js';
|
|
11
|
+
export { generateGlamaEntry, writeGlamaEntry } from './glama-publisher.js';
|
|
12
|
+
export { generateComposioSchema, writeComposioSchema } from './composio-publisher.js';
|
|
8
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/registry/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,kGAAkG;AAElG,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/registry/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,kGAAkG;AAElG,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,2DAA2D;AAC3D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { McpRegistryOptions, McpRegistryEntry } from '../../types/registry-publishers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates an MCP Official Registry entry object from the given options.
|
|
4
|
+
*
|
|
5
|
+
* @param options Configuration for the MCP registry entry.
|
|
6
|
+
* @returns A fully populated McpRegistryEntry ready for serialization.
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateMcpRegistryEntry(options: McpRegistryOptions): McpRegistryEntry;
|
|
9
|
+
/**
|
|
10
|
+
* Writes mcp-registry-entry.json to the given project directory.
|
|
11
|
+
*
|
|
12
|
+
* @param projectPath Absolute path to the project root.
|
|
13
|
+
* @param options MCP registry options.
|
|
14
|
+
*/
|
|
15
|
+
export declare function writeMcpRegistryEntry(projectPath: string, options: McpRegistryOptions): void;
|
|
16
|
+
//# sourceMappingURL=mcp-official-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-official-publisher.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/mcp-official-publisher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE/F;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,gBAAgB,CAYtF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAY5F"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// engine/registry/mcp-official-publisher.ts — SPEC-273: MCP Official Registry publisher
|
|
2
|
+
// Generates mcp-registry-entry.json for registry.modelcontextprotocol.io (Linux Foundation).
|
|
3
|
+
import { writeFileSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Generates an MCP Official Registry entry object from the given options.
|
|
7
|
+
*
|
|
8
|
+
* @param options Configuration for the MCP registry entry.
|
|
9
|
+
* @returns A fully populated McpRegistryEntry ready for serialization.
|
|
10
|
+
*/
|
|
11
|
+
export function generateMcpRegistryEntry(options) {
|
|
12
|
+
return {
|
|
13
|
+
id: options.id,
|
|
14
|
+
name: options.name,
|
|
15
|
+
description: options.description,
|
|
16
|
+
version: options.version,
|
|
17
|
+
repository: options.repository,
|
|
18
|
+
author: options.author,
|
|
19
|
+
transportTypes: ['stdio'],
|
|
20
|
+
categories: options.categories,
|
|
21
|
+
toolCount: options.tools.length,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Writes mcp-registry-entry.json to the given project directory.
|
|
26
|
+
*
|
|
27
|
+
* @param projectPath Absolute path to the project root.
|
|
28
|
+
* @param options MCP registry options.
|
|
29
|
+
*/
|
|
30
|
+
export function writeMcpRegistryEntry(projectPath, options) {
|
|
31
|
+
const filePath = join(projectPath, 'mcp-registry-entry.json');
|
|
32
|
+
const entry = generateMcpRegistryEntry(options);
|
|
33
|
+
const content = JSON.stringify(entry, null, 2) + '\n';
|
|
34
|
+
/* v8 ignore start */
|
|
35
|
+
try {
|
|
36
|
+
writeFileSync(filePath, content, 'utf-8');
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
40
|
+
throw new Error(`Failed to write mcp-registry-entry.json to ${filePath}: ${msg}`, { cause: err });
|
|
41
|
+
}
|
|
42
|
+
/* v8 ignore stop */
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=mcp-official-publisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-official-publisher.js","sourceRoot":"","sources":["../../../src/engine/registry/mcp-official-publisher.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,6FAA6F;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAA2B;IAClE,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;KAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,OAA2B;IACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,qBAAqB;IACrB,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,oBAAoB;AACtB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SmitheryOptions } from '../../types/registry-publishers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a smithery.yaml string from the given options.
|
|
4
|
+
*
|
|
5
|
+
* @param options Configuration for the Smithery registry entry.
|
|
6
|
+
* @returns YAML string suitable for writing to disk.
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateSmitheryYaml(options: SmitheryOptions): string;
|
|
9
|
+
/**
|
|
10
|
+
* Writes smithery.yaml to the given project directory.
|
|
11
|
+
*
|
|
12
|
+
* @param projectPath Absolute path to the project root.
|
|
13
|
+
* @param options Smithery registry options.
|
|
14
|
+
*/
|
|
15
|
+
export declare function writeSmitheryYaml(projectPath: string, options: SmitheryOptions): void;
|
|
16
|
+
//# sourceMappingURL=smithery-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smithery-generator.d.ts","sourceRoot":"","sources":["../../../src/engine/registry/smithery-generator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAoB1E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CA6BrE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAWrF"}
|