@shrkcrft/mcp-server 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +43 -0
- package/dist/resources/build-resource-list.d.ts +14 -0
- package/dist/resources/build-resource-list.d.ts.map +1 -0
- package/dist/resources/build-resource-list.js +56 -0
- package/dist/resources/index.d.ts +4 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +3 -0
- package/dist/resources/read-resource.d.ts +16 -0
- package/dist/resources/read-resource.d.ts.map +1 -0
- package/dist/resources/read-resource.js +97 -0
- package/dist/resources/resource-uris.d.ts +14 -0
- package/dist/resources/resource-uris.d.ts.map +1 -0
- package/dist/resources/resource-uris.js +38 -0
- package/dist/server/create-mcp-server.d.ts +55 -0
- package/dist/server/create-mcp-server.d.ts.map +1 -0
- package/dist/server/create-mcp-server.js +209 -0
- package/dist/server/http-transport.d.ts +29 -0
- package/dist/server/http-transport.d.ts.map +1 -0
- package/dist/server/http-transport.js +75 -0
- package/dist/server/mcp-server-config.d.ts +10 -0
- package/dist/server/mcp-server-config.d.ts.map +1 -0
- package/dist/server/mcp-server-config.js +3 -0
- package/dist/server/sharkcraft-watcher.d.ts +18 -0
- package/dist/server/sharkcraft-watcher.d.ts.map +1 -0
- package/dist/server/sharkcraft-watcher.js +60 -0
- package/dist/server/tool-definition.d.ts +56 -0
- package/dist/server/tool-definition.d.ts.map +1 -0
- package/dist/server/tool-definition.js +1 -0
- package/dist/server/tool-input-validators.d.ts +18 -0
- package/dist/server/tool-input-validators.d.ts.map +1 -0
- package/dist/server/tool-input-validators.js +115 -0
- package/dist/tools/acceptance-replay.tool.d.ts +3 -0
- package/dist/tools/acceptance-replay.tool.d.ts.map +1 -0
- package/dist/tools/acceptance-replay.tool.js +53 -0
- package/dist/tools/adoption-checkpoint.tool.d.ts +3 -0
- package/dist/tools/adoption-checkpoint.tool.d.ts.map +1 -0
- package/dist/tools/adoption-checkpoint.tool.js +49 -0
- package/dist/tools/agent-brief-chunks.tool.d.ts +6 -0
- package/dist/tools/agent-brief-chunks.tool.d.ts.map +1 -0
- package/dist/tools/agent-brief-chunks.tool.js +326 -0
- package/dist/tools/agent-brief.tool.d.ts +3 -0
- package/dist/tools/agent-brief.tool.d.ts.map +1 -0
- package/dist/tools/agent-brief.tool.js +44 -0
- package/dist/tools/all-tools.d.ts +3 -0
- package/dist/tools/all-tools.d.ts.map +1 -0
- package/dist/tools/all-tools.js +403 -0
- package/dist/tools/architecture-map.tool.d.ts +3 -0
- package/dist/tools/architecture-map.tool.d.ts.map +1 -0
- package/dist/tools/architecture-map.tool.js +22 -0
- package/dist/tools/area-explore.tool.d.ts +3 -0
- package/dist/tools/area-explore.tool.d.ts.map +1 -0
- package/dist/tools/area-explore.tool.js +32 -0
- package/dist/tools/area-map.tool.d.ts +3 -0
- package/dist/tools/area-map.tool.d.ts.map +1 -0
- package/dist/tools/area-map.tool.js +9 -0
- package/dist/tools/bundle-diff.tool.d.ts +3 -0
- package/dist/tools/bundle-diff.tool.d.ts.map +1 -0
- package/dist/tools/bundle-diff.tool.js +37 -0
- package/dist/tools/bundle-replay.tool.d.ts +3 -0
- package/dist/tools/bundle-replay.tool.d.ts.map +1 -0
- package/dist/tools/bundle-replay.tool.js +19 -0
- package/dist/tools/change-intent.tool.d.ts +3 -0
- package/dist/tools/change-intent.tool.d.ts.map +1 -0
- package/dist/tools/change-intent.tool.js +18 -0
- package/dist/tools/check-boundaries.tool.d.ts +3 -0
- package/dist/tools/check-boundaries.tool.d.ts.map +1 -0
- package/dist/tools/check-boundaries.tool.js +37 -0
- package/dist/tools/ci-permissions-fix.tool.d.ts +3 -0
- package/dist/tools/ci-permissions-fix.tool.d.ts.map +1 -0
- package/dist/tools/ci-permissions-fix.tool.js +32 -0
- package/dist/tools/ci-permissions.tool.d.ts +3 -0
- package/dist/tools/ci-permissions.tool.d.ts.map +1 -0
- package/dist/tools/ci-permissions.tool.js +26 -0
- package/dist/tools/ci-scaffold-preview.tool.d.ts +3 -0
- package/dist/tools/ci-scaffold-preview.tool.d.ts.map +1 -0
- package/dist/tools/ci-scaffold-preview.tool.js +63 -0
- package/dist/tools/command-catalog.tool.d.ts +27 -0
- package/dist/tools/command-catalog.tool.d.ts.map +1 -0
- package/dist/tools/command-catalog.tool.js +147 -0
- package/dist/tools/construct-adoption-diff.tool.d.ts +3 -0
- package/dist/tools/construct-adoption-diff.tool.d.ts.map +1 -0
- package/dist/tools/construct-adoption-diff.tool.js +26 -0
- package/dist/tools/construct-adoption.tool.d.ts +4 -0
- package/dist/tools/construct-adoption.tool.d.ts.map +1 -0
- package/dist/tools/construct-adoption.tool.js +37 -0
- package/dist/tools/construct-inference.tool.d.ts +3 -0
- package/dist/tools/construct-inference.tool.d.ts.map +1 -0
- package/dist/tools/construct-inference.tool.js +26 -0
- package/dist/tools/constructs.tool.d.ts +7 -0
- package/dist/tools/constructs.tool.d.ts.map +1 -0
- package/dist/tools/constructs.tool.js +79 -0
- package/dist/tools/create-generation-plan.tool.d.ts +3 -0
- package/dist/tools/create-generation-plan.tool.d.ts.map +1 -0
- package/dist/tools/create-generation-plan.tool.js +48 -0
- package/dist/tools/create-pipeline-plan.tool.d.ts +3 -0
- package/dist/tools/create-pipeline-plan.tool.d.ts.map +1 -0
- package/dist/tools/create-pipeline-plan.tool.js +41 -0
- package/dist/tools/dashboard-summary.tool.d.ts +3 -0
- package/dist/tools/dashboard-summary.tool.d.ts.map +1 -0
- package/dist/tools/dashboard-summary.tool.js +182 -0
- package/dist/tools/dev-session.tool.d.ts +14 -0
- package/dist/tools/dev-session.tool.d.ts.map +1 -0
- package/dist/tools/dev-session.tool.js +167 -0
- package/dist/tools/diagnostics.tool.d.ts +4 -0
- package/dist/tools/diagnostics.tool.d.ts.map +1 -0
- package/dist/tools/diagnostics.tool.js +40 -0
- package/dist/tools/docs-check.tool.d.ts +4 -0
- package/dist/tools/docs-check.tool.d.ts.map +1 -0
- package/dist/tools/docs-check.tool.js +17 -0
- package/dist/tools/doctor-packs.tool.d.ts +3 -0
- package/dist/tools/doctor-packs.tool.d.ts.map +1 -0
- package/dist/tools/doctor-packs.tool.js +30 -0
- package/dist/tools/explain-generation-target.tool.d.ts +3 -0
- package/dist/tools/explain-generation-target.tool.d.ts.map +1 -0
- package/dist/tools/explain-generation-target.tool.js +49 -0
- package/dist/tools/feature-bundle.tool.d.ts +4 -0
- package/dist/tools/feature-bundle.tool.d.ts.map +1 -0
- package/dist/tools/feature-bundle.tool.js +36 -0
- package/dist/tools/get-action-hints.tool.d.ts +3 -0
- package/dist/tools/get-action-hints.tool.d.ts.map +1 -0
- package/dist/tools/get-action-hints.tool.js +43 -0
- package/dist/tools/get-agent-instructions.tool.d.ts +3 -0
- package/dist/tools/get-agent-instructions.tool.d.ts.map +1 -0
- package/dist/tools/get-agent-instructions.tool.js +9 -0
- package/dist/tools/get-ai-readiness-report.tool.d.ts +3 -0
- package/dist/tools/get-ai-readiness-report.tool.d.ts.map +1 -0
- package/dist/tools/get-ai-readiness-report.tool.js +10 -0
- package/dist/tools/get-architecture-constraints.tool.d.ts +3 -0
- package/dist/tools/get-architecture-constraints.tool.d.ts.map +1 -0
- package/dist/tools/get-architecture-constraints.tool.js +20 -0
- package/dist/tools/get-boundary-rule.tool.d.ts +3 -0
- package/dist/tools/get-boundary-rule.tool.d.ts.map +1 -0
- package/dist/tools/get-boundary-rule.tool.js +22 -0
- package/dist/tools/get-coverage-report.tool.d.ts +3 -0
- package/dist/tools/get-coverage-report.tool.d.ts.map +1 -0
- package/dist/tools/get-coverage-report.tool.js +9 -0
- package/dist/tools/get-current-tasks.tool.d.ts +3 -0
- package/dist/tools/get-current-tasks.tool.d.ts.map +1 -0
- package/dist/tools/get-current-tasks.tool.js +19 -0
- package/dist/tools/get-drift-report.tool.d.ts +3 -0
- package/dist/tools/get-drift-report.tool.d.ts.map +1 -0
- package/dist/tools/get-drift-report.tool.js +16 -0
- package/dist/tools/get-graph-node.tool.d.ts +3 -0
- package/dist/tools/get-graph-node.tool.d.ts.map +1 -0
- package/dist/tools/get-graph-node.tool.js +23 -0
- package/dist/tools/get-import-graph-summary.tool.d.ts +3 -0
- package/dist/tools/get-import-graph-summary.tool.d.ts.map +1 -0
- package/dist/tools/get-import-graph-summary.tool.js +10 -0
- package/dist/tools/get-knowledge-graph.tool.d.ts +3 -0
- package/dist/tools/get-knowledge-graph.tool.d.ts.map +1 -0
- package/dist/tools/get-knowledge-graph.tool.js +10 -0
- package/dist/tools/get-knowledge.tool.d.ts +3 -0
- package/dist/tools/get-knowledge.tool.d.ts.map +1 -0
- package/dist/tools/get-knowledge.tool.js +18 -0
- package/dist/tools/get-pack.tool.d.ts +3 -0
- package/dist/tools/get-pack.tool.d.ts.map +1 -0
- package/dist/tools/get-pack.tool.js +33 -0
- package/dist/tools/get-path-convention.tool.d.ts +3 -0
- package/dist/tools/get-path-convention.tool.d.ts.map +1 -0
- package/dist/tools/get-path-convention.tool.js +17 -0
- package/dist/tools/get-pipeline-context.tool.d.ts +3 -0
- package/dist/tools/get-pipeline-context.tool.d.ts.map +1 -0
- package/dist/tools/get-pipeline-context.tool.js +48 -0
- package/dist/tools/get-pipeline.tool.d.ts +3 -0
- package/dist/tools/get-pipeline.tool.d.ts.map +1 -0
- package/dist/tools/get-pipeline.tool.js +17 -0
- package/dist/tools/get-preset.tool.d.ts +3 -0
- package/dist/tools/get-preset.tool.d.ts.map +1 -0
- package/dist/tools/get-preset.tool.js +22 -0
- package/dist/tools/get-project-overview.tool.d.ts +3 -0
- package/dist/tools/get-project-overview.tool.d.ts.map +1 -0
- package/dist/tools/get-project-overview.tool.js +10 -0
- package/dist/tools/get-relevant-context.tool.d.ts +3 -0
- package/dist/tools/get-relevant-context.tool.d.ts.map +1 -0
- package/dist/tools/get-relevant-context.tool.js +55 -0
- package/dist/tools/get-relevant-rules.tool.d.ts +3 -0
- package/dist/tools/get-relevant-rules.tool.d.ts.map +1 -0
- package/dist/tools/get-relevant-rules.tool.js +37 -0
- package/dist/tools/get-repository-commands.tool.d.ts +3 -0
- package/dist/tools/get-repository-commands.tool.d.ts.map +1 -0
- package/dist/tools/get-repository-commands.tool.js +22 -0
- package/dist/tools/get-review-packet.tool.d.ts +3 -0
- package/dist/tools/get-review-packet.tool.d.ts.map +1 -0
- package/dist/tools/get-review-packet.tool.js +26 -0
- package/dist/tools/get-rule.tool.d.ts +3 -0
- package/dist/tools/get-rule.tool.d.ts.map +1 -0
- package/dist/tools/get-rule.tool.js +18 -0
- package/dist/tools/get-security-guidelines.tool.d.ts +3 -0
- package/dist/tools/get-security-guidelines.tool.d.ts.map +1 -0
- package/dist/tools/get-security-guidelines.tool.js +23 -0
- package/dist/tools/get-sessions.tool.d.ts +4 -0
- package/dist/tools/get-sessions.tool.d.ts.map +1 -0
- package/dist/tools/get-sessions.tool.js +41 -0
- package/dist/tools/get-task-packet.tool.d.ts +3 -0
- package/dist/tools/get-task-packet.tool.d.ts.map +1 -0
- package/dist/tools/get-task-packet.tool.js +48 -0
- package/dist/tools/get-template.tool.d.ts +3 -0
- package/dist/tools/get-template.tool.d.ts.map +1 -0
- package/dist/tools/get-template.tool.js +29 -0
- package/dist/tools/get-testing-guidelines.tool.d.ts +3 -0
- package/dist/tools/get-testing-guidelines.tool.d.ts.map +1 -0
- package/dist/tools/get-testing-guidelines.tool.js +22 -0
- package/dist/tools/graph-why.tool.d.ts +3 -0
- package/dist/tools/graph-why.tool.d.ts.map +1 -0
- package/dist/tools/graph-why.tool.js +25 -0
- package/dist/tools/impact-analysis.tool.d.ts +3 -0
- package/dist/tools/impact-analysis.tool.d.ts.map +1 -0
- package/dist/tools/impact-analysis.tool.js +43 -0
- package/dist/tools/import-graph-analysis.tool.d.ts +3 -0
- package/dist/tools/import-graph-analysis.tool.d.ts.map +1 -0
- package/dist/tools/import-graph-analysis.tool.js +9 -0
- package/dist/tools/index.d.ts +10 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +9 -0
- package/dist/tools/inspect-packs.tool.d.ts +3 -0
- package/dist/tools/inspect-packs.tool.d.ts.map +1 -0
- package/dist/tools/inspect-packs.tool.js +31 -0
- package/dist/tools/inspect-sharkcraft-setup.tool.d.ts +3 -0
- package/dist/tools/inspect-sharkcraft-setup.tool.d.ts.map +1 -0
- package/dist/tools/inspect-sharkcraft-setup.tool.js +10 -0
- package/dist/tools/inspect-workspace.tool.d.ts +3 -0
- package/dist/tools/inspect-workspace.tool.d.ts.map +1 -0
- package/dist/tools/inspect-workspace.tool.js +23 -0
- package/dist/tools/install-smoke.tool.d.ts +3 -0
- package/dist/tools/install-smoke.tool.d.ts.map +1 -0
- package/dist/tools/install-smoke.tool.js +15 -0
- package/dist/tools/list-boundary-rules.tool.d.ts +3 -0
- package/dist/tools/list-boundary-rules.tool.d.ts.map +1 -0
- package/dist/tools/list-boundary-rules.tool.js +20 -0
- package/dist/tools/list-knowledge.tool.d.ts +3 -0
- package/dist/tools/list-knowledge.tool.d.ts.map +1 -0
- package/dist/tools/list-knowledge.tool.js +46 -0
- package/dist/tools/list-packs.tool.d.ts +3 -0
- package/dist/tools/list-packs.tool.d.ts.map +1 -0
- package/dist/tools/list-packs.tool.js +19 -0
- package/dist/tools/list-path-conventions.tool.d.ts +3 -0
- package/dist/tools/list-path-conventions.tool.d.ts.map +1 -0
- package/dist/tools/list-path-conventions.tool.js +20 -0
- package/dist/tools/list-pipelines.tool.d.ts +3 -0
- package/dist/tools/list-pipelines.tool.d.ts.map +1 -0
- package/dist/tools/list-pipelines.tool.js +19 -0
- package/dist/tools/list-presets.tool.d.ts +3 -0
- package/dist/tools/list-presets.tool.d.ts.map +1 -0
- package/dist/tools/list-presets.tool.js +26 -0
- package/dist/tools/list-rules.tool.d.ts +3 -0
- package/dist/tools/list-rules.tool.d.ts.map +1 -0
- package/dist/tools/list-rules.tool.js +19 -0
- package/dist/tools/list-templates.tool.d.ts +3 -0
- package/dist/tools/list-templates.tool.d.ts.map +1 -0
- package/dist/tools/list-templates.tool.js +19 -0
- package/dist/tools/onboard-adoption-diff.tool.d.ts +3 -0
- package/dist/tools/onboard-adoption-diff.tool.d.ts.map +1 -0
- package/dist/tools/onboard-adoption-diff.tool.js +29 -0
- package/dist/tools/onboarding.tool.d.ts +7 -0
- package/dist/tools/onboarding.tool.d.ts.map +1 -0
- package/dist/tools/onboarding.tool.js +253 -0
- package/dist/tools/orchestration.tool.d.ts +4 -0
- package/dist/tools/orchestration.tool.d.ts.map +1 -0
- package/dist/tools/orchestration.tool.js +57 -0
- package/dist/tools/ownership.tool.d.ts +4 -0
- package/dist/tools/ownership.tool.d.ts.map +1 -0
- package/dist/tools/ownership.tool.js +31 -0
- package/dist/tools/pack-compat.tool.d.ts +3 -0
- package/dist/tools/pack-compat.tool.d.ts.map +1 -0
- package/dist/tools/pack-compat.tool.js +27 -0
- package/dist/tools/pack-doctor-release.tool.d.ts +3 -0
- package/dist/tools/pack-doctor-release.tool.d.ts.map +1 -0
- package/dist/tools/pack-doctor-release.tool.js +21 -0
- package/dist/tools/pack-release-check.tool.d.ts +3 -0
- package/dist/tools/pack-release-check.tool.d.ts.map +1 -0
- package/dist/tools/pack-release-check.tool.js +17 -0
- package/dist/tools/playbook-script.tool.d.ts +3 -0
- package/dist/tools/playbook-script.tool.d.ts.map +1 -0
- package/dist/tools/playbook-script.tool.js +25 -0
- package/dist/tools/playbooks.tool.d.ts +5 -0
- package/dist/tools/playbooks.tool.d.ts.map +1 -0
- package/dist/tools/playbooks.tool.js +43 -0
- package/dist/tools/policy-report.tool.d.ts +3 -0
- package/dist/tools/policy-report.tool.d.ts.map +1 -0
- package/dist/tools/policy-report.tool.js +10 -0
- package/dist/tools/preview-knowledge-propose.tool.d.ts +3 -0
- package/dist/tools/preview-knowledge-propose.tool.d.ts.map +1 -0
- package/dist/tools/preview-knowledge-propose.tool.js +44 -0
- package/dist/tools/preview-preset-application.tool.d.ts +3 -0
- package/dist/tools/preview-preset-application.tool.d.ts.map +1 -0
- package/dist/tools/preview-preset-application.tool.js +64 -0
- package/dist/tools/quality-baseline-diff.tool.d.ts +3 -0
- package/dist/tools/quality-baseline-diff.tool.d.ts.map +1 -0
- package/dist/tools/quality-baseline-diff.tool.js +18 -0
- package/dist/tools/quality-baseline.tool.d.ts +3 -0
- package/dist/tools/quality-baseline.tool.d.ts.map +1 -0
- package/dist/tools/quality-baseline.tool.js +22 -0
- package/dist/tools/quality-report.tool.d.ts +3 -0
- package/dist/tools/quality-report.tool.d.ts.map +1 -0
- package/dist/tools/quality-report.tool.js +62 -0
- package/dist/tools/r18-extras.tool.d.ts +15 -0
- package/dist/tools/r18-extras.tool.d.ts.map +1 -0
- package/dist/tools/r18-extras.tool.js +209 -0
- package/dist/tools/r19-extras.tool.d.ts +10 -0
- package/dist/tools/r19-extras.tool.d.ts.map +1 -0
- package/dist/tools/r19-extras.tool.js +117 -0
- package/dist/tools/r20-extras.tool.d.ts +4 -0
- package/dist/tools/r20-extras.tool.d.ts.map +1 -0
- package/dist/tools/r20-extras.tool.js +65 -0
- package/dist/tools/r22-extras.tool.d.ts +4 -0
- package/dist/tools/r22-extras.tool.d.ts.map +1 -0
- package/dist/tools/r22-extras.tool.js +42 -0
- package/dist/tools/r23-extras.tool.d.ts +10 -0
- package/dist/tools/r23-extras.tool.d.ts.map +1 -0
- package/dist/tools/r23-extras.tool.js +239 -0
- package/dist/tools/r24-extras.tool.d.ts +9 -0
- package/dist/tools/r24-extras.tool.d.ts.map +1 -0
- package/dist/tools/r24-extras.tool.js +144 -0
- package/dist/tools/r25-extras.tool.d.ts +11 -0
- package/dist/tools/r25-extras.tool.d.ts.map +1 -0
- package/dist/tools/r25-extras.tool.js +186 -0
- package/dist/tools/r26-ingest.tool.d.ts +10 -0
- package/dist/tools/r26-ingest.tool.d.ts.map +1 -0
- package/dist/tools/r26-ingest.tool.js +174 -0
- package/dist/tools/r26-task-context.tool.d.ts +5 -0
- package/dist/tools/r26-task-context.tool.d.ts.map +1 -0
- package/dist/tools/r26-task-context.tool.js +121 -0
- package/dist/tools/r27-polyglot.tool.d.ts +7 -0
- package/dist/tools/r27-polyglot.tool.d.ts.map +1 -0
- package/dist/tools/r27-polyglot.tool.js +139 -0
- package/dist/tools/r28-changed-boundary.tool.d.ts +3 -0
- package/dist/tools/r28-changed-boundary.tool.d.ts.map +1 -0
- package/dist/tools/r28-changed-boundary.tool.js +77 -0
- package/dist/tools/r28-helpers.tool.d.ts +5 -0
- package/dist/tools/r28-helpers.tool.d.ts.map +1 -0
- package/dist/tools/r28-helpers.tool.js +72 -0
- package/dist/tools/r28-pack-author.tool.d.ts +4 -0
- package/dist/tools/r28-pack-author.tool.d.ts.map +1 -0
- package/dist/tools/r28-pack-author.tool.js +67 -0
- package/dist/tools/r28-plugin-lifecycle.tool.d.ts +4 -0
- package/dist/tools/r28-plugin-lifecycle.tool.d.ts.map +1 -0
- package/dist/tools/r28-plugin-lifecycle.tool.js +94 -0
- package/dist/tools/r28-registry-lifecycle.tool.d.ts +3 -0
- package/dist/tools/r28-registry-lifecycle.tool.d.ts.map +1 -0
- package/dist/tools/r28-registry-lifecycle.tool.js +29 -0
- package/dist/tools/r28-runner-policy.tool.d.ts +3 -0
- package/dist/tools/r28-runner-policy.tool.d.ts.map +1 -0
- package/dist/tools/r28-runner-policy.tool.js +16 -0
- package/dist/tools/r29-doctor-suppressions.tool.d.ts +4 -0
- package/dist/tools/r29-doctor-suppressions.tool.d.ts.map +1 -0
- package/dist/tools/r29-doctor-suppressions.tool.js +66 -0
- package/dist/tools/r29-feedback.tool.d.ts +3 -0
- package/dist/tools/r29-feedback.tool.d.ts.map +1 -0
- package/dist/tools/r29-feedback.tool.js +26 -0
- package/dist/tools/r29-knowledge-rename.tool.d.ts +3 -0
- package/dist/tools/r29-knowledge-rename.tool.d.ts.map +1 -0
- package/dist/tools/r29-knowledge-rename.tool.js +51 -0
- package/dist/tools/r29-knowledge-stale.tool.d.ts +4 -0
- package/dist/tools/r29-knowledge-stale.tool.d.ts.map +1 -0
- package/dist/tools/r29-knowledge-stale.tool.js +68 -0
- package/dist/tools/r29-query-resolver.tool.d.ts +4 -0
- package/dist/tools/r29-query-resolver.tool.d.ts.map +1 -0
- package/dist/tools/r29-query-resolver.tool.js +38 -0
- package/dist/tools/r29-template-drift.tool.d.ts +3 -0
- package/dist/tools/r29-template-drift.tool.d.ts.map +1 -0
- package/dist/tools/r29-template-drift.tool.js +29 -0
- package/dist/tools/r30-feedback-rules.tool.d.ts +4 -0
- package/dist/tools/r30-feedback-rules.tool.d.ts.map +1 -0
- package/dist/tools/r30-feedback-rules.tool.js +47 -0
- package/dist/tools/r30-fuzzy-impact.tool.d.ts +3 -0
- package/dist/tools/r30-fuzzy-impact.tool.d.ts.map +1 -0
- package/dist/tools/r30-fuzzy-impact.tool.js +44 -0
- package/dist/tools/r31-changes-pr-ci.tool.d.ts +5 -0
- package/dist/tools/r31-changes-pr-ci.tool.d.ts.map +1 -0
- package/dist/tools/r31-changes-pr-ci.tool.js +82 -0
- package/dist/tools/r31-command-discovery.tool.d.ts +5 -0
- package/dist/tools/r31-command-discovery.tool.d.ts.map +1 -0
- package/dist/tools/r31-command-discovery.tool.js +126 -0
- package/dist/tools/r31-fix-preview.tool.d.ts +4 -0
- package/dist/tools/r31-fix-preview.tool.d.ts.map +1 -0
- package/dist/tools/r31-fix-preview.tool.js +58 -0
- package/dist/tools/r31-ranker-explain.tool.d.ts +4 -0
- package/dist/tools/r31-ranker-explain.tool.d.ts.map +1 -0
- package/dist/tools/r31-ranker-explain.tool.js +69 -0
- package/dist/tools/r31-scaffold-coverage.tool.d.ts +3 -0
- package/dist/tools/r31-scaffold-coverage.tool.d.ts.map +1 -0
- package/dist/tools/r31-scaffold-coverage.tool.js +31 -0
- package/dist/tools/r32-profiles.tool.d.ts +8 -0
- package/dist/tools/r32-profiles.tool.d.ts.map +1 -0
- package/dist/tools/r32-profiles.tool.js +107 -0
- package/dist/tools/r32-project-coupling.tool.d.ts +3 -0
- package/dist/tools/r32-project-coupling.tool.d.ts.map +1 -0
- package/dist/tools/r32-project-coupling.tool.js +38 -0
- package/dist/tools/r33-agent-task-prep.tool.d.ts +3 -0
- package/dist/tools/r33-agent-task-prep.tool.d.ts.map +1 -0
- package/dist/tools/r33-agent-task-prep.tool.js +34 -0
- package/dist/tools/r33-conventions.tool.d.ts +5 -0
- package/dist/tools/r33-conventions.tool.d.ts.map +1 -0
- package/dist/tools/r33-conventions.tool.js +48 -0
- package/dist/tools/r33-dev-cycle-ci-predict.tool.d.ts +4 -0
- package/dist/tools/r33-dev-cycle-ci-predict.tool.d.ts.map +1 -0
- package/dist/tools/r33-dev-cycle-ci-predict.tool.js +44 -0
- package/dist/tools/r33-pack-contributions.tool.d.ts +4 -0
- package/dist/tools/r33-pack-contributions.tool.d.ts.map +1 -0
- package/dist/tools/r33-pack-contributions.tool.js +42 -0
- package/dist/tools/r33-pack-signature.tool.d.ts +3 -0
- package/dist/tools/r33-pack-signature.tool.d.ts.map +1 -0
- package/dist/tools/r33-pack-signature.tool.js +12 -0
- package/dist/tools/r33-routing-helpers.tool.d.ts +6 -0
- package/dist/tools/r33-routing-helpers.tool.d.ts.map +1 -0
- package/dist/tools/r33-routing-helpers.tool.js +63 -0
- package/dist/tools/r33-self-config.tool.d.ts +4 -0
- package/dist/tools/r33-self-config.tool.d.ts.map +1 -0
- package/dist/tools/r33-self-config.tool.js +20 -0
- package/dist/tools/r34-search-unified.tool.d.ts +3 -0
- package/dist/tools/r34-search-unified.tool.d.ts.map +1 -0
- package/dist/tools/r34-search-unified.tool.js +38 -0
- package/dist/tools/r35-registration-hints.tool.d.ts +5 -0
- package/dist/tools/r35-registration-hints.tool.d.ts.map +1 -0
- package/dist/tools/r35-registration-hints.tool.js +69 -0
- package/dist/tools/r57-specs.tool.d.ts +12 -0
- package/dist/tools/r57-specs.tool.d.ts.map +1 -0
- package/dist/tools/r57-specs.tool.js +115 -0
- package/dist/tools/r58-grounding.tool.d.ts +14 -0
- package/dist/tools/r58-grounding.tool.d.ts.map +1 -0
- package/dist/tools/r58-grounding.tool.js +135 -0
- package/dist/tools/recommend-presets.tool.d.ts +3 -0
- package/dist/tools/recommend-presets.tool.d.ts.map +1 -0
- package/dist/tools/recommend-presets.tool.js +31 -0
- package/dist/tools/release-readiness.tool.d.ts +3 -0
- package/dist/tools/release-readiness.tool.d.ts.map +1 -0
- package/dist/tools/release-readiness.tool.js +28 -0
- package/dist/tools/release-smoke.tool.d.ts +3 -0
- package/dist/tools/release-smoke.tool.d.ts.map +1 -0
- package/dist/tools/release-smoke.tool.js +22 -0
- package/dist/tools/render-template-preview.tool.d.ts +3 -0
- package/dist/tools/render-template-preview.tool.d.ts.map +1 -0
- package/dist/tools/render-template-preview.tool.js +40 -0
- package/dist/tools/report-site-preview.tool.d.ts +3 -0
- package/dist/tools/report-site-preview.tool.d.ts.map +1 -0
- package/dist/tools/report-site-preview.tool.js +28 -0
- package/dist/tools/repository-map.tool.d.ts +3 -0
- package/dist/tools/repository-map.tool.d.ts.map +1 -0
- package/dist/tools/repository-map.tool.js +17 -0
- package/dist/tools/repository-stats.tool.d.ts +3 -0
- package/dist/tools/repository-stats.tool.d.ts.map +1 -0
- package/dist/tools/repository-stats.tool.js +28 -0
- package/dist/tools/review-generation-plan.tool.d.ts +3 -0
- package/dist/tools/review-generation-plan.tool.d.ts.map +1 -0
- package/dist/tools/review-generation-plan.tool.js +24 -0
- package/dist/tools/review-packet-v2.tool.d.ts +3 -0
- package/dist/tools/review-packet-v2.tool.d.ts.map +1 -0
- package/dist/tools/review-packet-v2.tool.js +27 -0
- package/dist/tools/run-agent-test.tool.d.ts +4 -0
- package/dist/tools/run-agent-test.tool.d.ts.map +1 -0
- package/dist/tools/run-agent-test.tool.js +28 -0
- package/dist/tools/run-context-test.tool.d.ts +4 -0
- package/dist/tools/run-context-test.tool.d.ts.map +1 -0
- package/dist/tools/run-context-test.tool.js +28 -0
- package/dist/tools/runtime-reports.tool.d.ts +9 -0
- package/dist/tools/runtime-reports.tool.d.ts.map +1 -0
- package/dist/tools/runtime-reports.tool.js +175 -0
- package/dist/tools/safety-audit.tool.d.ts +3 -0
- package/dist/tools/safety-audit.tool.d.ts.map +1 -0
- package/dist/tools/safety-audit.tool.js +42 -0
- package/dist/tools/scaffold-patterns.tool.d.ts +5 -0
- package/dist/tools/scaffold-patterns.tool.d.ts.map +1 -0
- package/dist/tools/scaffold-patterns.tool.js +59 -0
- package/dist/tools/schema-inventory.tool.d.ts +3 -0
- package/dist/tools/schema-inventory.tool.d.ts.map +1 -0
- package/dist/tools/schema-inventory.tool.js +23 -0
- package/dist/tools/search-knowledge.tool.d.ts +3 -0
- package/dist/tools/search-knowledge.tool.d.ts.map +1 -0
- package/dist/tools/search-knowledge.tool.js +42 -0
- package/dist/tools/search-path-conventions.tool.d.ts +3 -0
- package/dist/tools/search-path-conventions.tool.d.ts.map +1 -0
- package/dist/tools/search-path-conventions.tool.js +30 -0
- package/dist/tools/search-templates.tool.d.ts +3 -0
- package/dist/tools/search-templates.tool.d.ts.map +1 -0
- package/dist/tools/search-templates.tool.js +21 -0
- package/dist/tools/search-tuning-explain.tool.d.ts +3 -0
- package/dist/tools/search-tuning-explain.tool.d.ts.map +1 -0
- package/dist/tools/search-tuning-explain.tool.js +17 -0
- package/dist/tools/search-tuning.tool.d.ts +3 -0
- package/dist/tools/search-tuning.tool.d.ts.map +1 -0
- package/dist/tools/search-tuning.tool.js +10 -0
- package/dist/tools/search.tool.d.ts +3 -0
- package/dist/tools/search.tool.d.ts.map +1 -0
- package/dist/tools/search.tool.js +45 -0
- package/dist/tools/self-audit.tool.d.ts +3 -0
- package/dist/tools/self-audit.tool.d.ts.map +1 -0
- package/dist/tools/self-audit.tool.js +28 -0
- package/dist/tools/start-here.tool.d.ts +4 -0
- package/dist/tools/start-here.tool.d.ts.map +1 -0
- package/dist/tools/start-here.tool.js +27 -0
- package/dist/tools/test-impact.tool.d.ts +3 -0
- package/dist/tools/test-impact.tool.d.ts.map +1 -0
- package/dist/tools/test-impact.tool.js +23 -0
- package/package.json +66 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent-contract MCP tools. All read-only.
|
|
3
|
+
*/
|
|
4
|
+
import { buildAgentContract, buildHealingPlanFromCommand, buildHealingPlanFromError, buildHealingPlanFromFile, buildHealingPlanFromReport, buildRepositoryMemory, buildTaskExecutionGraph, loadRepositoryMemory, memoryRiskForTask, simulatePlan, } from '@shrkcrft/inspector';
|
|
5
|
+
export const createAgentContractTool = {
|
|
6
|
+
name: 'create_agent_contract',
|
|
7
|
+
description: 'Build a deterministic agent contract for a task (intent + risk + impact + ownership + boundaries + policies + playbooks). Read-only.',
|
|
8
|
+
inputSchema: {
|
|
9
|
+
type: 'object',
|
|
10
|
+
properties: {
|
|
11
|
+
task: { type: 'string' },
|
|
12
|
+
role: { type: 'string' },
|
|
13
|
+
mode: { type: 'string' },
|
|
14
|
+
files: { type: 'array', items: { type: 'string' } },
|
|
15
|
+
since: { type: 'string' },
|
|
16
|
+
staged: { type: 'boolean' },
|
|
17
|
+
},
|
|
18
|
+
required: ['task'],
|
|
19
|
+
additionalProperties: false,
|
|
20
|
+
},
|
|
21
|
+
async handler(input, ctx) {
|
|
22
|
+
const task = typeof input['task'] === 'string' ? input['task'] : '';
|
|
23
|
+
const role = typeof input['role'] === 'string' ? input['role'] : undefined;
|
|
24
|
+
const mode = typeof input['mode'] === 'string' ? input['mode'] : undefined;
|
|
25
|
+
const since = typeof input['since'] === 'string' ? input['since'] : undefined;
|
|
26
|
+
const staged = input['staged'] === true;
|
|
27
|
+
const files = Array.isArray(input['files'])
|
|
28
|
+
? input['files'].filter((x) => typeof x === 'string')
|
|
29
|
+
: undefined;
|
|
30
|
+
const contract = await buildAgentContract(task, ctx.inspection, {
|
|
31
|
+
...(role ? { role } : {}),
|
|
32
|
+
...(mode ? { mode } : {}),
|
|
33
|
+
...(files ? { files } : {}),
|
|
34
|
+
...(since ? { since } : {}),
|
|
35
|
+
...(staged ? { staged: true } : {}),
|
|
36
|
+
});
|
|
37
|
+
return { data: contract };
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
export const simulatePlanTool = {
|
|
41
|
+
name: 'simulate_plan',
|
|
42
|
+
description: 'Simulate a saved generation plan (v1 or v2): virtual final content, classified operations, boundary/policy/impact gates, apply readiness. Read-only.',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
properties: {
|
|
46
|
+
planPath: { type: 'string' },
|
|
47
|
+
strict: { type: 'boolean' },
|
|
48
|
+
includeBoundaries: { type: 'boolean' },
|
|
49
|
+
includeImpact: { type: 'boolean' },
|
|
50
|
+
includeTests: { type: 'boolean' },
|
|
51
|
+
includePolicies: { type: 'boolean' },
|
|
52
|
+
includeOwnership: { type: 'boolean' },
|
|
53
|
+
includeMemory: { type: 'boolean' },
|
|
54
|
+
},
|
|
55
|
+
required: ['planPath'],
|
|
56
|
+
additionalProperties: false,
|
|
57
|
+
},
|
|
58
|
+
async handler(input, ctx) {
|
|
59
|
+
const planPath = typeof input['planPath'] === 'string' ? input['planPath'] : '';
|
|
60
|
+
if (!planPath) {
|
|
61
|
+
return {
|
|
62
|
+
isError: true,
|
|
63
|
+
error: { code: 'invalid-input', message: 'planPath is required.' },
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const report = await simulatePlan(ctx.inspection, planPath, {
|
|
67
|
+
strict: input['strict'] === true,
|
|
68
|
+
includeBoundaries: input['includeBoundaries'] !== false,
|
|
69
|
+
includeImpact: input['includeImpact'] !== false,
|
|
70
|
+
includeTests: input['includeTests'] !== false,
|
|
71
|
+
includePolicies: input['includePolicies'] !== false,
|
|
72
|
+
includeOwnership: input['includeOwnership'] !== false,
|
|
73
|
+
includeMemory: input['includeMemory'] === true,
|
|
74
|
+
});
|
|
75
|
+
return { data: report };
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
export const getMemoryReportTool = {
|
|
79
|
+
name: 'get_memory_report',
|
|
80
|
+
description: 'Get the local repository memory index (built by `shrk memory build`). Read-only.',
|
|
81
|
+
inputSchema: {
|
|
82
|
+
type: 'object',
|
|
83
|
+
properties: { rebuild: { type: 'boolean' } },
|
|
84
|
+
additionalProperties: false,
|
|
85
|
+
},
|
|
86
|
+
async handler(input, ctx) {
|
|
87
|
+
if (input['rebuild'] === true) {
|
|
88
|
+
const built = await buildRepositoryMemory(ctx.inspection);
|
|
89
|
+
return { data: built };
|
|
90
|
+
}
|
|
91
|
+
const index = loadRepositoryMemory(ctx.inspection.projectRoot);
|
|
92
|
+
if (!index) {
|
|
93
|
+
return {
|
|
94
|
+
isError: true,
|
|
95
|
+
error: {
|
|
96
|
+
code: 'no-memory-index',
|
|
97
|
+
message: 'No memory index found. Run `shrk memory build` first (or call this tool with rebuild=true).',
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return { data: index };
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
export const getMemoryRiskTool = {
|
|
105
|
+
name: 'get_memory_risk',
|
|
106
|
+
description: 'Compute memory-based risk overlap for a task. Read-only.',
|
|
107
|
+
inputSchema: {
|
|
108
|
+
type: 'object',
|
|
109
|
+
properties: { task: { type: 'string' } },
|
|
110
|
+
required: ['task'],
|
|
111
|
+
additionalProperties: false,
|
|
112
|
+
},
|
|
113
|
+
async handler(input, ctx) {
|
|
114
|
+
const task = typeof input['task'] === 'string' ? input['task'] : '';
|
|
115
|
+
const index = loadRepositoryMemory(ctx.inspection.projectRoot);
|
|
116
|
+
return { data: memoryRiskForTask(index, task) };
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
export const listMemoryFilesTool = {
|
|
120
|
+
name: 'list_memory_files',
|
|
121
|
+
description: 'List historically risky files from the local memory index. Read-only.',
|
|
122
|
+
inputSchema: {
|
|
123
|
+
type: 'object',
|
|
124
|
+
properties: { limit: { type: 'number' } },
|
|
125
|
+
additionalProperties: false,
|
|
126
|
+
},
|
|
127
|
+
async handler(input, ctx) {
|
|
128
|
+
const index = loadRepositoryMemory(ctx.inspection.projectRoot);
|
|
129
|
+
if (!index) {
|
|
130
|
+
return {
|
|
131
|
+
isError: true,
|
|
132
|
+
error: {
|
|
133
|
+
code: 'no-memory-index',
|
|
134
|
+
message: 'No memory index found. Run `shrk memory build` first.',
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
const lim = typeof input['limit'] === 'number' ? input['limit'] : 50;
|
|
139
|
+
return { data: index.files.slice(0, lim) };
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
export const getMemoryDiagnosticsTool = {
|
|
143
|
+
name: 'get_memory_diagnostics',
|
|
144
|
+
description: 'List recurring diagnostics from the local memory index. Read-only.',
|
|
145
|
+
inputSchema: {
|
|
146
|
+
type: 'object',
|
|
147
|
+
properties: { limit: { type: 'number' } },
|
|
148
|
+
additionalProperties: false,
|
|
149
|
+
},
|
|
150
|
+
async handler(input, ctx) {
|
|
151
|
+
const index = loadRepositoryMemory(ctx.inspection.projectRoot);
|
|
152
|
+
if (!index) {
|
|
153
|
+
return {
|
|
154
|
+
isError: true,
|
|
155
|
+
error: {
|
|
156
|
+
code: 'no-memory-index',
|
|
157
|
+
message: 'No memory index found. Run `shrk memory build` first.',
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
const lim = typeof input['limit'] === 'number' ? input['limit'] : 50;
|
|
162
|
+
return { data: index.diagnostics.slice(0, lim) };
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
export const createHealingPlanTool = {
|
|
166
|
+
name: 'create_healing_plan',
|
|
167
|
+
description: 'Build a deterministic healing plan from a free-form error string, a log file, a JSON report, or a failed command. Read-only.',
|
|
168
|
+
inputSchema: {
|
|
169
|
+
type: 'object',
|
|
170
|
+
properties: {
|
|
171
|
+
errorText: { type: 'string' },
|
|
172
|
+
filePath: { type: 'string' },
|
|
173
|
+
reportPath: { type: 'string' },
|
|
174
|
+
command: { type: 'string' },
|
|
175
|
+
exitCode: { type: 'number' },
|
|
176
|
+
stderrText: { type: 'string' },
|
|
177
|
+
},
|
|
178
|
+
additionalProperties: false,
|
|
179
|
+
},
|
|
180
|
+
async handler(input) {
|
|
181
|
+
if (typeof input['errorText'] === 'string' && input['errorText'].length > 0) {
|
|
182
|
+
return { data: buildHealingPlanFromError(input['errorText']) };
|
|
183
|
+
}
|
|
184
|
+
if (typeof input['filePath'] === 'string' && input['filePath'].length > 0) {
|
|
185
|
+
return { data: buildHealingPlanFromFile(input['filePath']) };
|
|
186
|
+
}
|
|
187
|
+
if (typeof input['reportPath'] === 'string' && input['reportPath'].length > 0) {
|
|
188
|
+
return { data: buildHealingPlanFromReport(input['reportPath']) };
|
|
189
|
+
}
|
|
190
|
+
if (typeof input['command'] === 'string' && input['command'].length > 0) {
|
|
191
|
+
const cmd = input['command'];
|
|
192
|
+
const code = typeof input['exitCode'] === 'number' ? input['exitCode'] : 1;
|
|
193
|
+
const stderr = typeof input['stderrText'] === 'string' ? input['stderrText'] : '';
|
|
194
|
+
return { data: buildHealingPlanFromCommand(cmd, code, stderr) };
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
isError: true,
|
|
198
|
+
error: {
|
|
199
|
+
code: 'invalid-input',
|
|
200
|
+
message: 'Provide one of: errorText, filePath, reportPath, or command + exitCode + stderrText.',
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
export const createExecutionGraphTool = {
|
|
206
|
+
name: 'create_execution_graph',
|
|
207
|
+
description: 'Build a task execution graph (task → intent → risk → contract → constructs → plans → gates → validation → done). Read-only.',
|
|
208
|
+
inputSchema: {
|
|
209
|
+
type: 'object',
|
|
210
|
+
properties: {
|
|
211
|
+
task: { type: 'string' },
|
|
212
|
+
role: { type: 'string' },
|
|
213
|
+
mode: { type: 'string' },
|
|
214
|
+
files: { type: 'array', items: { type: 'string' } },
|
|
215
|
+
since: { type: 'string' },
|
|
216
|
+
staged: { type: 'boolean' },
|
|
217
|
+
},
|
|
218
|
+
required: ['task'],
|
|
219
|
+
additionalProperties: false,
|
|
220
|
+
},
|
|
221
|
+
async handler(input, ctx) {
|
|
222
|
+
const task = typeof input['task'] === 'string' ? input['task'] : '';
|
|
223
|
+
const role = typeof input['role'] === 'string' ? input['role'] : undefined;
|
|
224
|
+
const mode = typeof input['mode'] === 'string' ? input['mode'] : undefined;
|
|
225
|
+
const since = typeof input['since'] === 'string' ? input['since'] : undefined;
|
|
226
|
+
const staged = input['staged'] === true;
|
|
227
|
+
const files = Array.isArray(input['files'])
|
|
228
|
+
? input['files'].filter((x) => typeof x === 'string')
|
|
229
|
+
: undefined;
|
|
230
|
+
const graph = await buildTaskExecutionGraph(task, ctx.inspection, {
|
|
231
|
+
...(role ? { role } : {}),
|
|
232
|
+
...(mode ? { mode } : {}),
|
|
233
|
+
...(files ? { files } : {}),
|
|
234
|
+
...(since ? { since } : {}),
|
|
235
|
+
...(staged ? { staged: true } : {}),
|
|
236
|
+
});
|
|
237
|
+
return { data: graph };
|
|
238
|
+
},
|
|
239
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IToolDefinition } from '../server/tool-definition.js';
|
|
2
|
+
export declare const getContractStatusTool: IToolDefinition;
|
|
3
|
+
/**
|
|
4
|
+
* MCP preview only — never writes a file. The human runs
|
|
5
|
+
* `shrk contract approve … --output …` to actually persist an approval.
|
|
6
|
+
*/
|
|
7
|
+
export declare const createContractApprovalPreviewTool: IToolDefinition;
|
|
8
|
+
export declare const queryExecutionGraphTool: IToolDefinition;
|
|
9
|
+
//# sourceMappingURL=r24-extras.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"r24-extras.tool.d.ts","sourceRoot":"","sources":["../../src/tools/r24-extras.tool.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAMpE,eAAO,MAAM,qBAAqB,EAAE,eAoCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iCAAiC,EAAE,eAyD/C,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,eAqCrC,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory MCP tools. All read-only.
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
5
|
+
import * as nodePath from 'node:path';
|
|
6
|
+
import { AGENT_CONTRACT_APPROVAL_SCHEMA, buildApproval, buildTaskExecutionGraph, checkAgentContract, computeContractHash, queryExecutionGraph, } from '@shrkcrft/inspector';
|
|
7
|
+
function resolveAgainstInspection(planPath, projectRoot) {
|
|
8
|
+
return nodePath.isAbsolute(planPath) ? planPath : nodePath.resolve(projectRoot, planPath);
|
|
9
|
+
}
|
|
10
|
+
export const getContractStatusTool = {
|
|
11
|
+
name: 'get_contract_status',
|
|
12
|
+
description: 'Validate an agent contract (optionally against a plan + approval). Read-only.',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
contractPath: { type: 'string' },
|
|
17
|
+
planPath: { type: 'string' },
|
|
18
|
+
approvalPath: { type: 'string' },
|
|
19
|
+
},
|
|
20
|
+
required: ['contractPath'],
|
|
21
|
+
additionalProperties: false,
|
|
22
|
+
},
|
|
23
|
+
async handler(input, ctx) {
|
|
24
|
+
const contractPath = typeof input['contractPath'] === 'string' ? input['contractPath'] : '';
|
|
25
|
+
if (!contractPath) {
|
|
26
|
+
return { isError: true, error: { code: 'invalid-input', message: 'contractPath is required.' } };
|
|
27
|
+
}
|
|
28
|
+
const abs = resolveAgainstInspection(contractPath, ctx.inspection.projectRoot);
|
|
29
|
+
if (!existsSync(abs)) {
|
|
30
|
+
return { isError: true, error: { code: 'not-found', message: `Contract not found: ${abs}` } };
|
|
31
|
+
}
|
|
32
|
+
let contract;
|
|
33
|
+
try {
|
|
34
|
+
contract = JSON.parse(readFileSync(abs, 'utf8'));
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
return { isError: true, error: { code: 'invalid-input', message: `Failed to parse contract: ${e.message}` } };
|
|
38
|
+
}
|
|
39
|
+
const planPath = typeof input['planPath'] === 'string' ? input['planPath'] : undefined;
|
|
40
|
+
const approvalPath = typeof input['approvalPath'] === 'string' ? input['approvalPath'] : undefined;
|
|
41
|
+
const report = await checkAgentContract(ctx.inspection, contract, {
|
|
42
|
+
...(planPath ? { planPath: resolveAgainstInspection(planPath, ctx.inspection.projectRoot) } : {}),
|
|
43
|
+
...(approvalPath ? { approvalPath: resolveAgainstInspection(approvalPath, ctx.inspection.projectRoot) } : {}),
|
|
44
|
+
});
|
|
45
|
+
return { data: report };
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* MCP preview only — never writes a file. The human runs
|
|
50
|
+
* `shrk contract approve … --output …` to actually persist an approval.
|
|
51
|
+
*/
|
|
52
|
+
export const createContractApprovalPreviewTool = {
|
|
53
|
+
name: 'create_contract_approval_preview',
|
|
54
|
+
description: 'Preview a contract approval (does NOT write anything). The human runs `shrk contract approve … --output <file>` to persist. Read-only.',
|
|
55
|
+
inputSchema: {
|
|
56
|
+
type: 'object',
|
|
57
|
+
properties: {
|
|
58
|
+
contractPath: { type: 'string' },
|
|
59
|
+
approvedBy: { type: 'string' },
|
|
60
|
+
reason: { type: 'string' },
|
|
61
|
+
approvedGates: { type: 'array', items: { type: 'string' } },
|
|
62
|
+
expiresAt: { type: 'string' },
|
|
63
|
+
},
|
|
64
|
+
required: ['contractPath', 'approvedBy', 'reason'],
|
|
65
|
+
additionalProperties: false,
|
|
66
|
+
},
|
|
67
|
+
async handler(input, ctx) {
|
|
68
|
+
const contractPath = typeof input['contractPath'] === 'string' ? input['contractPath'] : '';
|
|
69
|
+
const approvedBy = typeof input['approvedBy'] === 'string' ? input['approvedBy'] : '';
|
|
70
|
+
const reason = typeof input['reason'] === 'string' ? input['reason'] : '';
|
|
71
|
+
if (!contractPath || !approvedBy || !reason) {
|
|
72
|
+
return { isError: true, error: { code: 'invalid-input', message: 'contractPath, approvedBy, reason are all required.' } };
|
|
73
|
+
}
|
|
74
|
+
const abs = resolveAgainstInspection(contractPath, ctx.inspection.projectRoot);
|
|
75
|
+
if (!existsSync(abs)) {
|
|
76
|
+
return { isError: true, error: { code: 'not-found', message: `Contract not found: ${abs}` } };
|
|
77
|
+
}
|
|
78
|
+
let contract;
|
|
79
|
+
try {
|
|
80
|
+
contract = JSON.parse(readFileSync(abs, 'utf8'));
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
return { isError: true, error: { code: 'invalid-input', message: `Failed to parse contract: ${e.message}` } };
|
|
84
|
+
}
|
|
85
|
+
const hash = computeContractHash(contract);
|
|
86
|
+
const approval = buildApproval({
|
|
87
|
+
contractHash: hash,
|
|
88
|
+
approvedBy,
|
|
89
|
+
reason,
|
|
90
|
+
...(Array.isArray(input['approvedGates'])
|
|
91
|
+
? {
|
|
92
|
+
approvedGates: input['approvedGates'].filter((x) => typeof x === 'string'),
|
|
93
|
+
}
|
|
94
|
+
: {}),
|
|
95
|
+
...(typeof input['expiresAt'] === 'string' ? { expiresAt: input['expiresAt'] } : {}),
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
data: {
|
|
99
|
+
schema: AGENT_CONTRACT_APPROVAL_SCHEMA,
|
|
100
|
+
approvalPreview: approval,
|
|
101
|
+
contractHash: hash,
|
|
102
|
+
nextCommand: `shrk contract approve <contract.json> --by "${approvedBy}" --reason "${reason}" --output <approval.json>`,
|
|
103
|
+
note: 'Preview only — MCP does not write. The human must run the CLI to persist the approval.',
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
export const queryExecutionGraphTool = {
|
|
109
|
+
name: 'query_execution_graph',
|
|
110
|
+
description: 'Query a saved execution graph (by JSON path) or rebuild for a task, then return matching nodes/edges. Supported queries: blocks:done, kind:<x>, edge:<x>, text:<x>. Read-only.',
|
|
111
|
+
inputSchema: {
|
|
112
|
+
type: 'object',
|
|
113
|
+
properties: {
|
|
114
|
+
graphPath: { type: 'string' },
|
|
115
|
+
task: { type: 'string' },
|
|
116
|
+
role: { type: 'string' },
|
|
117
|
+
query: { type: 'string' },
|
|
118
|
+
},
|
|
119
|
+
required: ['query'],
|
|
120
|
+
additionalProperties: false,
|
|
121
|
+
},
|
|
122
|
+
async handler(input, ctx) {
|
|
123
|
+
const query = typeof input['query'] === 'string' ? input['query'] : '';
|
|
124
|
+
if (!query) {
|
|
125
|
+
return { isError: true, error: { code: 'invalid-input', message: 'query is required.' } };
|
|
126
|
+
}
|
|
127
|
+
const graphPath = typeof input['graphPath'] === 'string' ? input['graphPath'] : undefined;
|
|
128
|
+
if (graphPath) {
|
|
129
|
+
const abs = resolveAgainstInspection(graphPath, ctx.inspection.projectRoot);
|
|
130
|
+
if (!existsSync(abs)) {
|
|
131
|
+
return { isError: true, error: { code: 'not-found', message: `Graph not found: ${abs}` } };
|
|
132
|
+
}
|
|
133
|
+
const graph = JSON.parse(readFileSync(abs, 'utf8'));
|
|
134
|
+
return { data: queryExecutionGraph(graph, query) };
|
|
135
|
+
}
|
|
136
|
+
const task = typeof input['task'] === 'string' ? input['task'] : '';
|
|
137
|
+
if (!task) {
|
|
138
|
+
return { isError: true, error: { code: 'invalid-input', message: 'graphPath or task is required.' } };
|
|
139
|
+
}
|
|
140
|
+
const role = typeof input['role'] === 'string' ? input['role'] : undefined;
|
|
141
|
+
const graph = await buildTaskExecutionGraph(task, ctx.inspection, role ? { role } : {});
|
|
142
|
+
return { data: queryExecutionGraph(graph, query) };
|
|
143
|
+
},
|
|
144
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IToolDefinition } from '../server/tool-definition.js';
|
|
2
|
+
export declare const getLanguageProfilesTool: IToolDefinition;
|
|
3
|
+
export declare const getLanguageCommandsTool: IToolDefinition;
|
|
4
|
+
export declare const getPolyglotDependencyGraphTool: IToolDefinition;
|
|
5
|
+
export declare const getPolyglotTestImpactTool: IToolDefinition;
|
|
6
|
+
export declare const getLanguageReportTool: IToolDefinition;
|
|
7
|
+
export declare const getMemoryDiffTool: IToolDefinition;
|
|
8
|
+
export declare const getMemoryDriftTool: IToolDefinition;
|
|
9
|
+
export declare const listContractTemplatesTool: IToolDefinition;
|
|
10
|
+
export declare const getContractTemplateTool: IToolDefinition;
|
|
11
|
+
//# sourceMappingURL=r25-extras.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"r25-extras.tool.d.ts","sourceRoot":"","sources":["../../src/tools/r25-extras.tool.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAMpE,eAAO,MAAM,uBAAuB,EAAE,eAQrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,eAQrC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,eAuB5C,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAoBvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAenC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,eA2C/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eA0BhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,eAOvC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,eAqBrC,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polyglot language MCP tools. All read-only.
|
|
3
|
+
*
|
|
4
|
+
* Adds: language profiles + commands + dependency graph + test impact +
|
|
5
|
+
* language report, memory diff/drift, contract template list/get.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
8
|
+
import * as nodePath from 'node:path';
|
|
9
|
+
import { buildLanguageCommandReport, computePolyglotTestImpact, detectLanguageProfiles, diffMemoryIndex, getContractTemplate, latestMemorySnapshot, listAllContractTemplates, loadMemorySnapshot, loadRepositoryMemory, scanPolyglotDependencies, } from '@shrkcrft/inspector';
|
|
10
|
+
function resolveAgainst(path, root) {
|
|
11
|
+
return nodePath.isAbsolute(path) ? path : nodePath.resolve(root, path);
|
|
12
|
+
}
|
|
13
|
+
export const getLanguageProfilesTool = {
|
|
14
|
+
name: 'get_language_profiles',
|
|
15
|
+
description: 'Detect language profiles (TS/JS/Java/C#/Python/Go/Rust) and return source/test roots, build tools, and likely commands. Read-only.',
|
|
16
|
+
inputSchema: { type: 'object', properties: {}, additionalProperties: false },
|
|
17
|
+
async handler(_input, ctx) {
|
|
18
|
+
return { data: detectLanguageProfiles(ctx.inspection.projectRoot) };
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export const getLanguageCommandsTool = {
|
|
22
|
+
name: 'get_language_commands',
|
|
23
|
+
description: 'Return per-language install/test/typecheck/lint/build commands derived from the detected language profiles. Read-only.',
|
|
24
|
+
inputSchema: { type: 'object', properties: {}, additionalProperties: false },
|
|
25
|
+
async handler(_input, ctx) {
|
|
26
|
+
return { data: buildLanguageCommandReport(ctx.inspection.projectRoot) };
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
export const getPolyglotDependencyGraphTool = {
|
|
30
|
+
name: 'get_polyglot_dependency_graph',
|
|
31
|
+
description: 'Scan Java / C# / Python / Go / Rust imports and return the polyglot dependency graph. Read-only.',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
type: 'object',
|
|
34
|
+
properties: {
|
|
35
|
+
language: { type: 'string', description: 'all | java | csharp | python | go | rust' },
|
|
36
|
+
},
|
|
37
|
+
additionalProperties: false,
|
|
38
|
+
},
|
|
39
|
+
async handler(input, ctx) {
|
|
40
|
+
const langRaw = typeof input['language'] === 'string' ? input['language'].toLowerCase() : 'all';
|
|
41
|
+
const languages = langRaw === 'all'
|
|
42
|
+
? undefined
|
|
43
|
+
: [langRaw];
|
|
44
|
+
return {
|
|
45
|
+
data: scanPolyglotDependencies(ctx.inspection.projectRoot, languages ? { languages } : {}),
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
export const getPolyglotTestImpactTool = {
|
|
50
|
+
name: 'get_polyglot_test_impact',
|
|
51
|
+
description: 'Predict per-language test files impacted by a set of changed source files. Read-only.',
|
|
52
|
+
inputSchema: {
|
|
53
|
+
type: 'object',
|
|
54
|
+
properties: {
|
|
55
|
+
files: { type: 'array', items: { type: 'string' } },
|
|
56
|
+
},
|
|
57
|
+
required: ['files'],
|
|
58
|
+
additionalProperties: false,
|
|
59
|
+
},
|
|
60
|
+
async handler(input, ctx) {
|
|
61
|
+
const files = Array.isArray(input['files'])
|
|
62
|
+
? input['files'].filter((x) => typeof x === 'string')
|
|
63
|
+
: [];
|
|
64
|
+
if (files.length === 0) {
|
|
65
|
+
return { isError: true, error: { code: 'invalid-input', message: 'files[] is required.' } };
|
|
66
|
+
}
|
|
67
|
+
return { data: computePolyglotTestImpact(ctx.inspection.projectRoot, files) };
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
export const getLanguageReportTool = {
|
|
71
|
+
name: 'get_language_report',
|
|
72
|
+
description: 'One-shot polyglot summary: language profiles + commands + dependency graph + missing-tests hints. Read-only.',
|
|
73
|
+
inputSchema: { type: 'object', properties: {}, additionalProperties: false },
|
|
74
|
+
async handler(_input, ctx) {
|
|
75
|
+
const profiles = detectLanguageProfiles(ctx.inspection.projectRoot);
|
|
76
|
+
return {
|
|
77
|
+
data: {
|
|
78
|
+
profiles,
|
|
79
|
+
commands: buildLanguageCommandReport(ctx.inspection.projectRoot, profiles),
|
|
80
|
+
dependencies: scanPolyglotDependencies(ctx.inspection.projectRoot),
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
export const getMemoryDiffTool = {
|
|
86
|
+
name: 'get_memory_diff',
|
|
87
|
+
description: 'Compare two memory snapshots (or one snapshot + the current index). Read-only.',
|
|
88
|
+
inputSchema: {
|
|
89
|
+
type: 'object',
|
|
90
|
+
properties: {
|
|
91
|
+
oldPath: { type: 'string' },
|
|
92
|
+
newPath: { type: 'string' },
|
|
93
|
+
},
|
|
94
|
+
additionalProperties: false,
|
|
95
|
+
},
|
|
96
|
+
async handler(input, ctx) {
|
|
97
|
+
const root = ctx.inspection.projectRoot;
|
|
98
|
+
const oldPath = typeof input['oldPath'] === 'string' ? input['oldPath'] : '';
|
|
99
|
+
if (!oldPath) {
|
|
100
|
+
return { isError: true, error: { code: 'invalid-input', message: 'oldPath is required.' } };
|
|
101
|
+
}
|
|
102
|
+
const absOld = resolveAgainst(oldPath, root);
|
|
103
|
+
if (!existsSync(absOld)) {
|
|
104
|
+
return { isError: true, error: { code: 'not-found', message: `Snapshot not found: ${absOld}` } };
|
|
105
|
+
}
|
|
106
|
+
let before;
|
|
107
|
+
try {
|
|
108
|
+
before = JSON.parse(readFileSync(absOld, 'utf8'));
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
return { isError: true, error: { code: 'invalid-input', message: `Failed to parse snapshot: ${e.message}` } };
|
|
112
|
+
}
|
|
113
|
+
const newPath = typeof input['newPath'] === 'string' ? input['newPath'] : '';
|
|
114
|
+
let after;
|
|
115
|
+
if (newPath) {
|
|
116
|
+
const absNew = resolveAgainst(newPath, root);
|
|
117
|
+
if (!existsSync(absNew)) {
|
|
118
|
+
return { isError: true, error: { code: 'not-found', message: `Snapshot not found: ${absNew}` } };
|
|
119
|
+
}
|
|
120
|
+
after = JSON.parse(readFileSync(absNew, 'utf8'));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
after = loadRepositoryMemory(root);
|
|
124
|
+
if (!after) {
|
|
125
|
+
return { isError: true, error: { code: 'not-found', message: 'No current memory index — run `shrk memory build` first.' } };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return { data: diffMemoryIndex(before, after) };
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
export const getMemoryDriftTool = {
|
|
132
|
+
name: 'get_memory_drift',
|
|
133
|
+
description: 'Compare the current memory index against the latest snapshot under .sharkcraft/memory/history/. Read-only.',
|
|
134
|
+
inputSchema: {
|
|
135
|
+
type: 'object',
|
|
136
|
+
properties: {
|
|
137
|
+
previousPath: { type: 'string' },
|
|
138
|
+
},
|
|
139
|
+
additionalProperties: false,
|
|
140
|
+
},
|
|
141
|
+
async handler(input, ctx) {
|
|
142
|
+
const root = ctx.inspection.projectRoot;
|
|
143
|
+
const current = loadRepositoryMemory(root);
|
|
144
|
+
if (!current) {
|
|
145
|
+
return { isError: true, error: { code: 'not-found', message: 'No current memory index. Run `shrk memory build` first.' } };
|
|
146
|
+
}
|
|
147
|
+
let previous;
|
|
148
|
+
const prevPath = typeof input['previousPath'] === 'string' ? input['previousPath'] : '';
|
|
149
|
+
if (prevPath) {
|
|
150
|
+
previous = loadMemorySnapshot(resolveAgainst(prevPath, root));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
previous = latestMemorySnapshot(root);
|
|
154
|
+
}
|
|
155
|
+
return { data: diffMemoryIndex(previous, current) };
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
export const listContractTemplatesTool = {
|
|
159
|
+
name: 'list_contract_templates',
|
|
160
|
+
description: 'List contract templates (built-ins + pack-contributed). Read-only.',
|
|
161
|
+
inputSchema: { type: 'object', properties: {}, additionalProperties: false },
|
|
162
|
+
async handler(_input, ctx) {
|
|
163
|
+
return { data: await listAllContractTemplates(ctx.inspection) };
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
export const getContractTemplateTool = {
|
|
167
|
+
name: 'get_contract_template',
|
|
168
|
+
description: 'Get a single contract template by id (built-in + pack-contributed). Read-only.',
|
|
169
|
+
inputSchema: {
|
|
170
|
+
type: 'object',
|
|
171
|
+
properties: { id: { type: 'string' } },
|
|
172
|
+
required: ['id'],
|
|
173
|
+
additionalProperties: false,
|
|
174
|
+
},
|
|
175
|
+
async handler(input, ctx) {
|
|
176
|
+
const id = typeof input['id'] === 'string' ? input['id'] : '';
|
|
177
|
+
if (!id) {
|
|
178
|
+
return { isError: true, error: { code: 'invalid-input', message: 'id is required.' } };
|
|
179
|
+
}
|
|
180
|
+
const tpl = getContractTemplate(id) ?? (await listAllContractTemplates(ctx.inspection)).find((t) => t.id === id) ?? null;
|
|
181
|
+
if (!tpl) {
|
|
182
|
+
return { isError: true, error: { code: 'not-found', message: `Unknown template id: ${id}` } };
|
|
183
|
+
}
|
|
184
|
+
return { data: tpl };
|
|
185
|
+
},
|
|
186
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IToolDefinition } from '../server/tool-definition.js';
|
|
2
|
+
export declare const createRepositoryIngestionPlanTool: IToolDefinition;
|
|
3
|
+
export declare const getRepositoryKnowledgeModelTool: IToolDefinition;
|
|
4
|
+
export declare const getRepositoryIngestionStatusTool: IToolDefinition;
|
|
5
|
+
export declare const getRepositoryIngestionReportTool: IToolDefinition;
|
|
6
|
+
export declare const getContradictionReportTool: IToolDefinition;
|
|
7
|
+
export declare const getGeneratedCodeReportTool: IToolDefinition;
|
|
8
|
+
export declare const getStabilityMapTool: IToolDefinition;
|
|
9
|
+
export declare const getIngestAdoptionPreviewTool: IToolDefinition;
|
|
10
|
+
//# sourceMappingURL=r26-ingest.tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"r26-ingest.tool.d.ts","sourceRoot":"","sources":["../../src/tools/r26-ingest.tool.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAyBpE,eAAO,MAAM,iCAAiC,EAAE,eA4B/C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,eAyB7C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,eAiB9C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,eAiB9C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eAWxC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,eAWxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAejC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,eAY1C,CAAC"}
|