@noodleseed/one 0.58.0 → 0.59.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/cli.d.ts.map +1 -1
- package/dist/cli.js +72 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/alerts-ops.d.ts +2 -1
- package/dist/commands/alerts-ops.d.ts.map +1 -1
- package/dist/commands/alerts-ops.js.map +1 -1
- package/dist/commands/analytics-ops.d.ts +4 -3
- package/dist/commands/analytics-ops.d.ts.map +1 -1
- package/dist/commands/analytics-ops.js.map +1 -1
- package/dist/commands/apps-ops.d.ts +5 -4
- package/dist/commands/apps-ops.d.ts.map +1 -1
- package/dist/commands/apps-ops.js.map +1 -1
- package/dist/commands/archive-ops.d.ts +3 -2
- package/dist/commands/archive-ops.d.ts.map +1 -1
- package/dist/commands/archive-ops.js.map +1 -1
- package/dist/commands/assistant-embed-ops.d.ts +9 -1
- package/dist/commands/assistant-embed-ops.d.ts.map +1 -1
- package/dist/commands/assistant-embed-ops.js.map +1 -1
- package/dist/commands/assistant-ops.d.ts +2 -1
- package/dist/commands/assistant-ops.d.ts.map +1 -1
- package/dist/commands/assistant-ops.js +3 -2
- package/dist/commands/assistant-ops.js.map +1 -1
- package/dist/commands/audit-ops.d.ts +2 -1
- package/dist/commands/audit-ops.d.ts.map +1 -1
- package/dist/commands/audit-ops.js.map +1 -1
- package/dist/commands/auth-ops.d.ts +2 -1
- package/dist/commands/auth-ops.d.ts.map +1 -1
- package/dist/commands/auth-ops.js.map +1 -1
- package/dist/commands/author-loop.d.ts +4 -3
- package/dist/commands/author-loop.d.ts.map +1 -1
- package/dist/commands/author-loop.js.map +1 -1
- package/dist/commands/billing-apply-ops.d.ts +2 -1
- package/dist/commands/billing-apply-ops.d.ts.map +1 -1
- package/dist/commands/billing-apply-ops.js.map +1 -1
- package/dist/commands/billing-enforcement-activation-ops.d.ts +2 -1
- package/dist/commands/billing-enforcement-activation-ops.d.ts.map +1 -1
- package/dist/commands/billing-enforcement-activation-ops.js.map +1 -1
- package/dist/commands/billing-enforcement-ops.d.ts +2 -1
- package/dist/commands/billing-enforcement-ops.d.ts.map +1 -1
- package/dist/commands/billing-enforcement-ops.js.map +1 -1
- package/dist/commands/billing-metering-ops.d.ts +2 -1
- package/dist/commands/billing-metering-ops.d.ts.map +1 -1
- package/dist/commands/billing-metering-ops.js.map +1 -1
- package/dist/commands/billing-metering-validation-ops.d.ts +2 -1
- package/dist/commands/billing-metering-validation-ops.d.ts.map +1 -1
- package/dist/commands/billing-metering-validation-ops.js.map +1 -1
- package/dist/commands/billing-ops.d.ts +2 -1
- package/dist/commands/billing-ops.d.ts.map +1 -1
- package/dist/commands/billing-ops.js.map +1 -1
- package/dist/commands/billing-read-ops.d.ts +3 -2
- package/dist/commands/billing-read-ops.d.ts.map +1 -1
- package/dist/commands/billing-read-ops.js.map +1 -1
- package/dist/commands/billing-stripe-ops.d.ts +2 -1
- package/dist/commands/billing-stripe-ops.d.ts.map +1 -1
- package/dist/commands/billing-stripe-ops.js.map +1 -1
- package/dist/commands/config-values.d.ts +2 -1
- package/dist/commands/config-values.d.ts.map +1 -1
- package/dist/commands/config-values.js.map +1 -1
- package/dist/commands/deploy-github-hint.d.ts +6 -0
- package/dist/commands/deploy-github-hint.d.ts.map +1 -0
- package/dist/commands/deploy-github-hint.js +53 -0
- package/dist/commands/deploy-github-hint.js.map +1 -0
- package/dist/commands/deploy-ops.d.ts +5 -7
- package/dist/commands/deploy-ops.d.ts.map +1 -1
- package/dist/commands/deploy-ops.js +14 -54
- package/dist/commands/deploy-ops.js.map +1 -1
- package/dist/commands/deploy-status-ops.d.ts +5 -3
- package/dist/commands/deploy-status-ops.d.ts.map +1 -1
- package/dist/commands/deploy-status-ops.js +9 -1
- package/dist/commands/deploy-status-ops.js.map +1 -1
- package/dist/commands/deploy-target.d.ts +2 -1
- package/dist/commands/deploy-target.d.ts.map +1 -1
- package/dist/commands/deploy-target.js.map +1 -1
- package/dist/commands/deployments-ops.d.ts +5 -4
- package/dist/commands/deployments-ops.d.ts.map +1 -1
- package/dist/commands/deployments-ops.js.map +1 -1
- package/dist/commands/devtools.d.ts +2 -1
- package/dist/commands/devtools.d.ts.map +1 -1
- package/dist/commands/devtools.js.map +1 -1
- package/dist/commands/diagnostics-ops.d.ts +3 -2
- package/dist/commands/diagnostics-ops.d.ts.map +1 -1
- package/dist/commands/diagnostics-ops.js.map +1 -1
- package/dist/commands/envs-ops.d.ts +4 -3
- package/dist/commands/envs-ops.d.ts.map +1 -1
- package/dist/commands/envs-ops.js.map +1 -1
- package/dist/commands/feedback-ops.d.ts +2 -1
- package/dist/commands/feedback-ops.d.ts.map +1 -1
- package/dist/commands/feedback-ops.js.map +1 -1
- package/dist/commands/github-ops.d.ts +5 -4
- package/dist/commands/github-ops.d.ts.map +1 -1
- package/dist/commands/github-ops.js.map +1 -1
- package/dist/commands/github-runs-ops.d.ts +2 -1
- package/dist/commands/github-runs-ops.d.ts.map +1 -1
- package/dist/commands/github-runs-ops.js.map +1 -1
- package/dist/commands/github-shared.d.ts +2 -1
- package/dist/commands/github-shared.d.ts.map +1 -1
- package/dist/commands/github-shared.js.map +1 -1
- package/dist/commands/logs-ops.d.ts +2 -1
- package/dist/commands/logs-ops.d.ts.map +1 -1
- package/dist/commands/logs-ops.js.map +1 -1
- package/dist/commands/org-admin.d.ts +3 -2
- package/dist/commands/org-admin.d.ts.map +1 -1
- package/dist/commands/org-admin.js.map +1 -1
- package/dist/commands/org-openai-challenge.d.ts +2 -1
- package/dist/commands/org-openai-challenge.d.ts.map +1 -1
- package/dist/commands/org-openai-challenge.js.map +1 -1
- package/dist/commands/policy-ops.d.ts +2 -1
- package/dist/commands/policy-ops.d.ts.map +1 -1
- package/dist/commands/policy-ops.js.map +1 -1
- package/dist/commands/resource-shared.d.ts +2 -1
- package/dist/commands/resource-shared.d.ts.map +1 -1
- package/dist/commands/resource-shared.js.map +1 -1
- package/dist/commands/service-ops.d.ts +2 -1
- package/dist/commands/service-ops.d.ts.map +1 -1
- package/dist/commands/service-ops.js.map +1 -1
- package/dist/commands/session.d.ts +12 -4
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +40 -9
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/shared.d.ts +2 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js.map +1 -1
- package/dist/config.d.ts +17 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/control-plane.d.ts +10 -3
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +38 -2
- package/dist/control-plane.js.map +1 -1
- package/dist/doctor.d.ts +2 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js.map +1 -1
- package/dist/first-run-entry.d.ts +2 -1
- package/dist/first-run-entry.d.ts.map +1 -1
- package/dist/first-run-entry.js.map +1 -1
- package/dist/first-run.d.ts +2 -1
- package/dist/first-run.d.ts.map +1 -1
- package/dist/first-run.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/local-target.d.ts +2 -1
- package/dist/local-target.d.ts.map +1 -1
- package/dist/local-target.js.map +1 -1
- package/dist/plugin-mode/build-readiness-contract.d.ts +36 -0
- package/dist/plugin-mode/build-readiness-contract.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-contract.js +107 -0
- package/dist/plugin-mode/build-readiness-contract.js.map +1 -0
- package/dist/plugin-mode/build-readiness-fingerprint.d.ts +7 -0
- package/dist/plugin-mode/build-readiness-fingerprint.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-fingerprint.js +83 -0
- package/dist/plugin-mode/build-readiness-fingerprint.js.map +1 -0
- package/dist/plugin-mode/build-readiness-recorder.d.ts +15 -0
- package/dist/plugin-mode/build-readiness-recorder.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-recorder.js +150 -0
- package/dist/plugin-mode/build-readiness-recorder.js.map +1 -0
- package/dist/plugin-mode/build-readiness-server.d.ts +22 -0
- package/dist/plugin-mode/build-readiness-server.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-server.js +322 -0
- package/dist/plugin-mode/build-readiness-server.js.map +1 -0
- package/dist/plugin-mode/build-readiness-store.d.ts +16 -0
- package/dist/plugin-mode/build-readiness-store.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-store.js +198 -0
- package/dist/plugin-mode/build-readiness-store.js.map +1 -0
- package/dist/plugin-mode/build-readiness-tools.d.ts +47 -0
- package/dist/plugin-mode/build-readiness-tools.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-tools.js +159 -0
- package/dist/plugin-mode/build-readiness-tools.js.map +1 -0
- package/dist/plugin-mode/build-readiness-widget.css.d.ts +2 -0
- package/dist/plugin-mode/build-readiness-widget.css.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-widget.css.js +217 -0
- package/dist/plugin-mode/build-readiness-widget.css.js.map +1 -0
- package/dist/plugin-mode/build-readiness-widget.d.ts +28 -0
- package/dist/plugin-mode/build-readiness-widget.d.ts.map +1 -0
- package/dist/plugin-mode/build-readiness-widget.js +60 -0
- package/dist/plugin-mode/build-readiness-widget.js.map +1 -0
- package/dist/plugin-mode/compatibility.d.ts +22 -0
- package/dist/plugin-mode/compatibility.d.ts.map +1 -0
- package/dist/plugin-mode/compatibility.js +59 -0
- package/dist/plugin-mode/compatibility.js.map +1 -0
- package/dist/plugin-mode/plugin-mcp-bootstrap.d.ts +13 -0
- package/dist/plugin-mode/plugin-mcp-bootstrap.d.ts.map +1 -0
- package/dist/plugin-mode/plugin-mcp-bootstrap.js +90 -0
- package/dist/plugin-mode/plugin-mcp-bootstrap.js.map +1 -0
- package/dist/plugin-mode/profile.d.ts +16 -0
- package/dist/plugin-mode/profile.d.ts.map +1 -0
- package/dist/plugin-mode/profile.js +66 -0
- package/dist/plugin-mode/profile.js.map +1 -0
- package/dist/plugin-mode/service-compatibility.d.ts +15 -0
- package/dist/plugin-mode/service-compatibility.d.ts.map +1 -0
- package/dist/plugin-mode/service-compatibility.js +57 -0
- package/dist/plugin-mode/service-compatibility.js.map +1 -0
- package/dist/update-check.d.ts +2 -16
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.d.ts +3 -0
- package/node_modules/@noodle-borg/agent-kit/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.js +3 -0
- package/node_modules/@noodle-borg/agent-kit/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.d.ts +5 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js +106 -28
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-compatibility.d.ts +22 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-compatibility.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-compatibility.js +100 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-compatibility.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-launcher.d.ts +8 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-launcher.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-launcher.js +55 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-launcher.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-manifests.d.ts +27 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-manifests.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-manifests.js +108 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-manifests.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.d.ts +9 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.js +121 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.d.ts +130 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js +220 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +5 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts +4 -0
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js +2 -0
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/verify.d.ts +4 -0
- package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/verify.js +10 -0
- package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/capabilities.d.ts +9 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/capabilities.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/capabilities.js +41 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/capabilities.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts +637 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js +364 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/diagnosis.d.ts +79 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/diagnosis.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/diagnosis.js +138 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/diagnosis.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/index.d.ts +12 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/index.js +12 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts +16 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/port.js +9 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/port.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/prompts.d.ts +16 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/prompts.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js +51 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/resources.d.ts +13 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/resources.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/resources.js +90 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/resources.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts +31 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/results.js +80 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/results.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/server.d.ts +19 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/server.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/server.js +79 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/server.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.d.ts +43 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js +77 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts +4 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js +21 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.d.ts +61 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js +37 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.d.ts +29 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js +83 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/index.d.ts +7 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/index.js +7 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/index.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.d.ts +138 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js +99 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.d.ts +24 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js +59 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widget-links.d.ts +16 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widget-links.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widget-links.js +20 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widget-links.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/analytics.d.ts +2 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/analytics.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/analytics.js +6 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/analytics.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/app-overview.d.ts +2 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/app-overview.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/app-overview.js +6 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/app-overview.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/deployment-detail.d.ts +2 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/deployment-detail.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/deployment-detail.js +7 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/deployment-detail.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/operations.d.ts +2 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/operations.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/operations.js +6 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/operations.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/resources.d.ts +37 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/resources.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/resources.js +76 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/resources.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/shared.d.ts +30 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/shared.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/shared.js +23 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/shared.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/styles.d.ts +2 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/styles.d.ts.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/styles.js +153 -0
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/styles.js.map +1 -0
- package/node_modules/@noodle-borg/developer-mcp/package.json +37 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +4 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts +7 -1
- package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js +17 -5
- package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts +16 -0
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js +40 -0
- package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/build-info.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/build-info.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/build-info.js +11 -0
- package/node_modules/@noodle-borg/service/dist/build-info.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts +30 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js +311 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.d.ts +69 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.js +118 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.d.ts +29 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +223 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/service-options.d.ts +18 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/service-options.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/service-options.js +26 -0
- package/node_modules/@noodle-borg/service/dist/developer-mcp/service-options.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +5 -0
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/main.js +1 -0
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/app.js +5 -0
- package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js +28 -0
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts +48 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js +90 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts +18 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js +29 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts +22 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js +144 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts +12 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js +61 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js +89 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts +48 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js +123 -0
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/paths.js +2 -0
- package/node_modules/@noodle-borg/service/dist/oauth/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts +6 -1
- package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/provider.js +53 -0
- package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js +17 -6
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store.js +2 -0
- package/node_modules/@noodle-borg/service/dist/oauth/store.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js +8 -0
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.d.ts +52 -0
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.js +120 -0
- package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/options.d.ts +7 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/analytics-dispatch.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/routes/analytics-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/analytics-dispatch.js +4 -4
- package/node_modules/@noodle-borg/service/dist/routes/analytics-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/analytics.d.ts +4 -3
- package/node_modules/@noodle-borg/service/dist/routes/analytics.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/analytics.js +7 -7
- package/node_modules/@noodle-borg/service/dist/routes/analytics.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.js +28 -7
- package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +12 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +36 -4
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +4 -3
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js +26 -18
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +8 -105
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.js +9 -5
- package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/logs.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/logs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/logs.js +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/logs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/plans.js +3 -14
- package/node_modules/@noodle-borg/service/dist/routes/plans.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/policies.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/policies.js +3 -14
- package/node_modules/@noodle-borg/service/dist/routes/policies.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js +51 -0
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js +6 -6
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js +25 -86
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.js +62 -0
- package/node_modules/@noodle-borg/service/dist/serve-resource-auth.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +19 -62
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +25 -45
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +35 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/package.json +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AppInspectionView, DeploymentInspectionView, DeveloperMcpContext, EventsView, GetLogsInput, GetMetricsInput, GetSessionInput, InspectAppInput, InspectDeploymentInput, ListAppsInput, ListAppsView, ListEventsInput, LogsView, MetricsView, RollbackDeploymentInput, RollbackView, SessionView } from './contracts.js';
|
|
2
|
+
export interface DeveloperControlPlane {
|
|
3
|
+
listApps(ctx: DeveloperMcpContext, input: ListAppsInput): Promise<ListAppsView>;
|
|
4
|
+
inspectApp(ctx: DeveloperMcpContext, input: InspectAppInput): Promise<AppInspectionView>;
|
|
5
|
+
inspectDeployment(ctx: DeveloperMcpContext, input: InspectDeploymentInput): Promise<DeploymentInspectionView>;
|
|
6
|
+
getLogs(ctx: DeveloperMcpContext, input: GetLogsInput): Promise<LogsView>;
|
|
7
|
+
getMetrics(ctx: DeveloperMcpContext, input: GetMetricsInput): Promise<MetricsView>;
|
|
8
|
+
listEvents(ctx: DeveloperMcpContext, input: ListEventsInput): Promise<EventsView>;
|
|
9
|
+
getSession(ctx: DeveloperMcpContext, input: GetSessionInput): Promise<SessionView>;
|
|
10
|
+
rollbackDeployment(ctx: DeveloperMcpContext, input: RollbackDeploymentInput): Promise<RollbackView>;
|
|
11
|
+
}
|
|
12
|
+
export declare class DeveloperControlPlaneError extends Error {
|
|
13
|
+
readonly code: 'not_found' | 'dependency_unavailable' | 'rate_limited' | 'forbidden_scope' | 'validation_failed';
|
|
14
|
+
constructor(code: 'not_found' | 'dependency_unavailable' | 'rate_limited' | 'forbidden_scope' | 'validation_failed', message: string);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../src/port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAChF,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzF,iBAAiB,CACf,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnF,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClF,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnF,kBAAkB,CAChB,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAEjD,QAAQ,CAAC,IAAI,EACT,WAAW,GACX,wBAAwB,GACxB,cAAc,GACd,iBAAiB,GACjB,mBAAmB;gBALd,IAAI,EACT,WAAW,GACX,wBAAwB,GACxB,cAAc,GACd,iBAAiB,GACjB,mBAAmB,EACvB,OAAO,EAAE,MAAM;CAKlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port.js","sourceRoot":"","sources":["../src/port.ts"],"names":[],"mappings":"AAqCA,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAExC;IADX,YACW,IAKc,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QARN,SAAI,GAAJ,IAAI,CAKU;QAIvB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface DeveloperPromptDefinition {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly title: string;
|
|
4
|
+
readonly description: string;
|
|
5
|
+
readonly messages: readonly {
|
|
6
|
+
readonly role: 'user';
|
|
7
|
+
readonly content: {
|
|
8
|
+
readonly type: 'text';
|
|
9
|
+
readonly text: string;
|
|
10
|
+
};
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
export declare const DEVELOPER_PROMPTS: readonly DeveloperPromptDefinition[];
|
|
14
|
+
export declare function registerDeveloperPrompts(registrar: McpServer): void;
|
|
15
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
16
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACpE,EAAE,CAAC;CACL;AAKD,eAAO,MAAM,iBAAiB,EAAE,SAAS,yBAAyB,EA2CjE,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAQnE;AAED,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const WORKFLOW_REFERENCE = 'Read noodle://developer/workflow/v1 and the host-specific noodle://developer/hosts/*/v1 resource first.';
|
|
2
|
+
export const DEVELOPER_PROMPTS = [
|
|
3
|
+
{
|
|
4
|
+
name: 'build_mcp_app',
|
|
5
|
+
title: 'Build a Noodle MCP app',
|
|
6
|
+
description: 'Guide the existing coding agent through the canonical local authoring workflow.',
|
|
7
|
+
messages: [
|
|
8
|
+
{
|
|
9
|
+
role: 'user',
|
|
10
|
+
content: {
|
|
11
|
+
type: 'text',
|
|
12
|
+
text: `${WORKFLOW_REFERENCE} Inspect the workspace, help the existing coding agent implement the MCP server or app, validate it with the plugin-managed CLI, and deploy only when the user requests it.`,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'inspect_mcp_app',
|
|
19
|
+
title: 'Inspect a deployed Noodle MCP app',
|
|
20
|
+
description: 'Use scoped Cloud evidence to explain the deployed app state.',
|
|
21
|
+
messages: [
|
|
22
|
+
{
|
|
23
|
+
role: 'user',
|
|
24
|
+
content: {
|
|
25
|
+
type: 'text',
|
|
26
|
+
text: `${WORKFLOW_REFERENCE} Use get_context and the read-only inspection tools to describe the selected deployed app without requesting source code or secret values.`,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'debug_mcp_app',
|
|
33
|
+
title: 'Debug a deployed Noodle MCP app',
|
|
34
|
+
description: 'Gather bounded evidence before the coding agent changes source.',
|
|
35
|
+
messages: [
|
|
36
|
+
{
|
|
37
|
+
role: 'user',
|
|
38
|
+
content: {
|
|
39
|
+
type: 'text',
|
|
40
|
+
text: `${WORKFLOW_REFERENCE} Run diagnose_app, inspect its cited evidence, then ask the existing coding agent to check the local source only where that evidence points.`,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
export function registerDeveloperPrompts(registrar) {
|
|
47
|
+
for (const prompt of DEVELOPER_PROMPTS) {
|
|
48
|
+
registrar.registerPrompt(prompt.name, { title: prompt.title, description: prompt.description }, async () => ({ messages: prompt.messages.map((message) => ({ ...message })) }));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAUA,MAAM,kBAAkB,GACtB,yGAAyG,CAAC;AAE5G,MAAM,CAAC,MAAM,iBAAiB,GAAyC;IACrE;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,iFAAiF;QAC9F,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,kBAAkB,6KAA6K;iBACzM;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,8DAA8D;QAC3E,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,kBAAkB,4IAA4I;iBACxK;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG,kBAAkB,8IAA8I;iBAC1K;aACF;SACF;KACF;CACF,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,SAAoB;IAC3D,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,SAAS,CAAC,cAAc,CACtB,MAAM,CAAC,IAAI,EACX,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EACxD,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
export interface DeveloperResourceDefinition {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly uri: string;
|
|
5
|
+
readonly title: string;
|
|
6
|
+
readonly description: string;
|
|
7
|
+
readonly text: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const DEVELOPER_RESOURCES: readonly DeveloperResourceDefinition[];
|
|
10
|
+
export declare function registerDeveloperResources(registrar: McpServer, options?: {
|
|
11
|
+
readonly widgets?: boolean;
|
|
12
|
+
}): void;
|
|
13
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,2BAA2B,EAqDrE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,IAAI,CA0CN"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { DEVELOPER_WIDGETS, renderDeveloperWidget } from './widgets/resources.js';
|
|
2
|
+
export const DEVELOPER_RESOURCES = [
|
|
3
|
+
{
|
|
4
|
+
name: 'developer-capabilities-v1',
|
|
5
|
+
uri: 'noodle://developer/capabilities/v1',
|
|
6
|
+
title: 'Noodle Developer capabilities',
|
|
7
|
+
description: 'The bounded capabilities and trust boundaries of the Noodle Developer connection.',
|
|
8
|
+
text: `# Noodle Developer capabilities v1
|
|
9
|
+
|
|
10
|
+
The remote connection reads selected Noodle Cloud apps, deployments, logs, metrics, events, and sessions. It can diagnose from bounded evidence. Rollback is capability-gated and is introduced separately.
|
|
11
|
+
|
|
12
|
+
It cannot receive or edit source code, build source, deploy source, read secret values, or manage members, billing, or policy. The organization and environments come from the active Developer Access Grant and cannot be overridden by tool input.`,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'developer-workflow-v1',
|
|
16
|
+
uri: 'noodle://developer/workflow/v1',
|
|
17
|
+
title: 'Noodle Developer workflow',
|
|
18
|
+
description: 'How coding agents, the managed CLI, and remote Cloud operations work together.',
|
|
19
|
+
text: `# Noodle Developer workflow v1
|
|
20
|
+
|
|
21
|
+
1. The user's coding agent writes and edits source code in the developer's workspace.
|
|
22
|
+
2. The plugin-managed Noodle CLI validates, builds, and deploys that workspace through the canonical Noodle Cloud deploy path.
|
|
23
|
+
3. The remote Developer MCP inspects and operates Noodle Cloud within the selected organization and environments.
|
|
24
|
+
|
|
25
|
+
Noodle Developer guides and operates this workflow. It is not a second coding agent and does not provide its own source-generation surface.`,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'developer-host-chatgpt-v1',
|
|
29
|
+
uri: 'noodle://developer/hosts/chatgpt/v1',
|
|
30
|
+
title: 'Using Noodle Developer in ChatGPT',
|
|
31
|
+
description: 'ChatGPT-specific execution boundaries.',
|
|
32
|
+
text: `# ChatGPT host guidance v1
|
|
33
|
+
|
|
34
|
+
ChatGPT uses the remote Developer MCP for guidance, inspection, diagnosis, and authorized Cloud operations. A chat-only connection cannot execute a CLI on the user machine. Local validation and deployment require a coding-agent host with the plugin-managed CLI profile.`,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'developer-host-codex-v1',
|
|
38
|
+
uri: 'noodle://developer/hosts/codex/v1',
|
|
39
|
+
title: 'Using Noodle Developer in Codex',
|
|
40
|
+
description: 'Codex-specific local and remote workflow guidance.',
|
|
41
|
+
text: `# Codex host guidance v1
|
|
42
|
+
|
|
43
|
+
Codex edits the local project. Use the plugin-managed Noodle CLI profile for validation and deployment, and use the remote Developer MCP for scoped Noodle Cloud evidence and operations. Keep source in the workspace; never send it to the remote management server.`,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'developer-host-claude-code-v1',
|
|
47
|
+
uri: 'noodle://developer/hosts/claude-code/v1',
|
|
48
|
+
title: 'Using Noodle Developer in Claude Code',
|
|
49
|
+
description: 'Claude Code-specific local and remote workflow guidance.',
|
|
50
|
+
text: `# Claude Code host guidance v1
|
|
51
|
+
|
|
52
|
+
Claude Code edits the local project. Use the plugin-managed Noodle CLI profile for validation and deployment, and use the remote Developer MCP for scoped Noodle Cloud evidence and operations. Keep source in the workspace; never send it to the remote management server.`,
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
export function registerDeveloperResources(registrar, options = {}) {
|
|
56
|
+
for (const resource of DEVELOPER_RESOURCES) {
|
|
57
|
+
registrar.registerResource(resource.name, resource.uri, {
|
|
58
|
+
title: resource.title,
|
|
59
|
+
description: resource.description,
|
|
60
|
+
mimeType: 'text/markdown',
|
|
61
|
+
}, async () => ({
|
|
62
|
+
contents: [{ uri: resource.uri, mimeType: 'text/markdown', text: resource.text }],
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
if (options.widgets === false)
|
|
66
|
+
return;
|
|
67
|
+
for (const widget of DEVELOPER_WIDGETS) {
|
|
68
|
+
registrar.registerResource(widget.name, widget.uri, {
|
|
69
|
+
title: widget.title,
|
|
70
|
+
description: widget.description,
|
|
71
|
+
mimeType: widget.mimeType,
|
|
72
|
+
_meta: widget._meta,
|
|
73
|
+
}, async () => {
|
|
74
|
+
const rendered = renderDeveloperWidget(widget.uri);
|
|
75
|
+
if (rendered === undefined)
|
|
76
|
+
throw new Error(`unknown developer widget: ${widget.uri}`);
|
|
77
|
+
return {
|
|
78
|
+
contents: [
|
|
79
|
+
{
|
|
80
|
+
uri: rendered.uri,
|
|
81
|
+
mimeType: rendered.mimeType,
|
|
82
|
+
text: rendered.text,
|
|
83
|
+
_meta: rendered._meta,
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
};
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAUlF,MAAM,CAAC,MAAM,mBAAmB,GAA2C;IACzE;QACE,IAAI,EAAE,2BAA2B;QACjC,GAAG,EAAE,oCAAoC;QACzC,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,mFAAmF;QACrF,IAAI,EAAE;;;;qPAI2O;KAClP;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,gCAAgC;QACrC,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,gFAAgF;QAC7F,IAAI,EAAE;;;;;;4IAMkI;KACzI;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,GAAG,EAAE,qCAAqC;QAC1C,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE;;8QAEoQ;KAC3Q;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,GAAG,EAAE,mCAAmC;QACxC,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE;;uQAE6P;KACpQ;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,GAAG,EAAE,yCAAyC;QAC9C,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,0DAA0D;QACvE,IAAI,EAAE;;6QAEmQ;KAC1Q;CACF,CAAC;AAEF,MAAM,UAAU,0BAA0B,CACxC,SAAoB,EACpB,UAA0C,EAAE;IAE5C,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QAC3C,SAAS,CAAC,gBAAgB,CACxB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,GAAG,EACZ;YACE,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,eAAe;SAC1B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;YACX,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;SAClF,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO;IACtC,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,SAAS,CAAC,gBAAgB,CACxB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,GAAG,EACV;YACE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,EACD,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YACvF,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,QAAQ,CAAC,GAAG;wBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;qBACtB;iBACF;aACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { DeveloperErrorCode, DeveloperMcpContext, DeveloperNextAction, DeveloperResult } from './contracts.js';
|
|
2
|
+
export interface DeveloperToolResult<T> {
|
|
3
|
+
readonly content: [{
|
|
4
|
+
readonly type: 'text';
|
|
5
|
+
readonly text: string;
|
|
6
|
+
}];
|
|
7
|
+
readonly structuredContent: DeveloperResult<T>;
|
|
8
|
+
readonly isError?: true;
|
|
9
|
+
readonly _meta?: Readonly<Record<string, unknown>>;
|
|
10
|
+
}
|
|
11
|
+
export interface ResultContext {
|
|
12
|
+
readonly ctx: DeveloperMcpContext;
|
|
13
|
+
readonly observedAt: () => string;
|
|
14
|
+
}
|
|
15
|
+
export declare function successResult<T>(options: ResultContext & {
|
|
16
|
+
readonly data: T;
|
|
17
|
+
readonly summary: string;
|
|
18
|
+
readonly env?: string;
|
|
19
|
+
readonly nextActions?: readonly DeveloperNextAction[];
|
|
20
|
+
}): DeveloperToolResult<T>;
|
|
21
|
+
export declare function errorResult<T = never>(options: ResultContext & {
|
|
22
|
+
readonly code: DeveloperErrorCode;
|
|
23
|
+
readonly message: string;
|
|
24
|
+
readonly retryable?: boolean;
|
|
25
|
+
readonly env?: string;
|
|
26
|
+
readonly nextActions?: readonly DeveloperNextAction[];
|
|
27
|
+
}): DeveloperToolResult<T>;
|
|
28
|
+
export declare function validationError<T>(context: ResultContext, message: string, env?: string): DeveloperToolResult<T>;
|
|
29
|
+
export declare function forbiddenEnvironment<T>(context: ResultContext, env: string): DeveloperToolResult<T>;
|
|
30
|
+
export declare function portError<T>(context: ResultContext, error: unknown, env?: string): DeveloperToolResult<T>;
|
|
31
|
+
//# sourceMappingURL=results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;CACnC;AAED,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,aAAa,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACvD,GACA,mBAAmB,CAAC,CAAC,CAAC,CAUxB;AAED,wBAAgB,WAAW,CAAC,CAAC,GAAG,KAAK,EACnC,OAAO,EAAE,aAAa,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACvD,GACA,mBAAmB,CAAC,CAAC,CAAC,CAexB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,0BAOvF;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,0BAc1E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,0BAiBhF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { DEVELOPER_MCP_CAPABILITY_VERSION } from './contracts.js';
|
|
2
|
+
import { DeveloperControlPlaneError } from './port.js';
|
|
3
|
+
export function successResult(options) {
|
|
4
|
+
const structuredContent = {
|
|
5
|
+
ok: true,
|
|
6
|
+
data: options.data,
|
|
7
|
+
meta: resultMeta(options),
|
|
8
|
+
};
|
|
9
|
+
return {
|
|
10
|
+
content: [{ type: 'text', text: options.summary }],
|
|
11
|
+
structuredContent,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function errorResult(options) {
|
|
15
|
+
const structuredContent = {
|
|
16
|
+
ok: false,
|
|
17
|
+
error: {
|
|
18
|
+
code: options.code,
|
|
19
|
+
message: options.message,
|
|
20
|
+
retryable: options.retryable ?? false,
|
|
21
|
+
},
|
|
22
|
+
meta: resultMeta(options),
|
|
23
|
+
};
|
|
24
|
+
return {
|
|
25
|
+
content: [{ type: 'text', text: options.message }],
|
|
26
|
+
structuredContent,
|
|
27
|
+
isError: true,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function validationError(context, message, env) {
|
|
31
|
+
return errorResult({
|
|
32
|
+
...context,
|
|
33
|
+
code: 'validation_failed',
|
|
34
|
+
message,
|
|
35
|
+
...(env !== undefined ? { env } : {}),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export function forbiddenEnvironment(context, env) {
|
|
39
|
+
return errorResult({
|
|
40
|
+
...context,
|
|
41
|
+
code: 'forbidden_scope',
|
|
42
|
+
message: `Environment "${env}" is outside this connection's selected scope.`,
|
|
43
|
+
env,
|
|
44
|
+
nextActions: [
|
|
45
|
+
{
|
|
46
|
+
kind: 'read_resource',
|
|
47
|
+
label: 'Review the environments selected for this connection',
|
|
48
|
+
resource: 'noodle://developer/capabilities/v1',
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function portError(context, error, env) {
|
|
54
|
+
if (error instanceof DeveloperControlPlaneError) {
|
|
55
|
+
return errorResult({
|
|
56
|
+
...context,
|
|
57
|
+
code: error.code,
|
|
58
|
+
message: error.message,
|
|
59
|
+
retryable: error.code === 'dependency_unavailable' || error.code === 'rate_limited',
|
|
60
|
+
...(env !== undefined ? { env } : {}),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return errorResult({
|
|
64
|
+
...context,
|
|
65
|
+
code: 'internal_error',
|
|
66
|
+
message: 'Noodle Cloud could not complete this operation.',
|
|
67
|
+
retryable: true,
|
|
68
|
+
...(env !== undefined ? { env } : {}),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function resultMeta(options) {
|
|
72
|
+
return {
|
|
73
|
+
capabilityVersion: DEVELOPER_MCP_CAPABILITY_VERSION,
|
|
74
|
+
org: options.ctx.org,
|
|
75
|
+
...(options.env !== undefined ? { env: options.env } : {}),
|
|
76
|
+
observedAt: options.observedAt(),
|
|
77
|
+
nextActions: [...(options.nextActions ?? [])],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type DeveloperMcpContext } from './contracts.js';
|
|
3
|
+
import type { DeveloperControlPlane } from './port.js';
|
|
4
|
+
export interface CreateDeveloperMcpServerOptions {
|
|
5
|
+
readonly context: DeveloperMcpContext;
|
|
6
|
+
readonly controlPlane: DeveloperControlPlane;
|
|
7
|
+
readonly observedAt?: () => string;
|
|
8
|
+
/** Disable only the Apps projection; every headless tool and guidance resource remains available. */
|
|
9
|
+
readonly enableWidgets?: boolean;
|
|
10
|
+
/** Observe the semantic outcome without exposing tool inputs or result payloads. */
|
|
11
|
+
readonly onToolResult?: (outcome: DeveloperToolOutcome) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface DeveloperToolOutcome {
|
|
14
|
+
readonly toolName: string;
|
|
15
|
+
readonly decision: 'allow' | 'deny';
|
|
16
|
+
readonly errorCode?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function createDeveloperMcpServer(options: CreateDeveloperMcpServerOptions): McpServer;
|
|
19
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAGL,KAAK,mBAAmB,EAoBzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAiBvD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IACnC,qGAAqG;IACrG,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAgBD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,SAAS,CAoJ5F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { appInspectionViewSchema, DEVELOPER_MCP_CAPABILITY_VERSION, deploymentInspectionViewSchema, developerContextViewSchema, developerResultSchema, diagnoseAppInputSchema, eventsViewSchema, getContextInputSchema, getLogsInputSchema, getMetricsInputSchema, getSessionInputSchema, inspectAppInputSchema, inspectDeploymentInputSchema, listAppsInputSchema, listAppsViewSchema, listEventsInputSchema, logsViewSchema, metricsViewSchema, rollbackDeploymentInputSchema, rollbackViewSchema, sessionViewSchema, } from './contracts.js';
|
|
3
|
+
import { diagnosisViewSchema } from './diagnosis.js';
|
|
4
|
+
import { registerDeveloperPrompts } from './prompts.js';
|
|
5
|
+
import { registerDeveloperResources } from './resources.js';
|
|
6
|
+
import { diagnoseApp, getContext, getLogs, getMetrics, getSession, inspectApp, inspectDeployment, listApps, listEvents, rollbackDeployment, } from './tools/index.js';
|
|
7
|
+
import { developerToolWidgetMeta } from './widget-links.js';
|
|
8
|
+
const READ_ONLY_ANNOTATIONS = {
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
idempotentHint: true,
|
|
12
|
+
openWorldHint: false,
|
|
13
|
+
};
|
|
14
|
+
const ROLLBACK_ANNOTATIONS = {
|
|
15
|
+
readOnlyHint: false,
|
|
16
|
+
destructiveHint: true,
|
|
17
|
+
idempotentHint: true,
|
|
18
|
+
openWorldHint: false,
|
|
19
|
+
};
|
|
20
|
+
export function createDeveloperMcpServer(options) {
|
|
21
|
+
const server = new McpServer({ name: 'noodle-developer', version: DEVELOPER_MCP_CAPABILITY_VERSION }, {
|
|
22
|
+
instructions: "Guide the user's existing coding agent. Use read-only Cloud evidence; never request source or secret values.",
|
|
23
|
+
});
|
|
24
|
+
const context = {
|
|
25
|
+
ctx: options.context,
|
|
26
|
+
controlPlane: options.controlPlane,
|
|
27
|
+
observedAt: options.observedAt ?? (() => new Date().toISOString()),
|
|
28
|
+
};
|
|
29
|
+
const widgetsEnabled = options.enableWidgets !== false;
|
|
30
|
+
server.registerTool('get_context', toolConfig('Get selected Noodle Cloud context', 'Return the organization, environments, and capabilities selected for this connection.', getContextInputSchema, developerContextViewSchema), async () => asCallToolResult(await getContext(context), 'get_context', options.onToolResult));
|
|
31
|
+
server.registerTool('list_apps', toolConfig('List Noodle Cloud apps', 'List apps visible in the selected organization and environment scope.', listAppsInputSchema, listAppsViewSchema), async (input) => asCallToolResult(await listApps(context, input), 'list_apps', options.onToolResult));
|
|
32
|
+
server.registerTool('inspect_app', toolConfig('Inspect a Noodle Cloud app', 'Inspect one app, optionally narrowed to a selected environment.', inspectAppInputSchema, appInspectionViewSchema, READ_ONLY_ANNOTATIONS, developerToolWidgetMeta('inspect_app', widgetsEnabled)), async (input) => asCallToolResult(await inspectApp(context, input), 'inspect_app', options.onToolResult));
|
|
33
|
+
server.registerTool('inspect_deployment', toolConfig('Inspect a Noodle Cloud deployment', 'Inspect one deployment ID within the selected organization and environments.', inspectDeploymentInputSchema, deploymentInspectionViewSchema, READ_ONLY_ANNOTATIONS, developerToolWidgetMeta('inspect_deployment', widgetsEnabled)), async (input) => asCallToolResult(await inspectDeployment(context, input), 'inspect_deployment', options.onToolResult));
|
|
34
|
+
server.registerTool('get_logs', toolConfig('Get bounded application logs', 'Read redacted, bounded application log events for one selected app environment.', getLogsInputSchema, logsViewSchema, READ_ONLY_ANNOTATIONS, developerToolWidgetMeta('get_logs', widgetsEnabled)), async (input) => asCallToolResult(await getLogs(context, input), 'get_logs', options.onToolResult));
|
|
35
|
+
server.registerTool('get_metrics', toolConfig('Get bounded MCP request metrics', 'Aggregate a bounded request-event window for one selected app environment.', getMetricsInputSchema, metricsViewSchema, READ_ONLY_ANNOTATIONS, developerToolWidgetMeta('get_metrics', widgetsEnabled)), async (input) => asCallToolResult(await getMetrics(context, input), 'get_metrics', options.onToolResult));
|
|
36
|
+
server.registerTool('list_events', toolConfig('List bounded MCP request events', 'List redacted request events for one selected app environment.', listEventsInputSchema, eventsViewSchema), async (input) => asCallToolResult(await listEvents(context, input), 'list_events', options.onToolResult));
|
|
37
|
+
server.registerTool('get_session', toolConfig('Get one MCP session chronology', 'Read a bounded chronological request-event sequence for one session.', getSessionInputSchema, sessionViewSchema), async (input) => asCallToolResult(await getSession(context, input), 'get_session', options.onToolResult));
|
|
38
|
+
server.registerTool('diagnose_app', toolConfig('Diagnose a Noodle app from Cloud evidence', 'Apply deterministic rules to the minimum bounded evidence for one app environment.', diagnoseAppInputSchema, diagnosisViewSchema, READ_ONLY_ANNOTATIONS, developerToolWidgetMeta('diagnose_app', widgetsEnabled)), async (input) => asCallToolResult(await diagnoseApp(context, input), 'diagnose_app', options.onToolResult));
|
|
39
|
+
server.registerTool('rollback_deployment', toolConfig('Roll back a Noodle Cloud deployment', 'Use this when the user wants to reactivate one eligible deployment in the selected app environment.', rollbackDeploymentInputSchema, rollbackViewSchema, ROLLBACK_ANNOTATIONS, developerToolWidgetMeta('rollback_deployment', widgetsEnabled)), async (input) => asCallToolResult(await rollbackDeployment(context, input), 'rollback_deployment', options.onToolResult));
|
|
40
|
+
registerDeveloperResources(server, { widgets: widgetsEnabled });
|
|
41
|
+
registerDeveloperPrompts(server);
|
|
42
|
+
return server;
|
|
43
|
+
}
|
|
44
|
+
function toolConfig(title, description, inputSchema, outputSchema, annotations = READ_ONLY_ANNOTATIONS, _meta) {
|
|
45
|
+
return {
|
|
46
|
+
title,
|
|
47
|
+
description,
|
|
48
|
+
inputSchema,
|
|
49
|
+
outputSchema: developerResultSchema(outputSchema),
|
|
50
|
+
annotations,
|
|
51
|
+
...(_meta === undefined ? {} : { _meta }),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function asCallToolResult(result, toolName, observe) {
|
|
55
|
+
const structuredContent = typeof result === 'object' && result !== null && 'structuredContent' in result
|
|
56
|
+
? result.structuredContent
|
|
57
|
+
: undefined;
|
|
58
|
+
const failure = typeof structuredContent === 'object' &&
|
|
59
|
+
structuredContent !== null &&
|
|
60
|
+
'ok' in structuredContent &&
|
|
61
|
+
structuredContent.ok === false
|
|
62
|
+
? structuredContent
|
|
63
|
+
: undefined;
|
|
64
|
+
const errorCode = failure !== undefined &&
|
|
65
|
+
'error' in failure &&
|
|
66
|
+
typeof failure.error === 'object' &&
|
|
67
|
+
failure.error !== null &&
|
|
68
|
+
'code' in failure.error &&
|
|
69
|
+
typeof failure.error.code === 'string'
|
|
70
|
+
? failure.error.code
|
|
71
|
+
: undefined;
|
|
72
|
+
observe?.({
|
|
73
|
+
toolName,
|
|
74
|
+
decision: failure === undefined ? 'allow' : 'deny',
|
|
75
|
+
...(errorCode === undefined ? {} : { errorCode }),
|
|
76
|
+
});
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type InspectAppInput, type ListAppsInput } from '../contracts.js';
|
|
2
|
+
import type { DeveloperControlPlane } from '../port.js';
|
|
3
|
+
import { type ResultContext } from '../results.js';
|
|
4
|
+
interface AppsToolContext extends ResultContext {
|
|
5
|
+
readonly controlPlane: DeveloperControlPlane;
|
|
6
|
+
}
|
|
7
|
+
export declare function listApps(context: AppsToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
8
|
+
apps: {
|
|
9
|
+
app: string;
|
|
10
|
+
environments: string[];
|
|
11
|
+
active: boolean;
|
|
12
|
+
createdAt: string;
|
|
13
|
+
lastActivityAt?: string | undefined;
|
|
14
|
+
latest?: {
|
|
15
|
+
deploymentId: string;
|
|
16
|
+
environment: string;
|
|
17
|
+
active: boolean;
|
|
18
|
+
serverName: string;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
accessMode?: string | undefined;
|
|
21
|
+
endpointUrl?: string | undefined;
|
|
22
|
+
} | undefined;
|
|
23
|
+
}[];
|
|
24
|
+
}>>;
|
|
25
|
+
export declare function inspectApp(context: AppsToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
26
|
+
app: string;
|
|
27
|
+
environments: string[];
|
|
28
|
+
active: boolean;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
lastActivityAt?: string | undefined;
|
|
31
|
+
latest?: {
|
|
32
|
+
deploymentId: string;
|
|
33
|
+
environment: string;
|
|
34
|
+
active: boolean;
|
|
35
|
+
serverName: string;
|
|
36
|
+
createdAt: string;
|
|
37
|
+
accessMode?: string | undefined;
|
|
38
|
+
endpointUrl?: string | undefined;
|
|
39
|
+
} | undefined;
|
|
40
|
+
selectedEnvironment?: string | undefined;
|
|
41
|
+
}>>;
|
|
42
|
+
export type { InspectAppInput, ListAppsInput };
|
|
43
|
+
//# sourceMappingURL=apps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/tools/apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EAEpB,KAAK,aAAa,EAInB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,UAAU,eAAgB,SAAQ,aAAa;IAC7C,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;CAC9C;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;IA0BtE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;IA8BxE;AA0BD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { appInspectionViewSchema, inspectAppInputSchema, listAppsInputSchema, listAppsViewSchema, } from '../contracts.js';
|
|
2
|
+
import { errorResult, forbiddenEnvironment, portError, successResult, validationError, } from '../results.js';
|
|
3
|
+
export async function listApps(context, input) {
|
|
4
|
+
const parsed = listAppsInputSchema.safeParse(input);
|
|
5
|
+
if (!parsed.success)
|
|
6
|
+
return validationError(context, 'Invalid list_apps input.');
|
|
7
|
+
try {
|
|
8
|
+
const data = listAppsViewSchema.parse(await context.controlPlane.listApps(context.ctx, parsed.data));
|
|
9
|
+
if (!appsStayInScope(context, data)) {
|
|
10
|
+
return errorResult({
|
|
11
|
+
...context,
|
|
12
|
+
code: 'internal_error',
|
|
13
|
+
message: 'Noodle Cloud returned an out-of-scope app response.',
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return successResult({
|
|
17
|
+
...context,
|
|
18
|
+
data,
|
|
19
|
+
summary: `${data.apps.length} app${data.apps.length === 1 ? '' : 's'} in the selected scope.`,
|
|
20
|
+
nextActions: [
|
|
21
|
+
{ kind: 'call_tool', label: 'Inspect an app', tool: 'inspect_app' },
|
|
22
|
+
{ kind: 'call_tool', label: 'Diagnose an app environment', tool: 'diagnose_app' },
|
|
23
|
+
],
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
return portError(context, error);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export async function inspectApp(context, input) {
|
|
31
|
+
const parsed = inspectAppInputSchema.safeParse(input);
|
|
32
|
+
if (!parsed.success)
|
|
33
|
+
return validationError(context, 'Invalid inspect_app input.');
|
|
34
|
+
if (parsed.data.env !== undefined && !context.ctx.environments.includes(parsed.data.env)) {
|
|
35
|
+
return forbiddenEnvironment(context, parsed.data.env);
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const data = appInspectionViewSchema.parse(await context.controlPlane.inspectApp(context.ctx, parsed.data));
|
|
39
|
+
if (!data.environments.every((env) => context.ctx.environments.includes(env))) {
|
|
40
|
+
return errorResult({
|
|
41
|
+
...context,
|
|
42
|
+
code: 'internal_error',
|
|
43
|
+
message: 'Noodle Cloud returned an out-of-scope app response.',
|
|
44
|
+
...(parsed.data.env !== undefined ? { env: parsed.data.env } : {}),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const env = parsed.data.env ?? data.selectedEnvironment;
|
|
48
|
+
return successResult({
|
|
49
|
+
...context,
|
|
50
|
+
data,
|
|
51
|
+
summary: `${data.app} has ${data.environments.length} visible environment${data.environments.length === 1 ? '' : 's'}.`,
|
|
52
|
+
...(env !== undefined ? { env } : {}),
|
|
53
|
+
nextActions: appNextActions(parsed.data, data),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
return portError(context, error, parsed.data.env);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function appsStayInScope(context, data) {
|
|
61
|
+
return data.apps.every((app) => app.environments.every((environment) => context.ctx.environments.includes(environment)));
|
|
62
|
+
}
|
|
63
|
+
function appNextActions(input, data) {
|
|
64
|
+
const actions = [];
|
|
65
|
+
if (data.latest !== undefined) {
|
|
66
|
+
actions.push({
|
|
67
|
+
kind: 'call_tool',
|
|
68
|
+
label: 'Inspect the latest deployment',
|
|
69
|
+
tool: 'inspect_deployment',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (input.env !== undefined) {
|
|
73
|
+
actions.push({ kind: 'call_tool', label: 'Read recent logs', tool: 'get_logs' }, { kind: 'call_tool', label: 'Diagnose this environment', tool: 'diagnose_app' });
|
|
74
|
+
}
|
|
75
|
+
return actions;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=apps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../../src/tools/apps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DeveloperContextView } from '../contracts.js';
|
|
2
|
+
import { type DeveloperToolResult, type ResultContext } from '../results.js';
|
|
3
|
+
export declare function getContext(context: ResultContext): Promise<DeveloperToolResult<DeveloperContextView>>;
|
|
4
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAiB,MAAM,eAAe,CAAC;AAE5F,wBAAgB,UAAU,CACxB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,CAoBpD"}
|