@specship/specship-win32-arm64 0.24.0 → 0.28.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/bin/specship.cmd +31 -1
- package/lib/dist/activation/cheatsheet.d.ts +17 -1
- package/lib/dist/activation/cheatsheet.d.ts.map +1 -1
- package/lib/dist/activation/cheatsheet.js +47 -3
- package/lib/dist/activation/cheatsheet.js.map +1 -1
- package/lib/dist/activation/hook-output.d.ts +80 -0
- package/lib/dist/activation/hook-output.d.ts.map +1 -0
- package/lib/dist/activation/hook-output.js +103 -0
- package/lib/dist/activation/hook-output.js.map +1 -0
- package/lib/dist/activation/search-intercept.d.ts +60 -29
- package/lib/dist/activation/search-intercept.d.ts.map +1 -1
- package/lib/dist/activation/search-intercept.js +159 -55
- package/lib/dist/activation/search-intercept.js.map +1 -1
- package/lib/dist/activation/steering.d.ts +11 -13
- package/lib/dist/activation/steering.d.ts.map +1 -1
- package/lib/dist/activation/steering.js +25 -10
- package/lib/dist/activation/steering.js.map +1 -1
- package/lib/dist/behaviour/behaviour-surface.d.ts +47 -0
- package/lib/dist/behaviour/behaviour-surface.d.ts.map +1 -1
- package/lib/dist/behaviour/behaviour-surface.js +108 -2
- package/lib/dist/behaviour/behaviour-surface.js.map +1 -1
- package/lib/dist/bin/node-version-check.d.ts +22 -7
- package/lib/dist/bin/node-version-check.d.ts.map +1 -1
- package/lib/dist/bin/node-version-check.js +39 -9
- package/lib/dist/bin/node-version-check.js.map +1 -1
- package/lib/dist/bin/specship.js +989 -116
- package/lib/dist/bin/specship.js.map +1 -1
- package/lib/dist/commands/specship/learn.md +27 -3
- package/lib/dist/commands/specship/spec.md +85 -15
- package/lib/dist/db/spec-queries.d.ts +73 -3
- package/lib/dist/db/spec-queries.d.ts.map +1 -1
- package/lib/dist/db/spec-queries.js +139 -5
- package/lib/dist/db/spec-queries.js.map +1 -1
- package/lib/dist/db/sqlite-adapter.d.ts +7 -5
- package/lib/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/lib/dist/db/sqlite-adapter.js +11 -9
- package/lib/dist/db/sqlite-adapter.js.map +1 -1
- package/lib/dist/enforce/changed-files.d.ts +39 -0
- package/lib/dist/enforce/changed-files.d.ts.map +1 -0
- package/lib/dist/enforce/changed-files.js +114 -0
- package/lib/dist/enforce/changed-files.js.map +1 -0
- package/lib/dist/enforce/enforce.d.ts +53 -2
- package/lib/dist/enforce/enforce.d.ts.map +1 -1
- package/lib/dist/enforce/enforce.js +95 -8
- package/lib/dist/enforce/enforce.js.map +1 -1
- package/lib/dist/enforce/mutation.d.ts +46 -0
- package/lib/dist/enforce/mutation.d.ts.map +1 -0
- package/lib/dist/enforce/mutation.js +104 -0
- package/lib/dist/enforce/mutation.js.map +1 -0
- package/lib/dist/enforce/suppressions.d.ts +33 -0
- package/lib/dist/enforce/suppressions.d.ts.map +1 -0
- package/lib/dist/enforce/suppressions.js +159 -0
- package/lib/dist/enforce/suppressions.js.map +1 -0
- package/lib/dist/extraction/grammars.d.ts +10 -0
- package/lib/dist/extraction/grammars.d.ts.map +1 -1
- package/lib/dist/extraction/grammars.js +32 -3
- package/lib/dist/extraction/grammars.js.map +1 -1
- package/lib/dist/extraction/index.d.ts +7 -0
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/specs/markdown-spec-extractor.d.ts +7 -0
- package/lib/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/specs/markdown-spec-extractor.js +97 -10
- package/lib/dist/extraction/specs/markdown-spec-extractor.js.map +1 -1
- package/lib/dist/extraction/wasm/tree-sitter-pascal.wasm.gz +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-scala.wasm.gz +0 -0
- package/lib/dist/graph/spec-coverage.d.ts +142 -0
- package/lib/dist/graph/spec-coverage.d.ts.map +1 -0
- package/lib/dist/graph/spec-coverage.js +276 -0
- package/lib/dist/graph/spec-coverage.js.map +1 -0
- package/lib/dist/health/smoke-check.js +2 -2
- package/lib/dist/health/smoke-check.js.map +1 -1
- package/lib/dist/index.d.ts +75 -7
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +191 -23
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/installer/gemini-commands.d.ts +107 -0
- package/lib/dist/installer/gemini-commands.d.ts.map +1 -0
- package/lib/dist/installer/gemini-commands.js +264 -0
- package/lib/dist/installer/gemini-commands.js.map +1 -0
- package/lib/dist/installer/index.d.ts +55 -8
- package/lib/dist/installer/index.d.ts.map +1 -1
- package/lib/dist/installer/index.js +72 -53
- package/lib/dist/installer/index.js.map +1 -1
- package/lib/dist/installer/init-offer.d.ts +14 -9
- package/lib/dist/installer/init-offer.d.ts.map +1 -1
- package/lib/dist/installer/init-offer.js +13 -9
- package/lib/dist/installer/init-offer.js.map +1 -1
- package/lib/dist/installer/install-defaults.d.ts +81 -0
- package/lib/dist/installer/install-defaults.d.ts.map +1 -0
- package/lib/dist/installer/install-defaults.js +95 -0
- package/lib/dist/installer/install-defaults.js.map +1 -0
- package/lib/dist/installer/instructions-template.d.ts +22 -0
- package/lib/dist/installer/instructions-template.d.ts.map +1 -1
- package/lib/dist/installer/instructions-template.js +37 -1
- package/lib/dist/installer/instructions-template.js.map +1 -1
- package/lib/dist/installer/targets/claude.d.ts +18 -0
- package/lib/dist/installer/targets/claude.d.ts.map +1 -1
- package/lib/dist/installer/targets/claude.js +70 -23
- package/lib/dist/installer/targets/claude.js.map +1 -1
- package/lib/dist/installer/targets/gemini.d.ts +85 -12
- package/lib/dist/installer/targets/gemini.d.ts.map +1 -1
- package/lib/dist/installer/targets/gemini.js +527 -30
- package/lib/dist/installer/targets/gemini.js.map +1 -1
- package/lib/dist/installer/targets/shared.d.ts +13 -0
- package/lib/dist/installer/targets/shared.d.ts.map +1 -1
- package/lib/dist/installer/targets/shared.js +22 -4
- package/lib/dist/installer/targets/shared.js.map +1 -1
- package/lib/dist/installer/targets/types.d.ts +12 -0
- package/lib/dist/installer/targets/types.d.ts.map +1 -1
- package/lib/dist/jira/auto-publish.d.ts +71 -4
- package/lib/dist/jira/auto-publish.d.ts.map +1 -1
- package/lib/dist/jira/auto-publish.js +186 -17
- package/lib/dist/jira/auto-publish.js.map +1 -1
- package/lib/dist/jira/reconcile.d.ts +24 -1
- package/lib/dist/jira/reconcile.d.ts.map +1 -1
- package/lib/dist/jira/reconcile.js +46 -2
- package/lib/dist/jira/reconcile.js.map +1 -1
- package/lib/dist/jira/repo-config.d.ts +9 -0
- package/lib/dist/jira/repo-config.d.ts.map +1 -1
- package/lib/dist/jira/repo-config.js +11 -0
- package/lib/dist/jira/repo-config.js.map +1 -1
- package/lib/dist/jira/types.d.ts +7 -0
- package/lib/dist/jira/types.d.ts.map +1 -1
- package/lib/dist/jira/types.js.map +1 -1
- package/lib/dist/knowledge/enforce.d.ts +75 -0
- package/lib/dist/knowledge/enforce.d.ts.map +1 -0
- package/lib/dist/knowledge/enforce.js +250 -0
- package/lib/dist/knowledge/enforce.js.map +1 -0
- package/lib/dist/knowledge/facts.d.ts +33 -0
- package/lib/dist/knowledge/facts.d.ts.map +1 -0
- package/lib/dist/knowledge/facts.js +117 -0
- package/lib/dist/knowledge/facts.js.map +1 -0
- package/lib/dist/knowledge/proposals.d.ts +88 -0
- package/lib/dist/knowledge/proposals.d.ts.map +1 -0
- package/lib/dist/knowledge/proposals.js +360 -0
- package/lib/dist/knowledge/proposals.js.map +1 -0
- package/lib/dist/knowledge/stale.d.ts +64 -0
- package/lib/dist/knowledge/stale.d.ts.map +1 -0
- package/lib/dist/knowledge/stale.js +174 -0
- package/lib/dist/knowledge/stale.js.map +1 -0
- package/lib/dist/mcp/fitness-tool.d.ts +5 -6
- package/lib/dist/mcp/fitness-tool.d.ts.map +1 -1
- package/lib/dist/mcp/fitness-tool.js +0 -16
- package/lib/dist/mcp/fitness-tool.js.map +1 -1
- package/lib/dist/mcp/gemini-session.d.ts +50 -0
- package/lib/dist/mcp/gemini-session.d.ts.map +1 -0
- package/lib/dist/mcp/gemini-session.js +159 -0
- package/lib/dist/mcp/gemini-session.js.map +1 -0
- package/lib/dist/mcp/health-tool.d.ts +26 -0
- package/lib/dist/mcp/health-tool.d.ts.map +1 -0
- package/lib/dist/mcp/health-tool.js +50 -0
- package/lib/dist/mcp/health-tool.js.map +1 -0
- package/lib/dist/mcp/jira-tools.d.ts.map +1 -1
- package/lib/dist/mcp/jira-tools.js +25 -0
- package/lib/dist/mcp/jira-tools.js.map +1 -1
- package/lib/dist/mcp/maintainability-tool.d.ts +5 -7
- package/lib/dist/mcp/maintainability-tool.d.ts.map +1 -1
- package/lib/dist/mcp/maintainability-tool.js +0 -16
- package/lib/dist/mcp/maintainability-tool.js.map +1 -1
- package/lib/dist/mcp/model-context.d.ts +31 -7
- package/lib/dist/mcp/model-context.d.ts.map +1 -1
- package/lib/dist/mcp/model-context.js +70 -21
- package/lib/dist/mcp/model-context.js.map +1 -1
- package/lib/dist/mcp/proxy.d.ts.map +1 -1
- package/lib/dist/mcp/proxy.js +5 -2
- package/lib/dist/mcp/proxy.js.map +1 -1
- package/lib/dist/mcp/server-instructions.d.ts +16 -15
- package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
- package/lib/dist/mcp/server-instructions.js +72 -5
- package/lib/dist/mcp/server-instructions.js.map +1 -1
- package/lib/dist/mcp/session.js +1 -1
- package/lib/dist/mcp/session.js.map +1 -1
- package/lib/dist/mcp/spec-tools.d.ts +9 -1
- package/lib/dist/mcp/spec-tools.d.ts.map +1 -1
- package/lib/dist/mcp/spec-tools.js +282 -49
- package/lib/dist/mcp/spec-tools.js.map +1 -1
- package/lib/dist/mcp/tools.d.ts +49 -9
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +210 -58
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/pulse/pulse.d.ts +93 -0
- package/lib/dist/pulse/pulse.d.ts.map +1 -0
- package/lib/dist/pulse/pulse.js +401 -0
- package/lib/dist/pulse/pulse.js.map +1 -0
- package/lib/dist/reflect/apply.d.ts.map +1 -1
- package/lib/dist/reflect/apply.js +38 -3
- package/lib/dist/reflect/apply.js.map +1 -1
- package/lib/dist/reflect/auto-sweep.d.ts +26 -0
- package/lib/dist/reflect/auto-sweep.d.ts.map +1 -0
- package/lib/dist/reflect/auto-sweep.js +90 -0
- package/lib/dist/reflect/auto-sweep.js.map +1 -0
- package/lib/dist/reflect/cli.d.ts +62 -0
- package/lib/dist/reflect/cli.d.ts.map +1 -0
- package/lib/dist/reflect/cli.js +163 -0
- package/lib/dist/reflect/cli.js.map +1 -0
- package/lib/dist/reflect/miner.d.ts.map +1 -1
- package/lib/dist/reflect/miner.js +119 -0
- package/lib/dist/reflect/miner.js.map +1 -1
- package/lib/dist/reflect/sweep.d.ts +1 -0
- package/lib/dist/reflect/sweep.d.ts.map +1 -1
- package/lib/dist/reflect/sweep.js +62 -13
- package/lib/dist/reflect/sweep.js.map +1 -1
- package/lib/dist/reflect/targets.d.ts +2 -0
- package/lib/dist/reflect/targets.d.ts.map +1 -1
- package/lib/dist/reflect/targets.js +33 -0
- package/lib/dist/reflect/targets.js.map +1 -1
- package/lib/dist/reflect/types.d.ts +19 -2
- package/lib/dist/reflect/types.d.ts.map +1 -1
- package/lib/dist/resolution/spec-link-resolver.d.ts +44 -2
- package/lib/dist/resolution/spec-link-resolver.d.ts.map +1 -1
- package/lib/dist/resolution/spec-link-resolver.js +132 -0
- package/lib/dist/resolution/spec-link-resolver.js.map +1 -1
- package/lib/dist/resolution/test-title-links.d.ts +62 -0
- package/lib/dist/resolution/test-title-links.d.ts.map +1 -0
- package/lib/dist/resolution/test-title-links.js +97 -0
- package/lib/dist/resolution/test-title-links.js.map +1 -0
- package/lib/dist/search/query-parser.d.ts.map +1 -1
- package/lib/dist/search/query-parser.js +6 -1
- package/lib/dist/search/query-parser.js.map +1 -1
- package/lib/dist/server/project-registry.js +1 -1
- package/lib/dist/server/routes/claude.js +24 -43
- package/lib/dist/server/routes/graph.js +53 -7
- package/lib/dist/server/routes/knowledge.js +118 -0
- package/lib/dist/server/routes/mcp.js +4 -3
- package/lib/dist/server/routes/projects.js +4 -4
- package/lib/dist/server/routes/spec.js +49 -7
- package/lib/dist/server/server.js +31 -17
- package/lib/dist/skills/spec-author/SKILL.md +164 -0
- package/lib/dist/skills/spec-author/references/format.md +210 -0
- package/lib/dist/skills/spec-author/references/gap-questions.md +152 -0
- package/lib/dist/skills/spec-author/references/quality-rubric.md +125 -0
- package/lib/dist/skills/spec-author/references/review-checklist.md +175 -0
- package/lib/dist/spec-lint/lint.d.ts +82 -0
- package/lib/dist/spec-lint/lint.d.ts.map +1 -0
- package/lib/dist/spec-lint/lint.js +491 -0
- package/lib/dist/spec-lint/lint.js.map +1 -0
- package/lib/dist/spec-quality/criterion-ids.d.ts +13 -0
- package/lib/dist/spec-quality/criterion-ids.d.ts.map +1 -0
- package/lib/dist/spec-quality/criterion-ids.js +38 -0
- package/lib/dist/spec-quality/criterion-ids.js.map +1 -0
- package/lib/dist/spec-quality/evidence-kind.d.ts +54 -0
- package/lib/dist/spec-quality/evidence-kind.d.ts.map +1 -0
- package/lib/dist/spec-quality/evidence-kind.js +183 -0
- package/lib/dist/spec-quality/evidence-kind.js.map +1 -0
- package/lib/dist/spec-quality/link-persist.d.ts +65 -0
- package/lib/dist/spec-quality/link-persist.d.ts.map +1 -0
- package/lib/dist/spec-quality/link-persist.js +249 -0
- package/lib/dist/spec-quality/link-persist.js.map +1 -0
- package/lib/dist/spec-quality/plan-scope.d.ts +38 -0
- package/lib/dist/spec-quality/plan-scope.d.ts.map +1 -0
- package/lib/dist/spec-quality/plan-scope.js +129 -0
- package/lib/dist/spec-quality/plan-scope.js.map +1 -0
- package/lib/dist/spec-quality/postcheck.d.ts +85 -0
- package/lib/dist/spec-quality/postcheck.d.ts.map +1 -0
- package/lib/dist/spec-quality/postcheck.js +390 -0
- package/lib/dist/spec-quality/postcheck.js.map +1 -0
- package/lib/dist/spec-quality/readiness.d.ts +72 -0
- package/lib/dist/spec-quality/readiness.d.ts.map +1 -0
- package/lib/dist/spec-quality/readiness.js +226 -0
- package/lib/dist/spec-quality/readiness.js.map +1 -0
- package/lib/dist/statusline/index.js.map +1 -1
- package/lib/dist/statusline/render.d.ts +1 -1
- package/lib/dist/statusline/render.d.ts.map +1 -1
- package/lib/dist/statusline/render.js +3 -1
- package/lib/dist/statusline/render.js.map +1 -1
- package/lib/dist/ui/assets/index-BzuUWUAE.js +50 -0
- package/lib/dist/ui/index.html +1 -1
- package/lib/dist/verify/report-ingest.d.ts +88 -0
- package/lib/dist/verify/report-ingest.d.ts.map +1 -0
- package/lib/dist/verify/report-ingest.js +269 -0
- package/lib/dist/verify/report-ingest.js.map +1 -0
- package/lib/dist/workflows/agents/claude.d.ts +16 -0
- package/lib/dist/workflows/agents/claude.d.ts.map +1 -0
- package/lib/dist/workflows/agents/claude.js +82 -0
- package/lib/dist/workflows/agents/claude.js.map +1 -0
- package/lib/dist/workflows/agents/gemini.d.ts +21 -0
- package/lib/dist/workflows/agents/gemini.d.ts.map +1 -0
- package/lib/dist/workflows/agents/gemini.js +124 -0
- package/lib/dist/workflows/agents/gemini.js.map +1 -0
- package/lib/dist/workflows/agents/index.d.ts +28 -0
- package/lib/dist/workflows/agents/index.d.ts.map +1 -0
- package/lib/dist/workflows/agents/index.js +104 -0
- package/lib/dist/workflows/agents/index.js.map +1 -0
- package/lib/dist/workflows/agents/types.d.ts +55 -0
- package/lib/dist/workflows/agents/types.d.ts.map +1 -0
- package/lib/dist/workflows/agents/types.js +46 -0
- package/lib/dist/workflows/agents/types.js.map +1 -0
- package/lib/dist/workflows/batch.d.ts +63 -0
- package/lib/dist/workflows/batch.d.ts.map +1 -0
- package/lib/dist/workflows/batch.js +151 -0
- package/lib/dist/workflows/batch.js.map +1 -0
- package/lib/dist/workflows/defaults/claude-design-implement.yaml +3 -4
- package/lib/dist/workflows/defaults/spec-author.yaml +11 -9
- package/lib/dist/workflows/defaults/spec-fix.yaml +103 -12
- package/lib/dist/workflows/defaults/spec-implement-mixed.yaml +21 -193
- package/lib/dist/workflows/defaults/spec-implement.yaml +701 -41
- package/lib/dist/workflows/defaults/spec-verify.yaml +60 -9
- package/lib/dist/workflows/discovery.d.ts +13 -0
- package/lib/dist/workflows/discovery.d.ts.map +1 -1
- package/lib/dist/workflows/discovery.js +79 -17
- package/lib/dist/workflows/discovery.js.map +1 -1
- package/lib/dist/workflows/executor.d.ts +18 -0
- package/lib/dist/workflows/executor.d.ts.map +1 -1
- package/lib/dist/workflows/executor.js +130 -33
- package/lib/dist/workflows/executor.js.map +1 -1
- package/lib/dist/workflows/gc.d.ts +50 -0
- package/lib/dist/workflows/gc.d.ts.map +1 -0
- package/lib/dist/workflows/gc.js +120 -0
- package/lib/dist/workflows/gc.js.map +1 -0
- package/lib/dist/workflows/merge-queue.d.ts +64 -0
- package/lib/dist/workflows/merge-queue.d.ts.map +1 -0
- package/lib/dist/workflows/merge-queue.js +162 -0
- package/lib/dist/workflows/merge-queue.js.map +1 -0
- package/lib/dist/workflows/runners/approval.d.ts +1 -1
- package/lib/dist/workflows/runners/approval.d.ts.map +1 -1
- package/lib/dist/workflows/runners/approval.js +11 -2
- package/lib/dist/workflows/runners/approval.js.map +1 -1
- package/lib/dist/workflows/runners/bash.d.ts +15 -0
- package/lib/dist/workflows/runners/bash.d.ts.map +1 -1
- package/lib/dist/workflows/runners/bash.js +50 -1
- package/lib/dist/workflows/runners/bash.js.map +1 -1
- package/lib/dist/workflows/runners/prompt.d.ts +16 -41
- package/lib/dist/workflows/runners/prompt.d.ts.map +1 -1
- package/lib/dist/workflows/runners/prompt.js +55 -120
- package/lib/dist/workflows/runners/prompt.js.map +1 -1
- package/lib/dist/workflows/runners/types.d.ts +12 -0
- package/lib/dist/workflows/runners/types.d.ts.map +1 -1
- package/lib/dist/workflows/schemas/workflow.d.ts +17 -0
- package/lib/dist/workflows/schemas/workflow.d.ts.map +1 -1
- package/lib/dist/workflows/schemas/workflow.js +27 -0
- package/lib/dist/workflows/schemas/workflow.js.map +1 -1
- package/lib/node_modules/.package-lock.json +1 -1
- package/lib/package.json +8 -4
- package/package.json +5 -3
- package/lib/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/lib/dist/server/ingest/impact-query.js +0 -343
- package/lib/dist/server/routes/events.js +0 -152
- package/lib/dist/ui/assets/index-CjjaftDw.js +0 -50
- package/node.exe +0 -4
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Model-aware context compaction (MODCTX-DOC).
|
|
4
4
|
*
|
|
5
|
-
* Lower-tier models (
|
|
5
|
+
* Lower-tier models (lite-tier models — Haiku, Gemini Flash; standard tier
|
|
6
|
+
* to a lesser degree) pay more attention
|
|
6
7
|
* cost per token of scaffolding. When the session runs on one, code-graph
|
|
7
8
|
* tool responses pass through a deterministic, fence-preserving compactor:
|
|
8
9
|
* SpecShip's own prose (boilerplate notices, meta-guidance, blank runs)
|
|
@@ -12,8 +13,14 @@
|
|
|
12
13
|
*
|
|
13
14
|
* Detection rides the status line: Claude Code pipes the model into every
|
|
14
15
|
* status-line render, and `recordSessionModel` persists it to
|
|
15
|
-
* `.specship/session/model.json`; the MCP server reads it per call.
|
|
16
|
+
* `.specship/session/model.json`; the MCP server reads it per call. On a
|
|
17
|
+
* Gemini CLI session none of the Claude channels exist, so detection reads
|
|
18
|
+
* Gemini CLI's own surface in-server (`./gemini-session`, REQ-LOWEND-001).
|
|
16
19
|
* Unknown model → `full` tier → identity (never compact blind).
|
|
20
|
+
*
|
|
21
|
+
* Tiers are capability names (`lite` / `standard` / `full`), not model-family
|
|
22
|
+
* names (REQ-GEMINI-007): the provider mapping table below is what binds a
|
|
23
|
+
* concrete model id (Claude or Gemini) to a tier.
|
|
17
24
|
*/
|
|
18
25
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
19
26
|
if (k2 === undefined) k2 = k;
|
|
@@ -59,6 +66,7 @@ const fs = __importStar(require("fs"));
|
|
|
59
66
|
const paths_1 = require("../statusline/paths");
|
|
60
67
|
const directory_1 = require("../directory");
|
|
61
68
|
const runtime_settings_1 = require("../config/runtime-settings");
|
|
69
|
+
const gemini_session_1 = require("./gemini-session");
|
|
62
70
|
/**
|
|
63
71
|
* Persist the session's model (REQ-MODCTX-001). Called from the status-line
|
|
64
72
|
* render path; writes only when the value changed so sub-second re-renders
|
|
@@ -152,23 +160,60 @@ function readModelFromTranscript(transcriptPath) {
|
|
|
152
160
|
return null;
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Provider mapping table (REQ-GEMINI-007): model id → capability tier.
|
|
165
|
+
* Ordered, most-specific-first — the first match wins, so a looser rule can
|
|
166
|
+
* never swallow a narrower one (`gemini-2.5-flash-lite` must not fall through
|
|
167
|
+
* to a `pro`/full rule). Adding a provider means adding rows here, not
|
|
168
|
+
* scattering substring checks across the codebase.
|
|
169
|
+
*/
|
|
170
|
+
const TIER_RULES = [
|
|
171
|
+
{ match: /haiku/, tier: 'lite' },
|
|
172
|
+
// `[\s\w.-]*` so both ids (`gemini-2.5-flash`) and display names
|
|
173
|
+
// (`Gemini 2.5 Flash`) match — the marker can carry either.
|
|
174
|
+
{ match: /gemini[\s\w.-]*flash/, tier: 'lite' }, // flash and flash-lite
|
|
175
|
+
{ match: /sonnet/, tier: 'standard' },
|
|
176
|
+
{ match: /gemini[\s\w.-]*pro/, tier: 'full' },
|
|
177
|
+
{ match: /opus|fable/, tier: 'full' },
|
|
178
|
+
];
|
|
179
|
+
/** The tier names themselves, accepted as override values. */
|
|
180
|
+
const TIER_NAMES = new Set(['lite', 'standard', 'full']);
|
|
181
|
+
/**
|
|
182
|
+
* Map a model id / display name to a compaction tier. A bare tier name
|
|
183
|
+
* (`lite` / `standard` / `full`) is also accepted, so the documented override
|
|
184
|
+
* can name a tier directly instead of a model id (REQ-LOWEND-001.A2).
|
|
185
|
+
*/
|
|
156
186
|
function modelTier(model) {
|
|
157
187
|
if (!model)
|
|
158
188
|
return 'full';
|
|
159
189
|
const m = model.toLowerCase();
|
|
160
|
-
if (
|
|
161
|
-
return
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
190
|
+
if (TIER_NAMES.has(m))
|
|
191
|
+
return m;
|
|
192
|
+
for (const rule of TIER_RULES) {
|
|
193
|
+
if (rule.match.test(m))
|
|
194
|
+
return rule.tier;
|
|
195
|
+
}
|
|
196
|
+
return 'full'; // unknown id → never compact blind
|
|
165
197
|
}
|
|
166
198
|
/**
|
|
167
|
-
* Resolve the active tier for a project (REQ-MODCTX-001,
|
|
168
|
-
*
|
|
169
|
-
*
|
|
199
|
+
* Resolve the active tier for a project (REQ-MODCTX-001, REQ-LOWEND-001,
|
|
200
|
+
* RUNSET-DOC), in order:
|
|
201
|
+
*
|
|
202
|
+
* SPECSHIP_COMPACT=0 → SPECSHIP_MODEL → Claude marker → Gemini settings/env → full
|
|
203
|
+
*
|
|
204
|
+
* `SPECSHIP_COMPACT=0` disables compaction outright; `SPECSHIP_MODEL` is the
|
|
205
|
+
* single documented override and names either a tier or a model id, so it wins
|
|
206
|
+
* over every auto-detect channel (REQ-LOWEND-001.A2). Both switches resolve
|
|
170
207
|
* through the settings chain (env > project `.specship/settings.json` >
|
|
171
208
|
* `~/.specship/settings.json`), so a repo can pin its behavior.
|
|
209
|
+
*
|
|
210
|
+
* The session model marker is a **Claude-only channel** (status line /
|
|
211
|
+
* SessionStart hook / transcript tail). A Gemini CLI session writes no marker,
|
|
212
|
+
* so detection there reads Gemini CLI's own surface instead —
|
|
213
|
+
* `GEMINI_MODEL` / `.gemini/settings.json` (REQ-LOWEND-001.A1). No Claude
|
|
214
|
+
* channel is ever misread on a non-Claude host (REQ-GEMINI-007.A4), and with
|
|
215
|
+
* nothing detected anywhere the tier is `full` — never compact blind
|
|
216
|
+
* (REQ-LOWEND-001.A3).
|
|
172
217
|
*/
|
|
173
218
|
function detectModelTier(projectRoot, env = process.env, homedir) {
|
|
174
219
|
if ((0, runtime_settings_1.resolveSetting)('SPECSHIP_COMPACT', projectRoot, env, homedir) === '0')
|
|
@@ -176,10 +221,14 @@ function detectModelTier(projectRoot, env = process.env, homedir) {
|
|
|
176
221
|
const forced = (0, runtime_settings_1.resolveSetting)('SPECSHIP_MODEL', projectRoot, env, homedir);
|
|
177
222
|
if (forced)
|
|
178
223
|
return modelTier(forced);
|
|
179
|
-
if (
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
224
|
+
if (projectRoot) {
|
|
225
|
+
const marker = (0, paths_1.readJsonSafe)((0, paths_1.modelMarkerPath)(projectRoot));
|
|
226
|
+
if (marker?.model)
|
|
227
|
+
return modelTier(marker.model);
|
|
228
|
+
}
|
|
229
|
+
// Gemini CLI leg: the workspace may not be an initialized SpecShip project,
|
|
230
|
+
// so fall back to the process cwd for the project-level settings lookup.
|
|
231
|
+
return modelTier((0, gemini_session_1.readGeminiSessionModel)(projectRoot ?? process.cwd(), env, homedir));
|
|
183
232
|
}
|
|
184
233
|
/**
|
|
185
234
|
* Known long boilerplate → terse equivalents carrying the SAME instruction —
|
|
@@ -200,8 +249,8 @@ const TERSE_NOTICES = [
|
|
|
200
249
|
'> Some sections trimmed. Need a symbol: specship_explore / specship_node with its exact name — not Read.',
|
|
201
250
|
],
|
|
202
251
|
];
|
|
203
|
-
/** Blast-radius bullets kept on the
|
|
204
|
-
const
|
|
252
|
+
/** Blast-radius bullets kept on the lite tier before "+N more". */
|
|
253
|
+
const LITE_BLAST_CAP = 3;
|
|
205
254
|
/**
|
|
206
255
|
* Compact one tool-response markdown string for a tier (REQ-MODCTX-002/003).
|
|
207
256
|
* `full` → identity. Fenced code blocks are byte-verbatim at every tier.
|
|
@@ -217,14 +266,14 @@ function compactToolResult(text, tier) {
|
|
|
217
266
|
let p = part;
|
|
218
267
|
for (const [re, terse] of TERSE_NOTICES)
|
|
219
268
|
p = p.replace(re, terse);
|
|
220
|
-
if (tier === '
|
|
269
|
+
if (tier === 'lite')
|
|
221
270
|
p = capBlastRadius(p);
|
|
222
271
|
// Collapse runs of blank lines (prose only).
|
|
223
272
|
p = p.replace(/\n{3,}/g, '\n\n');
|
|
224
273
|
return p;
|
|
225
274
|
});
|
|
226
275
|
// Visibility (REQ-MODCTX-003.A1): one line naming the tier — worded to
|
|
227
|
-
// ASSERT completeness. Measured on the
|
|
276
|
+
// ASSERT completeness. Measured on the lite baseline (express, 2/2 runs):
|
|
228
277
|
// the original wording ("— SPECSHIP_COMPACT=0 for full output") read as
|
|
229
278
|
// "this output is incomplete" to a small model, which then re-Read files
|
|
230
279
|
// it had been handed (4 Reads / 11 turns vs 0-1 / 5-7 without the banner).
|
|
@@ -232,7 +281,7 @@ function compactToolResult(text, tier) {
|
|
|
232
281
|
return `⛁ compact mode (${tier}): prose condensed, ALL code complete and verbatim — answer from this output; do not re-read these files.\n${out.join('')}`;
|
|
233
282
|
}
|
|
234
283
|
/**
|
|
235
|
-
* Cap the "### Blast radius" bullet list (
|
|
284
|
+
* Cap the "### Blast radius" bullet list (lite tier). Truncation is loud —
|
|
236
285
|
* an explicit "+N more" line, never silent (REQ-MODCTX-002.A3).
|
|
237
286
|
*/
|
|
238
287
|
function capBlastRadius(prose) {
|
|
@@ -256,7 +305,7 @@ function capBlastRadius(prose) {
|
|
|
256
305
|
if (!line.startsWith('- '))
|
|
257
306
|
break; // section ended
|
|
258
307
|
bullets++;
|
|
259
|
-
if (bullets <=
|
|
308
|
+
if (bullets <= LITE_BLAST_CAP)
|
|
260
309
|
kept.push(line);
|
|
261
310
|
else
|
|
262
311
|
dropped++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-context.js","sourceRoot":"","sources":["../../src/mcp/model-context.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"model-context.js","sourceRoot":"","sources":["../../src/mcp/model-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAO3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,OAAO,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,eAAe,GAAE,MAA+B,GAC/C,OAAO,CAAC,WAAW,CAAC,CAsCtB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,eAAe,GAAE,MAA+B,GAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC,CAuBjD;AAID;+DAC+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC;yFACqF;IACrF,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C;6EACyE;IACzE,UAAU,IAAI,SAAS,CAAC;IACxB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAO3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,OAAO,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,eAAe,GAAE,MAA+B,GAC/C,OAAO,CAAC,WAAW,CAAC,CAsCtB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,eAAe,GAAE,MAA+B,GAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC,CAuBjD;AAID;+DAC+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC;yFACqF;IACrF,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C;6EACyE;IACzE,UAAU,IAAI,SAAS,CAAC;IACxB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HpF"}
|
package/lib/dist/mcp/proxy.js
CHANGED
|
@@ -246,11 +246,14 @@ async function runLocalHandshakeProxy(deps) {
|
|
|
246
246
|
}
|
|
247
247
|
if (msg.method === 'initialize') {
|
|
248
248
|
clientInitId = msg.id;
|
|
249
|
-
writeClient({ jsonrpc: '2.0', id: msg.id, result: { protocolVersion: session_1.PROTOCOL_VERSION, capabilities: { tools: {} }, serverInfo: session_1.SERVER_INFO, instructions: server_instructions_1.
|
|
249
|
+
writeClient({ jsonrpc: '2.0', id: msg.id, result: { protocolVersion: session_1.PROTOCOL_VERSION, capabilities: { tools: {} }, serverInfo: session_1.SERVER_INFO, instructions: (0, server_instructions_1.resolveServerInstructions)(deps.root) } });
|
|
250
250
|
routeToDaemon(line); // prime the daemon so it resolves the project (its reply is suppressed below)
|
|
251
251
|
}
|
|
252
252
|
else if (msg.method === 'tools/list') {
|
|
253
|
-
|
|
253
|
+
// Pass the project root so the lite-tier menu trim applies to the
|
|
254
|
+
// connect-time list too (REQ-LOWMODEL-004.A4) — marker file only,
|
|
255
|
+
// no DB open, so this stays on the fast handshake path.
|
|
256
|
+
writeClient({ jsonrpc: '2.0', id: msg.id, result: { tools: (0, tools_1.getStaticTools)(deps.root) } });
|
|
254
257
|
}
|
|
255
258
|
else if (msg.method === 'resources/list') {
|
|
256
259
|
// No resources exposed — answer the probe locally so it never reaches
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCH,4BAyCC;AAQD,4CA0BC;AA8BD,wDAuHC;AAvQD,uCAAyB;AACzB,yCAA2B;AAC3B,yEAAiE;AACjE,qCAA6D;AAC7D,uCAAmD;AACnD,uCAA0D;AAC1D,+DAA4D;AAC5D,mCAAyC;AAGzC,8EAA8E;AAC9E,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAalC;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,QAAQ,CAC5B,UAAkB,EAClB,kBAA0B,gCAAsB;IAEhD,oEAAoE;IACpE,kEAAkE;IAClE,iEAAiE;IACjE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACtD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,UAAU,iBAAiB,KAAK,CAAC,QAAQ,IAAI;YACjF,sBAAsB,eAAe,mCAAmC,CACzE,CAAC;QACF,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACpE,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+CAA+C,UAAU,SAAS,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,QAAQ,MAAM,CACtG,CAAC;IAEF,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7B,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,kBAA0B,gCAAsB;IAEhD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,CAAC,6CAA6C;IAC5D,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACvC,2EAA2E;QAC3E,yEAAyE;QACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,UAAU,iBAAiB,KAAK,CAAC,QAAQ,IAAI;YACjF,sBAAsB,eAAe,uCAAuC,CAC7E,CAAC;QACF,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+CAA+C,UAAU,SAAS,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,QAAQ,MAAM,CACtG,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAiBD;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,sBAAsB,CAAC,IAAwB;IACnE,IAAI,YAAY,GAAsC,YAAY,CAAC;IACnE,IAAI,YAAY,GAAsB,IAAI,CAAC;IAC3C,IAAI,YAAY,GAAY,SAAS,CAAC,CAAG,0DAA0D;IACnG,MAAM,OAAO,GAAa,EAAE,CAAC,CAAY,kDAAkD;IAC3F,IAAI,MAAM,GAAqB,IAAI,CAAC;IACpC,IAAI,WAAW,GAAyB,IAAI,CAAC;IAC7C,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,WAAW,GAAG,CAAC,GAAqB,EAAQ,EAAE;QAClD,IAAI,CAAC;YAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IACvH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,YAAY;YAAE,OAAO;QAAC,YAAY,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC;YAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,GAAkB,EAAE;QACvC,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAkB,CAAC,CAAC,CAAC;QACpG,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IACF,kEAAkE;IAClE,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;QAC1D,IAAI,GAAY,CAAC;QAAC,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9E,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,YAAY,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA0D,CAAC;gBAC3F,MAAM,MAAM,GAAG,MAAM,MAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBAC3F,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1H,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrD,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,kFAAkF;IACpF,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAQ,EAAE;QAC3C,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAClG,CAAC;aAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,2BAA2B;IAC3B,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACzC,QAAQ,IAAI,KAAK,CAAC;QAClB,IAAI,GAAW,CAAC;QAChB,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,GAAY,CAAC;YAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACrG,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAChC,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC;gBACtB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,0BAAgB,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,qBAAW,EAAE,YAAY,EAAE,yCAAmB,EAAE,EAAE,CAAC,CAAC;gBACpL,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,8EAA8E;YACrG,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACvC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAA,sBAAc,GAAE,EAAE,EAAE,CAAC,CAAC;YACnF,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,sEAAsE;gBACtE,8DAA8D;gBAC9D,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,0BAA0B,EAAE,CAAC;gBACrD,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACzC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAEpC,2CAA2C;IAC3C,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,CAAC;QAAC,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC;IAEvE,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,YAAY,GAAG,MAAM,CAAC;QACtB,YAAY,GAAG,OAAO,CAAC;QACvB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,OAAO,IAAI,KAAK,CAAC;YACjB,IAAI,GAAW,CAAC;YAChB,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;wBAAC,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;4BAAE,SAAS;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC9I,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QACzF,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrB,CAAC;SAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzB,YAAY,GAAG,QAAQ,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;QAChH,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,QAAQ;YAAE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAyD,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;yBAEyB;AACzB,SAAS,yBAAyB,CAAC,OAAmB;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC3F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC/E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,MAAkB;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,KAAsB,EAAE,EAAE;YACxC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,MAAM,CAAC,MAAM,GAAG,6BAAoB,EAAE,CAAC;oBACzC,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClC,+DAA+D;YAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,6EAA6E;gBAC7E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;gBAC/C,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC1E,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;oBAC1D,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC1D,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,MAAkB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,qDAAqD,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC;gBAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7B,IAAI,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAC7E,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,KAAK,YAAY,CAAC;QAC7C,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,WAAW;gBACxB,CAAC,CAAC,QAAQ,YAAY,OAAO,OAAO,EAAE;gBACtC,CAAC,CAAC,YAAY,QAAQ,SAAS,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,MAAM,qBAAqB,CAAC,CAAC;YAC3F,IAAI,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,GAAuB;IAC1C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,oBAAoB,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC1D,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,GAAuB;IAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAA4B,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/mcp/proxy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCH,4BAyCC;AAQD,4CA0BC;AA8BD,wDA0HC;AA1QD,uCAAyB;AACzB,yCAA2B;AAC3B,yEAAiE;AACjE,qCAA6D;AAC7D,uCAAmD;AACnD,uCAA0D;AAC1D,+DAAkE;AAClE,mCAAyC;AAGzC,8EAA8E;AAC9E,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAalC;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,QAAQ,CAC5B,UAAkB,EAClB,kBAA0B,gCAAsB;IAEhD,oEAAoE;IACpE,kEAAkE;IAClE,iEAAiE;IACjE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACtD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,UAAU,iBAAiB,KAAK,CAAC,QAAQ,IAAI;YACjF,sBAAsB,eAAe,mCAAmC,CACzE,CAAC;QACF,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACpE,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+CAA+C,UAAU,SAAS,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,QAAQ,MAAM,CACtG,CAAC;IAEF,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7B,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,kBAA0B,gCAAsB;IAEhD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,CAAC,6CAA6C;IAC5D,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QACvC,2EAA2E;QAC3E,yEAAyE;QACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,UAAU,iBAAiB,KAAK,CAAC,QAAQ,IAAI;YACjF,sBAAsB,eAAe,uCAAuC,CAC7E,CAAC;QACF,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+CAA+C,UAAU,SAAS,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,QAAQ,MAAM,CACtG,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAiBD;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,sBAAsB,CAAC,IAAwB;IACnE,IAAI,YAAY,GAAsC,YAAY,CAAC;IACnE,IAAI,YAAY,GAAsB,IAAI,CAAC;IAC3C,IAAI,YAAY,GAAY,SAAS,CAAC,CAAG,0DAA0D;IACnG,MAAM,OAAO,GAAa,EAAE,CAAC,CAAY,kDAAkD;IAC3F,IAAI,MAAM,GAAqB,IAAI,CAAC;IACpC,IAAI,WAAW,GAAyB,IAAI,CAAC;IAC7C,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,MAAM,WAAW,GAAG,CAAC,GAAqB,EAAQ,EAAE;QAClD,IAAI,CAAC;YAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IACvH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,YAAY;YAAE,OAAO;QAAC,YAAY,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC;YAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,GAAkB,EAAE;QACvC,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAkB,CAAC,CAAC,CAAC;QACpG,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IACF,kEAAkE;IAClE,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;QAC1D,IAAI,GAAY,CAAC;QAAC,IAAI,CAAC;YAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QAC9E,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,YAAY,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAA0D,CAAC;gBAC3F,MAAM,MAAM,GAAG,MAAM,MAAO,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBAC3F,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1H,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrD,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,kFAAkF;IACpF,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAQ,EAAE;QAC3C,IAAI,YAAY,KAAK,OAAO,IAAI,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAClG,CAAC;aAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,2BAA2B;IAC3B,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACzC,QAAQ,IAAI,KAAK,CAAC;QAClB,IAAI,GAAW,CAAC;QAChB,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,GAAY,CAAC;YAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAAC,SAAS;YAAC,CAAC;YACrG,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAChC,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC;gBACtB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,0BAAgB,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,qBAAW,EAAE,YAAY,EAAE,IAAA,+CAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,8EAA8E;YACrG,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACvC,kEAAkE;gBAClE,kEAAkE;gBAClE,wDAAwD;gBACxD,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5F,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,sEAAsE;gBACtE,8DAA8D;gBAC9D,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,0BAA0B,EAAE,CAAC;gBACrD,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACzC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAEpC,2CAA2C;IAC3C,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,CAAC;QAAC,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC;IAEvE,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,YAAY,GAAG,MAAM,CAAC;QACtB,YAAY,GAAG,OAAO,CAAC;QACvB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,OAAO,IAAI,KAAK,CAAC;YACjB,IAAI,GAAW,CAAC;YAChB,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;wBAAC,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;4BAAE,SAAS;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC9I,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QACzF,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrB,CAAC;SAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzB,YAAY,GAAG,QAAQ,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;QAChH,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,QAAQ;YAAE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAyD,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;yBAEyB;AACzB,SAAS,yBAAyB,CAAC,OAAmB;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC3F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC/E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,MAAkB;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,KAAsB,EAAE,EAAE;YACxC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,MAAM,CAAC,MAAM,GAAG,6BAAoB,EAAE,CAAC;oBACzC,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClC,+DAA+D;YAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,6EAA6E;gBAC7E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;gBAC/C,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC1E,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;oBAC1D,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC1D,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,MAAkB;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC;gBAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,qDAAqD,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC;gBAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7B,IAAI,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAC7E,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,KAAK,YAAY,CAAC;QAC7C,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,WAAW;gBACxB,CAAC,CAAC,QAAQ,YAAY,OAAO,OAAO,EAAE;gBACtC,CAAC,CAAC,YAAY,QAAQ,SAAS,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,MAAM,qBAAqB,CAAC,CAAC;YAC3F,IAAI,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,GAAuB;IAC1C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,oBAAoB,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC1D,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,GAAuB;IAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAA4B,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import { type ModelTier } from './model-context';
|
|
2
|
+
export declare const SERVER_INSTRUCTIONS = "# Specship \u2014 code intelligence over an indexed knowledge graph\n\nSpecship is a SQLite knowledge graph of every symbol, edge, and file\nin the workspace. Reads are sub-millisecond; the index lags writes by\nabout a second through the file watcher. Consult it BEFORE writing or\nediting code, not during.\n\n## Answer directly \u2014 don't delegate exploration\n\nFor \"how does X work\", architecture, trace, or where-is-X questions,\nanswer DIRECTLY \u2014 usually with ONE `specship_explore` call.\n`specship_explore` takes either a natural-language question or a bag of\nsymbol/file names and returns the verbatim source of the relevant symbols\ngrouped by file, so it is Read-equivalent and most often the ONLY\nspecship call you need. Specship IS the pre-built search index \u2014 so\ndelegating the lookup to a separate file-reading sub-task/agent, or\nrunning your own grep + read loop, repeats work specship already did and\ncosts more for the same answer. Reach for raw Read/Grep only to confirm a\nspecific detail specship didn't cover. A direct specship answer is\ntypically one to a few calls; a grep/read exploration is dozens.\n\n## Tool selection by intent\n\n- **Almost any question \u2014 \"how does X work\", architecture, a bug, \"what/where is X\", or surveying an area** \u2192 `specship_explore` (PRIMARY \u2014 call FIRST; ONE capped call returns the verbatim source of the relevant symbols grouped by file; most often the ONLY call you need). Naming a documented domain term/entity also surfaces its human-confirmed fact body inline under \"Domain facts\".\n- **\"How does X reach/become Y? / the flow / the path from X to Y\"** \u2192 `specship_explore`, naming the symbols that span the flow (e.g. `mutateElement renderScene`) \u2014 it surfaces the call path among them, including dynamic-dispatch hops (callbacks, React re-render, JSX children) grep can't follow\n- **\"What is the symbol named X?\" (just its location)** \u2192 `specship_search`\n- **\"What calls this?\" / \"What does this call?\" / \"What would changing this break?\"** \u2192 `specship_callers` / `specship_callees` / `specship_impact`\n- **One specific symbol's full source (esp. a body `specship_explore` trimmed), or an OVERLOADED name** \u2192 `specship_node` (with `includeCode`): for an ambiguous name it returns EVERY matching definition's body in one call, so you never Read a file to find the right overload\n- **\"What's in directory X?\"** \u2192 `specship_files`\n- **\"Is the index ready / what's its size?\" or \"which SpecShip is running / what version am I on?\"** \u2192 `specship_status` (one tool for both: index stats plus the serving process's version, install method, install dir, node and project root; works with no project open)\n- **\"Is this code healthy / does it violate our architecture rules?\"** \u2192 `specship_health` (coupling + oversized symbols + god-files + cycles + dead-code candidates, and architecture-fitness violations; narrow with `checks: [\"maintainability\"]` or `[\"fitness\"]`)\n- **User mentions a spec ID or requirement (e.g. \"REQ-AUTH-005\", \"the rate-limit requirement\")** \u2192 `specship_spec` FIRST. Returns spec body + parent/siblings + linked code with state (verified / drifted / orphaned) \u2014 more than Read-ing the spec file alone. If domain facts (ubiquitous-language terms, business rules) are linked to the spec, they come back inline under \"Domain facts\" \u2014 no separate tool. Then jump into linked code via `specship_node`.\n- **User describes a change without naming a spec (a bug, an error, a one-line enhancement) and you need to find which existing spec it belongs to** \u2192 `specship_spec` with a free-text `query`. Returns scored, ranked candidate specs (id, title, kind, snippet) over the spec index \u2014 use it to route the change to the right requirement before authoring a new doc. (No `query`/`spec_id` \u2192 the lifecycle funnel; add `list: true` for a flat inventory of every requirement's single rolled-up status + per-status totals, or `ideas: true` for the ideas review view \u2014 the idea-state briefs with age since capture + labels, closing with the promotion hand-off.)\n- **Authoring end-to-end tests for a requirement** \u2192 `specship_spec` with `spec_id` + `behaviour_surface: true`. Returns the requirement's linked code plus the surrounding routes / components / handlers grouped into a UI tier (Playwright targets) and a backend/batch tier (API/job targets) \u2014 the flow map to write tests from.\n- **After editing code in response to a spec** \u2192 call `specship_link_assert` before reporting done. Idempotent. Supersedes the `// @implements REQ-X` comment backstop (which the extractor catches on its own). The target is validated against the graph \u2014 an unresolvable `file:symbol` is refused with near-miss suggestions, so re-call it with a real target rather than assuming it recorded.\n- **After running verification (tests) against a spec link** \u2192 `specship_link_verify` with `result: \"pass\" | \"fail\"` so the link moves from `implemented` to `verified` (or `broken`). Pass the test name(s) you ran as `evidence` (and a `reason`) \u2014 they're persisted with a timestamp as the audit trail for the claim. Promotion to `verified` needs test evidence declared IN A FILE (a `verifies:` block in the spec, an `@verifies REQ-X` comment on the test, or the spec id inside an `it()` title in a test file); an asserted `tests` link does not count, and neither does a `tests` link pointing outside a test file. For a whole test run, `specship verify --report <vitest-json>` moves every matching link from the report itself \u2014 deterministic, and it records the run as the evidence.\n- **\"Is this requirement actually proven / how much of it has tests?\"** \u2192 `specship_spec` with `coverage: true` (with or without a `spec_id`). Returns a per-requirement AND per-acceptance-criterion rollup with a verdict of untested / tested / verified / broken. The verdict comes from `tests` links ONLY \u2014 a criterion with implementing code and no test reads `untested`, so never answer \"is it done\" from the presence of an `implements` link.\n- **\"What's drifted / broken / orphaned?\" / non-coder review queue** \u2192 `specship_drifted` (optional `state` filter).\n\n## Common chains\n\n- **Flow / \"how does X reach Y\"**: ONE `specship_explore` with the symbol names spanning the flow \u2014 it surfaces the call path among them (riding dynamic-dispatch hops) AND returns their source. No need to reconstruct the path with `specship_search` + `specship_callers`.\n- **Onboarding / understanding any area**: ONE `specship_explore` is usually the whole answer. Only follow up \u2014 `specship_node` for a specific symbol \u2014 if something is still unclear.\n- **Refactor planning**: `specship_search` \u2192 `specship_callers` \u2192 `specship_impact`. The blast-radius answer comes from impact, not from walking callers manually.\n- **Debugging a regression**: `specship_callers` of the suspected symbol; widen with `specship_impact` if an unexpected call appears.\n\n## Anti-patterns\n\n- **Trust specship's results \u2014 don't re-verify them with grep.** They come from a full AST parse; re-checking with grep is slower, less accurate, and wastes context.\n- **Don't grep first** when looking up a symbol by name \u2014 `specship_search` is faster and returns kind + location + signature.\n- **Don't chain `specship_search` + `specship_node`** to understand an area \u2014 ONE `specship_explore` returns the relevant symbols' source together in a single round-trip.\n- **Don't loop `specship_node` over many symbols** \u2014 one `specship_explore` call returns them all grouped by file, while each separate call re-reads the whole context and costs far more. Use `specship_node` for a single symbol.\n- **After editing, check the staleness banner.** When a tool response starts with \"\u26A0\uFE0F Some files referenced below were edited since the last index sync\u2026\", the listed files are pending re-index \u2014 Read those specific files for accurate content. Every file NOT in that banner is fresh, so still trust specship. `specship_status` also lists pending files under \"Pending sync\".\n\n## JIRA integration\n\nAny request about the user's JIRA issues/tasks/tickets goes to these tools by default \u2014 the user should NOT have to say \"use specship\". Each tool already returns a professional, formatted result (a table, with any caveat as a bottom note); **present that output verbatim \u2014 relay it as-is, do not re-summarize it, add a preamble, or speculate about why a list is empty.** The tools chain in this order:\n\n- **\"list my JIRA issues\" / \"what's assigned to me?\" / \"my JIRA tasks\"** \u2192 `specship_jira_issues` (identity comes from the configured token \u2014 the user never types their own name). It returns a ready-to-display table; show it as returned.\n- **\"Show me issue PROJ-123\"** \u2192 `specship_jira_issue` with the `key`.\n- **\"Pick / work on PROJ-123\"** \u2192 `specship_jira_pick` with the `key` \u2014 fetches the issue and authors a SpecShip spec under `specs/` (idempotent on the key).\n- **\"Start / implement it\"** \u2192 `specship_jira_start` with the same `key` \u2014 runs the bundled `spec-implement` workflow on the spec pick authored, in an isolated worktree. It runs to the **plan/approve gate** and pauses there, returning the run ID; review the plan, then approve (`specship workflow approve <runId>`) to continue. A failed run raises no PR. If no spec exists for the key yet, start points you back to `specship_jira_pick`.\n- **\"How's my JIRA work going? / status of my picked issues\"** \u2192 `specship_jira_track` \u2014 a read-only table joining each picked issue's SpecShip work-state (spec authored \u2192 implementing \u2192 PR raised \u2192 verified) with its **live** JIRA status (read fresh each time, so an issue moved outside SpecShip reflects its current status). It never re-picks or re-starts anything; pass an optional `project` to narrow the JIRA read. Published specs appear too, and one edited in JIRA after publish is flagged as a divergence.\n- **\"Reconcile JIRA edits back into the spec\" / \"someone edited PROJ-123 in JIRA\"** \u2192 `specship_jira_reconcile` \u2014 **preview first, then apply only after the user has explicitly confirmed the exact diff**. Preview (default `mode:\"preview\"`) is read-only; it enumerates every published spec whose live JIRA issue diverges (edited summary/description, or a Sub-task added in JIRA) and returns a proposed spec amendment plus a machine block with `expected_live_fingerprint`. Show the user the diff and ask; only after they confirm, call again with `mode:\"apply\"`, `issue_key`, the confirmed `accept_content`/`accept_subtasks`, and the `expected_live_fingerprint` from the preview. Apply refuses when the fingerprint doesn't match \u2014 no preview \u2192 no apply.\n- **\"Sprint coverage / how much of this sprint has specs / is verified?\"** \u2192 `specship_jira_coverage` \u2014 joins the bound project's active (or named) sprint to spec truth: every issue with its rolled-up repo-side state (unspecced / specced / implemented / verified / drifted / broken) and rollup totals. Read-only by default; pass `post: true` with `issue_key` to upsert one watermarked comment on an anchor issue (edited in place on re-post \u2014 never a duplicate, never a transition).\n- **\"List / choose an epic\" / \"what epics are open in PROJ?\"** \u2192 `specship_jira_epics` \u2014 returns the project's open epics (status category \u2260 Done). Powers the `/specship:jira` menu's epic-picker; omit `project` on a bound repo to use the committed `jira.projectKey`.\n- **\"Generate / refresh the regression pack\" / \"build regression tests in JIRA\"** \u2192 `specship_jira_regression_pack` \u2014 creates or refreshes the SpecShip Regression Pack epic in the bound project, with one domain-area Story per area (`Uncategorised` until REQ-JIRAREG-002 lands) and one Sub-task per acceptance criterion of every implemented (or verified) requirement. Idempotent: a re-run with no spec changes performs zero JIRA writes. Pass `dry_run: true` to preview the plan without touching JIRA.\n- **\"Create a JIRA for this spec\" / \"publish REQ-X to JIRA\"** \u2192 `specship_jira_publish` with the `spec_id` \u2014 creates a Story whose Sub-tasks mirror the spec's acceptance criteria (idempotent: re-publish updates the Story and adds only missing Sub-tasks) and writes `jira_issue:` into the spec's frontmatter, which wires branch naming, PR linkage, commit prefixes (\"PROJ-123: \u2026\"), and tracking automatically. After authoring a spec with JIRA configured, offer this once (REQ-JIRAPUB-003).\n\n## Limitations\n\n- If a tool reports the project isn't initialized, `.specship/` doesn't exist yet \u2014 offer to run `specship init -i` to build the index.\n- Index lags file writes by ~1 second.\n- Cross-file resolution is best-effort name matching; ambiguous calls may return multiple candidates.\n- No live correctness validation \u2014 that's still the TypeScript compiler / test suite / linter's job. Specship supplements those with structural context they don't have.\n";
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* specship toolset before it sees individual tool descriptions.
|
|
7
|
-
*
|
|
8
|
-
* Goals when editing this:
|
|
9
|
-
* - Tool selection by intent (which tool for which question)
|
|
10
|
-
* - Common chains (refactor planning = X then Y)
|
|
11
|
-
* - Anti-patterns (don't grep when specship_search is faster)
|
|
12
|
-
*
|
|
13
|
-
* Keep it tight. The agent reads this every session — long instructions
|
|
14
|
-
* burn tokens. Reference only tools that exist on `main`; gate any
|
|
15
|
-
* conditional tools behind feature checks if/when they ship.
|
|
4
|
+
* Compact variant served when the resolved model tier is `lite`
|
|
5
|
+
* (REQ-LOWEND-003). Short imperative contract: explore-first, the core
|
|
6
|
+
* tools that survive `applyLiteTierTrim`, and the anti-patterns that stop a
|
|
7
|
+
* grep fallback. No JIRA section, and no tool the lite menu trimmed away.
|
|
16
8
|
*/
|
|
17
|
-
export declare const SERVER_INSTRUCTIONS = "# Specship \u2014 code intelligence over an indexed knowledge graph\n\nSpecship is a SQLite knowledge graph of every symbol, edge, and file\nin the workspace. Reads are sub-millisecond; the index lags writes by\nabout a second through the file watcher. Consult it BEFORE writing or\nediting code, not during.\n\n## Answer directly \u2014 don't delegate exploration\n\nFor \"how does X work\", architecture, trace, or where-is-X questions,\nanswer DIRECTLY \u2014 usually with ONE `specship_explore` call.\n`specship_explore` takes either a natural-language question or a bag of\nsymbol/file names and returns the verbatim source of the relevant symbols\ngrouped by file, so it is Read-equivalent and most often the ONLY\nspecship call you need. Specship IS the pre-built search index \u2014 so\ndelegating the lookup to a separate file-reading sub-task/agent, or\nrunning your own grep + read loop, repeats work specship already did and\ncosts more for the same answer. Reach for raw Read/Grep only to confirm a\nspecific detail specship didn't cover. A direct specship answer is\ntypically one to a few calls; a grep/read exploration is dozens.\n\n## Tool selection by intent\n\n- **Almost any question \u2014 \"how does X work\", architecture, a bug, \"what/where is X\", or surveying an area** \u2192 `specship_explore` (PRIMARY \u2014 call FIRST; ONE capped call returns the verbatim source of the relevant symbols grouped by file; most often the ONLY call you need). Naming a documented domain term/entity also surfaces its human-confirmed fact body inline under \"Domain facts\".\n- **\"How does X reach/become Y? / the flow / the path from X to Y\"** \u2192 `specship_explore`, naming the symbols that span the flow (e.g. `mutateElement renderScene`) \u2014 it surfaces the call path among them, including dynamic-dispatch hops (callbacks, React re-render, JSX children) grep can't follow\n- **\"What is the symbol named X?\" (just its location)** \u2192 `specship_search`\n- **\"What calls this?\" / \"What does this call?\" / \"What would changing this break?\"** \u2192 `specship_callers` / `specship_callees` / `specship_impact`\n- **One specific symbol's full source (esp. a body `specship_explore` trimmed), or an OVERLOADED name** \u2192 `specship_node` (with `includeCode`): for an ambiguous name it returns EVERY matching definition's body in one call, so you never Read a file to find the right overload\n- **\"What's in directory X?\"** \u2192 `specship_files`\n- **\"Is the index ready / what's its size?\"** \u2192 `specship_status`\n- **\"Which SpecShip is running? / what version am I on?\"** \u2192 `specship_version` (zero-arg; identifies the MCP server process \u2014 version, install method, install dir, node, project root)\n- **User mentions a spec ID or requirement (e.g. \"REQ-AUTH-005\", \"the rate-limit requirement\")** \u2192 `specship_spec` FIRST. Returns spec body + parent/siblings + linked code with state (verified / drifted / orphaned) \u2014 more than Read-ing the spec file alone. If domain facts (ubiquitous-language terms, business rules) are linked to the spec, they come back inline under \"Domain facts\" \u2014 no separate tool. Then jump into linked code via `specship_node`.\n- **User describes a change without naming a spec (a bug, an error, a one-line enhancement) and you need to find which existing spec it belongs to** \u2192 `specship_spec` with a free-text `query`. Returns scored, ranked candidate specs (id, title, kind, snippet) over the spec index \u2014 use it to route the change to the right requirement before authoring a new doc. (No `query`/`spec_id` \u2192 the lifecycle funnel; add `list: true` for a flat inventory of every requirement's single rolled-up status + per-status totals, or `ideas: true` for the ideas review view \u2014 the idea-state briefs with age since capture + labels, closing with the promotion hand-off.)\n- **Authoring end-to-end tests for a requirement** \u2192 `specship_spec` with `spec_id` + `behaviour_surface: true`. Returns the requirement's linked code plus the surrounding routes / components / handlers grouped into a UI tier (Playwright targets) and a backend/batch tier (API/job targets) \u2014 the flow map to write tests from.\n- **After editing code in response to a spec** \u2192 call `specship_link_assert` before reporting done. Idempotent. Supersedes the `// @implements REQ-X` comment backstop (which the extractor catches on its own).\n- **After running verification (tests) against a spec link** \u2192 `specship_link_verify` with `result: \"pass\" | \"fail\"` so the link moves from `implemented` to `verified` (or `broken`).\n- **\"What's drifted / broken / orphaned?\" / non-coder review queue** \u2192 `specship_drifted` (optional `state` filter).\n\n## Common chains\n\n- **Flow / \"how does X reach Y\"**: ONE `specship_explore` with the symbol names spanning the flow \u2014 it surfaces the call path among them (riding dynamic-dispatch hops) AND returns their source. No need to reconstruct the path with `specship_search` + `specship_callers`.\n- **Onboarding / understanding any area**: ONE `specship_explore` is usually the whole answer. Only follow up \u2014 `specship_node` for a specific symbol \u2014 if something is still unclear.\n- **Refactor planning**: `specship_search` \u2192 `specship_callers` \u2192 `specship_impact`. The blast-radius answer comes from impact, not from walking callers manually.\n- **Debugging a regression**: `specship_callers` of the suspected symbol; widen with `specship_impact` if an unexpected call appears.\n\n## Anti-patterns\n\n- **Trust specship's results \u2014 don't re-verify them with grep.** They come from a full AST parse; re-checking with grep is slower, less accurate, and wastes context.\n- **Don't grep first** when looking up a symbol by name \u2014 `specship_search` is faster and returns kind + location + signature.\n- **Don't chain `specship_search` + `specship_node`** to understand an area \u2014 ONE `specship_explore` returns the relevant symbols' source together in a single round-trip.\n- **Don't loop `specship_node` over many symbols** \u2014 one `specship_explore` call returns them all grouped by file, while each separate call re-reads the whole context and costs far more. Use `specship_node` for a single symbol.\n- **After editing, check the staleness banner.** When a tool response starts with \"\u26A0\uFE0F Some files referenced below were edited since the last index sync\u2026\", the listed files are pending re-index \u2014 Read those specific files for accurate content. Every file NOT in that banner is fresh, so still trust specship. `specship_status` also lists pending files under \"Pending sync\".\n\n## JIRA integration\n\nAny request about the user's JIRA issues/tasks/tickets goes to these tools by default \u2014 the user should NOT have to say \"use specship\". Each tool already returns a professional, formatted result (a table, with any caveat as a bottom note); **present that output verbatim \u2014 relay it as-is, do not re-summarize it, add a preamble, or speculate about why a list is empty.** The tools chain in this order:\n\n- **\"list my JIRA issues\" / \"what's assigned to me?\" / \"my JIRA tasks\"** \u2192 `specship_jira_issues` (identity comes from the configured token \u2014 the user never types their own name). It returns a ready-to-display table; show it as returned.\n- **\"Show me issue PROJ-123\"** \u2192 `specship_jira_issue` with the `key`.\n- **\"Pick / work on PROJ-123\"** \u2192 `specship_jira_pick` with the `key` \u2014 fetches the issue and authors a SpecShip spec under `specs/` (idempotent on the key).\n- **\"Start / implement it\"** \u2192 `specship_jira_start` with the same `key` \u2014 runs the bundled `spec-implement` workflow on the spec pick authored, in an isolated worktree. It runs to the **plan/approve gate** and pauses there, returning the run ID; review the plan, then approve (`specship workflow approve <runId>`) to continue. A failed run raises no PR. If no spec exists for the key yet, start points you back to `specship_jira_pick`.\n- **\"How's my JIRA work going? / status of my picked issues\"** \u2192 `specship_jira_track` \u2014 a read-only table joining each picked issue's SpecShip work-state (spec authored \u2192 implementing \u2192 PR raised \u2192 verified) with its **live** JIRA status (read fresh each time, so an issue moved outside SpecShip reflects its current status). It never re-picks or re-starts anything; pass an optional `project` to narrow the JIRA read. Published specs appear too, and one edited in JIRA after publish is flagged as a divergence.\n- **\"Reconcile JIRA edits back into the spec\" / \"someone edited PROJ-123 in JIRA\"** \u2192 `specship_jira_reconcile` \u2014 **preview first, then apply only after the user has explicitly confirmed the exact diff**. Preview (default `mode:\"preview\"`) is read-only; it enumerates every published spec whose live JIRA issue diverges (edited summary/description, or a Sub-task added in JIRA) and returns a proposed spec amendment plus a machine block with `expected_live_fingerprint`. Show the user the diff and ask; only after they confirm, call again with `mode:\"apply\"`, `issue_key`, the confirmed `accept_content`/`accept_subtasks`, and the `expected_live_fingerprint` from the preview. Apply refuses when the fingerprint doesn't match \u2014 no preview \u2192 no apply.\n- **\"Sprint coverage / how much of this sprint has specs / is verified?\"** \u2192 `specship_jira_coverage` \u2014 joins the bound project's active (or named) sprint to spec truth: every issue with its rolled-up repo-side state (unspecced / specced / implemented / verified / drifted / broken) and rollup totals. Read-only by default; pass `post: true` with `issue_key` to upsert one watermarked comment on an anchor issue (edited in place on re-post \u2014 never a duplicate, never a transition).\n- **\"List / choose an epic\" / \"what epics are open in PROJ?\"** \u2192 `specship_jira_epics` \u2014 returns the project's open epics (status category \u2260 Done). Powers the `/specship:jira` menu's epic-picker; omit `project` on a bound repo to use the committed `jira.projectKey`.\n- **\"Generate / refresh the regression pack\" / \"build regression tests in JIRA\"** \u2192 `specship_jira_regression_pack` \u2014 creates or refreshes the SpecShip Regression Pack epic in the bound project, with one domain-area Story per area (`Uncategorised` until REQ-JIRAREG-002 lands) and one Sub-task per acceptance criterion of every implemented (or verified) requirement. Idempotent: a re-run with no spec changes performs zero JIRA writes. Pass `dry_run: true` to preview the plan without touching JIRA.\n- **\"Create a JIRA for this spec\" / \"publish REQ-X to JIRA\"** \u2192 `specship_jira_publish` with the `spec_id` \u2014 creates a Story whose Sub-tasks mirror the spec's acceptance criteria (idempotent: re-publish updates the Story and adds only missing Sub-tasks) and writes `jira_issue:` into the spec's frontmatter, which wires branch naming, PR linkage, commit prefixes (\"PROJ-123: \u2026\"), and tracking automatically. After authoring a spec with JIRA configured, offer this once (REQ-JIRAPUB-003).\n\n## Limitations\n\n- If a tool reports the project isn't initialized, `.specship/` doesn't exist yet \u2014 offer to run `specship init -i` to build the index.\n- Index lags file writes by ~1 second.\n- Cross-file resolution is best-effort name matching; ambiguous calls may return multiple candidates.\n- No live correctness validation \u2014 that's still the TypeScript compiler / test suite / linter's job. Specship supplements those with structural context they don't have.\n";
|
|
9
|
+
export declare const LITE_SERVER_INSTRUCTIONS = "# Specship \u2014 the code index for this workspace\n\nSpecship is a pre-built index of every symbol, file, and call edge here.\nReads are instant; the index lags file writes by about a second.\n\n## Rule 1 \u2014 explore first, answer yourself\n\nAny question about how the code works, where something lives, how X reaches\nY, or what an area does: make ONE `specship_explore` call, then answer from\nit. `specship_explore` takes a plain question or a list of symbol/file\nnames and returns the verbatim source of the matching symbols grouped by\nfile \u2014 it is Read-equivalent, so treat what it returns as already Read.\nDo NOT hand the lookup to a sub-agent or sub-task. Do NOT start a\nGrep/Glob/Read sweep. One call is usually the whole answer.\n\n## Rule 2 \u2014 tools\n\n- Anything about how the code works, where it is, or a flow \u2192 `specship_explore` (FIRST, and usually the only call). For a flow, name both ends: `specship_explore` with `mutateElement renderScene`.\n- Just the location of a name \u2192 `specship_search`.\n- The full body of one named symbol, including every overload of an ambiguous name \u2192 `specship_node` with `includeCode`.\n- Is the index ready / which specship is running \u2192 `specship_status`.\n- The user names a spec or requirement (e.g. REQ-AUTH-005) \u2192 `specship_spec`.\n- After you edit code for a spec \u2192 `specship_link_assert` before reporting done.\n\n## Rule 3 \u2014 anti-patterns\n\n- Don't Grep/Glob/Read to find code. Ask `specship_explore` instead.\n- Don't re-run `specship_explore` for something a previous call already returned \u2014 re-read your earlier result.\n- Don't verify a specship answer with grep. It comes from a full parse.\n- Don't chain `specship_search` + `specship_node` to understand an area \u2014 one `specship_explore` covers it.\n- If a response opens with a \u26A0\uFE0F staleness banner, Read only the files it lists; everything else is fresh.\n- If a tool says the project isn't initialized, offer to run `specship init -i`.\n";
|
|
10
|
+
/** Instruction text for a resolved tier (REQ-LOWEND-003.A3: non-lite is unchanged). */
|
|
11
|
+
export declare function serverInstructionsFor(tier: ModelTier): string;
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the instructions for a project-root hint, mirroring
|
|
14
|
+
* `applyLiteTierTrim`'s resolution exactly so the menu trim and the
|
|
15
|
+
* instruction trim always agree. Marker-file only — no DB open. A null or
|
|
16
|
+
* unresolvable hint gets the full text (never compact blind).
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveServerInstructions(hint: string | null): string;
|
|
18
19
|
//# sourceMappingURL=server-instructions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAElE,eAAO,MAAM,mBAAmB,w8ZA2E/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,g/DAgCpC,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAKrE"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SERVER_INSTRUCTIONS = void 0;
|
|
3
|
+
exports.LITE_SERVER_INSTRUCTIONS = exports.SERVER_INSTRUCTIONS = void 0;
|
|
4
|
+
exports.serverInstructionsFor = serverInstructionsFor;
|
|
5
|
+
exports.resolveServerInstructions = resolveServerInstructions;
|
|
4
6
|
/**
|
|
5
7
|
* Server-level instructions emitted in the MCP `initialize` response.
|
|
6
8
|
*
|
|
@@ -16,7 +18,14 @@ exports.SERVER_INSTRUCTIONS = void 0;
|
|
|
16
18
|
* Keep it tight. The agent reads this every session — long instructions
|
|
17
19
|
* burn tokens. Reference only tools that exist on `main`; gate any
|
|
18
20
|
* conditional tools behind feature checks if/when they ship.
|
|
21
|
+
*
|
|
22
|
+
* Two variants live here and nowhere else (REQ-LOWEND-003): the full
|
|
23
|
+
* `SERVER_INSTRUCTIONS` below, and the compact `LITE_SERVER_INSTRUCTIONS`
|
|
24
|
+
* served to `lite`-tier sessions. Pick between them with
|
|
25
|
+
* `serverInstructionsFor(tier)` / `resolveServerInstructions(hint)`.
|
|
19
26
|
*/
|
|
27
|
+
const directory_1 = require("../directory");
|
|
28
|
+
const model_context_1 = require("./model-context");
|
|
20
29
|
exports.SERVER_INSTRUCTIONS = `# Specship — code intelligence over an indexed knowledge graph
|
|
21
30
|
|
|
22
31
|
Specship is a SQLite knowledge graph of every symbol, edge, and file
|
|
@@ -46,13 +55,14 @@ typically one to a few calls; a grep/read exploration is dozens.
|
|
|
46
55
|
- **"What calls this?" / "What does this call?" / "What would changing this break?"** → \`specship_callers\` / \`specship_callees\` / \`specship_impact\`
|
|
47
56
|
- **One specific symbol's full source (esp. a body \`specship_explore\` trimmed), or an OVERLOADED name** → \`specship_node\` (with \`includeCode\`): for an ambiguous name it returns EVERY matching definition's body in one call, so you never Read a file to find the right overload
|
|
48
57
|
- **"What's in directory X?"** → \`specship_files\`
|
|
49
|
-
- **"Is the index ready / what's its size?"** → \`specship_status\`
|
|
50
|
-
- **"
|
|
58
|
+
- **"Is the index ready / what's its size?" or "which SpecShip is running / what version am I on?"** → \`specship_status\` (one tool for both: index stats plus the serving process's version, install method, install dir, node and project root; works with no project open)
|
|
59
|
+
- **"Is this code healthy / does it violate our architecture rules?"** → \`specship_health\` (coupling + oversized symbols + god-files + cycles + dead-code candidates, and architecture-fitness violations; narrow with \`checks: ["maintainability"]\` or \`["fitness"]\`)
|
|
51
60
|
- **User mentions a spec ID or requirement (e.g. "REQ-AUTH-005", "the rate-limit requirement")** → \`specship_spec\` FIRST. Returns spec body + parent/siblings + linked code with state (verified / drifted / orphaned) — more than Read-ing the spec file alone. If domain facts (ubiquitous-language terms, business rules) are linked to the spec, they come back inline under "Domain facts" — no separate tool. Then jump into linked code via \`specship_node\`.
|
|
52
61
|
- **User describes a change without naming a spec (a bug, an error, a one-line enhancement) and you need to find which existing spec it belongs to** → \`specship_spec\` with a free-text \`query\`. Returns scored, ranked candidate specs (id, title, kind, snippet) over the spec index — use it to route the change to the right requirement before authoring a new doc. (No \`query\`/\`spec_id\` → the lifecycle funnel; add \`list: true\` for a flat inventory of every requirement's single rolled-up status + per-status totals, or \`ideas: true\` for the ideas review view — the idea-state briefs with age since capture + labels, closing with the promotion hand-off.)
|
|
53
62
|
- **Authoring end-to-end tests for a requirement** → \`specship_spec\` with \`spec_id\` + \`behaviour_surface: true\`. Returns the requirement's linked code plus the surrounding routes / components / handlers grouped into a UI tier (Playwright targets) and a backend/batch tier (API/job targets) — the flow map to write tests from.
|
|
54
|
-
- **After editing code in response to a spec** → call \`specship_link_assert\` before reporting done. Idempotent. Supersedes the \`// @implements REQ-X\` comment backstop (which the extractor catches on its own).
|
|
55
|
-
- **After running verification (tests) against a spec link** → \`specship_link_verify\` with \`result: "pass" | "fail"\` so the link moves from \`implemented\` to \`verified\` (or \`broken\`).
|
|
63
|
+
- **After editing code in response to a spec** → call \`specship_link_assert\` before reporting done. Idempotent. Supersedes the \`// @implements REQ-X\` comment backstop (which the extractor catches on its own). The target is validated against the graph — an unresolvable \`file:symbol\` is refused with near-miss suggestions, so re-call it with a real target rather than assuming it recorded.
|
|
64
|
+
- **After running verification (tests) against a spec link** → \`specship_link_verify\` with \`result: "pass" | "fail"\` so the link moves from \`implemented\` to \`verified\` (or \`broken\`). Pass the test name(s) you ran as \`evidence\` (and a \`reason\`) — they're persisted with a timestamp as the audit trail for the claim. Promotion to \`verified\` needs test evidence declared IN A FILE (a \`verifies:\` block in the spec, an \`@verifies REQ-X\` comment on the test, or the spec id inside an \`it()\` title in a test file); an asserted \`tests\` link does not count, and neither does a \`tests\` link pointing outside a test file. For a whole test run, \`specship verify --report <vitest-json>\` moves every matching link from the report itself — deterministic, and it records the run as the evidence.
|
|
65
|
+
- **"Is this requirement actually proven / how much of it has tests?"** → \`specship_spec\` with \`coverage: true\` (with or without a \`spec_id\`). Returns a per-requirement AND per-acceptance-criterion rollup with a verdict of untested / tested / verified / broken. The verdict comes from \`tests\` links ONLY — a criterion with implementing code and no test reads \`untested\`, so never answer "is it done" from the presence of an \`implements\` link.
|
|
56
66
|
- **"What's drifted / broken / orphaned?" / non-coder review queue** → \`specship_drifted\` (optional \`state\` filter).
|
|
57
67
|
|
|
58
68
|
## Common chains
|
|
@@ -92,4 +102,61 @@ Any request about the user's JIRA issues/tasks/tickets goes to these tools by de
|
|
|
92
102
|
- Cross-file resolution is best-effort name matching; ambiguous calls may return multiple candidates.
|
|
93
103
|
- No live correctness validation — that's still the TypeScript compiler / test suite / linter's job. Specship supplements those with structural context they don't have.
|
|
94
104
|
`;
|
|
105
|
+
/**
|
|
106
|
+
* Compact variant served when the resolved model tier is `lite`
|
|
107
|
+
* (REQ-LOWEND-003). Short imperative contract: explore-first, the core
|
|
108
|
+
* tools that survive `applyLiteTierTrim`, and the anti-patterns that stop a
|
|
109
|
+
* grep fallback. No JIRA section, and no tool the lite menu trimmed away.
|
|
110
|
+
*/
|
|
111
|
+
exports.LITE_SERVER_INSTRUCTIONS = `# Specship — the code index for this workspace
|
|
112
|
+
|
|
113
|
+
Specship is a pre-built index of every symbol, file, and call edge here.
|
|
114
|
+
Reads are instant; the index lags file writes by about a second.
|
|
115
|
+
|
|
116
|
+
## Rule 1 — explore first, answer yourself
|
|
117
|
+
|
|
118
|
+
Any question about how the code works, where something lives, how X reaches
|
|
119
|
+
Y, or what an area does: make ONE \`specship_explore\` call, then answer from
|
|
120
|
+
it. \`specship_explore\` takes a plain question or a list of symbol/file
|
|
121
|
+
names and returns the verbatim source of the matching symbols grouped by
|
|
122
|
+
file — it is Read-equivalent, so treat what it returns as already Read.
|
|
123
|
+
Do NOT hand the lookup to a sub-agent or sub-task. Do NOT start a
|
|
124
|
+
Grep/Glob/Read sweep. One call is usually the whole answer.
|
|
125
|
+
|
|
126
|
+
## Rule 2 — tools
|
|
127
|
+
|
|
128
|
+
- Anything about how the code works, where it is, or a flow → \`specship_explore\` (FIRST, and usually the only call). For a flow, name both ends: \`specship_explore\` with \`mutateElement renderScene\`.
|
|
129
|
+
- Just the location of a name → \`specship_search\`.
|
|
130
|
+
- The full body of one named symbol, including every overload of an ambiguous name → \`specship_node\` with \`includeCode\`.
|
|
131
|
+
- Is the index ready / which specship is running → \`specship_status\`.
|
|
132
|
+
- The user names a spec or requirement (e.g. REQ-AUTH-005) → \`specship_spec\`.
|
|
133
|
+
- After you edit code for a spec → \`specship_link_assert\` before reporting done.
|
|
134
|
+
|
|
135
|
+
## Rule 3 — anti-patterns
|
|
136
|
+
|
|
137
|
+
- Don't Grep/Glob/Read to find code. Ask \`specship_explore\` instead.
|
|
138
|
+
- Don't re-run \`specship_explore\` for something a previous call already returned — re-read your earlier result.
|
|
139
|
+
- Don't verify a specship answer with grep. It comes from a full parse.
|
|
140
|
+
- Don't chain \`specship_search\` + \`specship_node\` to understand an area — one \`specship_explore\` covers it.
|
|
141
|
+
- If a response opens with a ⚠️ staleness banner, Read only the files it lists; everything else is fresh.
|
|
142
|
+
- If a tool says the project isn't initialized, offer to run \`specship init -i\`.
|
|
143
|
+
`;
|
|
144
|
+
/** Instruction text for a resolved tier (REQ-LOWEND-003.A3: non-lite is unchanged). */
|
|
145
|
+
function serverInstructionsFor(tier) {
|
|
146
|
+
return tier === 'lite' ? exports.LITE_SERVER_INSTRUCTIONS : exports.SERVER_INSTRUCTIONS;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resolve the instructions for a project-root hint, mirroring
|
|
150
|
+
* `applyLiteTierTrim`'s resolution exactly so the menu trim and the
|
|
151
|
+
* instruction trim always agree. Marker-file only — no DB open. A null or
|
|
152
|
+
* unresolvable hint gets the full text (never compact blind).
|
|
153
|
+
*/
|
|
154
|
+
function resolveServerInstructions(hint) {
|
|
155
|
+
if (!hint)
|
|
156
|
+
return exports.SERVER_INSTRUCTIONS;
|
|
157
|
+
const root = (0, directory_1.findNearestSpecShipRoot)(hint);
|
|
158
|
+
if (!root)
|
|
159
|
+
return exports.SERVER_INSTRUCTIONS;
|
|
160
|
+
return serverInstructionsFor((0, model_context_1.detectModelTier)(root));
|
|
161
|
+
}
|
|
95
162
|
//# sourceMappingURL=server-instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":";;;AA8IA,sDAEC;AAQD,8DAKC;AA7JD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,4CAAuD;AACvD,mDAAkE;AAErD,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ElC,CAAC;AAEF;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvC,CAAC;AAEF,uFAAuF;AACvF,SAAgB,qBAAqB,CAAC,IAAe;IACnD,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,gCAAwB,CAAC,CAAC,CAAC,2BAAmB,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,IAAmB;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,2BAAmB,CAAC;IACtC,MAAM,IAAI,GAAG,IAAA,mCAAuB,EAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,2BAAmB,CAAC;IACtC,OAAO,qBAAqB,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC"}
|
package/lib/dist/mcp/session.js
CHANGED
|
@@ -211,7 +211,7 @@ class MCPSession {
|
|
|
211
211
|
protocolVersion: exports.PROTOCOL_VERSION,
|
|
212
212
|
capabilities: { tools: {} },
|
|
213
213
|
serverInfo: exports.SERVER_INFO,
|
|
214
|
-
instructions: server_instructions_1.
|
|
214
|
+
instructions: (0, server_instructions_1.resolveServerInstructions)(explicitPath ?? this.explicitProjectPath ?? null),
|
|
215
215
|
});
|
|
216
216
|
if (explicitPath) {
|
|
217
217
|
// Kick off engine init in the background. If another session in the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAC7B,2CAAgG;AAEhG,mCAAgC;AAChC,+
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* ToolHandler in `tools.ts` calls these via thin wrappers.
|
|
13
13
|
*/
|
|
14
14
|
import type SpecShip from '../index';
|
|
15
|
-
import type { SpecLinkState, SpecLinkKind } from '../types';
|
|
15
|
+
import type { Spec, SpecLinkState, SpecLinkKind } from '../types';
|
|
16
16
|
import type { ToolDefinition, ToolResult } from './tools';
|
|
17
17
|
export declare const SPEC_LINK_STATES: SpecLinkState[];
|
|
18
18
|
export declare const SPEC_LINK_KINDS: SpecLinkKind[];
|
|
@@ -36,6 +36,14 @@ export type RequirementStatus = (typeof REQUIREMENT_STATUSES)[number];
|
|
|
36
36
|
* harness (a separate v1 surface) which enforces the call via tool restriction.
|
|
37
37
|
*/
|
|
38
38
|
export declare const specToolDefinitions: ToolDefinition[];
|
|
39
|
+
/**
|
|
40
|
+
* Render linked domain facts inline (REQ-DOMAIN-005.A1, REQ-KNOW-005). An
|
|
41
|
+
* `external` fact also carries its provenance — dependency, the version it was
|
|
42
|
+
* verified against, the installed version with a stale marker — and its
|
|
43
|
+
* enforced rules, so the agent does not rediscover any of it. Freshness is
|
|
44
|
+
* best-effort: an unresolvable dependency reads `unverifiable`, never fresh.
|
|
45
|
+
*/
|
|
46
|
+
export declare function renderDomainFactsInline(facts: Spec[], projectRoot: string): string[];
|
|
39
47
|
export declare function handleSpecshipSpec(cg: SpecShip, args: Record<string, unknown>): Promise<ToolResult>;
|
|
40
48
|
export declare function handleSpecshipLinkAssert(cg: SpecShip, args: Record<string, unknown>): Promise<ToolResult>;
|
|
41
49
|
export declare function handleSpecshipLinkVerify(cg: SpecShip, args: Record<string, unknown>): Promise<ToolResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/spec-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"spec-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/spec-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,IAAI,EAAY,aAAa,EAAE,YAAY,EAAY,MAAM,UAAU,CAAC;AAItF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAgB1D,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAQ3C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,YAAY,EAMzC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,oFAMvB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAAc,EA8H/C,CAAC;AAibF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAiCpF;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAwKrB;AA8DD,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAsGrB;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CA0ErB;AA0ED,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAa7E"}
|