@selvakumaresra/specship 0.1.3 → 0.4.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/README.md +2 -2
- package/commands/ss-design-implement.md +84 -0
- package/commands/ss-design-loop.md +125 -0
- package/commands/{cg-drifted.md → ss-drifted.md} +2 -2
- package/commands/{cg-fix.md → ss-fix.md} +1 -1
- package/commands/{cg-implement.md → ss-implement.md} +1 -1
- package/commands/ss-spec-author.md +43 -0
- package/commands/ss-spec-review.md +48 -0
- package/dist/bin/node-version-check.d.ts +37 -0
- package/dist/bin/node-version-check.d.ts.map +1 -0
- package/dist/bin/node-version-check.js +79 -0
- package/dist/bin/node-version-check.js.map +1 -0
- package/dist/bin/specship.d.ts +25 -0
- package/dist/bin/specship.d.ts.map +1 -0
- package/dist/bin/specship.js +2085 -0
- package/dist/bin/specship.js.map +1 -0
- package/dist/bin/uninstall.d.ts +13 -0
- package/dist/bin/uninstall.d.ts.map +1 -0
- package/dist/bin/uninstall.js +35 -0
- package/dist/bin/uninstall.js.map +1 -0
- package/dist/context/formatter.d.ts +30 -0
- package/dist/context/formatter.d.ts.map +1 -0
- package/dist/context/formatter.js +263 -0
- package/dist/context/formatter.js.map +1 -0
- package/dist/context/index.d.ts +119 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +1289 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/markers.d.ts +19 -0
- package/dist/context/markers.d.ts.map +1 -0
- package/dist/context/markers.js +22 -0
- package/dist/context/markers.js.map +1 -0
- package/dist/db/index.d.ts +103 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +279 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +44 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +462 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/queries.d.ts +357 -0
- package/dist/db/queries.d.ts.map +1 -0
- package/dist/db/queries.js +1504 -0
- package/dist/db/queries.js.map +1 -0
- package/dist/db/schema.sql +419 -0
- package/dist/db/spec-queries.d.ts +101 -0
- package/dist/db/spec-queries.d.ts.map +1 -0
- package/dist/db/spec-queries.js +675 -0
- package/dist/db/spec-queries.js.map +1 -0
- package/dist/db/sqlite-adapter.d.ts +65 -0
- package/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/dist/db/sqlite-adapter.js +214 -0
- package/dist/db/sqlite-adapter.js.map +1 -0
- package/dist/designer/artifact-store.js +54 -0
- package/dist/designer/browser.js +141 -0
- package/dist/designer/cdp-ensure.js +60 -0
- package/dist/designer/cdp-env.js +18 -0
- package/dist/designer/cdp-trace.js +599 -0
- package/dist/designer/cross-platform.js +74 -0
- package/dist/designer/designer-controller.js +1413 -0
- package/dist/designer/file-panel.js +39 -0
- package/dist/designer/interstitials.js +97 -0
- package/dist/designer/oopif-reader.js +176 -0
- package/dist/designer/package-meta.js +18 -0
- package/dist/designer/preview-host.js +50 -0
- package/dist/designer/repo-root.js +31 -0
- package/dist/designer/run-state.js +353 -0
- package/dist/designer/session-store.js +59 -0
- package/dist/designer/ui-anchors.js +651 -0
- package/dist/directory.d.ts +67 -0
- package/dist/directory.d.ts.map +1 -0
- package/dist/directory.js +267 -0
- package/dist/directory.js.map +1 -0
- package/dist/errors.d.ts +136 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +219 -0
- package/dist/errors.js.map +1 -0
- package/dist/extraction/dfm-extractor.d.ts +31 -0
- package/dist/extraction/dfm-extractor.d.ts.map +1 -0
- package/dist/extraction/dfm-extractor.js +151 -0
- package/dist/extraction/dfm-extractor.js.map +1 -0
- package/dist/extraction/generated-detection.d.ts +30 -0
- package/dist/extraction/generated-detection.d.ts.map +1 -0
- package/dist/extraction/generated-detection.js +80 -0
- package/dist/extraction/generated-detection.js.map +1 -0
- package/dist/extraction/grammars.d.ts +100 -0
- package/dist/extraction/grammars.d.ts.map +1 -0
- package/dist/extraction/grammars.js +426 -0
- package/dist/extraction/grammars.js.map +1 -0
- package/dist/extraction/index.d.ts +138 -0
- package/dist/extraction/index.d.ts.map +1 -0
- package/dist/extraction/index.js +1394 -0
- package/dist/extraction/index.js.map +1 -0
- package/dist/extraction/languages/c-cpp.d.ts +4 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
- package/dist/extraction/languages/c-cpp.js +171 -0
- package/dist/extraction/languages/c-cpp.js.map +1 -0
- package/dist/extraction/languages/csharp.d.ts +3 -0
- package/dist/extraction/languages/csharp.d.ts.map +1 -0
- package/dist/extraction/languages/csharp.js +73 -0
- package/dist/extraction/languages/csharp.js.map +1 -0
- package/dist/extraction/languages/dart.d.ts +3 -0
- package/dist/extraction/languages/dart.d.ts.map +1 -0
- package/dist/extraction/languages/dart.js +192 -0
- package/dist/extraction/languages/dart.js.map +1 -0
- package/dist/extraction/languages/go.d.ts +3 -0
- package/dist/extraction/languages/go.d.ts.map +1 -0
- package/dist/extraction/languages/go.js +74 -0
- package/dist/extraction/languages/go.js.map +1 -0
- package/dist/extraction/languages/index.d.ts +10 -0
- package/dist/extraction/languages/index.d.ts.map +1 -0
- package/dist/extraction/languages/index.js +51 -0
- package/dist/extraction/languages/index.js.map +1 -0
- package/dist/extraction/languages/java.d.ts +3 -0
- package/dist/extraction/languages/java.d.ts.map +1 -0
- package/dist/extraction/languages/java.js +70 -0
- package/dist/extraction/languages/java.js.map +1 -0
- package/dist/extraction/languages/javascript.d.ts +3 -0
- package/dist/extraction/languages/javascript.d.ts.map +1 -0
- package/dist/extraction/languages/javascript.js +90 -0
- package/dist/extraction/languages/javascript.js.map +1 -0
- package/dist/extraction/languages/kotlin.d.ts +3 -0
- package/dist/extraction/languages/kotlin.d.ts.map +1 -0
- package/dist/extraction/languages/kotlin.js +259 -0
- package/dist/extraction/languages/kotlin.js.map +1 -0
- package/dist/extraction/languages/lua.d.ts +3 -0
- package/dist/extraction/languages/lua.d.ts.map +1 -0
- package/dist/extraction/languages/lua.js +150 -0
- package/dist/extraction/languages/lua.js.map +1 -0
- package/dist/extraction/languages/luau.d.ts +3 -0
- package/dist/extraction/languages/luau.d.ts.map +1 -0
- package/dist/extraction/languages/luau.js +37 -0
- package/dist/extraction/languages/luau.js.map +1 -0
- package/dist/extraction/languages/objc.d.ts +3 -0
- package/dist/extraction/languages/objc.d.ts.map +1 -0
- package/dist/extraction/languages/objc.js +133 -0
- package/dist/extraction/languages/objc.js.map +1 -0
- package/dist/extraction/languages/pascal.d.ts +3 -0
- package/dist/extraction/languages/pascal.d.ts.map +1 -0
- package/dist/extraction/languages/pascal.js +66 -0
- package/dist/extraction/languages/pascal.js.map +1 -0
- package/dist/extraction/languages/php.d.ts +3 -0
- package/dist/extraction/languages/php.d.ts.map +1 -0
- package/dist/extraction/languages/php.js +107 -0
- package/dist/extraction/languages/php.js.map +1 -0
- package/dist/extraction/languages/python.d.ts +3 -0
- package/dist/extraction/languages/python.d.ts.map +1 -0
- package/dist/extraction/languages/python.js +56 -0
- package/dist/extraction/languages/python.js.map +1 -0
- package/dist/extraction/languages/ruby.d.ts +3 -0
- package/dist/extraction/languages/ruby.d.ts.map +1 -0
- package/dist/extraction/languages/ruby.js +114 -0
- package/dist/extraction/languages/ruby.js.map +1 -0
- package/dist/extraction/languages/rust.d.ts +3 -0
- package/dist/extraction/languages/rust.d.ts.map +1 -0
- package/dist/extraction/languages/rust.js +109 -0
- package/dist/extraction/languages/rust.js.map +1 -0
- package/dist/extraction/languages/scala.d.ts +3 -0
- package/dist/extraction/languages/scala.d.ts.map +1 -0
- package/dist/extraction/languages/scala.js +139 -0
- package/dist/extraction/languages/scala.js.map +1 -0
- package/dist/extraction/languages/swift.d.ts +3 -0
- package/dist/extraction/languages/swift.d.ts.map +1 -0
- package/dist/extraction/languages/swift.js +91 -0
- package/dist/extraction/languages/swift.js.map +1 -0
- package/dist/extraction/languages/typescript.d.ts +3 -0
- package/dist/extraction/languages/typescript.d.ts.map +1 -0
- package/dist/extraction/languages/typescript.js +129 -0
- package/dist/extraction/languages/typescript.js.map +1 -0
- package/dist/extraction/liquid-extractor.d.ts +52 -0
- package/dist/extraction/liquid-extractor.d.ts.map +1 -0
- package/dist/extraction/liquid-extractor.js +313 -0
- package/dist/extraction/liquid-extractor.js.map +1 -0
- package/dist/extraction/mybatis-extractor.d.ts +48 -0
- package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
- package/dist/extraction/mybatis-extractor.js +198 -0
- package/dist/extraction/mybatis-extractor.js.map +1 -0
- package/dist/extraction/parse-worker.d.ts +8 -0
- package/dist/extraction/parse-worker.d.ts.map +1 -0
- package/dist/extraction/parse-worker.js +94 -0
- package/dist/extraction/parse-worker.js.map +1 -0
- package/dist/extraction/specs/markdown-spec-extractor.d.ts +59 -0
- package/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -0
- package/dist/extraction/specs/markdown-spec-extractor.js +327 -0
- package/dist/extraction/specs/markdown-spec-extractor.js.map +1 -0
- package/dist/extraction/specs/types.d.ts +39 -0
- package/dist/extraction/specs/types.d.ts.map +1 -0
- package/dist/extraction/specs/types.js +8 -0
- package/dist/extraction/specs/types.js.map +1 -0
- package/dist/extraction/svelte-extractor.d.ts +56 -0
- package/dist/extraction/svelte-extractor.d.ts.map +1 -0
- package/dist/extraction/svelte-extractor.js +272 -0
- package/dist/extraction/svelte-extractor.js.map +1 -0
- package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-helpers.js +103 -0
- package/dist/extraction/tree-sitter-helpers.js.map +1 -0
- package/dist/extraction/tree-sitter-types.d.ts +193 -0
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-types.js +10 -0
- package/dist/extraction/tree-sitter-types.js.map +1 -0
- package/dist/extraction/tree-sitter.d.ts +317 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -0
- package/dist/extraction/tree-sitter.js +3092 -0
- package/dist/extraction/tree-sitter.js.map +1 -0
- package/dist/extraction/vue-extractor.d.ts +51 -0
- package/dist/extraction/vue-extractor.d.ts.map +1 -0
- package/dist/extraction/vue-extractor.js +251 -0
- package/dist/extraction/vue-extractor.js.map +1 -0
- package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
- package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
- package/dist/extraction/wasm-runtime-flags.js +106 -0
- package/dist/extraction/wasm-runtime-flags.js.map +1 -0
- package/dist/graph/index.d.ts +8 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +13 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/queries.d.ts +106 -0
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +366 -0
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/traversal.d.ts +127 -0
- package/dist/graph/traversal.d.ts.map +1 -0
- package/dist/graph/traversal.js +531 -0
- package/dist/graph/traversal.js.map +1 -0
- package/dist/index.d.ts +551 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1165 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/config-writer.d.ts +28 -0
- package/dist/installer/config-writer.d.ts.map +1 -0
- package/dist/installer/config-writer.js +91 -0
- package/dist/installer/config-writer.js.map +1 -0
- package/dist/installer/index.d.ts +92 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +416 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/instructions-template.d.ts +35 -0
- package/dist/installer/instructions-template.d.ts.map +1 -0
- package/dist/installer/instructions-template.js +51 -0
- package/dist/installer/instructions-template.js.map +1 -0
- package/dist/installer/targets/claude.d.ts +117 -0
- package/dist/installer/targets/claude.d.ts.map +1 -0
- package/dist/installer/targets/claude.js +736 -0
- package/dist/installer/targets/claude.js.map +1 -0
- package/dist/installer/targets/registry.d.ts +19 -0
- package/dist/installer/targets/registry.d.ts.map +1 -0
- package/dist/installer/targets/registry.js +31 -0
- package/dist/installer/targets/registry.js.map +1 -0
- package/dist/installer/targets/shared.d.ts +76 -0
- package/dist/installer/targets/shared.d.ts.map +1 -0
- package/dist/installer/targets/shared.js +256 -0
- package/dist/installer/targets/shared.js.map +1 -0
- package/dist/installer/targets/types.d.ts +84 -0
- package/dist/installer/targets/types.d.ts.map +1 -0
- package/dist/installer/targets/types.js +12 -0
- package/dist/installer/targets/types.js.map +1 -0
- package/dist/isolation/worktree.d.ts +65 -0
- package/dist/isolation/worktree.d.ts.map +1 -0
- package/dist/isolation/worktree.js +231 -0
- package/dist/isolation/worktree.js.map +1 -0
- package/dist/mcp/daemon-paths.d.ts +46 -0
- package/dist/mcp/daemon-paths.d.ts.map +1 -0
- package/dist/mcp/daemon-paths.js +125 -0
- package/dist/mcp/daemon-paths.js.map +1 -0
- package/dist/mcp/daemon.d.ts +161 -0
- package/dist/mcp/daemon.d.ts.map +1 -0
- package/dist/mcp/daemon.js +403 -0
- package/dist/mcp/daemon.js.map +1 -0
- package/dist/mcp/designer-tools.d.ts +33 -0
- package/dist/mcp/designer-tools.d.ts.map +1 -0
- package/dist/mcp/designer-tools.js +313 -0
- package/dist/mcp/designer-tools.js.map +1 -0
- package/dist/mcp/engine.d.ts +105 -0
- package/dist/mcp/engine.d.ts.map +1 -0
- package/dist/mcp/engine.js +270 -0
- package/dist/mcp/engine.js.map +1 -0
- package/dist/mcp/index.d.ts +112 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +477 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/proxy.d.ts +81 -0
- package/dist/mcp/proxy.d.ts.map +1 -0
- package/dist/mcp/proxy.js +510 -0
- package/dist/mcp/proxy.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +18 -0
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +77 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/session.d.ts +77 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +294 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/mcp/spec-tools.d.ts +39 -0
- package/dist/mcp/spec-tools.d.ts.map +1 -0
- package/dist/mcp/spec-tools.js +326 -0
- package/dist/mcp/spec-tools.js.map +1 -0
- package/dist/mcp/tools.d.ts +404 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +3087 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/transport.d.ts +188 -0
- package/dist/mcp/transport.d.ts.map +1 -0
- package/dist/mcp/transport.js +343 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/mcp/version.d.ts +19 -0
- package/dist/mcp/version.d.ts.map +1 -0
- package/dist/mcp/version.js +71 -0
- package/dist/mcp/version.js.map +1 -0
- package/dist/resolution/callback-synthesizer.d.ts +10 -0
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/resolution/callback-synthesizer.js +1300 -0
- package/dist/resolution/callback-synthesizer.js.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.js +225 -0
- package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
- package/dist/resolution/frameworks/csharp.d.ts +8 -0
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
- package/dist/resolution/frameworks/csharp.js +241 -0
- package/dist/resolution/frameworks/csharp.js.map +1 -0
- package/dist/resolution/frameworks/drupal.d.ts +51 -0
- package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
- package/dist/resolution/frameworks/drupal.js +367 -0
- package/dist/resolution/frameworks/drupal.js.map +1 -0
- package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
- package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
- package/dist/resolution/frameworks/expo-modules.js +143 -0
- package/dist/resolution/frameworks/expo-modules.js.map +1 -0
- package/dist/resolution/frameworks/express.d.ts +8 -0
- package/dist/resolution/frameworks/express.d.ts.map +1 -0
- package/dist/resolution/frameworks/express.js +308 -0
- package/dist/resolution/frameworks/express.js.map +1 -0
- package/dist/resolution/frameworks/fabric.d.ts +3 -0
- package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
- package/dist/resolution/frameworks/fabric.js +354 -0
- package/dist/resolution/frameworks/fabric.js.map +1 -0
- package/dist/resolution/frameworks/go.d.ts +8 -0
- package/dist/resolution/frameworks/go.d.ts.map +1 -0
- package/dist/resolution/frameworks/go.js +161 -0
- package/dist/resolution/frameworks/go.js.map +1 -0
- package/dist/resolution/frameworks/index.d.ts +48 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/resolution/frameworks/index.js +161 -0
- package/dist/resolution/frameworks/index.js.map +1 -0
- package/dist/resolution/frameworks/java.d.ts +8 -0
- package/dist/resolution/frameworks/java.d.ts.map +1 -0
- package/dist/resolution/frameworks/java.js +504 -0
- package/dist/resolution/frameworks/java.js.map +1 -0
- package/dist/resolution/frameworks/laravel.d.ts +13 -0
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
- package/dist/resolution/frameworks/laravel.js +257 -0
- package/dist/resolution/frameworks/laravel.js.map +1 -0
- package/dist/resolution/frameworks/nestjs.d.ts +26 -0
- package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
- package/dist/resolution/frameworks/nestjs.js +698 -0
- package/dist/resolution/frameworks/nestjs.js.map +1 -0
- package/dist/resolution/frameworks/play.d.ts +19 -0
- package/dist/resolution/frameworks/play.d.ts.map +1 -0
- package/dist/resolution/frameworks/play.js +111 -0
- package/dist/resolution/frameworks/play.js.map +1 -0
- package/dist/resolution/frameworks/python.d.ts +10 -0
- package/dist/resolution/frameworks/python.d.ts.map +1 -0
- package/dist/resolution/frameworks/python.js +396 -0
- package/dist/resolution/frameworks/python.js.map +1 -0
- package/dist/resolution/frameworks/react-native.d.ts +3 -0
- package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
- package/dist/resolution/frameworks/react-native.js +360 -0
- package/dist/resolution/frameworks/react-native.js.map +1 -0
- package/dist/resolution/frameworks/react.d.ts +8 -0
- package/dist/resolution/frameworks/react.d.ts.map +1 -0
- package/dist/resolution/frameworks/react.js +365 -0
- package/dist/resolution/frameworks/react.js.map +1 -0
- package/dist/resolution/frameworks/ruby.d.ts +8 -0
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
- package/dist/resolution/frameworks/ruby.js +302 -0
- package/dist/resolution/frameworks/ruby.js.map +1 -0
- package/dist/resolution/frameworks/rust.d.ts +8 -0
- package/dist/resolution/frameworks/rust.d.ts.map +1 -0
- package/dist/resolution/frameworks/rust.js +304 -0
- package/dist/resolution/frameworks/rust.js.map +1 -0
- package/dist/resolution/frameworks/svelte.d.ts +9 -0
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/dist/resolution/frameworks/svelte.js +249 -0
- package/dist/resolution/frameworks/svelte.js.map +1 -0
- package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
- package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift-objc.js +252 -0
- package/dist/resolution/frameworks/swift-objc.js.map +1 -0
- package/dist/resolution/frameworks/swift.d.ts +10 -0
- package/dist/resolution/frameworks/swift.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift.js +400 -0
- package/dist/resolution/frameworks/swift.js.map +1 -0
- package/dist/resolution/frameworks/vue.d.ts +9 -0
- package/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue.js +306 -0
- package/dist/resolution/frameworks/vue.js.map +1 -0
- package/dist/resolution/go-module.d.ts +26 -0
- package/dist/resolution/go-module.d.ts.map +1 -0
- package/dist/resolution/go-module.js +78 -0
- package/dist/resolution/go-module.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts +68 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -0
- package/dist/resolution/import-resolver.js +1275 -0
- package/dist/resolution/import-resolver.js.map +1 -0
- package/dist/resolution/index.d.ts +117 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +895 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/resolution/lru-cache.d.ts +24 -0
- package/dist/resolution/lru-cache.d.ts.map +1 -0
- package/dist/resolution/lru-cache.js +62 -0
- package/dist/resolution/lru-cache.js.map +1 -0
- package/dist/resolution/name-matcher.d.ts +32 -0
- package/dist/resolution/name-matcher.d.ts.map +1 -0
- package/dist/resolution/name-matcher.js +596 -0
- package/dist/resolution/name-matcher.js.map +1 -0
- package/dist/resolution/path-aliases.d.ts +68 -0
- package/dist/resolution/path-aliases.d.ts.map +1 -0
- package/dist/resolution/path-aliases.js +238 -0
- package/dist/resolution/path-aliases.js.map +1 -0
- package/dist/resolution/spec-link-resolver.d.ts +103 -0
- package/dist/resolution/spec-link-resolver.d.ts.map +1 -0
- package/dist/resolution/spec-link-resolver.js +259 -0
- package/dist/resolution/spec-link-resolver.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +27 -0
- package/dist/resolution/strip-comments.d.ts.map +1 -0
- package/dist/resolution/strip-comments.js +441 -0
- package/dist/resolution/strip-comments.js.map +1 -0
- package/dist/resolution/swift-objc-bridge.d.ts +134 -0
- package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
- package/dist/resolution/swift-objc-bridge.js +256 -0
- package/dist/resolution/swift-objc-bridge.js.map +1 -0
- package/dist/resolution/types.d.ts +216 -0
- package/dist/resolution/types.d.ts.map +1 -0
- package/dist/resolution/types.js +8 -0
- package/dist/resolution/types.js.map +1 -0
- package/dist/resolution/workspace-packages.d.ts +48 -0
- package/dist/resolution/workspace-packages.d.ts.map +1 -0
- package/dist/resolution/workspace-packages.js +208 -0
- package/dist/resolution/workspace-packages.js.map +1 -0
- package/dist/search/query-parser.d.ts +57 -0
- package/dist/search/query-parser.d.ts.map +1 -0
- package/dist/search/query-parser.js +177 -0
- package/dist/search/query-parser.js.map +1 -0
- package/dist/search/query-utils.d.ts +71 -0
- package/dist/search/query-utils.d.ts.map +1 -0
- package/dist/search/query-utils.js +380 -0
- package/dist/search/query-utils.js.map +1 -0
- package/dist/server/cli.js +152 -0
- package/dist/server/index.js +12 -0
- package/dist/server/ingest/index.js +18 -0
- package/dist/server/ingest/ingestor.js +506 -0
- package/dist/server/ingest/parser.js +104 -0
- package/dist/server/ingest/pricing.js +78 -0
- package/dist/server/ingest/types.js +9 -0
- package/dist/server/ingest/watcher.js +77 -0
- package/dist/server/package.json +3 -0
- package/dist/server/project-registry.js +101 -0
- package/dist/server/routes/claude.js +868 -0
- package/dist/server/routes/graph.js +211 -0
- package/dist/server/routes/memory.js +272 -0
- package/dist/server/routes/projects.js +197 -0
- package/dist/server/routes/spec.js +265 -0
- package/dist/server/routes/status.js +112 -0
- package/dist/server/routes/workflow.js +212 -0
- package/dist/server/server.js +206 -0
- package/dist/server/static-handler.js +87 -0
- package/dist/sync/git-hooks.d.ts +45 -0
- package/dist/sync/git-hooks.d.ts.map +1 -0
- package/dist/sync/git-hooks.js +225 -0
- package/dist/sync/git-hooks.js.map +1 -0
- package/dist/sync/index.d.ts +19 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +35 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/watch-policy.d.ts +48 -0
- package/dist/sync/watch-policy.d.ts.map +1 -0
- package/dist/sync/watch-policy.js +124 -0
- package/dist/sync/watch-policy.js.map +1 -0
- package/dist/sync/watcher.d.ts +283 -0
- package/dist/sync/watcher.d.ts.map +1 -0
- package/dist/sync/watcher.js +606 -0
- package/dist/sync/watcher.js.map +1 -0
- package/dist/sync/worktree.d.ts +54 -0
- package/dist/sync/worktree.d.ts.map +1 -0
- package/dist/sync/worktree.js +137 -0
- package/dist/sync/worktree.js.map +1 -0
- package/dist/types.d.ts +623 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +108 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/glyphs.d.ts +42 -0
- package/dist/ui/glyphs.d.ts.map +1 -0
- package/dist/ui/glyphs.js +78 -0
- package/dist/ui/glyphs.js.map +1 -0
- package/dist/ui/shimmer-progress.d.ts +11 -0
- package/dist/ui/shimmer-progress.d.ts.map +1 -0
- package/dist/ui/shimmer-progress.js +90 -0
- package/dist/ui/shimmer-progress.js.map +1 -0
- package/dist/ui/shimmer-worker.d.ts +2 -0
- package/dist/ui/shimmer-worker.d.ts.map +1 -0
- package/dist/ui/shimmer-worker.js +118 -0
- package/dist/ui/shimmer-worker.js.map +1 -0
- package/dist/ui/types.d.ts +17 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +3 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/utils.d.ts +205 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +549 -0
- package/dist/utils.js.map +1 -0
- package/dist/web/chunk-2AJCHB7P.js +1 -0
- package/dist/web/chunk-2CPLUFCH.js +2 -0
- package/dist/web/chunk-2GBEK2GM.js +1 -0
- package/dist/web/chunk-2I7L37NS.js +1 -0
- package/dist/web/chunk-2NAWAJB5.js +1 -0
- package/dist/web/chunk-2OJBIPE4.js +1 -0
- package/dist/web/chunk-2YUJNZ2Y.js +6 -0
- package/dist/web/chunk-3E2WB6D5.js +1 -0
- package/dist/web/chunk-3EBFYSCH.js +2 -0
- package/dist/web/chunk-3QCQ4BXS.js +1 -0
- package/dist/web/chunk-42XVAQ6I.js +1 -0
- package/dist/web/chunk-45QHGCB4.js +17 -0
- package/dist/web/chunk-4IMMPEYM.js +1 -0
- package/dist/web/chunk-4TJQJPCZ.js +1 -0
- package/dist/web/chunk-4WZIHTPC.js +1 -0
- package/dist/web/chunk-4YVSYOSD.js +1 -0
- package/dist/web/chunk-5BQIOYKW.js +1 -0
- package/dist/web/chunk-5HGWHUJA.js +1 -0
- package/dist/web/chunk-5Y244R4G.js +1 -0
- package/dist/web/chunk-6RRDPT5Z.js +1 -0
- package/dist/web/chunk-6VKB2ZWM.js +1 -0
- package/dist/web/chunk-7DMFVTU4.js +1 -0
- package/dist/web/chunk-7RNS77UP.js +1 -0
- package/dist/web/chunk-7SMPKVEP.js +1 -0
- package/dist/web/chunk-A5R3MJMO.js +1 -0
- package/dist/web/chunk-ASZ77FMZ.js +1 -0
- package/dist/web/chunk-AZJVTPLU.js +1 -0
- package/dist/web/chunk-B3YPFY6A.js +1 -0
- package/dist/web/chunk-BLBRMCN2.js +1 -0
- package/dist/web/chunk-BMIAXD2V.js +2 -0
- package/dist/web/chunk-BUXWEHIY.js +1 -0
- package/dist/web/chunk-BYZFQSM6.js +1 -0
- package/dist/web/chunk-D5OCNEJA.js +2 -0
- package/dist/web/chunk-DLQPZWSI.css +1 -0
- package/dist/web/chunk-DTRN7FZR.js +1 -0
- package/dist/web/chunk-DYRFLPJA.js +1 -0
- package/dist/web/chunk-E3J3CXR5.js +1 -0
- package/dist/web/chunk-E44X4RH2.js +1 -0
- package/dist/web/chunk-E73OX2P7.js +1 -0
- package/dist/web/chunk-EAXRKDLV.js +1 -0
- package/dist/web/chunk-EBKKDHYI.js +1 -0
- package/dist/web/chunk-EE7V7Q5P.js +1 -0
- package/dist/web/chunk-EKY2FUHU.js +1 -0
- package/dist/web/chunk-EMGMOEVR.js +1 -0
- package/dist/web/chunk-EP6XOPXH.js +1 -0
- package/dist/web/chunk-ESGDLJOJ.js +1 -0
- package/dist/web/chunk-ETJG7NCY.js +1 -0
- package/dist/web/chunk-EUUEFEDI.js +1 -0
- package/dist/web/chunk-FGNZDHTL.js +11 -0
- package/dist/web/chunk-FHZHD2ZG.js +1 -0
- package/dist/web/chunk-FIJW2UNJ.js +1 -0
- package/dist/web/chunk-FMV5PXRC.js +5 -0
- package/dist/web/chunk-G7VZT5KB.js +3 -0
- package/dist/web/chunk-GR72OOCN.js +1 -0
- package/dist/web/chunk-GRZYXPSO.js +7 -0
- package/dist/web/chunk-GWPVKJIY.js +1 -0
- package/dist/web/chunk-GYGPS3AN.js +1 -0
- package/dist/web/chunk-H7AF7YS4.js +1 -0
- package/dist/web/chunk-HDZDQILN.js +1 -0
- package/dist/web/chunk-HMK6UO6N.js +1 -0
- package/dist/web/chunk-HZA6NEAB.js +1 -0
- package/dist/web/chunk-IHEE5NYJ.js +1 -0
- package/dist/web/chunk-ISNEBICW.js +1 -0
- package/dist/web/chunk-J2GZVLHH.js +1 -0
- package/dist/web/chunk-JTFXTIPE.js +903 -0
- package/dist/web/chunk-L37MTFSG.js +3 -0
- package/dist/web/chunk-LB6JPLX2.js +1 -0
- package/dist/web/chunk-LNSVDHCI.js +1 -0
- package/dist/web/chunk-LVGIY3SO.js +1 -0
- package/dist/web/chunk-LXLHIHEN.js +1 -0
- package/dist/web/chunk-MC4DFIHG.js +1 -0
- package/dist/web/chunk-MVOMVPYB.js +1 -0
- package/dist/web/chunk-N6SS4G6S.js +1 -0
- package/dist/web/chunk-NTBJG6SJ.js +1 -0
- package/dist/web/chunk-NUDB3Q2Y.js +3 -0
- package/dist/web/chunk-NZEZCT65.js +1 -0
- package/dist/web/chunk-OXEF5E3E.js +1 -0
- package/dist/web/chunk-PDN6QYGJ.js +4 -0
- package/dist/web/chunk-PGGJPDJG.js +1 -0
- package/dist/web/chunk-PUYSJNJR.js +1 -0
- package/dist/web/chunk-Q2RVFS45.js +1 -0
- package/dist/web/chunk-Q7L6LLAK.js +1 -0
- package/dist/web/chunk-QCMKJIWY.js +1 -0
- package/dist/web/chunk-QH6CF3M3.js +1 -0
- package/dist/web/chunk-QQ5LD7PI.js +1 -0
- package/dist/web/chunk-QR6L3KAC.js +1 -0
- package/dist/web/chunk-R2DLK4HO.js +1 -0
- package/dist/web/chunk-R5W2MDZN.js +1 -0
- package/dist/web/chunk-RD6TVPOT.js +1 -0
- package/dist/web/chunk-RKY4EJYJ.js +1 -0
- package/dist/web/chunk-RONYWVY7.js +1 -0
- package/dist/web/chunk-RXKXYF2C.js +1 -0
- package/dist/web/chunk-SBWU7JFC.js +1 -0
- package/dist/web/chunk-SEXBRGYK.js +1 -0
- package/dist/web/chunk-SHPTC4RL.js +1 -0
- package/dist/web/chunk-SUZYBYDW.js +1 -0
- package/dist/web/chunk-SWKJRNYY.js +1 -0
- package/dist/web/chunk-T66XVKGB.js +1 -0
- package/dist/web/chunk-T7AZ65JP.js +1 -0
- package/dist/web/chunk-TCZDVOHD.js +1 -0
- package/dist/web/chunk-TPTITA3V.js +1 -0
- package/dist/web/chunk-TR335633.js +1 -0
- package/dist/web/chunk-UBOZGQNK.js +1 -0
- package/dist/web/chunk-UR5KDXPX.js +1 -0
- package/dist/web/chunk-UR6O2GEH.js +1 -0
- package/dist/web/chunk-UTNMGWTP.js +1 -0
- package/dist/web/chunk-UYC52MBC.js +1 -0
- package/dist/web/chunk-VECWMHJP.js +1 -0
- package/dist/web/chunk-VUACT35R.js +3 -0
- package/dist/web/chunk-VZI7H4SZ.js +1 -0
- package/dist/web/chunk-WAI2JMZP.js +1 -0
- package/dist/web/chunk-WB6YHOD4.js +1 -0
- package/dist/web/chunk-WBT64AWV.js +1 -0
- package/dist/web/chunk-WCKHQIYN.js +1 -0
- package/dist/web/chunk-WDU3WICG.js +1 -0
- package/dist/web/chunk-WFXJIXZE.js +4 -0
- package/dist/web/chunk-WLIMNDS3.js +1 -0
- package/dist/web/chunk-WTGYRH3Z.js +298 -0
- package/dist/web/chunk-WXTCVDTP.js +1 -0
- package/dist/web/chunk-X2HTISHL.js +1 -0
- package/dist/web/chunk-XCDHWLVH.js +1 -0
- package/dist/web/chunk-Y3H6FFUZ.js +1 -0
- package/dist/web/chunk-Y4F5ULGJ.js +1 -0
- package/dist/web/chunk-YAMRN47K.js +2 -0
- package/dist/web/chunk-YEGKAAEE.js +1 -0
- package/dist/web/chunk-YM2KU57F.js +1 -0
- package/dist/web/chunk-YRERBP6T.js +1 -0
- package/dist/web/chunk-ZLV4VCDG.js +3 -0
- package/dist/web/chunk-ZTVI5KFF.js +1 -0
- package/dist/web/favicon-16.png +0 -0
- package/dist/web/favicon-180.png +0 -0
- package/dist/web/favicon-32.png +0 -0
- package/dist/web/favicon-512.png +0 -0
- package/dist/web/favicon-small.svg +15 -0
- package/dist/web/favicon.ico +0 -0
- package/dist/web/favicon.svg +20 -0
- package/dist/web/index.html +145 -0
- package/dist/web/main-ESADRXN2.css +1 -0
- package/dist/web/main-R53HA54V.js +1 -0
- package/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
- package/dist/web/styles-KSOPUVDA.css +1 -0
- package/dist/web/sw.js +69 -0
- package/dist/workflows/condition-evaluator.d.ts +75 -0
- package/dist/workflows/condition-evaluator.d.ts.map +1 -0
- package/dist/workflows/condition-evaluator.js +282 -0
- package/dist/workflows/condition-evaluator.js.map +1 -0
- package/dist/workflows/defaults/claude-design-implement.yaml +336 -0
- package/dist/workflows/defaults/index.d.ts +26 -0
- package/dist/workflows/defaults/index.d.ts.map +1 -0
- package/dist/workflows/defaults/index.js +94 -0
- package/dist/workflows/defaults/index.js.map +1 -0
- package/dist/workflows/defaults/spec-author.yaml +214 -0
- package/dist/workflows/defaults/spec-fix.yaml +110 -0
- package/dist/workflows/defaults/spec-implement.yaml +150 -0
- package/dist/workflows/defaults/spec-relink.yaml +81 -0
- package/dist/workflows/defaults/spec-verify.yaml +51 -0
- package/dist/workflows/discovery.d.ts +46 -0
- package/dist/workflows/discovery.d.ts.map +1 -0
- package/dist/workflows/discovery.js +193 -0
- package/dist/workflows/discovery.js.map +1 -0
- package/dist/workflows/executor.d.ts +83 -0
- package/dist/workflows/executor.d.ts.map +1 -0
- package/dist/workflows/executor.js +624 -0
- package/dist/workflows/executor.js.map +1 -0
- package/dist/workflows/runners/approval.d.ts +18 -0
- package/dist/workflows/runners/approval.d.ts.map +1 -0
- package/dist/workflows/runners/approval.js +34 -0
- package/dist/workflows/runners/approval.js.map +1 -0
- package/dist/workflows/runners/bash.d.ts +13 -0
- package/dist/workflows/runners/bash.d.ts.map +1 -0
- package/dist/workflows/runners/bash.js +143 -0
- package/dist/workflows/runners/bash.js.map +1 -0
- package/dist/workflows/runners/cancel.d.ts +10 -0
- package/dist/workflows/runners/cancel.d.ts.map +1 -0
- package/dist/workflows/runners/cancel.js +19 -0
- package/dist/workflows/runners/cancel.js.map +1 -0
- package/dist/workflows/runners/prompt.d.ts +28 -0
- package/dist/workflows/runners/prompt.d.ts.map +1 -0
- package/dist/workflows/runners/prompt.js +212 -0
- package/dist/workflows/runners/prompt.js.map +1 -0
- package/dist/workflows/runners/script.d.ts +17 -0
- package/dist/workflows/runners/script.d.ts.map +1 -0
- package/dist/workflows/runners/script.js +155 -0
- package/dist/workflows/runners/script.js.map +1 -0
- package/dist/workflows/runners/types.d.ts +51 -0
- package/dist/workflows/runners/types.d.ts.map +1 -0
- package/dist/workflows/runners/types.js +13 -0
- package/dist/workflows/runners/types.js.map +1 -0
- package/dist/workflows/schemas/workflow.d.ts +166 -0
- package/dist/workflows/schemas/workflow.d.ts.map +1 -0
- package/dist/workflows/schemas/workflow.js +437 -0
- package/dist/workflows/schemas/workflow.js.map +1 -0
- package/hooks/hooks.json +11 -0
- package/package.json +7 -3
- package/scripts/offline-install.sh +19 -6
- package/selectors.json +41 -0
- /package/commands/{cg-explore.md → ss-explore.md} +0 -0
- /package/commands/{cg-impact.md → ss-impact.md} +0 -0
- /package/commands/{cg-relink.md → ss-relink.md} +0 -0
- /package/commands/{cg-spec.md → ss-spec.md} +0 -0
- /package/commands/{cg-sync.md → ss-sync.md} +0 -0
- /package/commands/{cg-trace.md → ss-trace.md} +0 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines the tools exposed by the SpecShip MCP server.
|
|
5
|
+
*/
|
|
6
|
+
import type SpecShip from '../index';
|
|
7
|
+
import type { PendingFile } from '../sync';
|
|
8
|
+
/**
|
|
9
|
+
* Calculate the recommended number of specship_explore calls based on project size.
|
|
10
|
+
* Larger codebases need more exploration calls to cover their surface area,
|
|
11
|
+
* but smaller ones should use fewer to avoid unnecessary overhead.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getExploreBudget(fileCount: number): number;
|
|
14
|
+
/**
|
|
15
|
+
* Adaptive output budget for `specship_explore`, scaled to project size.
|
|
16
|
+
*
|
|
17
|
+
* Smaller codebases get a tighter total cap, fewer default files, smaller
|
|
18
|
+
* per-file cap, and tighter clustering — so a focused query on a 100-file
|
|
19
|
+
* project doesn't dump a whole file's worth of source into the agent's
|
|
20
|
+
* context. Larger codebases keep the generous defaults because the
|
|
21
|
+
* agent's native discovery cost (grep + find + many Reads) genuinely
|
|
22
|
+
* dwarfs a fat explore call at that scale.
|
|
23
|
+
*
|
|
24
|
+
* Meta-text (relationships map, "additional relevant files" list,
|
|
25
|
+
* completeness signal, budget note) is gated off for tiny projects
|
|
26
|
+
* where one rich call is the whole story and the extra prose is just
|
|
27
|
+
* overhead.
|
|
28
|
+
*
|
|
29
|
+
* Tier breakpoints mirror `getExploreBudget` so a project sits in the
|
|
30
|
+
* same tier across both knobs.
|
|
31
|
+
*/
|
|
32
|
+
export interface ExploreOutputBudget {
|
|
33
|
+
/** Hard cap on total output characters. */
|
|
34
|
+
maxOutputChars: number;
|
|
35
|
+
/** Default `maxFiles` when the caller didn't specify one. */
|
|
36
|
+
defaultMaxFiles: number;
|
|
37
|
+
/** Cap on contiguous source returned per file (across all its clusters). */
|
|
38
|
+
maxCharsPerFile: number;
|
|
39
|
+
/** Cluster gap threshold in lines — tighter clustering on small projects. */
|
|
40
|
+
gapThreshold: number;
|
|
41
|
+
/** Max symbols listed in the per-file header (`#### path — sym(kind), ...`). */
|
|
42
|
+
maxSymbolsInFileHeader: number;
|
|
43
|
+
/** Max edges shown per relationship kind in the Relationships section. */
|
|
44
|
+
maxEdgesPerRelationshipKind: number;
|
|
45
|
+
/** Include the "Relationships" section. */
|
|
46
|
+
includeRelationships: boolean;
|
|
47
|
+
/** Include the "Additional relevant files (not shown)" trailing list. */
|
|
48
|
+
includeAdditionalFiles: boolean;
|
|
49
|
+
/** Include the "Complete source code is included above…" reminder. */
|
|
50
|
+
includeCompletenessSignal: boolean;
|
|
51
|
+
/** Include the explore-budget reminder at the end. */
|
|
52
|
+
includeBudgetNote: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Hard-drop test/spec/icon/i18n files from the relevant-file set unless
|
|
55
|
+
* the query itself mentions tests. Today they're only deprioritized in
|
|
56
|
+
* the sort, which on tiny repos still lets one slip into the top N (e.g.
|
|
57
|
+
* cobra's `command_test.go` displaced `args.go` and contributed ~10KB of
|
|
58
|
+
* pure noise to "How does cobra parse commands?"). Off by default; on
|
|
59
|
+
* for the very-tiny tier where one slip dominates the budget.
|
|
60
|
+
*/
|
|
61
|
+
excludeLowValueFiles: boolean;
|
|
62
|
+
}
|
|
63
|
+
export declare function getExploreOutputBudget(fileCount: number): ExploreOutputBudget;
|
|
64
|
+
/**
|
|
65
|
+
* Per-file staleness banner emitted at the top of a tool response when the
|
|
66
|
+
* file watcher has pending events for files referenced by the response.
|
|
67
|
+
* The agent uses this to fall back to Read for those specific files
|
|
68
|
+
* without waiting for the debounced sync (issue #403).
|
|
69
|
+
*/
|
|
70
|
+
export declare function formatStaleBanner(stale: PendingFile[]): string;
|
|
71
|
+
/**
|
|
72
|
+
* Compact footer listing pending files that are NOT referenced in this
|
|
73
|
+
* response. Gives the agent a complete project-wide freshness picture
|
|
74
|
+
* without bloating the main banner.
|
|
75
|
+
*/
|
|
76
|
+
export declare function formatStaleFooter(stale: PendingFile[]): string;
|
|
77
|
+
/**
|
|
78
|
+
* MCP Tool definition
|
|
79
|
+
*/
|
|
80
|
+
export interface ToolDefinition {
|
|
81
|
+
name: string;
|
|
82
|
+
description: string;
|
|
83
|
+
inputSchema: {
|
|
84
|
+
type: 'object';
|
|
85
|
+
properties: Record<string, PropertySchema>;
|
|
86
|
+
required?: string[];
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
interface PropertySchema {
|
|
90
|
+
type: string;
|
|
91
|
+
description: string;
|
|
92
|
+
enum?: string[];
|
|
93
|
+
default?: unknown;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Tool execution result
|
|
97
|
+
*/
|
|
98
|
+
export interface ToolResult {
|
|
99
|
+
content: Array<{
|
|
100
|
+
type: 'text';
|
|
101
|
+
text: string;
|
|
102
|
+
}>;
|
|
103
|
+
isError?: boolean;
|
|
104
|
+
}
|
|
105
|
+
export declare const tools: ToolDefinition[];
|
|
106
|
+
/**
|
|
107
|
+
* Allowlist-filtered tool definitions WITHOUT an engine — the static surface the
|
|
108
|
+
* proxy answers `tools/list` with before any project is open. Mirrors
|
|
109
|
+
* `ToolHandler.getTools()` in the no-SpecShip case (the dynamic per-repo budget
|
|
110
|
+
* note in a description only adds once `cg` is loaded; the schemas are static).
|
|
111
|
+
*/
|
|
112
|
+
export declare function getStaticTools(): ToolDefinition[];
|
|
113
|
+
/**
|
|
114
|
+
* Tool handler that executes tools against a SpecShip instance
|
|
115
|
+
*
|
|
116
|
+
* Supports cross-project queries via the projectPath parameter.
|
|
117
|
+
* Other projects are opened on-demand and cached for performance.
|
|
118
|
+
*/
|
|
119
|
+
export declare class ToolHandler {
|
|
120
|
+
private cg;
|
|
121
|
+
private projectCache;
|
|
122
|
+
private defaultProjectHint;
|
|
123
|
+
private worktreeMismatchCache;
|
|
124
|
+
private catchUpGate;
|
|
125
|
+
constructor(cg: SpecShip | null);
|
|
126
|
+
/**
|
|
127
|
+
* Update the default SpecShip instance (e.g. after lazy initialization)
|
|
128
|
+
*/
|
|
129
|
+
setDefaultSpecShip(cg: SpecShip): void;
|
|
130
|
+
/**
|
|
131
|
+
* Engine-only: register the catch-up sync promise so the next `execute()`
|
|
132
|
+
* call awaits it before serving. The handler swallows rejections (the
|
|
133
|
+
* engine logs them) so a sync failure never propagates as a tool error;
|
|
134
|
+
* we still want to serve a best-effort result over the same potentially-
|
|
135
|
+
* stale data, which is what would have happened without the gate.
|
|
136
|
+
*/
|
|
137
|
+
setCatchUpGate(p: Promise<void> | null): void;
|
|
138
|
+
/**
|
|
139
|
+
* Record the directory the server tried to resolve the default project from.
|
|
140
|
+
* Used only to make the "no default project" error actionable.
|
|
141
|
+
*/
|
|
142
|
+
setDefaultProjectHint(searchedPath: string): void;
|
|
143
|
+
/**
|
|
144
|
+
* Whether a default SpecShip instance is available
|
|
145
|
+
*/
|
|
146
|
+
hasDefaultSpecShip(): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Optional allowlist of exposed tools, parsed from the SPECSHIP_MCP_TOOLS
|
|
149
|
+
* env var (comma-separated short names, e.g. "trace,search,node,context").
|
|
150
|
+
* Unset/empty → every tool is exposed. Lets an operator (or an A/B harness)
|
|
151
|
+
* trim the tool surface without rebuilding the client config; the ablated
|
|
152
|
+
* tool is then truly absent from ListTools rather than merely denied on call.
|
|
153
|
+
* Matching is on the short form, so "node" and "specship_node" both work.
|
|
154
|
+
*/
|
|
155
|
+
private toolAllowlist;
|
|
156
|
+
/** Whether a tool name passes the SPECSHIP_MCP_TOOLS allowlist (if any). */
|
|
157
|
+
private isToolAllowed;
|
|
158
|
+
/**
|
|
159
|
+
* Get tool definitions with dynamic descriptions based on project size.
|
|
160
|
+
* The specship_explore tool description includes a budget recommendation
|
|
161
|
+
* scaled to the number of indexed files. Honors the SPECSHIP_MCP_TOOLS
|
|
162
|
+
* allowlist so a trimmed surface is reflected in ListTools.
|
|
163
|
+
*/
|
|
164
|
+
getTools(): ToolDefinition[];
|
|
165
|
+
/**
|
|
166
|
+
* Get SpecShip instance for a project
|
|
167
|
+
*
|
|
168
|
+
* If projectPath is provided, opens that project's SpecShip (cached).
|
|
169
|
+
* Otherwise returns the default SpecShip instance.
|
|
170
|
+
*
|
|
171
|
+
* Walks up parent directories to find the nearest .specship/ folder,
|
|
172
|
+
* similar to how git finds .git/ directories.
|
|
173
|
+
*/
|
|
174
|
+
private getSpecShip;
|
|
175
|
+
/**
|
|
176
|
+
* Close all cached project connections
|
|
177
|
+
*/
|
|
178
|
+
closeAll(): void;
|
|
179
|
+
/**
|
|
180
|
+
* Validate that a value is a non-empty string within length bounds.
|
|
181
|
+
*
|
|
182
|
+
* The `maxLength` cap protects against MCP clients that ship huge
|
|
183
|
+
* payloads (10MB+ query strings either by accident or maliciously).
|
|
184
|
+
* Without this, a single oversized input can pin the FTS5 index or
|
|
185
|
+
* exhaust memory before any real work runs.
|
|
186
|
+
*/
|
|
187
|
+
private validateString;
|
|
188
|
+
/**
|
|
189
|
+
* Validate an optional path-like string input. Returns the value if
|
|
190
|
+
* valid (or undefined), or a ToolResult with the error.
|
|
191
|
+
*/
|
|
192
|
+
private validateOptionalPath;
|
|
193
|
+
/**
|
|
194
|
+
* Cached git worktree/index mismatch for a tool call's effective project.
|
|
195
|
+
*
|
|
196
|
+
* The "effective project" is what the request targets: an explicit
|
|
197
|
+
* `projectPath` arg, else the directory the server resolved its default
|
|
198
|
+
* project from (`defaultProjectHint`), else cwd. Memoized per start path —
|
|
199
|
+
* see `worktreeMismatchCache`. Best-effort: if the project can't be resolved
|
|
200
|
+
* (e.g. nothing initialized yet), it reports "no mismatch" so a tool is never
|
|
201
|
+
* broken by this check.
|
|
202
|
+
*/
|
|
203
|
+
private worktreeMismatchFor;
|
|
204
|
+
/**
|
|
205
|
+
* Prefix a successful read-tool result with a compact worktree-mismatch
|
|
206
|
+
* notice when the resolved index belongs to a different git working tree than
|
|
207
|
+
* the caller's (issue #155). Without this, an agent in a nested worktree
|
|
208
|
+
* silently trusts main-branch results. No-op on error results and when there
|
|
209
|
+
* is no mismatch. `specship_status` is excluded — it embeds its own verbose
|
|
210
|
+
* warning — so it stays out of this path.
|
|
211
|
+
*/
|
|
212
|
+
private withWorktreeNotice;
|
|
213
|
+
/**
|
|
214
|
+
* Annotate a successful read-tool result with per-file staleness — the
|
|
215
|
+
* non-blocking answer to issue #403. The file watcher tracks every event
|
|
216
|
+
* it sees per path; here we intersect "files referenced in this response"
|
|
217
|
+
* against that pending set and prepend a compact banner so the agent can
|
|
218
|
+
* fall back to Read for those *specific* files without waiting for the
|
|
219
|
+
* debounced sync to fire. Other pending files in the project (not
|
|
220
|
+
* referenced by this response) get a small footer so the agent has a
|
|
221
|
+
* complete picture without bloating the banner.
|
|
222
|
+
*
|
|
223
|
+
* Cost when nothing is pending — the common case — is one boolean check.
|
|
224
|
+
* No I/O, no parsing of markdown beyond a per-pending-file substring scan.
|
|
225
|
+
*/
|
|
226
|
+
private withStalenessNotice;
|
|
227
|
+
/**
|
|
228
|
+
* Execute a tool by name
|
|
229
|
+
*/
|
|
230
|
+
execute(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
|
|
231
|
+
/**
|
|
232
|
+
* Handle specship_search
|
|
233
|
+
*/
|
|
234
|
+
private handleSearch;
|
|
235
|
+
/**
|
|
236
|
+
* Handle specship_callers
|
|
237
|
+
*/
|
|
238
|
+
private handleCallers;
|
|
239
|
+
/**
|
|
240
|
+
* Handle specship_callees
|
|
241
|
+
*/
|
|
242
|
+
private handleCallees;
|
|
243
|
+
/**
|
|
244
|
+
* Handle specship_impact
|
|
245
|
+
*/
|
|
246
|
+
private handleImpact;
|
|
247
|
+
/**
|
|
248
|
+
* Describe a synthesized (dynamic-dispatch) edge for human output: how the
|
|
249
|
+
* callback was wired up — the bridge static parsing can't see. Returns null
|
|
250
|
+
* for ordinary static edges. Used by trace + the node trail so a synthesized
|
|
251
|
+
* hop reads as "registered via onUpdate at App.tsx:3148", not a bare arrow.
|
|
252
|
+
*/
|
|
253
|
+
private synthEdgeNote;
|
|
254
|
+
/**
|
|
255
|
+
* Flow-from-named-symbols: an agent's specship_explore query is a bag of
|
|
256
|
+
* symbol names that usually spans the flow it's investigating (e.g.
|
|
257
|
+
* "PmsProductController getList PmsProductService list PmsProductServiceImpl").
|
|
258
|
+
* Surface the longest call chain AMONG those named symbols — scoped to what the
|
|
259
|
+
* agent explicitly named, so (unlike a fuzzy relevance set) there's no
|
|
260
|
+
* wrong-feature wandering. Rides synthesized edges, so controller→service-
|
|
261
|
+
* interface→impl shows up. Returns '' if no chain of >=3 nodes exists.
|
|
262
|
+
*
|
|
263
|
+
* Ambiguous tokens (Java `list` → dozens of nodes) are disambiguated by
|
|
264
|
+
* CO-NAMING: the agent names the class too, so we keep only `list` candidates
|
|
265
|
+
* whose qualifiedName contains another named token (`PmsProductServiceImpl::list`),
|
|
266
|
+
* dropping unrelated `OmsOrderService::list`.
|
|
267
|
+
*/
|
|
268
|
+
private buildFlowFromNamedSymbols;
|
|
269
|
+
/**
|
|
270
|
+
* Compact "blast radius" for the entry symbols of an explore result: who
|
|
271
|
+
* depends on each (callers) and which test files cover it — LOCATIONS ONLY,
|
|
272
|
+
* no source, so the agent knows what to update / re-verify before editing
|
|
273
|
+
* without reaching for a separate impact call. Always-on, but skips symbols
|
|
274
|
+
* that have no dependents (nothing to warn about), and returns '' when none
|
|
275
|
+
* qualify so a leaf-only exploration stays clean.
|
|
276
|
+
*/
|
|
277
|
+
private buildBlastRadiusSection;
|
|
278
|
+
/**
|
|
279
|
+
* Graph-connectivity relevance via Random-Walk-with-Restart (personalized
|
|
280
|
+
* PageRank) from the query's matched SEED nodes over the call/reference graph.
|
|
281
|
+
*
|
|
282
|
+
* This is the ranking signal text search (FTS/bm25) CANNOT provide, and it's
|
|
283
|
+
* specship's home turf: relevance by STRUCTURE, not words. A file whose
|
|
284
|
+
* symbols are call-connected to the matched cluster accrues walk mass and
|
|
285
|
+
* ranks high; a lone TEXT match — e.g. `LensSwitcher.swift` matched the word
|
|
286
|
+
* "switch" from `switchOrganization`, but calls none of `setUser`/`fetchUser`
|
|
287
|
+
* — gets only its own restart probability and ranks ~0. Immune to the
|
|
288
|
+
* tokenization trap that fools term matching, deterministic, no embeddings.
|
|
289
|
+
*
|
|
290
|
+
* Undirected adjacency (reachability both ways), restart α=0.25 to the seeds,
|
|
291
|
+
* power iteration to convergence. Bounded to the already-relevant subgraph, so
|
|
292
|
+
* it's a few hundred nodes × ~25 iterations — negligible cost.
|
|
293
|
+
*/
|
|
294
|
+
private computeGraphRelevance;
|
|
295
|
+
/**
|
|
296
|
+
* Handle specship_explore — deep exploration in a single call
|
|
297
|
+
*
|
|
298
|
+
* Strategy: find relevant symbols via graph traversal, group by file,
|
|
299
|
+
* then read contiguous file sections covering all symbols per file.
|
|
300
|
+
* This replaces multiple specship_node + Read calls.
|
|
301
|
+
*
|
|
302
|
+
* Output size is adaptive to project file count via
|
|
303
|
+
* `getExploreOutputBudget` — see #185 for why a fixed 35k cap was a
|
|
304
|
+
* tax on small projects while earning its keep on large ones.
|
|
305
|
+
*/
|
|
306
|
+
private handleExplore;
|
|
307
|
+
/**
|
|
308
|
+
* Handle specship_node
|
|
309
|
+
*/
|
|
310
|
+
private handleNode;
|
|
311
|
+
/** Render one symbol: details + (optional) body/outline + its caller/callee trail. */
|
|
312
|
+
private renderNodeSection;
|
|
313
|
+
/**
|
|
314
|
+
* Build the "trail" for a symbol: its direct callees (what it calls) and
|
|
315
|
+
* callers (what calls it), each with file:line — so specship_node doubles as
|
|
316
|
+
* the structural Grep→Read→expand primitive: a spot PLUS where to go next.
|
|
317
|
+
* Capped to stay cheap. Walk the graph by calling specship_node on a trail
|
|
318
|
+
* entry; no Read needed for covered hops. Empty edges on a non-leaf often mean
|
|
319
|
+
* dynamic dispatch the static graph couldn't resolve — that absence is itself
|
|
320
|
+
* a signal (read that one hop) rather than a dead end.
|
|
321
|
+
*/
|
|
322
|
+
private formatTrail;
|
|
323
|
+
/**
|
|
324
|
+
* Handle specship_status
|
|
325
|
+
*/
|
|
326
|
+
private handleStatus;
|
|
327
|
+
/**
|
|
328
|
+
* Handle specship_files - get project file structure from the index
|
|
329
|
+
*/
|
|
330
|
+
private handleFiles;
|
|
331
|
+
/**
|
|
332
|
+
* Convert glob pattern to regex
|
|
333
|
+
*/
|
|
334
|
+
private globToRegex;
|
|
335
|
+
/**
|
|
336
|
+
* Format files as a flat list
|
|
337
|
+
*/
|
|
338
|
+
private formatFilesFlat;
|
|
339
|
+
/**
|
|
340
|
+
* Format files grouped by language
|
|
341
|
+
*/
|
|
342
|
+
private formatFilesGrouped;
|
|
343
|
+
/**
|
|
344
|
+
* Format files as a tree structure
|
|
345
|
+
*/
|
|
346
|
+
private formatFilesTree;
|
|
347
|
+
/**
|
|
348
|
+
* Find a symbol by name, handling disambiguation when multiple matches exist.
|
|
349
|
+
* Returns the best match and a note about alternatives if any.
|
|
350
|
+
*/
|
|
351
|
+
/**
|
|
352
|
+
* Check if a node matches a symbol query.
|
|
353
|
+
*
|
|
354
|
+
* Accepts simple names (`run`) and three flavors of qualifier:
|
|
355
|
+
* - dotted `Session.request` (TS/JS/Python)
|
|
356
|
+
* - colon-pair `stage_apply::run` (Rust, C++, Ruby)
|
|
357
|
+
* - slash `configurator/stage_apply` (path-ish)
|
|
358
|
+
*
|
|
359
|
+
* Multi-level qualifiers compose: `crate::configurator::stage_apply::run`
|
|
360
|
+
* works. Rust path prefixes (`crate`, `super`, `self`) are stripped so
|
|
361
|
+
* the canonical `crate::module::symbol` form resolves.
|
|
362
|
+
*
|
|
363
|
+
* Resolution order, last part must always equal `node.name`:
|
|
364
|
+
* 1. Suffix-match against `qualifiedName` (handles class-scoped methods
|
|
365
|
+
* where the extractor builds the qualified name from the AST stack)
|
|
366
|
+
* 2. File-path containment (handles file-derived modules in Rust/
|
|
367
|
+
* Python — `stage_apply::run` matches a `run` in `stage_apply.rs`)
|
|
368
|
+
*/
|
|
369
|
+
private matchesSymbol;
|
|
370
|
+
/**
|
|
371
|
+
* Find ALL definitions matching a name, ranked, so specship_node can return
|
|
372
|
+
* every overload instead of guessing one (the wrong guess → a Read). Keepers
|
|
373
|
+
* rank before generated stubs (.pb.go etc.); stable within a group preserves
|
|
374
|
+
* FTS order. Returns [] when nothing matches; a qualified lookup that finds no
|
|
375
|
+
* exact match returns [] rather than a misleading fuzzy file hit (#173); a
|
|
376
|
+
* bare name with no exact match falls back to the single top fuzzy result.
|
|
377
|
+
*/
|
|
378
|
+
private findSymbolMatches;
|
|
379
|
+
/**
|
|
380
|
+
* Find ALL symbols matching a name. Used by callers/callees/impact to aggregate
|
|
381
|
+
* results across all matching symbols (e.g., multiple classes with an `execute` method).
|
|
382
|
+
*/
|
|
383
|
+
private findAllSymbols;
|
|
384
|
+
/**
|
|
385
|
+
* Truncate output if it exceeds the maximum length
|
|
386
|
+
*/
|
|
387
|
+
private truncateOutput;
|
|
388
|
+
private formatSearchResults;
|
|
389
|
+
private formatNodeList;
|
|
390
|
+
private formatImpact;
|
|
391
|
+
/**
|
|
392
|
+
* Build a compact structural outline of a container symbol from its
|
|
393
|
+
* indexed children (methods, fields, properties, …) — name, kind,
|
|
394
|
+
* line number, and signature — so the agent gets the shape of a class
|
|
395
|
+
* without the full source of every method. Returns '' when the container
|
|
396
|
+
* has no indexed children, so the caller can fall back to full source.
|
|
397
|
+
*/
|
|
398
|
+
private buildContainerOutline;
|
|
399
|
+
private formatNodeDetails;
|
|
400
|
+
private textResult;
|
|
401
|
+
private errorResult;
|
|
402
|
+
}
|
|
403
|
+
export {};
|
|
404
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|