@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,21 @@
|
|
|
1
|
+
import { successResult } from '../results.js';
|
|
2
|
+
export function getContext(context) {
|
|
3
|
+
return Promise.resolve(successResult({
|
|
4
|
+
...context,
|
|
5
|
+
data: {
|
|
6
|
+
org: context.ctx.org,
|
|
7
|
+
environments: context.ctx.environments,
|
|
8
|
+
capabilities: context.ctx.capabilities,
|
|
9
|
+
},
|
|
10
|
+
summary: `Connected to ${context.ctx.org} for ${context.ctx.environments.join(', ')}.`,
|
|
11
|
+
nextActions: [
|
|
12
|
+
{ kind: 'call_tool', label: 'List apps in the selected scope', tool: 'list_apps' },
|
|
13
|
+
{
|
|
14
|
+
kind: 'read_resource',
|
|
15
|
+
label: 'Review the Noodle developer workflow',
|
|
16
|
+
resource: 'noodle://developer/workflow/v1',
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAgD,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5F,MAAM,UAAU,UAAU,CACxB,OAAsB;IAEtB,OAAO,OAAO,CAAC,OAAO,CACpB,aAAa,CAAC;QACZ,GAAG,OAAO;QACV,IAAI,EAAE;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;YACpB,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;YACtC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;SACvC;QACD,OAAO,EAAE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACtF,WAAW,EAAE;YACX,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,iCAAiC,EAAE,IAAI,EAAE,WAAW,EAAE;YAClF;gBACE,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,sCAAsC;gBAC7C,QAAQ,EAAE,gCAAgC;aAC3C;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { DeveloperControlPlane } from '../port.js';
|
|
2
|
+
import { type ResultContext } from '../results.js';
|
|
3
|
+
interface DeploymentToolContext extends ResultContext {
|
|
4
|
+
readonly controlPlane: DeveloperControlPlane;
|
|
5
|
+
}
|
|
6
|
+
export declare function inspectDeployment(context: DeploymentToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
7
|
+
target: {
|
|
8
|
+
app: string;
|
|
9
|
+
env: string;
|
|
10
|
+
};
|
|
11
|
+
deployment: {
|
|
12
|
+
deploymentId: string;
|
|
13
|
+
endpointUrl: string;
|
|
14
|
+
active: boolean;
|
|
15
|
+
serverName: string;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
accessMode: string;
|
|
18
|
+
createdByEmail?: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
health: {
|
|
21
|
+
state: string;
|
|
22
|
+
missingSecrets: string[];
|
|
23
|
+
};
|
|
24
|
+
surface: {
|
|
25
|
+
tools: {
|
|
26
|
+
name: string;
|
|
27
|
+
description?: string | undefined;
|
|
28
|
+
}[];
|
|
29
|
+
resources: {
|
|
30
|
+
uri: string;
|
|
31
|
+
name: string;
|
|
32
|
+
mimeType?: string | undefined;
|
|
33
|
+
}[];
|
|
34
|
+
prompts: {
|
|
35
|
+
name: string;
|
|
36
|
+
description?: string | undefined;
|
|
37
|
+
}[];
|
|
38
|
+
widgets: {
|
|
39
|
+
uri: string;
|
|
40
|
+
name: string;
|
|
41
|
+
mimeType?: string | undefined;
|
|
42
|
+
}[];
|
|
43
|
+
compatibility: {
|
|
44
|
+
mcpApps: "warn" | "pass" | "unverified";
|
|
45
|
+
chatgpt: "warn" | "pass" | "unverified";
|
|
46
|
+
claude: "warn" | "pass" | "unverified";
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
findings: {
|
|
50
|
+
level: "warn" | "fail";
|
|
51
|
+
code: string;
|
|
52
|
+
message: string;
|
|
53
|
+
}[];
|
|
54
|
+
rollbackCandidate?: {
|
|
55
|
+
deploymentId: string;
|
|
56
|
+
serverName: string;
|
|
57
|
+
createdAt: string;
|
|
58
|
+
} | undefined;
|
|
59
|
+
}>>;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=deployments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../src/tools/deployments.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,UAAU,qBAAsB,SAAQ,aAAa;IACnD,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;CAC9C;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkCrF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { deploymentInspectionViewSchema, inspectDeploymentInputSchema, } from '../contracts.js';
|
|
2
|
+
import { errorResult, portError, successResult, validationError, } from '../results.js';
|
|
3
|
+
export async function inspectDeployment(context, input) {
|
|
4
|
+
const parsed = inspectDeploymentInputSchema.safeParse(input);
|
|
5
|
+
if (!parsed.success) {
|
|
6
|
+
return validationError(context, 'Invalid inspect_deployment input.');
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
const data = deploymentInspectionViewSchema.parse(await context.controlPlane.inspectDeployment(context.ctx, parsed.data));
|
|
10
|
+
if (!context.ctx.environments.includes(data.target.env)) {
|
|
11
|
+
return errorResult({
|
|
12
|
+
...context,
|
|
13
|
+
code: 'internal_error',
|
|
14
|
+
message: 'Noodle Cloud returned an out-of-scope deployment response.',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return successResult({
|
|
18
|
+
...context,
|
|
19
|
+
data,
|
|
20
|
+
env: data.target.env,
|
|
21
|
+
summary: `${data.deployment.serverName} is ${data.health.state} in ${data.target.env}.`,
|
|
22
|
+
nextActions: [
|
|
23
|
+
{ kind: 'call_tool', label: 'Read recent deployment logs', tool: 'get_logs' },
|
|
24
|
+
{ kind: 'call_tool', label: 'Review request metrics', tool: 'get_metrics' },
|
|
25
|
+
{
|
|
26
|
+
kind: 'run_cli',
|
|
27
|
+
label: 'Validate the local project with the Noodle CLI',
|
|
28
|
+
command: 'noodle validate',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return portError(context, error);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=deployments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/tools/deployments.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,SAAS,EAET,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AAMvB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA8B,EAAE,KAAc;IACpF,MAAM,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,eAAe,CAA2B,OAAO,EAAE,mCAAmC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,8BAA8B,CAAC,KAAK,CAC/C,MAAM,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CACvE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,WAAW,CAA2B;gBAC3C,GAAG,OAAO;gBACV,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,4DAA4D;aACtE,CAAC,CAAC;QACL,CAAC;QACD,OAAO,aAAa,CAAC;YACnB,GAAG,OAAO;YACV,IAAI;YACJ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACpB,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;YACvF,WAAW,EAAE;gBACX,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,UAAU,EAAE;gBAC7E,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,aAAa,EAAE;gBAC3E;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,gDAAgD;oBACvD,OAAO,EAAE,iBAAiB;iBAC3B;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAA2B,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { DeveloperControlPlane } from '../port.js';
|
|
2
|
+
import { type ResultContext } from '../results.js';
|
|
3
|
+
interface DiagnoseToolContext extends ResultContext {
|
|
4
|
+
readonly controlPlane: DeveloperControlPlane;
|
|
5
|
+
}
|
|
6
|
+
export declare function diagnoseApp(context: DiagnoseToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
7
|
+
app: string;
|
|
8
|
+
env: string;
|
|
9
|
+
findings: {
|
|
10
|
+
severity: "error" | "info" | "warning";
|
|
11
|
+
code: string;
|
|
12
|
+
title: string;
|
|
13
|
+
message: string;
|
|
14
|
+
evidence: string[];
|
|
15
|
+
nextAction?: {
|
|
16
|
+
kind: "call_tool" | "run_cli" | "read_resource" | "inspect_code";
|
|
17
|
+
label: string;
|
|
18
|
+
tool?: string | undefined;
|
|
19
|
+
command?: string | undefined;
|
|
20
|
+
resource?: string | undefined;
|
|
21
|
+
} | undefined;
|
|
22
|
+
}[];
|
|
23
|
+
evidence: {
|
|
24
|
+
sources: ("app" | "deployment" | "metrics" | "logs")[];
|
|
25
|
+
unavailable: ("app" | "deployment" | "metrics" | "logs")[];
|
|
26
|
+
};
|
|
27
|
+
}>>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=diagnose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,UAAU,mBAAoB,SAAQ,aAAa;IACjD,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;CAC9C;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;IAwC7E"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { appInspectionViewSchema, diagnoseAppInputSchema, } from '../contracts.js';
|
|
2
|
+
import { diagnoseEvidence, diagnosisViewSchema, } from '../diagnosis.js';
|
|
3
|
+
import { forbiddenEnvironment, portError, successResult, validationError, } from '../results.js';
|
|
4
|
+
export async function diagnoseApp(context, input) {
|
|
5
|
+
const parsed = diagnoseAppInputSchema.safeParse(input);
|
|
6
|
+
if (!parsed.success)
|
|
7
|
+
return validationError(context, 'Invalid diagnose_app input.');
|
|
8
|
+
const { app, env } = parsed.data;
|
|
9
|
+
if (!context.ctx.environments.includes(env)) {
|
|
10
|
+
return forbiddenEnvironment(context, env);
|
|
11
|
+
}
|
|
12
|
+
let appView;
|
|
13
|
+
try {
|
|
14
|
+
appView = appInspectionViewSchema.parse(await context.controlPlane.inspectApp(context.ctx, { app, env }));
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
return portError(context, error, env);
|
|
18
|
+
}
|
|
19
|
+
const evidence = { app: { active: appView.active } };
|
|
20
|
+
const sources = ['app'];
|
|
21
|
+
const unavailable = [];
|
|
22
|
+
if (appView.latest === undefined || appView.latest.environment !== env) {
|
|
23
|
+
return diagnosisResult(context, app, env, evidence, sources, unavailable);
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const deployment = await context.controlPlane.inspectDeployment(context.ctx, {
|
|
27
|
+
deploymentId: appView.latest.deploymentId,
|
|
28
|
+
});
|
|
29
|
+
evidenceWith(evidence, 'deployment', deployment);
|
|
30
|
+
sources.push('deployment');
|
|
31
|
+
if (deployment.health.state === 'ready') {
|
|
32
|
+
await collectMetrics(context, app, env, evidence, sources, unavailable);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
await collectLogs(context, app, env, evidence, sources, unavailable);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
unavailable.push('deployment');
|
|
40
|
+
}
|
|
41
|
+
return diagnosisResult(context, app, env, evidence, sources, unavailable);
|
|
42
|
+
}
|
|
43
|
+
async function collectMetrics(context, app, env, evidence, sources, unavailable) {
|
|
44
|
+
const input = { app, env, window: '24h' };
|
|
45
|
+
try {
|
|
46
|
+
evidenceWith(evidence, 'metrics', await context.controlPlane.getMetrics(context.ctx, input));
|
|
47
|
+
sources.push('metrics');
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
unavailable.push('metrics');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function collectLogs(context, app, env, evidence, sources, unavailable) {
|
|
54
|
+
const input = { app, env, limit: 50, level: 'error' };
|
|
55
|
+
try {
|
|
56
|
+
evidenceWith(evidence, 'logs', await context.controlPlane.getLogs(context.ctx, input));
|
|
57
|
+
sources.push('logs');
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
unavailable.push('logs');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function evidenceWith(evidence, key, value) {
|
|
64
|
+
evidence[key] = value;
|
|
65
|
+
}
|
|
66
|
+
function diagnosisResult(context, app, env, evidence, sources, unavailable) {
|
|
67
|
+
const data = diagnosisViewSchema.parse({
|
|
68
|
+
app,
|
|
69
|
+
env,
|
|
70
|
+
findings: diagnoseEvidence({ ...evidence, unavailable }),
|
|
71
|
+
evidence: { sources, unavailable },
|
|
72
|
+
});
|
|
73
|
+
return successResult({
|
|
74
|
+
...context,
|
|
75
|
+
data,
|
|
76
|
+
env,
|
|
77
|
+
summary: data.findings.length === 0
|
|
78
|
+
? `${app}/${env} is healthy in the observed evidence.`
|
|
79
|
+
: `${data.findings.length} deterministic finding${data.findings.length === 1 ? '' : 's'} for ${app}/${env}.`,
|
|
80
|
+
nextActions: data.findings.flatMap((finding) => finding.nextAction === undefined ? [] : [finding.nextAction]),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=diagnose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/tools/diagnose.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,GAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,oBAAoB,EACpB,SAAS,EAET,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AAMvB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA4B,EAAE,KAAc;IAC5E,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO;QACjB,OAAO,eAAe,CAAgB,OAAO,EAAE,6BAA6B,CAAC,CAAC;IAChF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,oBAAoB,CAAgB,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,GAAG,uBAAuB,CAAC,KAAK,CACrC,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CACjE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAAgB,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,QAAQ,GAAsB,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACxE,MAAM,OAAO,GAAsB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;QACvE,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE;YAC3E,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;SAC1C,CAAC,CAAC;QACH,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACxC,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAA4B,EAC5B,GAAW,EACX,GAAW,EACX,QAA2B,EAC3B,OAA0B,EAC1B,WAA8B;IAE9B,MAAM,KAAK,GAAoB,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAI,CAAC;QACH,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,OAA4B,EAC5B,GAAW,EACX,GAAW,EACX,QAA2B,EAC3B,OAA0B,EAC1B,WAA8B;IAE9B,MAAM,KAAK,GAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACpE,IAAI,CAAC;QACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,QAA2B,EAC3B,GAAM,EACN,KAAwC;IAEvC,QAAyD,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CACtB,OAA4B,EAC5B,GAAW,EACX,GAAW,EACX,QAA2B,EAC3B,OAA0B,EAC1B,WAA8B;IAE9B,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACrC,GAAG;QACH,GAAG;QACH,QAAQ,EAAE,gBAAgB,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxD,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;KACnC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;QACnB,GAAG,OAAO;QACV,IAAI;QACJ,GAAG;QACH,OAAO,EACL,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,uCAAuC;YACtD,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,yBAAyB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG;QAChH,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC7C,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAC7D;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { inspectApp, listApps } from './apps.js';
|
|
2
|
+
export { getContext } from './context.js';
|
|
3
|
+
export { inspectDeployment } from './deployments.js';
|
|
4
|
+
export { diagnoseApp } from './diagnose.js';
|
|
5
|
+
export { getLogs, getMetrics, getSession, listEvents } from './operations.js';
|
|
6
|
+
export { rollbackDeployment } from './rollback.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { inspectApp, listApps } from './apps.js';
|
|
2
|
+
export { getContext } from './context.js';
|
|
3
|
+
export { inspectDeployment } from './deployments.js';
|
|
4
|
+
export { diagnoseApp } from './diagnose.js';
|
|
5
|
+
export { getLogs, getMetrics, getSession, listEvents } from './operations.js';
|
|
6
|
+
export { rollbackDeployment } from './rollback.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { DeveloperControlPlane } from '../port.js';
|
|
2
|
+
import { type ResultContext } from '../results.js';
|
|
3
|
+
interface OperationsToolContext extends ResultContext {
|
|
4
|
+
readonly controlPlane: DeveloperControlPlane;
|
|
5
|
+
}
|
|
6
|
+
export declare function getLogs(context: OperationsToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
7
|
+
events: {
|
|
8
|
+
id: string;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
level: "error" | "debug" | "info" | "warn";
|
|
11
|
+
message: string;
|
|
12
|
+
deploymentId?: string | undefined;
|
|
13
|
+
toolName?: string | undefined;
|
|
14
|
+
executionId?: string | undefined;
|
|
15
|
+
toolCallId?: string | undefined;
|
|
16
|
+
traceId?: string | undefined;
|
|
17
|
+
requestId?: string | undefined;
|
|
18
|
+
details?: Record<string, string | number | boolean | null> | undefined;
|
|
19
|
+
truncated?: boolean | undefined;
|
|
20
|
+
}[];
|
|
21
|
+
}>>;
|
|
22
|
+
export declare function getMetrics(context: OperationsToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
23
|
+
window: {
|
|
24
|
+
since: string;
|
|
25
|
+
until?: string | undefined;
|
|
26
|
+
};
|
|
27
|
+
truncated: boolean;
|
|
28
|
+
metrics: {
|
|
29
|
+
totals: {
|
|
30
|
+
requests: number;
|
|
31
|
+
sessions: number;
|
|
32
|
+
toolCalls: number;
|
|
33
|
+
discovery: number;
|
|
34
|
+
};
|
|
35
|
+
errors: {
|
|
36
|
+
ok: number;
|
|
37
|
+
toolErrors: number;
|
|
38
|
+
mcpErrors: number;
|
|
39
|
+
toolErrorRate: number;
|
|
40
|
+
mcpErrorRate: number;
|
|
41
|
+
errorRate: number;
|
|
42
|
+
};
|
|
43
|
+
latency: {
|
|
44
|
+
avgMs: number;
|
|
45
|
+
p50Ms: number;
|
|
46
|
+
p95Ms: number;
|
|
47
|
+
p99Ms: number;
|
|
48
|
+
};
|
|
49
|
+
tokens: {
|
|
50
|
+
total: number;
|
|
51
|
+
avgPerCall: number;
|
|
52
|
+
};
|
|
53
|
+
byTool: {
|
|
54
|
+
tool: string;
|
|
55
|
+
calls: number;
|
|
56
|
+
errors: number;
|
|
57
|
+
share: number;
|
|
58
|
+
p95Ms: number;
|
|
59
|
+
}[];
|
|
60
|
+
byClient: {
|
|
61
|
+
client: string;
|
|
62
|
+
sessions: number;
|
|
63
|
+
share: number;
|
|
64
|
+
}[];
|
|
65
|
+
byMethod: {
|
|
66
|
+
method: string;
|
|
67
|
+
requests: number;
|
|
68
|
+
share: number;
|
|
69
|
+
}[];
|
|
70
|
+
series: {
|
|
71
|
+
bucketStart: string;
|
|
72
|
+
requests: number;
|
|
73
|
+
toolErrors: number;
|
|
74
|
+
mcpErrors: number;
|
|
75
|
+
}[];
|
|
76
|
+
};
|
|
77
|
+
}>>;
|
|
78
|
+
export declare function listEvents(context: OperationsToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
79
|
+
events: {
|
|
80
|
+
id: string;
|
|
81
|
+
createdAt: string;
|
|
82
|
+
requestId: string;
|
|
83
|
+
sessionSource: "mcp" | "synthetic" | "none";
|
|
84
|
+
subjectKind: "anonymous" | "authenticated";
|
|
85
|
+
method: string;
|
|
86
|
+
kind: "discovery" | "usage";
|
|
87
|
+
outcome: "ok" | "tool_error" | "mcp_error";
|
|
88
|
+
durationMs: number;
|
|
89
|
+
seq?: number | undefined;
|
|
90
|
+
schemaVersion?: number | undefined;
|
|
91
|
+
deploymentId?: string | undefined;
|
|
92
|
+
serverVersion?: string | undefined;
|
|
93
|
+
sdkProtocolVersion?: string | undefined;
|
|
94
|
+
sessionId?: string | undefined;
|
|
95
|
+
clientName?: string | undefined;
|
|
96
|
+
clientVersion?: string | undefined;
|
|
97
|
+
accessMode?: string | undefined;
|
|
98
|
+
toolName?: string | undefined;
|
|
99
|
+
resourceName?: string | undefined;
|
|
100
|
+
promptName?: string | undefined;
|
|
101
|
+
errorKind?: string | undefined;
|
|
102
|
+
outputTokensEst?: number | undefined;
|
|
103
|
+
country?: string | undefined;
|
|
104
|
+
details?: Record<string, string | number | boolean | null> | undefined;
|
|
105
|
+
}[];
|
|
106
|
+
}>>;
|
|
107
|
+
export declare function getSession(context: OperationsToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
108
|
+
sessionId: string;
|
|
109
|
+
events: {
|
|
110
|
+
id: string;
|
|
111
|
+
createdAt: string;
|
|
112
|
+
requestId: string;
|
|
113
|
+
sessionSource: "mcp" | "synthetic" | "none";
|
|
114
|
+
subjectKind: "anonymous" | "authenticated";
|
|
115
|
+
method: string;
|
|
116
|
+
kind: "discovery" | "usage";
|
|
117
|
+
outcome: "ok" | "tool_error" | "mcp_error";
|
|
118
|
+
durationMs: number;
|
|
119
|
+
seq?: number | undefined;
|
|
120
|
+
schemaVersion?: number | undefined;
|
|
121
|
+
deploymentId?: string | undefined;
|
|
122
|
+
serverVersion?: string | undefined;
|
|
123
|
+
sdkProtocolVersion?: string | undefined;
|
|
124
|
+
sessionId?: string | undefined;
|
|
125
|
+
clientName?: string | undefined;
|
|
126
|
+
clientVersion?: string | undefined;
|
|
127
|
+
accessMode?: string | undefined;
|
|
128
|
+
toolName?: string | undefined;
|
|
129
|
+
resourceName?: string | undefined;
|
|
130
|
+
promptName?: string | undefined;
|
|
131
|
+
errorKind?: string | undefined;
|
|
132
|
+
outputTokensEst?: number | undefined;
|
|
133
|
+
country?: string | undefined;
|
|
134
|
+
details?: Record<string, string | number | boolean | null> | undefined;
|
|
135
|
+
}[];
|
|
136
|
+
}>>;
|
|
137
|
+
export {};
|
|
138
|
+
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/tools/operations.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,UAAU,qBAAsB,SAAQ,aAAa;IACnD,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;CAC9C;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;IAqB3E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuB9E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuB9E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuB9E"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { eventsViewSchema, getLogsInputSchema, getMetricsInputSchema, getSessionInputSchema, listEventsInputSchema, logsViewSchema, metricsViewSchema, sessionViewSchema, } from '../contracts.js';
|
|
2
|
+
import { forbiddenEnvironment, portError, successResult, validationError, } from '../results.js';
|
|
3
|
+
export async function getLogs(context, input) {
|
|
4
|
+
const parsed = getLogsInputSchema.safeParse(input);
|
|
5
|
+
if (!parsed.success)
|
|
6
|
+
return validationError(context, 'Invalid get_logs input.');
|
|
7
|
+
if (!context.ctx.environments.includes(parsed.data.env)) {
|
|
8
|
+
return forbiddenEnvironment(context, parsed.data.env);
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
const data = logsViewSchema.parse(await context.controlPlane.getLogs(context.ctx, parsed.data));
|
|
12
|
+
return successResult({
|
|
13
|
+
...context,
|
|
14
|
+
data,
|
|
15
|
+
env: parsed.data.env,
|
|
16
|
+
summary: `${data.events.length} recent log event${data.events.length === 1 ? '' : 's'} for ${parsed.data.app}/${parsed.data.env}.`,
|
|
17
|
+
nextActions: [
|
|
18
|
+
{ kind: 'call_tool', label: 'Diagnose this app environment', tool: 'diagnose_app' },
|
|
19
|
+
{ kind: 'call_tool', label: 'Review request events', tool: 'list_events' },
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return portError(context, error, parsed.data.env);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export async function getMetrics(context, input) {
|
|
28
|
+
const parsed = getMetricsInputSchema.safeParse(input);
|
|
29
|
+
if (!parsed.success)
|
|
30
|
+
return validationError(context, 'Invalid get_metrics input.');
|
|
31
|
+
if (!context.ctx.environments.includes(parsed.data.env)) {
|
|
32
|
+
return forbiddenEnvironment(context, parsed.data.env);
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const data = metricsViewSchema.parse(await context.controlPlane.getMetrics(context.ctx, parsed.data));
|
|
36
|
+
return successResult({
|
|
37
|
+
...context,
|
|
38
|
+
data,
|
|
39
|
+
env: parsed.data.env,
|
|
40
|
+
summary: `${data.metrics.totals.requests} requests observed${data.truncated ? ' (partial window)' : ''}.`,
|
|
41
|
+
nextActions: [
|
|
42
|
+
{ kind: 'call_tool', label: 'Inspect request events', tool: 'list_events' },
|
|
43
|
+
{ kind: 'call_tool', label: 'Diagnose this app environment', tool: 'diagnose_app' },
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return portError(context, error, parsed.data.env);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export async function listEvents(context, input) {
|
|
52
|
+
const parsed = listEventsInputSchema.safeParse(input);
|
|
53
|
+
if (!parsed.success)
|
|
54
|
+
return validationError(context, 'Invalid list_events input.');
|
|
55
|
+
if (!context.ctx.environments.includes(parsed.data.env)) {
|
|
56
|
+
return forbiddenEnvironment(context, parsed.data.env);
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
const data = eventsViewSchema.parse(await context.controlPlane.listEvents(context.ctx, parsed.data));
|
|
60
|
+
return successResult({
|
|
61
|
+
...context,
|
|
62
|
+
data,
|
|
63
|
+
env: parsed.data.env,
|
|
64
|
+
summary: `${data.events.length} request event${data.events.length === 1 ? '' : 's'} matched.`,
|
|
65
|
+
nextActions: [
|
|
66
|
+
{ kind: 'call_tool', label: 'Open one session chronology', tool: 'get_session' },
|
|
67
|
+
{ kind: 'call_tool', label: 'Diagnose this app environment', tool: 'diagnose_app' },
|
|
68
|
+
],
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
return portError(context, error, parsed.data.env);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export async function getSession(context, input) {
|
|
76
|
+
const parsed = getSessionInputSchema.safeParse(input);
|
|
77
|
+
if (!parsed.success)
|
|
78
|
+
return validationError(context, 'Invalid get_session input.');
|
|
79
|
+
if (!context.ctx.environments.includes(parsed.data.env)) {
|
|
80
|
+
return forbiddenEnvironment(context, parsed.data.env);
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const data = sessionViewSchema.parse(await context.controlPlane.getSession(context.ctx, parsed.data));
|
|
84
|
+
return successResult({
|
|
85
|
+
...context,
|
|
86
|
+
data,
|
|
87
|
+
env: parsed.data.env,
|
|
88
|
+
summary: `${data.events.length} chronological event${data.events.length === 1 ? '' : 's'} in session ${data.sessionId}.`,
|
|
89
|
+
nextActions: [
|
|
90
|
+
{ kind: 'call_tool', label: 'Read correlated application logs', tool: 'get_logs' },
|
|
91
|
+
{ kind: 'call_tool', label: 'Diagnose this app environment', tool: 'diagnose_app' },
|
|
92
|
+
],
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return portError(context, error, parsed.data.env);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/tools/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DeveloperControlPlane } from '../port.js';
|
|
2
|
+
import { type ResultContext } from '../results.js';
|
|
3
|
+
interface RollbackToolContext extends ResultContext {
|
|
4
|
+
readonly controlPlane: DeveloperControlPlane;
|
|
5
|
+
}
|
|
6
|
+
export declare function rollbackDeployment(context: RollbackToolContext, input: unknown): Promise<import("../results.js").DeveloperToolResult<{
|
|
7
|
+
target: {
|
|
8
|
+
app: string;
|
|
9
|
+
env: string;
|
|
10
|
+
};
|
|
11
|
+
rollback: {
|
|
12
|
+
deploymentId: string;
|
|
13
|
+
alreadyActive: boolean;
|
|
14
|
+
endpointUrl: string;
|
|
15
|
+
accessMode: string;
|
|
16
|
+
serverName: string;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
serverVersion?: string | undefined;
|
|
19
|
+
previousDeploymentId?: string | undefined;
|
|
20
|
+
previousAccessMode?: string | undefined;
|
|
21
|
+
};
|
|
22
|
+
}>>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=rollback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/tools/rollback.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAIL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AAEvB,UAAU,mBAAoB,SAAQ,aAAa;IACjD,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;CAC9C;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO;;;;;;;;;;;;;;;;IA0DpF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { rollbackDeploymentInputSchema, rollbackViewSchema, } from '../contracts.js';
|
|
2
|
+
import { errorResult, forbiddenEnvironment, portError, successResult, validationError, } from '../results.js';
|
|
3
|
+
export async function rollbackDeployment(context, input) {
|
|
4
|
+
if (!context.ctx.capabilities.includes('deployments:rollback')) {
|
|
5
|
+
return errorResult({
|
|
6
|
+
...context,
|
|
7
|
+
code: 'capability_missing',
|
|
8
|
+
message: 'This connection does not grant deployment rollback.',
|
|
9
|
+
nextActions: [
|
|
10
|
+
{
|
|
11
|
+
kind: 'read_resource',
|
|
12
|
+
label: 'Review the capabilities selected for this connection',
|
|
13
|
+
resource: 'noodle://developer/capabilities/v1',
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const parsed = rollbackDeploymentInputSchema.safeParse(input);
|
|
19
|
+
if (!parsed.success) {
|
|
20
|
+
return validationError(context, 'Invalid rollback_deployment input.');
|
|
21
|
+
}
|
|
22
|
+
if (!context.ctx.environments.includes(parsed.data.env)) {
|
|
23
|
+
return forbiddenEnvironment(context, parsed.data.env);
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const data = rollbackViewSchema.parse(await context.controlPlane.rollbackDeployment(context.ctx, parsed.data));
|
|
27
|
+
if (data.target.app !== parsed.data.app ||
|
|
28
|
+
data.target.env !== parsed.data.env ||
|
|
29
|
+
!context.ctx.environments.includes(data.target.env)) {
|
|
30
|
+
return errorResult({
|
|
31
|
+
...context,
|
|
32
|
+
code: 'internal_error',
|
|
33
|
+
message: 'Noodle Cloud returned an out-of-scope rollback response.',
|
|
34
|
+
env: parsed.data.env,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return successResult({
|
|
38
|
+
...context,
|
|
39
|
+
data,
|
|
40
|
+
env: parsed.data.env,
|
|
41
|
+
summary: data.rollback.alreadyActive
|
|
42
|
+
? `${data.rollback.serverName} deployment ${data.rollback.deploymentId} was already active.`
|
|
43
|
+
: `${data.rollback.serverName} rolled back to deployment ${data.rollback.deploymentId}.`,
|
|
44
|
+
nextActions: [
|
|
45
|
+
{
|
|
46
|
+
kind: 'call_tool',
|
|
47
|
+
label: 'Inspect the active deployment',
|
|
48
|
+
tool: 'inspect_deployment',
|
|
49
|
+
},
|
|
50
|
+
{ kind: 'call_tool', label: 'Read post-rollback logs', tool: 'get_logs' },
|
|
51
|
+
{ kind: 'call_tool', label: 'Review post-rollback metrics', tool: 'get_metrics' },
|
|
52
|
+
],
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
return portError(context, error, parsed.data.env);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=rollback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/tools/rollback.ts"],"names":[],"mappings":"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"}
|