gentyr 1.3.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/.claude/agents/antipattern-hunter.md +176 -0
- package/.claude/agents/code-reviewer.md +205 -0
- package/.claude/agents/code-writer.md +154 -0
- package/.claude/agents/deputy-cto.md +309 -0
- package/.claude/agents/feedback-agent.md +101 -0
- package/.claude/agents/investigator.md +136 -0
- package/.claude/agents/product-manager.md +97 -0
- package/.claude/agents/project-manager.md +116 -0
- package/.claude/agents/repo-hygiene-expert.md +626 -0
- package/.claude/agents/secret-manager.md +324 -0
- package/.claude/agents/test-writer.md +354 -0
- package/.claude/commands/configure-personas.md +144 -0
- package/.claude/commands/cto-report.md +36 -0
- package/.claude/commands/demo.md +89 -0
- package/.claude/commands/deputy-cto.md +345 -0
- package/.claude/commands/hotfix.md +31 -0
- package/.claude/commands/overdrive-gentyr.md +167 -0
- package/.claude/commands/product-manager.md +32 -0
- package/.claude/commands/push-migrations.md +86 -0
- package/.claude/commands/push-secrets.md +97 -0
- package/.claude/commands/services.json.example +30 -0
- package/.claude/commands/setup-gentyr.md +396 -0
- package/.claude/commands/show.md +42 -0
- package/.claude/commands/spawn-tasks.md +79 -0
- package/.claude/commands/toggle-automation-gentyr.md +75 -0
- package/.claude/commands/toggle-product-manager.md +19 -0
- package/.claude/commands/triage.md +69 -0
- package/.claude/hooks/README.md +686 -0
- package/.claude/hooks/__tests__/README.md +129 -0
- package/.claude/hooks/agent-tracker.js +434 -0
- package/.claude/hooks/antipattern-hunter-hook.js +401 -0
- package/.claude/hooks/api-key-watcher.js +289 -0
- package/.claude/hooks/block-no-verify.js +301 -0
- package/.claude/hooks/bypass-approval-hook.js +313 -0
- package/.claude/hooks/compliance-checker.js +1309 -0
- package/.claude/hooks/config-reader.js +143 -0
- package/.claude/hooks/credential-file-guard.js +1139 -0
- package/.claude/hooks/credential-health-check.js +168 -0
- package/.claude/hooks/credential-sync-hook.js +79 -0
- package/.claude/hooks/cto-notification-hook.js +656 -0
- package/.claude/hooks/feedback-launcher.js +424 -0
- package/.claude/hooks/feedback-orchestrator.js +367 -0
- package/.claude/hooks/gentyr-splash.js +47 -0
- package/.claude/hooks/gentyr-sync.js +389 -0
- package/.claude/hooks/hourly-automation.js +3340 -0
- package/.claude/hooks/key-sync.js +899 -0
- package/.claude/hooks/lib/approval-utils.js +731 -0
- package/.claude/hooks/lib/feature-branch-helper.js +102 -0
- package/.claude/hooks/lib/worktree-manager.js +330 -0
- package/.claude/hooks/mapping-validator.js +285 -0
- package/.claude/hooks/plan-executor.js +398 -0
- package/.claude/hooks/playwright-cli-guard.js +104 -0
- package/.claude/hooks/playwright-health-check.js +71 -0
- package/.claude/hooks/pre-commit-review.js +725 -0
- package/.claude/hooks/prompts/local-spec-enforcement.md +310 -0
- package/.claude/hooks/prompts/mapping-fix.md +92 -0
- package/.claude/hooks/prompts/mapping-review.md +140 -0
- package/.claude/hooks/prompts/schema-mapper.md +185 -0
- package/.claude/hooks/prompts/spec-enforcement.md +233 -0
- package/.claude/hooks/protected-action-approval-hook.js +336 -0
- package/.claude/hooks/protected-action-gate.js +562 -0
- package/.claude/hooks/protected-actions.json +208 -0
- package/.claude/hooks/protected-actions.json.template +122 -0
- package/.claude/hooks/quota-monitor.js +490 -0
- package/.claude/hooks/reporters/jest-failure-reporter.js +401 -0
- package/.claude/hooks/reporters/playwright-failure-reporter.js +446 -0
- package/.claude/hooks/reporters/vitest-failure-reporter.js +443 -0
- package/.claude/hooks/schema-mapper-hook.js +544 -0
- package/.claude/hooks/secret-leak-detector.js +216 -0
- package/.claude/hooks/session-reviver.js +514 -0
- package/.claude/hooks/slash-command-prefetch.js +1145 -0
- package/.claude/hooks/stale-work-detector.js +205 -0
- package/.claude/hooks/stop-continue-hook.js +414 -0
- package/.claude/hooks/todo-maintenance.js +522 -0
- package/.claude/hooks/todo-processing-prompt.md +75 -0
- package/.claude/hooks/usage-optimizer.js +791 -0
- package/.claude/mcp/README.md +246 -0
- package/.claude/settings.json.template +168 -0
- package/.mcp.json.template +207 -0
- package/CLAUDE.md +340 -0
- package/CLAUDE.md.gentyr-section +89 -0
- package/LICENSE +21 -0
- package/README.md +297 -0
- package/cli/commands/init.js +471 -0
- package/cli/commands/migrate.js +132 -0
- package/cli/commands/protect.js +271 -0
- package/cli/commands/scaffold.js +48 -0
- package/cli/commands/status.js +133 -0
- package/cli/commands/sync.js +101 -0
- package/cli/commands/uninstall.js +207 -0
- package/cli/index.js +111 -0
- package/cli/lib/config-gen.js +214 -0
- package/cli/lib/resolve-framework.js +97 -0
- package/cli/lib/state.js +140 -0
- package/cli/lib/symlinks.js +260 -0
- package/docs/AUTOMATION-SYSTEMS.md +484 -0
- package/docs/BINARY-PATCHING.md +212 -0
- package/docs/CHANGELOG.md +2830 -0
- package/docs/CREDENTIAL-DETECTION.md +151 -0
- package/docs/CTO-DASHBOARD.md +476 -0
- package/docs/DEPLOYMENT-FLOW.md +477 -0
- package/docs/DEVELOPER.md +116 -0
- package/docs/Executive.md +372 -0
- package/docs/SECRET-PATHS.md +77 -0
- package/docs/SETUP-GUIDE.md +419 -0
- package/docs/STACK.md +109 -0
- package/docs/TESTING.md +440 -0
- package/docs/assets/claude-logo.svg +3 -0
- package/docs/sessions/2026-01-24-spec-suite-implementation.md +190 -0
- package/docs/sessions/2026-02-15-feedback-e2e-audit.md +484 -0
- package/docs/sessions/2026-02-20-credential-rotation-experiments.md +340 -0
- package/docs/sessions/TEST-COVERAGE-REPORT-2026-02-20.md +168 -0
- package/docs/shared/EPHEMERAL-STATE-FILES.md +115 -0
- package/docs/shared/PROTECTION-SYSTEM.md +341 -0
- package/husky/post-commit +10 -0
- package/husky/pre-commit +40 -0
- package/husky/pre-push +94 -0
- package/package.json +43 -0
- package/packages/cto-dashboard/package-lock.json +3510 -0
- package/packages/cto-dashboard/package.json +41 -0
- package/packages/cto-dashboard/pnpm-lock.yaml +2168 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.d.ts +220 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.d.ts.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.js +376 -0
- package/packages/mcp-servers/dist/__testUtils__/fixtures.js.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/index.d.ts +121 -0
- package/packages/mcp-servers/dist/__testUtils__/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/index.js +180 -0
- package/packages/mcp-servers/dist/__testUtils__/index.js.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.d.ts +84 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.d.ts.map +1 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.js +309 -0
- package/packages/mcp-servers/dist/__testUtils__/schemas.js.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/index.d.ts +7 -0
- package/packages/mcp-servers/dist/agent-reports/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/index.js +8 -0
- package/packages/mcp-servers/dist/agent-reports/index.js.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/server.d.ts +22 -0
- package/packages/mcp-servers/dist/agent-reports/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/server.js +535 -0
- package/packages/mcp-servers/dist/agent-reports/server.js.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/types.d.ts +258 -0
- package/packages/mcp-servers/dist/agent-reports/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-reports/types.js +81 -0
- package/packages/mcp-servers/dist/agent-reports/types.js.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/index.d.ts +5 -0
- package/packages/mcp-servers/dist/agent-tracker/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/index.js +5 -0
- package/packages/mcp-servers/dist/agent-tracker/index.js.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/server.d.ts +12 -0
- package/packages/mcp-servers/dist/agent-tracker/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/server.js +919 -0
- package/packages/mcp-servers/dist/agent-tracker/server.js.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/types.d.ts +328 -0
- package/packages/mcp-servers/dist/agent-tracker/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/agent-tracker/types.js +128 -0
- package/packages/mcp-servers/dist/agent-tracker/types.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.d.ts +27 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.js +167 -0
- package/packages/mcp-servers/dist/chrome-bridge/browser-tips.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.d.ts +6 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.js +6 -0
- package/packages/mcp-servers/dist/chrome-bridge/index.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.d.ts +13 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.js +959 -0
- package/packages/mcp-servers/dist/chrome-bridge/server.js.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.d.ts +41 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.js +8 -0
- package/packages/mcp-servers/dist/chrome-bridge/types.js.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/index.d.ts +8 -0
- package/packages/mcp-servers/dist/cloudflare/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/index.js +8 -0
- package/packages/mcp-servers/dist/cloudflare/index.js.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/server.d.ts +16 -0
- package/packages/mcp-servers/dist/cloudflare/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/server.js +253 -0
- package/packages/mcp-servers/dist/cloudflare/server.js.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/types.d.ts +141 -0
- package/packages/mcp-servers/dist/cloudflare/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cloudflare/types.js +53 -0
- package/packages/mcp-servers/dist/cloudflare/types.js.map +1 -0
- package/packages/mcp-servers/dist/codecov/index.d.ts +7 -0
- package/packages/mcp-servers/dist/codecov/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/codecov/index.js +7 -0
- package/packages/mcp-servers/dist/codecov/index.js.map +1 -0
- package/packages/mcp-servers/dist/codecov/server.d.ts +21 -0
- package/packages/mcp-servers/dist/codecov/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/codecov/server.js +376 -0
- package/packages/mcp-servers/dist/codecov/server.js.map +1 -0
- package/packages/mcp-servers/dist/codecov/types.d.ts +269 -0
- package/packages/mcp-servers/dist/codecov/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/codecov/types.js +128 -0
- package/packages/mcp-servers/dist/codecov/types.js.map +1 -0
- package/packages/mcp-servers/dist/cto-report/index.d.ts +9 -0
- package/packages/mcp-servers/dist/cto-report/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-report/index.js +9 -0
- package/packages/mcp-servers/dist/cto-report/index.js.map +1 -0
- package/packages/mcp-servers/dist/cto-report/server.d.ts +14 -0
- package/packages/mcp-servers/dist/cto-report/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-report/server.js +859 -0
- package/packages/mcp-servers/dist/cto-report/server.js.map +1 -0
- package/packages/mcp-servers/dist/cto-report/types.d.ts +213 -0
- package/packages/mcp-servers/dist/cto-report/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-report/types.js +29 -0
- package/packages/mcp-servers/dist/cto-report/types.js.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/index.d.ts +7 -0
- package/packages/mcp-servers/dist/cto-reports/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/index.js +8 -0
- package/packages/mcp-servers/dist/cto-reports/index.js.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/server.d.ts +20 -0
- package/packages/mcp-servers/dist/cto-reports/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/server.js +538 -0
- package/packages/mcp-servers/dist/cto-reports/server.js.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/types.d.ts +236 -0
- package/packages/mcp-servers/dist/cto-reports/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/cto-reports/types.js +77 -0
- package/packages/mcp-servers/dist/cto-reports/types.js.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/index.d.ts +7 -0
- package/packages/mcp-servers/dist/deputy-cto/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/index.js +8 -0
- package/packages/mcp-servers/dist/deputy-cto/index.js.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/server.d.ts +23 -0
- package/packages/mcp-servers/dist/deputy-cto/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/server.js +1700 -0
- package/packages/mcp-servers/dist/deputy-cto/server.js.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/types.d.ts +439 -0
- package/packages/mcp-servers/dist/deputy-cto/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/deputy-cto/types.js +102 -0
- package/packages/mcp-servers/dist/deputy-cto/types.js.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/index.d.ts +5 -0
- package/packages/mcp-servers/dist/elastic-logs/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/index.js +5 -0
- package/packages/mcp-servers/dist/elastic-logs/index.js.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/server.d.ts +18 -0
- package/packages/mcp-servers/dist/elastic-logs/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/server.js +259 -0
- package/packages/mcp-servers/dist/elastic-logs/server.js.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/types.d.ts +107 -0
- package/packages/mcp-servers/dist/elastic-logs/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/elastic-logs/types.js +31 -0
- package/packages/mcp-servers/dist/elastic-logs/types.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.d.ts +2 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.js +2 -0
- package/packages/mcp-servers/dist/feedback-explorer/index.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.d.ts +21 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.js +580 -0
- package/packages/mcp-servers/dist/feedback-explorer/server.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.d.ts +331 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.js +40 -0
- package/packages/mcp-servers/dist/feedback-explorer/types.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.d.ts +9 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.js +9 -0
- package/packages/mcp-servers/dist/feedback-reporter/index.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.d.ts +36 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.js +392 -0
- package/packages/mcp-servers/dist/feedback-reporter/server.js.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.d.ts +152 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.js +67 -0
- package/packages/mcp-servers/dist/feedback-reporter/types.js.map +1 -0
- package/packages/mcp-servers/dist/github/index.d.ts +7 -0
- package/packages/mcp-servers/dist/github/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/github/index.js +7 -0
- package/packages/mcp-servers/dist/github/index.js.map +1 -0
- package/packages/mcp-servers/dist/github/server.d.ts +15 -0
- package/packages/mcp-servers/dist/github/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/github/server.js +686 -0
- package/packages/mcp-servers/dist/github/server.js.map +1 -0
- package/packages/mcp-servers/dist/github/types.d.ts +660 -0
- package/packages/mcp-servers/dist/github/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/github/types.js +209 -0
- package/packages/mcp-servers/dist/github/types.js.map +1 -0
- package/packages/mcp-servers/dist/index.d.ts +30 -0
- package/packages/mcp-servers/dist/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/index.js +32 -0
- package/packages/mcp-servers/dist/index.js.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.d.ts +5 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.js +5 -0
- package/packages/mcp-servers/dist/makerkit-docs/index.js.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.d.ts +15 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.js +252 -0
- package/packages/mcp-servers/dist/makerkit-docs/server.js.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.d.ts +74 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.js +20 -0
- package/packages/mcp-servers/dist/makerkit-docs/types.js.map +1 -0
- package/packages/mcp-servers/dist/onepassword/index.d.ts +2 -0
- package/packages/mcp-servers/dist/onepassword/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/onepassword/index.js +2 -0
- package/packages/mcp-servers/dist/onepassword/index.js.map +1 -0
- package/packages/mcp-servers/dist/onepassword/server.d.ts +2 -0
- package/packages/mcp-servers/dist/onepassword/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/onepassword/server.js +159 -0
- package/packages/mcp-servers/dist/onepassword/server.js.map +1 -0
- package/packages/mcp-servers/dist/onepassword/types.d.ts +55 -0
- package/packages/mcp-servers/dist/onepassword/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/onepassword/types.js +22 -0
- package/packages/mcp-servers/dist/onepassword/types.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/helpers.d.ts +20 -0
- package/packages/mcp-servers/dist/playwright/helpers.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/helpers.js +31 -0
- package/packages/mcp-servers/dist/playwright/helpers.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/index.d.ts +5 -0
- package/packages/mcp-servers/dist/playwright/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/index.js +5 -0
- package/packages/mcp-servers/dist/playwright/index.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/server.d.ts +13 -0
- package/packages/mcp-servers/dist/playwright/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/server.js +1201 -0
- package/packages/mcp-servers/dist/playwright/server.js.map +1 -0
- package/packages/mcp-servers/dist/playwright/types.d.ts +216 -0
- package/packages/mcp-servers/dist/playwright/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright/types.js +172 -0
- package/packages/mcp-servers/dist/playwright/types.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.d.ts +39 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.js +71 -0
- package/packages/mcp-servers/dist/playwright-feedback/browser-manager.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.d.ts +5 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.js +5 -0
- package/packages/mcp-servers/dist/playwright-feedback/index.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.d.ts +34 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.js +538 -0
- package/packages/mcp-servers/dist/playwright-feedback/server.js.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.d.ts +305 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.js +123 -0
- package/packages/mcp-servers/dist/playwright-feedback/types.js.map +1 -0
- package/packages/mcp-servers/dist/product-manager/server.d.ts +17 -0
- package/packages/mcp-servers/dist/product-manager/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/product-manager/server.js +690 -0
- package/packages/mcp-servers/dist/product-manager/server.js.map +1 -0
- package/packages/mcp-servers/dist/product-manager/types.d.ts +286 -0
- package/packages/mcp-servers/dist/product-manager/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/product-manager/types.js +99 -0
- package/packages/mcp-servers/dist/product-manager/types.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.d.ts +7 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.js +7 -0
- package/packages/mcp-servers/dist/programmatic-feedback/index.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.d.ts +19 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.js +174 -0
- package/packages/mcp-servers/dist/programmatic-feedback/sandbox.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.d.ts +35 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.js +465 -0
- package/packages/mcp-servers/dist/programmatic-feedback/server.js.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.d.ts +127 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.js +80 -0
- package/packages/mcp-servers/dist/programmatic-feedback/types.js.map +1 -0
- package/packages/mcp-servers/dist/render/index.d.ts +8 -0
- package/packages/mcp-servers/dist/render/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/render/index.js +8 -0
- package/packages/mcp-servers/dist/render/index.js.map +1 -0
- package/packages/mcp-servers/dist/render/server.d.ts +15 -0
- package/packages/mcp-servers/dist/render/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/render/server.js +428 -0
- package/packages/mcp-servers/dist/render/server.js.map +1 -0
- package/packages/mcp-servers/dist/render/types.d.ts +273 -0
- package/packages/mcp-servers/dist/render/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/render/types.js +102 -0
- package/packages/mcp-servers/dist/render/types.js.map +1 -0
- package/packages/mcp-servers/dist/resend/index.d.ts +7 -0
- package/packages/mcp-servers/dist/resend/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/resend/index.js +7 -0
- package/packages/mcp-servers/dist/resend/index.js.map +1 -0
- package/packages/mcp-servers/dist/resend/server.d.ts +15 -0
- package/packages/mcp-servers/dist/resend/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/resend/server.js +298 -0
- package/packages/mcp-servers/dist/resend/server.js.map +1 -0
- package/packages/mcp-servers/dist/resend/types.d.ts +222 -0
- package/packages/mcp-servers/dist/resend/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/resend/types.js +58 -0
- package/packages/mcp-servers/dist/resend/types.js.map +1 -0
- package/packages/mcp-servers/dist/review-queue/index.d.ts +6 -0
- package/packages/mcp-servers/dist/review-queue/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/review-queue/index.js +6 -0
- package/packages/mcp-servers/dist/review-queue/index.js.map +1 -0
- package/packages/mcp-servers/dist/review-queue/server.d.ts +17 -0
- package/packages/mcp-servers/dist/review-queue/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/review-queue/server.js +348 -0
- package/packages/mcp-servers/dist/review-queue/server.js.map +1 -0
- package/packages/mcp-servers/dist/review-queue/types.d.ts +162 -0
- package/packages/mcp-servers/dist/review-queue/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/review-queue/types.js +56 -0
- package/packages/mcp-servers/dist/review-queue/types.js.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/server.d.ts +19 -0
- package/packages/mcp-servers/dist/secret-sync/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/server.js +1139 -0
- package/packages/mcp-servers/dist/secret-sync/server.js.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/types.d.ts +442 -0
- package/packages/mcp-servers/dist/secret-sync/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/secret-sync/types.js +113 -0
- package/packages/mcp-servers/dist/secret-sync/types.js.map +1 -0
- package/packages/mcp-servers/dist/session-events/index.d.ts +5 -0
- package/packages/mcp-servers/dist/session-events/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-events/index.js +5 -0
- package/packages/mcp-servers/dist/session-events/index.js.map +1 -0
- package/packages/mcp-servers/dist/session-events/server.d.ts +11 -0
- package/packages/mcp-servers/dist/session-events/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-events/server.js +290 -0
- package/packages/mcp-servers/dist/session-events/server.js.map +1 -0
- package/packages/mcp-servers/dist/session-events/types.d.ts +213 -0
- package/packages/mcp-servers/dist/session-events/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-events/types.js +69 -0
- package/packages/mcp-servers/dist/session-events/types.js.map +1 -0
- package/packages/mcp-servers/dist/session-restart/index.d.ts +9 -0
- package/packages/mcp-servers/dist/session-restart/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-restart/index.js +9 -0
- package/packages/mcp-servers/dist/session-restart/index.js.map +1 -0
- package/packages/mcp-servers/dist/session-restart/server.d.ts +20 -0
- package/packages/mcp-servers/dist/session-restart/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-restart/server.js +411 -0
- package/packages/mcp-servers/dist/session-restart/server.js.map +1 -0
- package/packages/mcp-servers/dist/session-restart/types.d.ts +26 -0
- package/packages/mcp-servers/dist/session-restart/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/session-restart/types.js +16 -0
- package/packages/mcp-servers/dist/session-restart/types.js.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/index.d.ts +5 -0
- package/packages/mcp-servers/dist/setup-helper/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/index.js +5 -0
- package/packages/mcp-servers/dist/setup-helper/index.js.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/server.d.ts +14 -0
- package/packages/mcp-servers/dist/setup-helper/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/server.js +454 -0
- package/packages/mcp-servers/dist/setup-helper/server.js.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/types.d.ts +81 -0
- package/packages/mcp-servers/dist/setup-helper/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/setup-helper/types.js +41 -0
- package/packages/mcp-servers/dist/setup-helper/types.js.map +1 -0
- package/packages/mcp-servers/dist/shared/audited-server.d.ts +31 -0
- package/packages/mcp-servers/dist/shared/audited-server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/audited-server.js +126 -0
- package/packages/mcp-servers/dist/shared/audited-server.js.map +1 -0
- package/packages/mcp-servers/dist/shared/constants.d.ts +26 -0
- package/packages/mcp-servers/dist/shared/constants.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/constants.js +41 -0
- package/packages/mcp-servers/dist/shared/constants.js.map +1 -0
- package/packages/mcp-servers/dist/shared/index.d.ts +6 -0
- package/packages/mcp-servers/dist/shared/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/index.js +6 -0
- package/packages/mcp-servers/dist/shared/index.js.map +1 -0
- package/packages/mcp-servers/dist/shared/readonly-db.d.ts +11 -0
- package/packages/mcp-servers/dist/shared/readonly-db.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/readonly-db.js +47 -0
- package/packages/mcp-servers/dist/shared/readonly-db.js.map +1 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.d.ts +20 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.js +65 -0
- package/packages/mcp-servers/dist/shared/resolve-framework.js.map +1 -0
- package/packages/mcp-servers/dist/shared/server.d.ts +86 -0
- package/packages/mcp-servers/dist/shared/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/server.js +291 -0
- package/packages/mcp-servers/dist/shared/server.js.map +1 -0
- package/packages/mcp-servers/dist/shared/types.d.ts +113 -0
- package/packages/mcp-servers/dist/shared/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/shared/types.js +36 -0
- package/packages/mcp-servers/dist/shared/types.js.map +1 -0
- package/packages/mcp-servers/dist/show/server.d.ts +12 -0
- package/packages/mcp-servers/dist/show/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/show/server.js +97 -0
- package/packages/mcp-servers/dist/show/server.js.map +1 -0
- package/packages/mcp-servers/dist/show/types.d.ts +19 -0
- package/packages/mcp-servers/dist/show/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/show/types.js +32 -0
- package/packages/mcp-servers/dist/show/types.js.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/index.d.ts +5 -0
- package/packages/mcp-servers/dist/specs-browser/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/index.js +5 -0
- package/packages/mcp-servers/dist/specs-browser/index.js.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/server.d.ts +13 -0
- package/packages/mcp-servers/dist/specs-browser/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/server.js +692 -0
- package/packages/mcp-servers/dist/specs-browser/server.js.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/types.d.ts +337 -0
- package/packages/mcp-servers/dist/specs-browser/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/specs-browser/types.js +134 -0
- package/packages/mcp-servers/dist/specs-browser/types.js.map +1 -0
- package/packages/mcp-servers/dist/supabase/index.d.ts +10 -0
- package/packages/mcp-servers/dist/supabase/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/supabase/index.js +10 -0
- package/packages/mcp-servers/dist/supabase/index.js.map +1 -0
- package/packages/mcp-servers/dist/supabase/server.d.ts +20 -0
- package/packages/mcp-servers/dist/supabase/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/supabase/server.js +451 -0
- package/packages/mcp-servers/dist/supabase/server.js.map +1 -0
- package/packages/mcp-servers/dist/supabase/types.d.ts +196 -0
- package/packages/mcp-servers/dist/supabase/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/supabase/types.js +76 -0
- package/packages/mcp-servers/dist/supabase/types.js.map +1 -0
- package/packages/mcp-servers/dist/todo-db/index.d.ts +5 -0
- package/packages/mcp-servers/dist/todo-db/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/todo-db/index.js +5 -0
- package/packages/mcp-servers/dist/todo-db/index.js.map +1 -0
- package/packages/mcp-servers/dist/todo-db/server.d.ts +13 -0
- package/packages/mcp-servers/dist/todo-db/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/todo-db/server.js +649 -0
- package/packages/mcp-servers/dist/todo-db/server.js.map +1 -0
- package/packages/mcp-servers/dist/todo-db/types.d.ts +225 -0
- package/packages/mcp-servers/dist/todo-db/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/todo-db/types.js +69 -0
- package/packages/mcp-servers/dist/todo-db/types.js.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/index.d.ts +7 -0
- package/packages/mcp-servers/dist/user-feedback/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/index.js +8 -0
- package/packages/mcp-servers/dist/user-feedback/index.js.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/server.d.ts +25 -0
- package/packages/mcp-servers/dist/user-feedback/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/server.js +914 -0
- package/packages/mcp-servers/dist/user-feedback/server.js.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/types.d.ts +415 -0
- package/packages/mcp-servers/dist/user-feedback/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/user-feedback/types.js +132 -0
- package/packages/mcp-servers/dist/user-feedback/types.js.map +1 -0
- package/packages/mcp-servers/dist/vercel/index.d.ts +9 -0
- package/packages/mcp-servers/dist/vercel/index.d.ts.map +1 -0
- package/packages/mcp-servers/dist/vercel/index.js +9 -0
- package/packages/mcp-servers/dist/vercel/index.js.map +1 -0
- package/packages/mcp-servers/dist/vercel/server.d.ts +17 -0
- package/packages/mcp-servers/dist/vercel/server.d.ts.map +1 -0
- package/packages/mcp-servers/dist/vercel/server.js +265 -0
- package/packages/mcp-servers/dist/vercel/server.js.map +1 -0
- package/packages/mcp-servers/dist/vercel/types.d.ts +189 -0
- package/packages/mcp-servers/dist/vercel/types.d.ts.map +1 -0
- package/packages/mcp-servers/dist/vercel/types.js +65 -0
- package/packages/mcp-servers/dist/vercel/types.js.map +1 -0
- package/packages/mcp-servers/package-lock.json +3765 -0
- package/packages/mcp-servers/package.json +64 -0
- package/packages/mcp-servers/test/reporters/test-failure-reporter.ts +372 -0
- package/packages/mcp-servers/vitest.config.ts +27 -0
- package/scripts/__tests__/README.md +163 -0
- package/scripts/apply-credential-hardening.sh +271 -0
- package/scripts/credential-providers/manual.js +56 -0
- package/scripts/credential-providers/onepassword.js +85 -0
- package/scripts/credential-providers/provider-interface.js +104 -0
- package/scripts/encrypt-credential.js +337 -0
- package/scripts/feedback-launcher.js +338 -0
- package/scripts/feedback-orchestrator.js +373 -0
- package/scripts/fix-mcp-launcher-issues.sh +97 -0
- package/scripts/force-spawn-tasks.js +651 -0
- package/scripts/force-triage-reports.js +560 -0
- package/scripts/generate-protected-actions-spec.js +142 -0
- package/scripts/generate-proxy-certs.sh +158 -0
- package/scripts/grant-chrome-ext-permissions.sh +242 -0
- package/scripts/mcp-launcher.js +125 -0
- package/scripts/merge-settings.cjs +167 -0
- package/scripts/patch-clawd.py +844 -0
- package/scripts/patch-credential-cache.py +313 -0
- package/scripts/patches/credential-file-guard-patched.mjs +573 -0
- package/scripts/patches/credential-file-guard.js.patched +573 -0
- package/scripts/patches/verify-tokenizer.mjs +132 -0
- package/scripts/protect-framework.sh +478 -0
- package/scripts/readme-chrome.template +12 -0
- package/scripts/reap-completed-agents.js +439 -0
- package/scripts/reinstall.sh +86 -0
- package/scripts/resign-node.sh +185 -0
- package/scripts/rotation-proxy.js +656 -0
- package/scripts/rotation-stress-monitor.mjs +862 -0
- package/scripts/setup-automation-service.sh +648 -0
- package/scripts/setup-check.js +251 -0
- package/scripts/watch-claude-version.js +142 -0
- package/specs/framework/CORE-INVARIANTS.md +161 -0
- package/specs/patterns/AGENT-PATTERNS.md +223 -0
- package/specs/patterns/HOOK-PATTERNS.md +242 -0
- package/specs/patterns/MCP-SERVER-PATTERNS.md +144 -0
- package/templates/config/gitignore.template +14 -0
- package/templates/config/merge-chain-check.yml.template +51 -0
- package/templates/config/package.json.template +18 -0
- package/templates/config/pnpm-workspace.yaml +5 -0
- package/templates/config/services.json.template +18 -0
- package/templates/config/tsconfig.base.json +17 -0
- package/templates/scaffold/integrations/_template/.gitkeep +0 -0
- package/templates/scaffold/packages/logger/package.json +17 -0
- package/templates/scaffold/packages/logger/src/logger.ts +44 -0
- package/templates/scaffold/packages/shared/package.json +17 -0
- package/templates/scaffold/packages/shared/src/errors.ts +43 -0
- package/templates/scaffold/products/_product/apps/backend/package.json +21 -0
- package/templates/scaffold/products/_product/apps/backend/src/index.ts +17 -0
- package/templates/scaffold/products/_product/apps/extension/.gitkeep +0 -0
- package/templates/scaffold/products/_product/apps/web/.gitkeep +0 -0
- package/templates/scaffold/specs/global/.gitkeep +0 -0
- package/templates/scaffold/specs/local/.gitkeep +0 -0
- package/templates/scaffold/specs/reference/.gitkeep +0 -0
- package/version.json +15 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Test Utilities for MCP Servers
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable utilities for test isolation and cleanup.
|
|
5
|
+
* Following industry best practices for concurrent test execution.
|
|
6
|
+
*
|
|
7
|
+
* @module __testUtils__
|
|
8
|
+
*/
|
|
9
|
+
import Database from 'better-sqlite3';
|
|
10
|
+
import { randomUUID } from 'crypto';
|
|
11
|
+
/**
|
|
12
|
+
* Creates an isolated in-memory SQLite database with the given schema.
|
|
13
|
+
* Use in beforeEach() for complete test isolation.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { createTestDb } from '../__testUtils__';
|
|
18
|
+
* import { TODO_DB_SCHEMA } from '../__testUtils__/schemas';
|
|
19
|
+
*
|
|
20
|
+
* let db: Database.Database;
|
|
21
|
+
*
|
|
22
|
+
* beforeEach(() => {
|
|
23
|
+
* db = createTestDb(TODO_DB_SCHEMA);
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* afterEach(() => {
|
|
27
|
+
* db.close();
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function createTestDb(schema: string): Database.Database;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a unique temporary directory for file-based tests.
|
|
34
|
+
* Returns both the path and a cleanup function.
|
|
35
|
+
*
|
|
36
|
+
* Uses os.tmpdir() for cross-platform compatibility and UUID for uniqueness.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* import { createTempDir } from '../__testUtils__';
|
|
41
|
+
*
|
|
42
|
+
* let tempDir: ReturnType<typeof createTempDir>;
|
|
43
|
+
*
|
|
44
|
+
* beforeEach(() => {
|
|
45
|
+
* tempDir = createTempDir('my-test');
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* afterEach(() => {
|
|
49
|
+
* tempDir.cleanup();
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function createTempDir(prefix?: string): {
|
|
54
|
+
path: string;
|
|
55
|
+
cleanup: () => void;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Creates a temporary file with optional initial content.
|
|
59
|
+
* Returns the file path and a cleanup function.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const { path: configPath, cleanup } = createTempFile('config.json', '{}');
|
|
64
|
+
* // Use configPath...
|
|
65
|
+
* cleanup(); // Removes the file and its directory
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function createTempFile(filename: string, content?: string, prefix?: string): {
|
|
69
|
+
path: string;
|
|
70
|
+
cleanup: () => void;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Gets a Unix timestamp offset from now.
|
|
74
|
+
* Useful for creating test data with specific timestamps.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const twoHoursAgo = getTimestamp(-2, 'hours');
|
|
79
|
+
* const thirtyMinutesAgo = getTimestamp(-30, 'minutes');
|
|
80
|
+
* const oneWeekAgo = getTimestamp(-7, 'days');
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function getTimestamp(offset: number, unit?: 'seconds' | 'minutes' | 'hours' | 'days'): number;
|
|
84
|
+
/**
|
|
85
|
+
* Gets an ISO timestamp string offset from now.
|
|
86
|
+
*/
|
|
87
|
+
export declare function getISOTimestamp(offset: number, unit?: 'seconds' | 'minutes' | 'hours' | 'days'): string;
|
|
88
|
+
/**
|
|
89
|
+
* Generates a random UUID.
|
|
90
|
+
* Re-exported from crypto for convenience.
|
|
91
|
+
*/
|
|
92
|
+
export { randomUUID };
|
|
93
|
+
/**
|
|
94
|
+
* Generates a prefixed test ID.
|
|
95
|
+
* Useful for creating identifiable test data.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const taskId = generateTestId('task'); // "task-a1b2c3d4..."
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare function generateTestId(prefix: string): string;
|
|
103
|
+
/**
|
|
104
|
+
* Creates multiple items using a factory function.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const tasks = createMultiple(5, (i) => ({
|
|
109
|
+
* id: randomUUID(),
|
|
110
|
+
* title: `Task ${i}`,
|
|
111
|
+
* }));
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export declare function createMultiple<T>(count: number, factory: (index: number) => T): T[];
|
|
115
|
+
/**
|
|
116
|
+
* Checks if a value is an error result (has an 'error' property).
|
|
117
|
+
*/
|
|
118
|
+
export declare function isErrorResult(result: unknown): result is {
|
|
119
|
+
error: string;
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/__testUtils__/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAMpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAI9D;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAmB,GAAG;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAYA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAW,EACpB,MAAM,GAAE,MAAmB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAYvC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAkB,GACzD,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAkB,GACzD,MAAM,CAGR;AAMD;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAEnF;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAO1E"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Test Utilities for MCP Servers
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable utilities for test isolation and cleanup.
|
|
5
|
+
* Following industry best practices for concurrent test execution.
|
|
6
|
+
*
|
|
7
|
+
* @module __testUtils__
|
|
8
|
+
*/
|
|
9
|
+
import Database from 'better-sqlite3';
|
|
10
|
+
import * as fs from 'fs';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
import * as os from 'os';
|
|
13
|
+
import { randomUUID } from 'crypto';
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Database Utilities
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Creates an isolated in-memory SQLite database with the given schema.
|
|
19
|
+
* Use in beforeEach() for complete test isolation.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { createTestDb } from '../__testUtils__';
|
|
24
|
+
* import { TODO_DB_SCHEMA } from '../__testUtils__/schemas';
|
|
25
|
+
*
|
|
26
|
+
* let db: Database.Database;
|
|
27
|
+
*
|
|
28
|
+
* beforeEach(() => {
|
|
29
|
+
* db = createTestDb(TODO_DB_SCHEMA);
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* afterEach(() => {
|
|
33
|
+
* db.close();
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function createTestDb(schema) {
|
|
38
|
+
const db = new Database(':memory:');
|
|
39
|
+
db.exec(schema);
|
|
40
|
+
return db;
|
|
41
|
+
}
|
|
42
|
+
// ============================================================================
|
|
43
|
+
// File System Utilities
|
|
44
|
+
// ============================================================================
|
|
45
|
+
/**
|
|
46
|
+
* Creates a unique temporary directory for file-based tests.
|
|
47
|
+
* Returns both the path and a cleanup function.
|
|
48
|
+
*
|
|
49
|
+
* Uses os.tmpdir() for cross-platform compatibility and UUID for uniqueness.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* import { createTempDir } from '../__testUtils__';
|
|
54
|
+
*
|
|
55
|
+
* let tempDir: ReturnType<typeof createTempDir>;
|
|
56
|
+
*
|
|
57
|
+
* beforeEach(() => {
|
|
58
|
+
* tempDir = createTempDir('my-test');
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* afterEach(() => {
|
|
62
|
+
* tempDir.cleanup();
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export function createTempDir(prefix = 'mcp-test') {
|
|
67
|
+
const tempPath = path.join(os.tmpdir(), `${prefix}-${randomUUID()}`);
|
|
68
|
+
fs.mkdirSync(tempPath, { recursive: true });
|
|
69
|
+
return {
|
|
70
|
+
path: tempPath,
|
|
71
|
+
cleanup: () => {
|
|
72
|
+
if (fs.existsSync(tempPath)) {
|
|
73
|
+
fs.rmSync(tempPath, { recursive: true, force: true });
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Creates a temporary file with optional initial content.
|
|
80
|
+
* Returns the file path and a cleanup function.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const { path: configPath, cleanup } = createTempFile('config.json', '{}');
|
|
85
|
+
* // Use configPath...
|
|
86
|
+
* cleanup(); // Removes the file and its directory
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export function createTempFile(filename, content = '', prefix = 'mcp-test') {
|
|
90
|
+
const dir = createTempDir(prefix);
|
|
91
|
+
const filePath = path.join(dir.path, filename);
|
|
92
|
+
if (content) {
|
|
93
|
+
fs.writeFileSync(filePath, content);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
path: filePath,
|
|
97
|
+
cleanup: dir.cleanup,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// ============================================================================
|
|
101
|
+
// Time Utilities
|
|
102
|
+
// ============================================================================
|
|
103
|
+
/**
|
|
104
|
+
* Gets a Unix timestamp offset from now.
|
|
105
|
+
* Useful for creating test data with specific timestamps.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const twoHoursAgo = getTimestamp(-2, 'hours');
|
|
110
|
+
* const thirtyMinutesAgo = getTimestamp(-30, 'minutes');
|
|
111
|
+
* const oneWeekAgo = getTimestamp(-7, 'days');
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export function getTimestamp(offset, unit = 'seconds') {
|
|
115
|
+
const multipliers = {
|
|
116
|
+
seconds: 1,
|
|
117
|
+
minutes: 60,
|
|
118
|
+
hours: 60 * 60,
|
|
119
|
+
days: 24 * 60 * 60,
|
|
120
|
+
};
|
|
121
|
+
const now = Math.floor(Date.now() / 1000);
|
|
122
|
+
return now + offset * multipliers[unit];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Gets an ISO timestamp string offset from now.
|
|
126
|
+
*/
|
|
127
|
+
export function getISOTimestamp(offset, unit = 'seconds') {
|
|
128
|
+
const timestamp = getTimestamp(offset, unit);
|
|
129
|
+
return new Date(timestamp * 1000).toISOString();
|
|
130
|
+
}
|
|
131
|
+
// ============================================================================
|
|
132
|
+
// ID Generators
|
|
133
|
+
// ============================================================================
|
|
134
|
+
/**
|
|
135
|
+
* Generates a random UUID.
|
|
136
|
+
* Re-exported from crypto for convenience.
|
|
137
|
+
*/
|
|
138
|
+
export { randomUUID };
|
|
139
|
+
/**
|
|
140
|
+
* Generates a prefixed test ID.
|
|
141
|
+
* Useful for creating identifiable test data.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const taskId = generateTestId('task'); // "task-a1b2c3d4..."
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
export function generateTestId(prefix) {
|
|
149
|
+
return `${prefix}-${randomUUID()}`;
|
|
150
|
+
}
|
|
151
|
+
// ============================================================================
|
|
152
|
+
// Test Data Helpers
|
|
153
|
+
// ============================================================================
|
|
154
|
+
/**
|
|
155
|
+
* Creates multiple items using a factory function.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* const tasks = createMultiple(5, (i) => ({
|
|
160
|
+
* id: randomUUID(),
|
|
161
|
+
* title: `Task ${i}`,
|
|
162
|
+
* }));
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
export function createMultiple(count, factory) {
|
|
166
|
+
return Array.from({ length: count }, (_, i) => factory(i));
|
|
167
|
+
}
|
|
168
|
+
// ============================================================================
|
|
169
|
+
// Assertion Helpers
|
|
170
|
+
// ============================================================================
|
|
171
|
+
/**
|
|
172
|
+
* Checks if a value is an error result (has an 'error' property).
|
|
173
|
+
*/
|
|
174
|
+
export function isErrorResult(result) {
|
|
175
|
+
return (result !== null &&
|
|
176
|
+
typeof result === 'object' &&
|
|
177
|
+
'error' in result &&
|
|
178
|
+
typeof result.error === 'string');
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/__testUtils__/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,UAAU;IAIvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC;IACrE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,UAAkB,EAAE,EACpB,SAAiB,UAAU;IAE3B,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE/C,IAAI,OAAO,EAAE,CAAC;QACZ,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,OAAiD,SAAS;IAE1D,MAAM,WAAW,GAAG;QAClB,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE,GAAG,EAAE;QACd,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;KACnB,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,GAAG,GAAG,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,OAAiD,SAAS;IAE1D,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC;AACrC,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAI,KAAa,EAAE,OAA6B;IAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,OAAO,CACL,MAAM,KAAK,IAAI;QACf,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,IAAI,MAAM;QACjB,OAAQ,MAA6B,CAAC,KAAK,KAAK,QAAQ,CACzD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Schema Constants for MCP Server Tests
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for database schemas used in tests.
|
|
5
|
+
* These schemas mirror the production schemas in each server's server.ts file.
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT: Keep these in sync with the actual server implementations!
|
|
8
|
+
*
|
|
9
|
+
* @module __testUtils__/schemas
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Schema for the todo-db MCP server.
|
|
13
|
+
* Mirrors: packages/mcp-servers/src/todo-db/server.ts
|
|
14
|
+
*/
|
|
15
|
+
export declare const TODO_DB_SCHEMA = "\nCREATE TABLE IF NOT EXISTS tasks (\n id TEXT PRIMARY KEY,\n section TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n title TEXT NOT NULL,\n description TEXT,\n created_at TEXT NOT NULL,\n started_at TEXT,\n completed_at TEXT,\n assigned_by TEXT,\n metadata TEXT,\n created_timestamp INTEGER NOT NULL,\n completed_timestamp INTEGER,\n followup_enabled INTEGER NOT NULL DEFAULT 0,\n followup_section TEXT,\n followup_prompt TEXT,\n priority TEXT NOT NULL DEFAULT 'normal',\n CONSTRAINT valid_status CHECK (status IN ('pending', 'in_progress', 'completed')),\n CONSTRAINT valid_section CHECK (section IN ('TEST-WRITER', 'INVESTIGATOR & PLANNER', 'CODE-REVIEWER', 'PROJECT-MANAGER', 'DEPUTY-CTO', 'PRODUCT-MANAGER')),\n CONSTRAINT valid_priority CHECK (priority IN ('normal', 'urgent'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_tasks_section ON tasks(section);\nCREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);\nCREATE INDEX IF NOT EXISTS idx_tasks_completed_timestamp ON tasks(completed_timestamp);\n\nCREATE TABLE IF NOT EXISTS maintenance_state (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n";
|
|
16
|
+
/**
|
|
17
|
+
* Schema for the deputy-cto MCP server.
|
|
18
|
+
* Mirrors: packages/mcp-servers/src/deputy-cto/server.ts
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEPUTY_CTO_SCHEMA = "\nCREATE TABLE IF NOT EXISTS questions (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n title TEXT NOT NULL,\n description TEXT NOT NULL,\n context TEXT,\n suggested_options TEXT,\n recommendation TEXT,\n answer TEXT,\n created_at TEXT NOT NULL,\n created_timestamp INTEGER NOT NULL,\n answered_at TEXT,\n decided_by TEXT,\n CONSTRAINT valid_type CHECK (type IN ('decision', 'approval', 'rejection', 'question', 'escalation', 'bypass-request', 'protected-action-request')),\n CONSTRAINT valid_status CHECK (status IN ('pending', 'answered')),\n CONSTRAINT valid_decided_by CHECK (decided_by IS NULL OR decided_by IN ('cto', 'deputy-cto'))\n);\n\nCREATE TABLE IF NOT EXISTS commit_decisions (\n id TEXT PRIMARY KEY,\n decision TEXT NOT NULL,\n rationale TEXT NOT NULL,\n question_id TEXT,\n created_at TEXT NOT NULL,\n created_timestamp INTEGER NOT NULL,\n CONSTRAINT valid_decision CHECK (decision IN ('approved', 'rejected'))\n);\n\nCREATE TABLE IF NOT EXISTS cleared_questions (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n title TEXT NOT NULL,\n description TEXT NOT NULL,\n recommendation TEXT,\n answer TEXT,\n answered_at TEXT,\n decided_by TEXT,\n cleared_at TEXT NOT NULL,\n cleared_timestamp INTEGER NOT NULL,\n CONSTRAINT valid_decided_by CHECK (decided_by IS NULL OR decided_by IN ('cto', 'deputy-cto'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_questions_status ON questions(status);\nCREATE INDEX IF NOT EXISTS idx_cleared_questions_cleared ON cleared_questions(cleared_timestamp DESC);\nCREATE INDEX IF NOT EXISTS idx_questions_type ON questions(type);\nCREATE INDEX IF NOT EXISTS idx_commit_decisions_created ON commit_decisions(created_timestamp DESC);\n";
|
|
21
|
+
/**
|
|
22
|
+
* Schema for the agent-reports MCP server.
|
|
23
|
+
* Mirrors: packages/mcp-servers/src/agent-reports/server.ts
|
|
24
|
+
*
|
|
25
|
+
* Note: This server was formerly called cto-reports.
|
|
26
|
+
*/
|
|
27
|
+
export declare const AGENT_REPORTS_SCHEMA = "\nCREATE TABLE IF NOT EXISTS reports (\n id TEXT PRIMARY KEY,\n reporting_agent TEXT NOT NULL,\n title TEXT NOT NULL,\n summary TEXT NOT NULL,\n category TEXT NOT NULL DEFAULT 'other',\n priority TEXT NOT NULL DEFAULT 'normal',\n created_at TEXT NOT NULL,\n created_timestamp INTEGER NOT NULL,\n read_at TEXT,\n acknowledged_at TEXT,\n -- Triage lifecycle fields\n triage_status TEXT NOT NULL DEFAULT 'pending',\n triage_started_at TEXT,\n triage_completed_at TEXT,\n triage_session_id TEXT,\n triage_outcome TEXT,\n triage_attempted_at TEXT,\n -- Legacy fields (for backward compatibility)\n triaged_at TEXT,\n triage_action TEXT,\n CONSTRAINT valid_category CHECK (category IN ('architecture', 'security', 'performance', 'breaking-change', 'blocker', 'decision', 'user-feedback', 'other')),\n CONSTRAINT valid_priority CHECK (priority IN ('low', 'normal', 'high', 'critical')),\n CONSTRAINT valid_triage_status CHECK (triage_status IN ('pending', 'in_progress', 'self_handled', 'escalated', 'dismissed'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_reports_created ON reports(created_timestamp DESC);\nCREATE INDEX IF NOT EXISTS idx_reports_acknowledged ON reports(acknowledged_at);\nCREATE INDEX IF NOT EXISTS idx_reports_triage_status ON reports(triage_status);\nCREATE INDEX IF NOT EXISTS idx_reports_triage_completed ON reports(triage_completed_at);\n";
|
|
28
|
+
/**
|
|
29
|
+
* Valid task sections for todo-db.
|
|
30
|
+
* Should match VALID_SECTIONS in shared/constants.ts
|
|
31
|
+
*/
|
|
32
|
+
export declare const VALID_SECTIONS: readonly ["TEST-WRITER", "INVESTIGATOR & PLANNER", "CODE-REVIEWER", "PROJECT-MANAGER", "DEPUTY-CTO", "PRODUCT-MANAGER"];
|
|
33
|
+
export type ValidSection = (typeof VALID_SECTIONS)[number];
|
|
34
|
+
/**
|
|
35
|
+
* Valid task statuses.
|
|
36
|
+
*/
|
|
37
|
+
export declare const TASK_STATUS: readonly ["pending", "in_progress", "completed"];
|
|
38
|
+
export type TaskStatus = (typeof TASK_STATUS)[number];
|
|
39
|
+
/**
|
|
40
|
+
* Valid report categories.
|
|
41
|
+
*/
|
|
42
|
+
export declare const REPORT_CATEGORIES: readonly ["architecture", "security", "performance", "breaking-change", "blocker", "decision", "user-feedback", "other"];
|
|
43
|
+
export type ReportCategory = (typeof REPORT_CATEGORIES)[number];
|
|
44
|
+
/**
|
|
45
|
+
* Valid report priorities.
|
|
46
|
+
*/
|
|
47
|
+
export declare const REPORT_PRIORITIES: readonly ["low", "normal", "high", "critical"];
|
|
48
|
+
export type ReportPriority = (typeof REPORT_PRIORITIES)[number];
|
|
49
|
+
/**
|
|
50
|
+
* Valid triage statuses.
|
|
51
|
+
*/
|
|
52
|
+
export declare const TRIAGE_STATUS: readonly ["pending", "in_progress", "self_handled", "escalated", "dismissed"];
|
|
53
|
+
export type TriageStatus = (typeof TRIAGE_STATUS)[number];
|
|
54
|
+
/**
|
|
55
|
+
* Valid question types for deputy-cto.
|
|
56
|
+
*/
|
|
57
|
+
export declare const QUESTION_TYPES: readonly ["decision", "approval", "rejection", "question", "escalation", "bypass-request", "protected-action-request"];
|
|
58
|
+
export type QuestionType = (typeof QUESTION_TYPES)[number];
|
|
59
|
+
/**
|
|
60
|
+
* Schema for the user-feedback MCP server.
|
|
61
|
+
* Mirrors: packages/mcp-servers/src/user-feedback/server.ts
|
|
62
|
+
*/
|
|
63
|
+
export declare const USER_FEEDBACK_SCHEMA = "\nCREATE TABLE IF NOT EXISTS personas (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL UNIQUE,\n description TEXT NOT NULL,\n consumption_mode TEXT NOT NULL DEFAULT 'gui',\n behavior_traits TEXT NOT NULL DEFAULT '[]',\n endpoints TEXT NOT NULL DEFAULT '[]',\n credentials_ref TEXT,\n enabled INTEGER NOT NULL DEFAULT 1,\n created_at TEXT NOT NULL,\n created_timestamp INTEGER NOT NULL,\n updated_at TEXT NOT NULL,\n CONSTRAINT valid_mode CHECK (consumption_mode IN ('gui', 'cli', 'api', 'sdk'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_personas_mode ON personas(consumption_mode);\nCREATE INDEX IF NOT EXISTS idx_personas_enabled ON personas(enabled);\n\nCREATE TABLE IF NOT EXISTS features (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL UNIQUE,\n description TEXT,\n file_patterns TEXT NOT NULL DEFAULT '[]',\n url_patterns TEXT NOT NULL DEFAULT '[]',\n category TEXT,\n created_at TEXT NOT NULL,\n created_timestamp INTEGER NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_features_category ON features(category);\n\nCREATE TABLE IF NOT EXISTS persona_features (\n persona_id TEXT NOT NULL,\n feature_id TEXT NOT NULL,\n priority TEXT NOT NULL DEFAULT 'normal',\n test_scenarios TEXT NOT NULL DEFAULT '[]',\n PRIMARY KEY (persona_id, feature_id),\n FOREIGN KEY (persona_id) REFERENCES personas(id) ON DELETE CASCADE,\n FOREIGN KEY (feature_id) REFERENCES features(id) ON DELETE CASCADE,\n CONSTRAINT valid_priority CHECK (priority IN ('low', 'normal', 'high', 'critical'))\n);\n\nCREATE TABLE IF NOT EXISTS feedback_runs (\n id TEXT PRIMARY KEY,\n trigger_type TEXT NOT NULL,\n trigger_ref TEXT,\n changed_features TEXT NOT NULL DEFAULT '[]',\n personas_triggered TEXT NOT NULL DEFAULT '[]',\n status TEXT NOT NULL DEFAULT 'pending',\n max_concurrent INTEGER NOT NULL DEFAULT 3,\n started_at TEXT NOT NULL,\n completed_at TEXT,\n summary TEXT,\n CONSTRAINT valid_status CHECK (status IN ('pending', 'in_progress', 'completed', 'failed', 'partial'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_runs_status ON feedback_runs(status);\nCREATE INDEX IF NOT EXISTS idx_runs_started ON feedback_runs(started_at);\n\nCREATE TABLE IF NOT EXISTS feedback_sessions (\n id TEXT PRIMARY KEY,\n run_id TEXT NOT NULL,\n persona_id TEXT NOT NULL,\n agent_id TEXT,\n status TEXT NOT NULL DEFAULT 'pending',\n started_at TEXT,\n completed_at TEXT,\n findings_count INTEGER DEFAULT 0,\n report_ids TEXT DEFAULT '[]',\n satisfaction_level TEXT,\n CONSTRAINT valid_status CHECK (status IN ('pending', 'queued', 'running', 'completed', 'failed', 'timeout')),\n CONSTRAINT valid_satisfaction CHECK (satisfaction_level IS NULL OR satisfaction_level IN ('very_satisfied', 'satisfied', 'neutral', 'dissatisfied', 'very_dissatisfied')),\n FOREIGN KEY (run_id) REFERENCES feedback_runs(id),\n FOREIGN KEY (persona_id) REFERENCES personas(id)\n);\n\nCREATE INDEX IF NOT EXISTS idx_sessions_run ON feedback_sessions(run_id);\nCREATE INDEX IF NOT EXISTS idx_sessions_status ON feedback_sessions(status);\n";
|
|
64
|
+
/**
|
|
65
|
+
* Valid consumption modes for personas.
|
|
66
|
+
*/
|
|
67
|
+
export declare const CONSUMPTION_MODES: readonly ["gui", "cli", "api", "sdk"];
|
|
68
|
+
export type ConsumptionMode = (typeof CONSUMPTION_MODES)[number];
|
|
69
|
+
/**
|
|
70
|
+
* Valid feature priorities.
|
|
71
|
+
*/
|
|
72
|
+
export declare const FEATURE_PRIORITIES: readonly ["low", "normal", "high", "critical"];
|
|
73
|
+
export type FeaturePriority = (typeof FEATURE_PRIORITIES)[number];
|
|
74
|
+
/**
|
|
75
|
+
* Valid feedback run statuses.
|
|
76
|
+
*/
|
|
77
|
+
export declare const FEEDBACK_RUN_STATUSES: readonly ["pending", "in_progress", "completed", "failed", "partial"];
|
|
78
|
+
export type FeedbackRunStatus = (typeof FEEDBACK_RUN_STATUSES)[number];
|
|
79
|
+
/**
|
|
80
|
+
* Valid feedback session statuses.
|
|
81
|
+
*/
|
|
82
|
+
export declare const FEEDBACK_SESSION_STATUSES: readonly ["pending", "queued", "running", "completed", "failed", "timeout"];
|
|
83
|
+
export type FeedbackSessionStatus = (typeof FEEDBACK_SESSION_STATUSES)[number];
|
|
84
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/__testUtils__/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;GAGG;AACH,eAAO,MAAM,cAAc,ksCAgC1B,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yxDAgD7B,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,i5CA+BhC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,cAAc,yHAOjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,WAAW,kDAAmD,CAAC;AAE5E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,iBAAiB,0HASpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,iBAAiB,gDAAiD,CAAC;AAEhF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,aAAa,+EAMhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,cAAc,wHAQjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,qjGA+EhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,uCAAwC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,kBAAkB,gDAAiD,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,qBAAqB,uEAAwE,CAAC;AAE3G,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,yBAAyB,6EAA8E,CAAC;AAErH,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|