@cubis/foundry 0.3.33 → 0.3.35
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/CHANGELOG.md +30 -0
- package/README.md +56 -11
- package/bin/cubis.js +2809 -965
- package/mcp/.dockerignore +5 -0
- package/mcp/Dockerfile +19 -0
- package/mcp/README.md +550 -11
- package/mcp/config.json +18 -0
- package/mcp/dist/index.d.ts +1 -0
- package/mcp/dist/index.js +1488 -0
- package/mcp/package.json +36 -0
- package/mcp/src/cbxConfig/index.ts +23 -0
- package/mcp/src/cbxConfig/paths.ts +45 -0
- package/mcp/src/cbxConfig/reader.ts +149 -0
- package/mcp/src/cbxConfig/readerWriter.test.ts +147 -0
- package/mcp/src/cbxConfig/serviceConfig.test.ts +42 -0
- package/mcp/src/cbxConfig/serviceConfig.ts +157 -0
- package/mcp/src/cbxConfig/types.ts +44 -0
- package/mcp/src/cbxConfig/writer.ts +90 -0
- package/mcp/src/config/index.test.ts +81 -0
- package/mcp/src/config/index.ts +45 -0
- package/mcp/src/config/schema.ts +55 -0
- package/mcp/src/gateway/catalog.ts +37 -0
- package/mcp/src/gateway/config.ts +247 -0
- package/mcp/src/gateway/manager.ts +255 -0
- package/mcp/src/gateway/types.ts +54 -0
- package/mcp/src/gateway/upstreamClient.ts +80 -0
- package/mcp/src/index.ts +211 -0
- package/mcp/src/server.ts +219 -0
- package/mcp/src/tools/configTools.test.ts +166 -0
- package/mcp/src/tools/future/README.md +21 -0
- package/mcp/src/tools/future/index.ts +8 -0
- package/mcp/src/tools/index.ts +76 -0
- package/mcp/src/tools/mcpGateway.ts +44 -0
- package/mcp/src/tools/postmanGetMode.ts +82 -0
- package/mcp/src/tools/postmanGetStatus.ts +65 -0
- package/mcp/src/tools/postmanModes.ts +28 -0
- package/mcp/src/tools/postmanSetMode.ts +71 -0
- package/mcp/src/tools/skillBrowseCategory.ts +54 -0
- package/mcp/src/tools/skillGet.ts +43 -0
- package/mcp/src/tools/skillListCategories.ts +40 -0
- package/mcp/src/tools/skillSearch.ts +72 -0
- package/mcp/src/tools/skillTools.test.ts +126 -0
- package/mcp/src/tools/stitchGetMode.ts +58 -0
- package/mcp/src/tools/stitchGetStatus.ts +70 -0
- package/mcp/src/tools/stitchSetProfile.ts +82 -0
- package/mcp/src/transports/stdio.ts +9 -0
- package/mcp/src/transports/streamableHttp.ts +43 -0
- package/mcp/src/upstream/passthrough.ts +273 -0
- package/mcp/src/utils/errors.ts +38 -0
- package/mcp/src/utils/logger.ts +63 -0
- package/mcp/src/vault/manifest.test.ts +126 -0
- package/mcp/src/vault/manifest.ts +99 -0
- package/mcp/src/vault/scanner.test.ts +70 -0
- package/mcp/src/vault/scanner.ts +145 -0
- package/mcp/src/vault/types.ts +21 -0
- package/package.json +9 -2
- package/workflows/scripts/generate-powers.mjs +27 -18
- package/workflows/skills/skills_index.json +0 -102
- package/workflows/workflows/agent-environment-setup/manifest.json +0 -24
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/nextjs-react-expert/SKILL.md +1 -1
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/skills_index.json +0 -102
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/nextjs-react-expert/SKILL.md +1 -1
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/skills_index.json +0 -102
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/nextjs-react-expert/SKILL.md +1 -1
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/skills_index.json +0 -102
- package/mcp/catalogs/default.json +0 -14
- package/mcp/powers/atlassian-mcp/POWER.md +0 -91
- package/mcp/powers/atlassian-mcp/SKILL.md +0 -88
- package/mcp/powers/atlassian-mcp/steering/authentication-patterns.md +0 -520
- package/mcp/powers/atlassian-mcp/steering/common-workflows.md +0 -660
- package/mcp/powers/atlassian-mcp/steering/confluence-operations.md +0 -528
- package/mcp/powers/atlassian-mcp/steering/jira-queries.md +0 -421
- package/mcp/powers/atlassian-mcp/steering/mcp-server-setup.md +0 -292
- package/mcp/powers/building-mcp-server-on-cloudflare/POWER.md +0 -261
- package/mcp/powers/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/mcp/powers/building-mcp-server-on-cloudflare/steering/examples.md +0 -115
- package/mcp/powers/building-mcp-server-on-cloudflare/steering/oauth-setup.md +0 -338
- package/mcp/powers/building-mcp-server-on-cloudflare/steering/troubleshooting.md +0 -317
- package/mcp/powers/datadog-automation/POWER.md +0 -238
- package/mcp/powers/datadog-automation/SKILL.md +0 -235
- package/mcp/powers/github-automation/POWER.md +0 -230
- package/mcp/powers/github-automation/SKILL.md +0 -227
- package/mcp/powers/mcp-builder/LICENSE.txt +0 -202
- package/mcp/powers/mcp-builder/POWER.md +0 -179
- package/mcp/powers/mcp-builder/SKILL.md +0 -176
- package/mcp/powers/mcp-builder/reference/evaluation.md +0 -602
- package/mcp/powers/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/mcp/powers/mcp-builder/reference/node_mcp_server.md +0 -916
- package/mcp/powers/mcp-builder/reference/python_mcp_server.md +0 -752
- package/mcp/powers/mcp-builder/scripts/connections.py +0 -151
- package/mcp/powers/mcp-builder/scripts/evaluation.py +0 -373
- package/mcp/powers/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/mcp/powers/mcp-builder/scripts/requirements.txt +0 -2
- package/mcp/powers/mcp-developer/POWER.md +0 -88
- package/mcp/powers/mcp-developer/SKILL.md +0 -85
- package/mcp/powers/mcp-developer/steering/protocol.md +0 -244
- package/mcp/powers/mcp-developer/steering/python-sdk.md +0 -367
- package/mcp/powers/mcp-developer/steering/resources.md +0 -554
- package/mcp/powers/mcp-developer/steering/tools.md +0 -480
- package/mcp/powers/mcp-developer/steering/typescript-sdk.md +0 -350
- package/mcp/powers/postman/POWER.md +0 -243
- package/mcp/powers/postman/SKILL.md +0 -240
- package/mcp/powers/postman/flutter-expert/POWER.md +0 -89
- package/mcp/powers/postman/flutter-expert/SKILL.md +0 -77
- package/mcp/powers/postman/flutter-expert/steering/bloc-state.md +0 -259
- package/mcp/powers/postman/flutter-expert/steering/engineering-principles.md +0 -82
- package/mcp/powers/postman/flutter-expert/steering/gorouter-navigation.md +0 -157
- package/mcp/powers/postman/flutter-expert/steering/performance.md +0 -99
- package/mcp/powers/postman/flutter-expert/steering/project-structure.md +0 -77
- package/mcp/powers/postman/flutter-expert/steering/riverpod-state.md +0 -404
- package/mcp/powers/postman/flutter-expert/steering/widget-patterns.md +0 -123
- package/mcp/powers/postman/flutter-security-reviewer/POWER.md +0 -204
- package/mcp/powers/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/mcp/powers/postman/flutter-security-reviewer/steering/log_redaction.md +0 -17
- package/mcp/powers/postman/flutter-security-reviewer/steering/network_hardening.md +0 -13
- package/mcp/powers/postman/flutter-security-reviewer/steering/secret-scanning.md +0 -123
- package/mcp/powers/postman/flutter-security-reviewer/steering/secure_storage_policy.md +0 -16
- package/mcp/powers/postman/flutter-security-reviewer/steering/vulnerability-patterns.md +0 -189
- package/mcp/powers/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/mcp/powers/postman/flutter-test-master/POWER.md +0 -527
- package/mcp/powers/postman/flutter-test-master/SKILL.md +0 -513
- package/mcp/powers/postman/flutter-test-master/steering/golden-testing.md +0 -444
- package/mcp/powers/postman/flutter-test-master/steering/integration-testing.md +0 -688
- package/mcp/powers/postman/flutter-test-master/steering/property-testing.md +0 -408
- package/mcp/powers/postman/flutter-test-master/steering/riverpod-testing.md +0 -606
- package/mcp/powers/postman/flutter-test-master/steering/test-utilities.md +0 -566
- package/mcp/powers/postman/flutter-test-master/steering/unit-testing.md +0 -511
- package/mcp/powers/postman/flutter-test-master/steering/widget-testing.md +0 -601
- package/mcp/powers/postman/git-commit/POWER.md +0 -47
- package/mcp/powers/postman/git-commit/SKILL.md +0 -46
- package/mcp/powers/postman/gorouter-restoration/POWER.md +0 -227
- package/mcp/powers/postman/gorouter-restoration/SKILL.md +0 -217
- package/mcp/powers/postman/gorouter-restoration/steering/guard_patterns.md +0 -14
- package/mcp/powers/postman/gorouter-restoration/steering/tab_preservation.md +0 -12
- package/mcp/powers/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/mcp/powers/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/mcp/powers/postman/mcp.json +0 -11
- package/mcp/powers/postman/microservices-architect/POWER.md +0 -109
- package/mcp/powers/postman/microservices-architect/SKILL.md +0 -93
- package/mcp/powers/postman/microservices-architect/steering/communication.md +0 -499
- package/mcp/powers/postman/microservices-architect/steering/data.md +0 -721
- package/mcp/powers/postman/microservices-architect/steering/decomposition.md +0 -344
- package/mcp/powers/postman/microservices-architect/steering/observability.md +0 -805
- package/mcp/powers/postman/microservices-architect/steering/patterns.md +0 -603
- package/mcp/powers/postman/nestjs-expert/POWER.md +0 -130
- package/mcp/powers/postman/nestjs-expert/SKILL.md +0 -114
- package/mcp/powers/postman/nestjs-expert/steering/authentication.md +0 -461
- package/mcp/powers/postman/nestjs-expert/steering/controllers-routing.md +0 -114
- package/mcp/powers/postman/nestjs-expert/steering/dtos-validation.md +0 -156
- package/mcp/powers/postman/nestjs-expert/steering/migration-from-express.md +0 -1240
- package/mcp/powers/postman/nestjs-expert/steering/secure-sessions.md +0 -56
- package/mcp/powers/postman/nestjs-expert/steering/services-di.md +0 -143
- package/mcp/powers/postman/nestjs-expert/steering/strangler-fig-pattern.md +0 -47
- package/mcp/powers/postman/nestjs-expert/steering/testing-patterns.md +0 -189
- package/mcp/powers/postman/oneup-design/POWER.md +0 -72
- package/mcp/powers/postman/oneup-design/SKILL.md +0 -71
- package/mcp/powers/postman/oneup-design/steering/colors.md +0 -41
- package/mcp/powers/postman/oneup-design/steering/components.md +0 -53
- package/mcp/powers/postman/oneup-design/steering/spacing.md +0 -84
- package/mcp/powers/postman/openapi-docs/POWER.md +0 -78
- package/mcp/powers/postman/openapi-docs/SKILL.md +0 -68
- package/mcp/powers/postman/openapi-docs/steering/crud-templates.md +0 -43
- package/mcp/powers/postman/openapi-docs/steering/framework-express.md +0 -19
- package/mcp/powers/postman/openapi-docs/steering/framework-fastapi.md +0 -20
- package/mcp/powers/postman/openapi-docs/steering/framework-nestjs.md +0 -20
- package/mcp/powers/postman/openapi-docs/steering/framework-raw-openapi.md +0 -14
- package/mcp/powers/postman/openapi-docs/steering/openapi-checklist.md +0 -33
- package/mcp/powers/postman/openapi-docs/steering/stoplight-ui.md +0 -21
- package/mcp/powers/postman/steering/steering.md +0 -26
- package/mcp/powers/sentry-automation/POWER.md +0 -235
- package/mcp/powers/sentry-automation/SKILL.md +0 -232
- package/mcp/skills/atlassian-mcp/SKILL.md +0 -88
- package/mcp/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/mcp/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/mcp/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/mcp/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/mcp/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/mcp/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/mcp/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/mcp/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/mcp/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/mcp/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/mcp/skills/datadog-automation/SKILL.md +0 -235
- package/mcp/skills/github-automation/SKILL.md +0 -227
- package/mcp/skills/mcp-builder/LICENSE.txt +0 -202
- package/mcp/skills/mcp-builder/SKILL.md +0 -176
- package/mcp/skills/mcp-builder/reference/evaluation.md +0 -602
- package/mcp/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/mcp/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/mcp/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/mcp/skills/mcp-builder/scripts/connections.py +0 -151
- package/mcp/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/mcp/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/mcp/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/mcp/skills/mcp-developer/SKILL.md +0 -85
- package/mcp/skills/mcp-developer/references/protocol.md +0 -244
- package/mcp/skills/mcp-developer/references/python-sdk.md +0 -367
- package/mcp/skills/mcp-developer/references/resources.md +0 -554
- package/mcp/skills/mcp-developer/references/tools.md +0 -480
- package/mcp/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/mcp/skills/postman/POWER.md +0 -242
- package/mcp/skills/postman/SKILL.md +0 -240
- package/mcp/skills/postman/flutter-expert/POWER.md +0 -89
- package/mcp/skills/postman/flutter-expert/SKILL.md +0 -77
- package/mcp/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/mcp/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/mcp/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/mcp/skills/postman/flutter-expert/references/performance.md +0 -99
- package/mcp/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/mcp/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/mcp/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/mcp/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/mcp/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/mcp/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/mcp/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/mcp/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/mcp/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/mcp/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/mcp/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/mcp/skills/postman/flutter-test-master/POWER.md +0 -527
- package/mcp/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/mcp/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/mcp/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/mcp/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/mcp/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/mcp/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/mcp/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/mcp/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/mcp/skills/postman/git-commit/POWER.md +0 -47
- package/mcp/skills/postman/git-commit/SKILL.md +0 -46
- package/mcp/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/mcp/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/mcp/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/mcp/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/mcp/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/mcp/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/mcp/skills/postman/mcp.json +0 -11
- package/mcp/skills/postman/microservices-architect/POWER.md +0 -109
- package/mcp/skills/postman/microservices-architect/SKILL.md +0 -93
- package/mcp/skills/postman/microservices-architect/references/communication.md +0 -499
- package/mcp/skills/postman/microservices-architect/references/data.md +0 -721
- package/mcp/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/mcp/skills/postman/microservices-architect/references/observability.md +0 -805
- package/mcp/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/mcp/skills/postman/nestjs-expert/POWER.md +0 -130
- package/mcp/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/mcp/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/mcp/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/mcp/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/mcp/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/mcp/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/mcp/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/mcp/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/mcp/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/mcp/skills/postman/oneup-design/POWER.md +0 -72
- package/mcp/skills/postman/oneup-design/SKILL.md +0 -71
- package/mcp/skills/postman/oneup-design/references/colors.md +0 -41
- package/mcp/skills/postman/oneup-design/references/components.md +0 -53
- package/mcp/skills/postman/oneup-design/references/spacing.md +0 -84
- package/mcp/skills/postman/openapi-docs/POWER.md +0 -78
- package/mcp/skills/postman/openapi-docs/SKILL.md +0 -68
- package/mcp/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/mcp/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/mcp/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/mcp/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/mcp/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/mcp/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/mcp/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/mcp/skills/postman/references/steering.md +0 -26
- package/mcp/skills/sentry-automation/SKILL.md +0 -232
- package/workflows/powers/atlassian-mcp/POWER.md +0 -21
- package/workflows/powers/atlassian-mcp/SKILL.md +0 -18
- package/workflows/powers/building-mcp-server-on-cloudflare/POWER.md +0 -21
- package/workflows/powers/building-mcp-server-on-cloudflare/SKILL.md +0 -18
- package/workflows/powers/datadog-automation/POWER.md +0 -21
- package/workflows/powers/datadog-automation/SKILL.md +0 -18
- package/workflows/powers/github-automation/POWER.md +0 -21
- package/workflows/powers/github-automation/SKILL.md +0 -18
- package/workflows/powers/mcp-builder/POWER.md +0 -21
- package/workflows/powers/mcp-builder/SKILL.md +0 -18
- package/workflows/powers/mcp-developer/POWER.md +0 -21
- package/workflows/powers/mcp-developer/SKILL.md +0 -18
- package/workflows/powers/postman/POWER.md +0 -21
- package/workflows/powers/postman/SKILL.md +0 -18
- package/workflows/powers/sentry-automation/POWER.md +0 -21
- package/workflows/powers/sentry-automation/SKILL.md +0 -18
- package/workflows/skills/atlassian-mcp/SKILL.md +0 -18
- package/workflows/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -18
- package/workflows/skills/datadog-automation/SKILL.md +0 -18
- package/workflows/skills/github-automation/SKILL.md +0 -18
- package/workflows/skills/mcp-builder/SKILL.md +0 -18
- package/workflows/skills/mcp-developer/SKILL.md +0 -18
- package/workflows/skills/postman/SKILL.md +0 -18
- package/workflows/skills/sentry-automation/SKILL.md +0 -18
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/SKILL.md +0 -88
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/datadog-automation/SKILL.md +0 -235
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/github-automation/SKILL.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/LICENSE.txt +0 -202
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/SKILL.md +0 -176
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/evaluation.md +0 -602
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/connections.py +0 -151
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/SKILL.md +0 -85
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/protocol.md +0 -244
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/python-sdk.md +0 -367
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/resources.md +0 -554
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/tools.md +0 -480
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/POWER.md +0 -242
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/SKILL.md +0 -240
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/POWER.md +0 -89
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/SKILL.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/performance.md +0 -99
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/POWER.md +0 -527
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/git-commit/POWER.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/git-commit/SKILL.md +0 -46
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/mcp.json +0 -11
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/POWER.md +0 -109
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/SKILL.md +0 -93
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/communication.md +0 -499
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/data.md +0 -721
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/observability.md +0 -805
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/POWER.md +0 -130
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/POWER.md +0 -72
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/SKILL.md +0 -71
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/references/colors.md +0 -41
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/references/components.md +0 -53
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/references/spacing.md +0 -84
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/POWER.md +0 -78
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/SKILL.md +0 -68
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/references/steering.md +0 -26
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/sentry-automation/SKILL.md +0 -232
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/SKILL.md +0 -88
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/datadog-automation/SKILL.md +0 -235
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/github-automation/SKILL.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/LICENSE.txt +0 -202
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/SKILL.md +0 -176
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/evaluation.md +0 -602
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/connections.py +0 -151
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/SKILL.md +0 -85
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/protocol.md +0 -244
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/python-sdk.md +0 -367
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/resources.md +0 -554
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/tools.md +0 -480
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/POWER.md +0 -242
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/SKILL.md +0 -240
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/POWER.md +0 -89
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/SKILL.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/performance.md +0 -99
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/POWER.md +0 -527
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/git-commit/POWER.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/git-commit/SKILL.md +0 -46
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/mcp.json +0 -11
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/POWER.md +0 -109
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/SKILL.md +0 -93
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/communication.md +0 -499
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/data.md +0 -721
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/observability.md +0 -805
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/POWER.md +0 -130
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/POWER.md +0 -72
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/SKILL.md +0 -71
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/references/colors.md +0 -41
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/references/components.md +0 -53
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/references/spacing.md +0 -84
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/POWER.md +0 -78
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/SKILL.md +0 -68
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/references/steering.md +0 -26
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/sentry-automation/SKILL.md +0 -232
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/SKILL.md +0 -88
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/datadog-automation/SKILL.md +0 -235
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/github-automation/SKILL.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/LICENSE.txt +0 -202
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/SKILL.md +0 -176
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/evaluation.md +0 -602
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/connections.py +0 -151
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/SKILL.md +0 -85
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/protocol.md +0 -244
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/python-sdk.md +0 -367
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/resources.md +0 -554
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/tools.md +0 -480
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/POWER.md +0 -242
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/SKILL.md +0 -240
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/POWER.md +0 -89
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/SKILL.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/performance.md +0 -99
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/POWER.md +0 -527
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/git-commit/POWER.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/git-commit/SKILL.md +0 -46
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/mcp.json +0 -11
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/POWER.md +0 -109
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/SKILL.md +0 -93
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/communication.md +0 -499
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/data.md +0 -721
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/observability.md +0 -805
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/POWER.md +0 -130
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/POWER.md +0 -72
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/SKILL.md +0 -71
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/references/colors.md +0 -41
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/references/components.md +0 -53
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/references/spacing.md +0 -84
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/POWER.md +0 -78
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/SKILL.md +0 -68
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/references/steering.md +0 -26
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/sentry-automation/SKILL.md +0 -232
package/mcp/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cubis/foundry-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Cubis Foundry MCP Server – SkillPointer vault, Postman mode, and Stitch profile tools",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"cubis-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"dev": "nodemon --watch src --ext ts --exec 'tsx src/index.ts -- --transport stdio'",
|
|
12
|
+
"build": "tsup src/index.ts --format esm --dts --clean",
|
|
13
|
+
"start": "node dist/index.js",
|
|
14
|
+
"test": "vitest run",
|
|
15
|
+
"test:watch": "vitest",
|
|
16
|
+
"scan": "tsx src/index.ts --scan-only",
|
|
17
|
+
"mcp:inspect": "npx @modelcontextprotocol/inspector -- tsx src/index.ts"
|
|
18
|
+
},
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=18.17"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@modelcontextprotocol/sdk": "^1.27.0",
|
|
24
|
+
"jsonc-parser": "^3.3.1",
|
|
25
|
+
"zod": "^3.25.0"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/node": "^20.14.0",
|
|
29
|
+
"nodemon": "^3.1.0",
|
|
30
|
+
"tsup": "^8.1.0",
|
|
31
|
+
"tsx": "^4.16.0",
|
|
32
|
+
"typescript": "^5.5.0",
|
|
33
|
+
"vitest": "^2.0.0"
|
|
34
|
+
},
|
|
35
|
+
"license": "MIT"
|
|
36
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – cbxConfig barrel export.
|
|
3
|
+
*/
|
|
4
|
+
export type {
|
|
5
|
+
ConfigScope,
|
|
6
|
+
PostmanConfig,
|
|
7
|
+
StitchConfig,
|
|
8
|
+
CbxConfig,
|
|
9
|
+
EffectiveConfig,
|
|
10
|
+
} from "./types.js";
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
globalConfigPath,
|
|
14
|
+
projectConfigPath,
|
|
15
|
+
resolveConfigPath,
|
|
16
|
+
} from "./paths.js";
|
|
17
|
+
export {
|
|
18
|
+
readEffectiveConfig,
|
|
19
|
+
readScopedConfig,
|
|
20
|
+
redactConfig,
|
|
21
|
+
} from "./reader.js";
|
|
22
|
+
export { writeConfigField, ensureConfigExists } from "./writer.js";
|
|
23
|
+
export { parsePostmanState, parseStitchState } from "./serviceConfig.js";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – cbxConfig path resolution.
|
|
3
|
+
*
|
|
4
|
+
* Global: ~/.cbx/cbx_config.json
|
|
5
|
+
* Project: <workspace>/cbx_config.json
|
|
6
|
+
* Auto-effective: project if exists, else global.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
import os from "node:os";
|
|
11
|
+
import { existsSync } from "node:fs";
|
|
12
|
+
import type { ConfigScope } from "./types.js";
|
|
13
|
+
|
|
14
|
+
export function globalConfigPath(): string {
|
|
15
|
+
return path.join(os.homedir(), ".cbx", "cbx_config.json");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function projectConfigPath(workspaceRoot?: string): string {
|
|
19
|
+
const root = workspaceRoot ?? process.cwd();
|
|
20
|
+
return path.join(root, "cbx_config.json");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the effective config path.
|
|
25
|
+
* If scope is explicit, use that. Otherwise auto-detect:
|
|
26
|
+
* project config if exists, else global.
|
|
27
|
+
*/
|
|
28
|
+
export function resolveConfigPath(
|
|
29
|
+
scope?: ConfigScope | "auto",
|
|
30
|
+
workspaceRoot?: string,
|
|
31
|
+
): { path: string; scope: ConfigScope } {
|
|
32
|
+
if (scope === "global") {
|
|
33
|
+
return { path: globalConfigPath(), scope: "global" };
|
|
34
|
+
}
|
|
35
|
+
if (scope === "project") {
|
|
36
|
+
return { path: projectConfigPath(workspaceRoot), scope: "project" };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Auto-effective: project if exists, else global
|
|
40
|
+
const projectPath = projectConfigPath(workspaceRoot);
|
|
41
|
+
if (existsSync(projectPath)) {
|
|
42
|
+
return { path: projectPath, scope: "project" };
|
|
43
|
+
}
|
|
44
|
+
return { path: globalConfigPath(), scope: "global" };
|
|
45
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – cbxConfig reader.
|
|
3
|
+
*
|
|
4
|
+
* Reads and merges global + project configs.
|
|
5
|
+
* Project values override global values.
|
|
6
|
+
* Never exposes or logs apiKey.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
10
|
+
import { parse as parseJsonc } from "jsonc-parser";
|
|
11
|
+
import {
|
|
12
|
+
globalConfigPath,
|
|
13
|
+
projectConfigPath,
|
|
14
|
+
resolveConfigPath,
|
|
15
|
+
} from "./paths.js";
|
|
16
|
+
import type { CbxConfig, ConfigScope, EffectiveConfig } from "./types.js";
|
|
17
|
+
import { logger } from "../utils/logger.js";
|
|
18
|
+
|
|
19
|
+
function readConfigFile(filePath: string): CbxConfig | null {
|
|
20
|
+
if (!existsSync(filePath)) return null;
|
|
21
|
+
try {
|
|
22
|
+
const raw = readFileSync(filePath, "utf8");
|
|
23
|
+
return parseJsonc(raw) as CbxConfig;
|
|
24
|
+
} catch (err) {
|
|
25
|
+
logger.warn(`Failed to parse config at ${filePath}: ${err}`);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Deep merge two config objects. `override` values take precedence.
|
|
32
|
+
*/
|
|
33
|
+
function mergeConfigs(base: CbxConfig, override: CbxConfig): CbxConfig {
|
|
34
|
+
const result: CbxConfig = { ...base };
|
|
35
|
+
for (const [key, value] of Object.entries(override)) {
|
|
36
|
+
if (
|
|
37
|
+
value !== undefined &&
|
|
38
|
+
value !== null &&
|
|
39
|
+
typeof value === "object" &&
|
|
40
|
+
!Array.isArray(value)
|
|
41
|
+
) {
|
|
42
|
+
result[key] = mergeConfigs(
|
|
43
|
+
(result[key] as CbxConfig) ?? {},
|
|
44
|
+
value as CbxConfig,
|
|
45
|
+
);
|
|
46
|
+
} else {
|
|
47
|
+
result[key] = value;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Read config for a specific scope only.
|
|
55
|
+
*/
|
|
56
|
+
export function readScopedConfig(
|
|
57
|
+
scope: ConfigScope,
|
|
58
|
+
workspaceRoot?: string,
|
|
59
|
+
): EffectiveConfig | null {
|
|
60
|
+
const configPath =
|
|
61
|
+
scope === "global" ? globalConfigPath() : projectConfigPath(workspaceRoot);
|
|
62
|
+
|
|
63
|
+
const config = readConfigFile(configPath);
|
|
64
|
+
if (!config) return null;
|
|
65
|
+
|
|
66
|
+
return { config, scope, path: configPath };
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Read the effective config (merged global + project, project overrides).
|
|
71
|
+
* If scope is explicit ("global" or "project"), reads that scope only.
|
|
72
|
+
* If scope is "auto" or omitted, merges both with project taking precedence.
|
|
73
|
+
*/
|
|
74
|
+
export function readEffectiveConfig(
|
|
75
|
+
scope?: ConfigScope | "auto",
|
|
76
|
+
workspaceRoot?: string,
|
|
77
|
+
): EffectiveConfig | null {
|
|
78
|
+
// Explicit scope = read that scope only
|
|
79
|
+
if (scope === "global" || scope === "project") {
|
|
80
|
+
return readScopedConfig(scope, workspaceRoot);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Auto: merge global + project
|
|
84
|
+
const globalConf = readConfigFile(globalConfigPath());
|
|
85
|
+
const projectPath = projectConfigPath(workspaceRoot);
|
|
86
|
+
const projectConf = readConfigFile(projectPath);
|
|
87
|
+
|
|
88
|
+
if (!globalConf && !projectConf) return null;
|
|
89
|
+
|
|
90
|
+
const base = globalConf ?? {};
|
|
91
|
+
const override = projectConf ?? {};
|
|
92
|
+
const config = mergeConfigs(base, override);
|
|
93
|
+
|
|
94
|
+
// Determine which scope is "effective"
|
|
95
|
+
const resolved = resolveConfigPath("auto", workspaceRoot);
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
config,
|
|
99
|
+
scope: resolved.scope,
|
|
100
|
+
path: resolved.path,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Redact apiKey values from config for safe logging/display.
|
|
106
|
+
*/
|
|
107
|
+
export function redactConfig(config: CbxConfig): CbxConfig {
|
|
108
|
+
const redacted = JSON.parse(JSON.stringify(config)) as CbxConfig;
|
|
109
|
+
if (redacted.postman && typeof redacted.postman === "object") {
|
|
110
|
+
const postman = redacted.postman as Record<string, unknown>;
|
|
111
|
+
if (typeof postman.apiKey === "string") {
|
|
112
|
+
postman.apiKey = "***REDACTED***";
|
|
113
|
+
}
|
|
114
|
+
if (Array.isArray(postman.profiles)) {
|
|
115
|
+
for (const rawProfile of postman.profiles) {
|
|
116
|
+
if (!rawProfile || typeof rawProfile !== "object") continue;
|
|
117
|
+
const profile = rawProfile as Record<string, unknown>;
|
|
118
|
+
if (typeof profile.apiKey === "string") {
|
|
119
|
+
profile.apiKey = "***REDACTED***";
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (redacted.stitch && typeof redacted.stitch === "object") {
|
|
126
|
+
const stitch = redacted.stitch as Record<string, unknown>;
|
|
127
|
+
if (typeof stitch.apiKey === "string") {
|
|
128
|
+
stitch.apiKey = "***REDACTED***";
|
|
129
|
+
}
|
|
130
|
+
if (Array.isArray(stitch.profiles)) {
|
|
131
|
+
for (const rawProfile of stitch.profiles) {
|
|
132
|
+
if (!rawProfile || typeof rawProfile !== "object") continue;
|
|
133
|
+
const profile = rawProfile as Record<string, unknown>;
|
|
134
|
+
if (typeof profile.apiKey === "string") {
|
|
135
|
+
profile.apiKey = "***REDACTED***";
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
} else if (stitch.profiles && typeof stitch.profiles === "object") {
|
|
139
|
+
for (const profile of Object.values(
|
|
140
|
+
stitch.profiles as Record<string, Record<string, unknown>>,
|
|
141
|
+
)) {
|
|
142
|
+
if (typeof profile.apiKey === "string") {
|
|
143
|
+
profile.apiKey = "***REDACTED***";
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return redacted;
|
|
149
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import {
|
|
6
|
+
ensureConfigExists,
|
|
7
|
+
readEffectiveConfig,
|
|
8
|
+
redactConfig,
|
|
9
|
+
resolveConfigPath,
|
|
10
|
+
writeConfigField,
|
|
11
|
+
} from "./index.js";
|
|
12
|
+
|
|
13
|
+
let tempHomeDir = "";
|
|
14
|
+
let workspaceDir = "";
|
|
15
|
+
const originalHome = process.env.HOME;
|
|
16
|
+
const originalCwd = process.cwd();
|
|
17
|
+
|
|
18
|
+
function writeJson(filePath: string, value: unknown): void {
|
|
19
|
+
mkdirSync(path.dirname(filePath), { recursive: true });
|
|
20
|
+
writeFileSync(filePath, JSON.stringify(value, null, 2) + "\n", "utf8");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function readJson(filePath: string): Record<string, unknown> {
|
|
24
|
+
return JSON.parse(readFileSync(filePath, "utf8")) as Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
tempHomeDir = mkdtempSync(path.join(os.tmpdir(), "mcp-home-"));
|
|
29
|
+
workspaceDir = mkdtempSync(path.join(os.tmpdir(), "mcp-workspace-"));
|
|
30
|
+
process.env.HOME = tempHomeDir;
|
|
31
|
+
process.chdir(workspaceDir);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
afterEach(() => {
|
|
35
|
+
process.chdir(originalCwd);
|
|
36
|
+
if (originalHome === undefined) {
|
|
37
|
+
delete process.env.HOME;
|
|
38
|
+
} else {
|
|
39
|
+
process.env.HOME = originalHome;
|
|
40
|
+
}
|
|
41
|
+
rmSync(tempHomeDir, { recursive: true, force: true });
|
|
42
|
+
rmSync(workspaceDir, { recursive: true, force: true });
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe("config path resolution", () => {
|
|
46
|
+
it("chooses global scope when no project config exists", () => {
|
|
47
|
+
const resolved = resolveConfigPath("auto", workspaceDir);
|
|
48
|
+
expect(resolved.scope).toBe("global");
|
|
49
|
+
expect(resolved.path).toBe(
|
|
50
|
+
path.join(tempHomeDir, ".cbx", "cbx_config.json"),
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("chooses project scope when project config exists", () => {
|
|
55
|
+
const projectPath = path.join(workspaceDir, "cbx_config.json");
|
|
56
|
+
writeJson(projectPath, { postman: { mcpUrl: "https://mcp.postman.com/code" } });
|
|
57
|
+
|
|
58
|
+
const resolved = resolveConfigPath("auto", workspaceDir);
|
|
59
|
+
expect(resolved.scope).toBe("project");
|
|
60
|
+
expect(resolved.path).toBe(projectPath);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
describe("read/write behavior", () => {
|
|
65
|
+
it("writes nested fields to project config", () => {
|
|
66
|
+
const result = writeConfigField(
|
|
67
|
+
"postman.mcpUrl",
|
|
68
|
+
"https://mcp.postman.com/full",
|
|
69
|
+
"project",
|
|
70
|
+
workspaceDir,
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
expect(result.scope).toBe("project");
|
|
74
|
+
const written = readJson(result.writtenPath);
|
|
75
|
+
expect(written).toMatchObject({
|
|
76
|
+
postman: { mcpUrl: "https://mcp.postman.com/full" },
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("merges global and project config with project precedence", () => {
|
|
81
|
+
writeJson(path.join(tempHomeDir, ".cbx", "cbx_config.json"), {
|
|
82
|
+
postman: { mcpUrl: "https://mcp.postman.com/minimal" },
|
|
83
|
+
stitch: {
|
|
84
|
+
activeProfileName: "prod",
|
|
85
|
+
profiles: {
|
|
86
|
+
prod: { url: "https://prod.example.com", apiKey: "secret" },
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
writeJson(path.join(workspaceDir, "cbx_config.json"), {
|
|
91
|
+
postman: { defaultWorkspaceId: "ws_123" },
|
|
92
|
+
stitch: {
|
|
93
|
+
activeProfileName: "staging",
|
|
94
|
+
profiles: { staging: { url: "https://staging.example.com" } },
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const effective = readEffectiveConfig("auto", workspaceDir);
|
|
99
|
+
expect(effective).not.toBeNull();
|
|
100
|
+
expect(effective?.scope).toBe("project");
|
|
101
|
+
expect(effective?.config).toMatchObject({
|
|
102
|
+
postman: {
|
|
103
|
+
mcpUrl: "https://mcp.postman.com/minimal",
|
|
104
|
+
defaultWorkspaceId: "ws_123",
|
|
105
|
+
},
|
|
106
|
+
stitch: {
|
|
107
|
+
activeProfileName: "staging",
|
|
108
|
+
profiles: {
|
|
109
|
+
prod: { url: "https://prod.example.com", apiKey: "secret" },
|
|
110
|
+
staging: { url: "https://staging.example.com" },
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it("ensureConfigExists throws when target config is missing", () => {
|
|
117
|
+
expect(() => ensureConfigExists("project", workspaceDir)).toThrow(
|
|
118
|
+
"cbx_config.json not found",
|
|
119
|
+
);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it("ensureConfigExists passes when target config exists", () => {
|
|
123
|
+
writeJson(path.join(workspaceDir, "cbx_config.json"), { stitch: {} });
|
|
124
|
+
expect(() => ensureConfigExists("project", workspaceDir)).not.toThrow();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it("redacts stitch api keys for safe display", () => {
|
|
128
|
+
const redacted = redactConfig({
|
|
129
|
+
stitch: {
|
|
130
|
+
profiles: {
|
|
131
|
+
production: { url: "https://stitch.prod", apiKey: "top-secret" },
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
expect(redacted).toMatchObject({
|
|
137
|
+
stitch: {
|
|
138
|
+
profiles: {
|
|
139
|
+
production: {
|
|
140
|
+
url: "https://stitch.prod",
|
|
141
|
+
apiKey: "***REDACTED***",
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
});
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { parsePostmanState, parseStitchState } from "./serviceConfig.js";
|
|
3
|
+
|
|
4
|
+
describe("service config normalization", () => {
|
|
5
|
+
it("normalizes postman profile arrays", () => {
|
|
6
|
+
const state = parsePostmanState({
|
|
7
|
+
postman: {
|
|
8
|
+
mcpUrl: "https://mcp.postman.com/code",
|
|
9
|
+
activeProfileName: "team-a",
|
|
10
|
+
profiles: [
|
|
11
|
+
{
|
|
12
|
+
name: "team-a",
|
|
13
|
+
apiKeyEnvVar: "POSTMAN_API_KEY_TEAM_A",
|
|
14
|
+
workspaceId: "ws_123",
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
expect(state.mcpUrl).toBe("https://mcp.postman.com/code");
|
|
21
|
+
expect(state.activeProfileName).toBe("team-a");
|
|
22
|
+
expect(state.activeProfile?.apiKeyEnvVar).toBe("POSTMAN_API_KEY_TEAM_A");
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("normalizes legacy stitch profile maps", () => {
|
|
26
|
+
const state = parseStitchState({
|
|
27
|
+
stitch: {
|
|
28
|
+
activeProfileName: "prod",
|
|
29
|
+
profiles: {
|
|
30
|
+
prod: {
|
|
31
|
+
url: "https://stitch.googleapis.com/mcp",
|
|
32
|
+
apiKeyEnvVar: "STITCH_API_KEY_PROD",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
expect(state.activeProfileName).toBe("prod");
|
|
39
|
+
expect(state.activeProfile?.url).toBe("https://stitch.googleapis.com/mcp");
|
|
40
|
+
expect(state.activeProfile?.apiKeyEnvVar).toBe("STITCH_API_KEY_PROD");
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – credential service config normalization.
|
|
3
|
+
*
|
|
4
|
+
* Supports both legacy object-map and current profile-array shapes.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { CbxConfig } from "./types.js";
|
|
8
|
+
|
|
9
|
+
export interface CredentialProfileState {
|
|
10
|
+
name: string;
|
|
11
|
+
apiKeyEnvVar: string;
|
|
12
|
+
workspaceId?: string | null;
|
|
13
|
+
url?: string | null;
|
|
14
|
+
hasInlineApiKey: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface CredentialServiceState {
|
|
18
|
+
mcpUrl: string | null;
|
|
19
|
+
activeProfileName: string | null;
|
|
20
|
+
activeProfile: CredentialProfileState | null;
|
|
21
|
+
profiles: CredentialProfileState[];
|
|
22
|
+
useSystemGcloud?: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const DEFAULT_POSTMAN_URL = "https://mcp.postman.com/minimal";
|
|
26
|
+
const DEFAULT_STITCH_URL = "https://stitch.googleapis.com/mcp";
|
|
27
|
+
const DEFAULT_PROFILE_NAME = "default";
|
|
28
|
+
const DEFAULT_POSTMAN_ENV_VAR = "POSTMAN_API_KEY";
|
|
29
|
+
const DEFAULT_STITCH_ENV_VAR = "STITCH_API_KEY";
|
|
30
|
+
|
|
31
|
+
function asRecord(value: unknown): Record<string, unknown> | null {
|
|
32
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
33
|
+
return value as Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function normalizeName(value: unknown, fallback = DEFAULT_PROFILE_NAME): string {
|
|
37
|
+
const normalized = typeof value === "string" ? value.trim() : "";
|
|
38
|
+
return normalized || fallback;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function normalizeEnvVar(value: unknown, fallback: string): string {
|
|
42
|
+
const normalized = typeof value === "string" ? value.trim() : "";
|
|
43
|
+
return normalized || fallback;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function normalizeOptionalString(value: unknown): string | null {
|
|
47
|
+
if (value === null || value === undefined) return null;
|
|
48
|
+
const normalized = String(value).trim();
|
|
49
|
+
return normalized || null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function parsePostmanState(config: CbxConfig): CredentialServiceState {
|
|
53
|
+
const section = asRecord(config.postman) ?? {};
|
|
54
|
+
const mcpUrl = normalizeOptionalString(section.mcpUrl) ?? DEFAULT_POSTMAN_URL;
|
|
55
|
+
const fallbackEnvVar = normalizeEnvVar(
|
|
56
|
+
section.apiKeyEnvVar,
|
|
57
|
+
DEFAULT_POSTMAN_ENV_VAR,
|
|
58
|
+
);
|
|
59
|
+
const rawProfiles = Array.isArray(section.profiles) ? section.profiles : [];
|
|
60
|
+
const profiles: CredentialProfileState[] = [];
|
|
61
|
+
|
|
62
|
+
for (const rawProfile of rawProfiles) {
|
|
63
|
+
const profile = asRecord(rawProfile);
|
|
64
|
+
if (!profile) continue;
|
|
65
|
+
profiles.push({
|
|
66
|
+
name: normalizeName(profile.name, DEFAULT_PROFILE_NAME),
|
|
67
|
+
apiKeyEnvVar: normalizeEnvVar(profile.apiKeyEnvVar, fallbackEnvVar),
|
|
68
|
+
workspaceId: normalizeOptionalString(
|
|
69
|
+
profile.workspaceId ?? profile.defaultWorkspaceId,
|
|
70
|
+
),
|
|
71
|
+
hasInlineApiKey:
|
|
72
|
+
typeof profile.apiKey === "string" && profile.apiKey.trim().length > 0,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (profiles.length === 0) {
|
|
77
|
+
profiles.push({
|
|
78
|
+
name: DEFAULT_PROFILE_NAME,
|
|
79
|
+
apiKeyEnvVar: fallbackEnvVar,
|
|
80
|
+
workspaceId: normalizeOptionalString(section.defaultWorkspaceId),
|
|
81
|
+
hasInlineApiKey:
|
|
82
|
+
typeof section.apiKey === "string" && section.apiKey.trim().length > 0,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const requestedActive = normalizeOptionalString(section.activeProfileName);
|
|
87
|
+
const activeProfile =
|
|
88
|
+
profiles.find((profile) => profile.name === requestedActive) ?? profiles[0];
|
|
89
|
+
|
|
90
|
+
return {
|
|
91
|
+
mcpUrl,
|
|
92
|
+
activeProfileName: activeProfile?.name ?? null,
|
|
93
|
+
activeProfile: activeProfile ?? null,
|
|
94
|
+
profiles,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function parseStitchState(config: CbxConfig): CredentialServiceState {
|
|
99
|
+
const section = asRecord(config.stitch) ?? {};
|
|
100
|
+
const mcpUrl = normalizeOptionalString(section.mcpUrl) ?? DEFAULT_STITCH_URL;
|
|
101
|
+
const fallbackEnvVar = normalizeEnvVar(
|
|
102
|
+
section.apiKeyEnvVar,
|
|
103
|
+
DEFAULT_STITCH_ENV_VAR,
|
|
104
|
+
);
|
|
105
|
+
const rawProfiles = section.profiles;
|
|
106
|
+
const profiles: CredentialProfileState[] = [];
|
|
107
|
+
|
|
108
|
+
if (Array.isArray(rawProfiles)) {
|
|
109
|
+
for (const rawProfile of rawProfiles) {
|
|
110
|
+
const profile = asRecord(rawProfile);
|
|
111
|
+
if (!profile) continue;
|
|
112
|
+
profiles.push({
|
|
113
|
+
name: normalizeName(profile.name, DEFAULT_PROFILE_NAME),
|
|
114
|
+
apiKeyEnvVar: normalizeEnvVar(profile.apiKeyEnvVar, fallbackEnvVar),
|
|
115
|
+
url: normalizeOptionalString(profile.url),
|
|
116
|
+
hasInlineApiKey:
|
|
117
|
+
typeof profile.apiKey === "string" && profile.apiKey.trim().length > 0,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
} else if (asRecord(rawProfiles)) {
|
|
121
|
+
for (const [profileName, rawProfile] of Object.entries(
|
|
122
|
+
rawProfiles as Record<string, unknown>,
|
|
123
|
+
)) {
|
|
124
|
+
const profile = asRecord(rawProfile);
|
|
125
|
+
if (!profile) continue;
|
|
126
|
+
profiles.push({
|
|
127
|
+
name: normalizeName(profileName, DEFAULT_PROFILE_NAME),
|
|
128
|
+
apiKeyEnvVar: normalizeEnvVar(profile.apiKeyEnvVar, fallbackEnvVar),
|
|
129
|
+
url: normalizeOptionalString(profile.url),
|
|
130
|
+
hasInlineApiKey:
|
|
131
|
+
typeof profile.apiKey === "string" && profile.apiKey.trim().length > 0,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (profiles.length === 0) {
|
|
137
|
+
profiles.push({
|
|
138
|
+
name: DEFAULT_PROFILE_NAME,
|
|
139
|
+
apiKeyEnvVar: fallbackEnvVar,
|
|
140
|
+
url: normalizeOptionalString(section.url) ?? mcpUrl,
|
|
141
|
+
hasInlineApiKey:
|
|
142
|
+
typeof section.apiKey === "string" && section.apiKey.trim().length > 0,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const requestedActive = normalizeOptionalString(section.activeProfileName);
|
|
147
|
+
const activeProfile =
|
|
148
|
+
profiles.find((profile) => profile.name === requestedActive) ?? profiles[0];
|
|
149
|
+
|
|
150
|
+
return {
|
|
151
|
+
mcpUrl,
|
|
152
|
+
activeProfileName: activeProfile?.name ?? null,
|
|
153
|
+
activeProfile: activeProfile ?? null,
|
|
154
|
+
profiles,
|
|
155
|
+
useSystemGcloud: Boolean(section.useSystemGcloud),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – cbxConfig types.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export type ConfigScope = "global" | "project";
|
|
6
|
+
|
|
7
|
+
export interface ServiceProfile {
|
|
8
|
+
name?: string;
|
|
9
|
+
mcpUrl?: string;
|
|
10
|
+
url?: string;
|
|
11
|
+
workspaceId?: string | null;
|
|
12
|
+
defaultWorkspaceId?: string | null;
|
|
13
|
+
apiKey?: string;
|
|
14
|
+
apiKeyEnvVar?: string;
|
|
15
|
+
tokenEnvVar?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface PostmanConfig {
|
|
19
|
+
mcpUrl?: string;
|
|
20
|
+
defaultWorkspaceId?: string | null;
|
|
21
|
+
activeProfileName?: string;
|
|
22
|
+
apiKeyEnvVar?: string;
|
|
23
|
+
tokenEnvVar?: string;
|
|
24
|
+
profiles?: ServiceProfile[] | Record<string, ServiceProfile>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface StitchConfig {
|
|
28
|
+
mcpUrl?: string;
|
|
29
|
+
activeProfileName?: string;
|
|
30
|
+
apiKeyEnvVar?: string;
|
|
31
|
+
profiles?: ServiceProfile[] | Record<string, ServiceProfile>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface CbxConfig {
|
|
35
|
+
postman?: PostmanConfig;
|
|
36
|
+
stitch?: StitchConfig;
|
|
37
|
+
[key: string]: unknown;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface EffectiveConfig {
|
|
41
|
+
config: CbxConfig;
|
|
42
|
+
scope: ConfigScope;
|
|
43
|
+
path: string;
|
|
44
|
+
}
|