@quolu/lattice 0.1.0 → 0.12.2
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 +87 -4
- package/bin/lattice-bridge.mjs +87 -0
- package/bin/lattice-dashboard.mjs +70 -0
- package/bin/lattice-mcp.mjs +9 -9
- package/bin/lattice.mjs +61 -8
- package/docs/bridge-setup.md +87 -0
- package/docs/schemas/lattice.plan_create_input.v1.schema.json +56 -0
- package/docs/schemas/lattice.plan_create_input.v2.schema.json +72 -0
- package/docs/schemas/lattice.plan_create_input.v3.schema.json +81 -0
- package/package.json +19 -7
- package/sensor/dist/bin/command-supervision.d.ts +1 -1
- package/sensor/dist/bin/command-supervision.js +4 -4
- package/sensor/dist/bin/command-supervision.js.map +1 -1
- package/sensor/dist/bin/fatal-handler.js +2 -2
- package/sensor/dist/bin/fatal-handler.js.map +1 -1
- package/sensor/dist/bin/{codegraph.js → lattice-sensor.js} +207 -328
- package/sensor/dist/bin/node-version-check.d.ts +7 -5
- package/sensor/dist/bin/node-version-check.d.ts.map +1 -1
- package/sensor/dist/bin/node-version-check.js +19 -14
- package/sensor/dist/bin/node-version-check.js.map +1 -1
- package/sensor/dist/context/index.d.ts +1 -1
- package/sensor/dist/context/index.js +6 -6
- package/sensor/dist/context/index.js.map +1 -1
- package/sensor/dist/db/index.d.ts +5 -5
- package/sensor/dist/db/index.d.ts.map +1 -1
- package/sensor/dist/db/index.js +7 -7
- package/sensor/dist/db/index.js.map +1 -1
- package/sensor/dist/db/migrations.js +1 -1
- package/sensor/dist/db/migrations.js.map +1 -1
- package/sensor/dist/db/queries.d.ts +1 -1
- package/sensor/dist/db/queries.js +5 -5
- package/sensor/dist/db/queries.js.map +1 -1
- package/sensor/dist/db/schema.sql +2 -2
- package/sensor/dist/db/sqlite-adapter.d.ts +2 -2
- package/sensor/dist/db/sqlite-adapter.js +3 -3
- package/sensor/dist/db/sqlite-adapter.js.map +1 -1
- package/sensor/dist/db/wal-valve.d.ts +1 -1
- package/sensor/dist/db/wal-valve.d.ts.map +1 -1
- package/sensor/dist/db/wal-valve.js +2 -2
- package/sensor/dist/db/wal-valve.js.map +1 -1
- package/sensor/dist/directory.d.ts +27 -63
- package/sensor/dist/directory.d.ts.map +1 -1
- package/sensor/dist/directory.js +78 -134
- package/sensor/dist/directory.js.map +1 -1
- package/sensor/dist/errors.d.ts +15 -15
- package/sensor/dist/errors.d.ts.map +1 -1
- package/sensor/dist/errors.js +21 -21
- package/sensor/dist/errors.js.map +1 -1
- package/sensor/dist/extraction/dynamic-import.d.ts +1 -1
- package/sensor/dist/extraction/dynamic-import.js +1 -1
- package/sensor/dist/extraction/extraction-version.d.ts +1 -1
- package/sensor/dist/extraction/extraction-version.js +1 -1
- package/sensor/dist/extraction/generated-detection.d.ts +1 -1
- package/sensor/dist/extraction/generated-detection.js +1 -1
- package/sensor/dist/extraction/grammars.d.ts +3 -3
- package/sensor/dist/extraction/grammars.js +5 -5
- package/sensor/dist/extraction/grammars.js.map +1 -1
- package/sensor/dist/extraction/index.d.ts +6 -6
- package/sensor/dist/extraction/index.js +50 -50
- package/sensor/dist/extraction/index.js.map +1 -1
- package/sensor/dist/extraction/kernel/decode.d.ts +1 -1
- package/sensor/dist/extraction/kernel/decode.js +1 -1
- package/sensor/dist/extraction/kernel/index.d.ts +3 -3
- package/sensor/dist/extraction/kernel/index.js +6 -6
- package/sensor/dist/extraction/kernel/index.js.map +1 -1
- package/sensor/dist/extraction/kernel/layout.d.ts +1 -1
- package/sensor/dist/extraction/kernel/layout.js +1 -1
- package/sensor/dist/extraction/kernel/loader.d.ts +6 -6
- package/sensor/dist/extraction/kernel/loader.js +13 -13
- package/sensor/dist/extraction/kernel/loader.js.map +1 -1
- package/sensor/dist/extraction/languages/cfquery.d.ts +1 -1
- package/sensor/dist/extraction/languages/cfquery.js +1 -1
- package/sensor/dist/extraction/languages/lua.d.ts +11 -0
- package/sensor/dist/extraction/languages/lua.d.ts.map +1 -1
- package/sensor/dist/extraction/languages/lua.js +1 -0
- package/sensor/dist/extraction/languages/lua.js.map +1 -1
- package/sensor/dist/extraction/parse-pool.d.ts +5 -5
- package/sensor/dist/extraction/parse-pool.d.ts.map +1 -1
- package/sensor/dist/extraction/parse-pool.js +4 -4
- package/sensor/dist/extraction/parse-worker.js +1 -1
- package/sensor/dist/extraction/parse-worker.js.map +1 -1
- package/sensor/dist/extraction/store-writer.d.ts +1 -1
- package/sensor/dist/extraction/store-writer.js +1 -1
- package/sensor/dist/extraction/svelte-extractor.d.ts +1 -1
- package/sensor/dist/extraction/svelte-extractor.js +1 -1
- package/sensor/dist/extraction/tree-sitter-helpers.js +1 -1
- package/sensor/dist/extraction/tree-sitter.d.ts +2 -2
- package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/sensor/dist/extraction/tree-sitter.js +71 -4
- package/sensor/dist/extraction/tree-sitter.js.map +1 -1
- package/sensor/dist/extraction/wasm-runtime-flags.d.ts +2 -2
- package/sensor/dist/extraction/wasm-runtime-flags.d.ts.map +1 -1
- package/sensor/dist/extraction/wasm-runtime-flags.js +5 -5
- package/sensor/dist/extraction/wasm-runtime-flags.js.map +1 -1
- package/sensor/dist/index.d.ts +36 -36
- package/sensor/dist/index.d.ts.map +1 -1
- package/sensor/dist/index.js +71 -71
- package/sensor/dist/index.js.map +1 -1
- package/sensor/dist/mcp/daemon-manager.js +1 -1
- package/sensor/dist/mcp/daemon-paths.d.ts +3 -3
- package/sensor/dist/mcp/daemon-paths.js +7 -7
- package/sensor/dist/mcp/daemon-paths.js.map +1 -1
- package/sensor/dist/mcp/daemon-registry.d.ts +2 -2
- package/sensor/dist/mcp/daemon-registry.js +5 -5
- package/sensor/dist/mcp/daemon.d.ts +7 -7
- package/sensor/dist/mcp/daemon.d.ts.map +1 -1
- package/sensor/dist/mcp/daemon.js +21 -21
- package/sensor/dist/mcp/daemon.js.map +1 -1
- package/sensor/dist/mcp/dynamic-boundaries.js +1 -1
- package/sensor/dist/mcp/engine.d.ts +9 -9
- package/sensor/dist/mcp/engine.d.ts.map +1 -1
- package/sensor/dist/mcp/engine.js +44 -44
- package/sensor/dist/mcp/engine.js.map +1 -1
- package/sensor/dist/mcp/index.d.ts +14 -14
- package/sensor/dist/mcp/index.d.ts.map +1 -1
- package/sensor/dist/mcp/index.js +41 -41
- package/sensor/dist/mcp/index.js.map +1 -1
- package/sensor/dist/mcp/liveness-watchdog.js +7 -7
- package/sensor/dist/mcp/liveness-watchdog.js.map +1 -1
- package/sensor/dist/mcp/ppid-watchdog.d.ts +3 -3
- package/sensor/dist/mcp/ppid-watchdog.js +2 -2
- package/sensor/dist/mcp/proxy.d.ts.map +1 -1
- package/sensor/dist/mcp/proxy.js +37 -37
- package/sensor/dist/mcp/proxy.js.map +1 -1
- package/sensor/dist/mcp/query-pool.d.ts +3 -3
- package/sensor/dist/mcp/query-pool.js +7 -7
- package/sensor/dist/mcp/query-pool.js.map +1 -1
- package/sensor/dist/mcp/query-worker.d.ts +2 -2
- package/sensor/dist/mcp/query-worker.js +7 -7
- package/sensor/dist/mcp/query-worker.js.map +1 -1
- package/sensor/dist/mcp/server-instructions.d.ts +10 -12
- package/sensor/dist/mcp/server-instructions.d.ts.map +1 -1
- package/sensor/dist/mcp/server-instructions.js +39 -37
- package/sensor/dist/mcp/server-instructions.js.map +1 -1
- package/sensor/dist/mcp/session.d.ts +2 -2
- package/sensor/dist/mcp/session.js +18 -18
- package/sensor/dist/mcp/session.js.map +1 -1
- package/sensor/dist/mcp/startup-handshake.d.ts +3 -3
- package/sensor/dist/mcp/startup-handshake.d.ts.map +1 -1
- package/sensor/dist/mcp/startup-handshake.js +3 -3
- package/sensor/dist/mcp/startup-handshake.js.map +1 -1
- package/sensor/dist/mcp/tools.d.ts +53 -53
- package/sensor/dist/mcp/tools.d.ts.map +1 -1
- package/sensor/dist/mcp/tools.js +180 -216
- package/sensor/dist/mcp/tools.js.map +1 -1
- package/sensor/dist/mcp/transport.d.ts +1 -1
- package/sensor/dist/mcp/transport.js +6 -6
- package/sensor/dist/mcp/transport.js.map +1 -1
- package/sensor/dist/mcp/version.d.ts +2 -2
- package/sensor/dist/mcp/version.d.ts.map +1 -1
- package/sensor/dist/mcp/version.js +3 -3
- package/sensor/dist/mcp/version.js.map +1 -1
- package/sensor/dist/project-config.d.ts +6 -6
- package/sensor/dist/project-config.d.ts.map +1 -1
- package/sensor/dist/project-config.js +10 -10
- package/sensor/dist/project-config.js.map +1 -1
- package/sensor/dist/resolution/callback-synthesizer.js +4 -4
- package/sensor/dist/resolution/callback-synthesizer.js.map +1 -1
- package/sensor/dist/resolution/frameworks/drupal.d.ts +3 -3
- package/sensor/dist/resolution/frameworks/drupal.js +3 -3
- package/sensor/dist/resolution/frameworks/fabric.js +1 -1
- package/sensor/dist/resolution/frameworks/fabric.js.map +1 -1
- package/sensor/dist/resolution/frameworks/java.js +1 -1
- package/sensor/dist/resolution/frameworks/java.js.map +1 -1
- package/sensor/dist/resolution/frameworks/svelte.js +1 -1
- package/sensor/dist/resolution/frameworks/svelte.js.map +1 -1
- package/sensor/dist/resolution/goframe-synthesizer.d.ts +1 -1
- package/sensor/dist/resolution/goframe-synthesizer.js +1 -1
- package/sensor/dist/resolution/index.d.ts +1 -1
- package/sensor/dist/resolution/index.js +9 -9
- package/sensor/dist/resolution/index.js.map +1 -1
- package/sensor/dist/resolution/name-matcher.js +2 -2
- package/sensor/dist/resolution/name-matcher.js.map +1 -1
- package/sensor/dist/resolution/resolver-pool.d.ts +2 -2
- package/sensor/dist/resolution/resolver-pool.js +4 -4
- package/sensor/dist/resolution/resolver-pool.js.map +1 -1
- package/sensor/dist/resolution/resolver-worker.js +2 -2
- package/sensor/dist/resolution/resolver-worker.js.map +1 -1
- package/sensor/dist/resolution/workspace-packages.js +1 -1
- package/sensor/dist/resolution/workspace-packages.js.map +1 -1
- package/sensor/dist/search/identifier-segments.d.ts +1 -1
- package/sensor/dist/search/identifier-segments.js +1 -1
- package/sensor/dist/search/query-utils.d.ts +1 -0
- package/sensor/dist/search/query-utils.d.ts.map +1 -1
- package/sensor/dist/search/query-utils.js +10 -3
- package/sensor/dist/search/query-utils.js.map +1 -1
- package/sensor/dist/sync/git-hooks.d.ts +9 -9
- package/sensor/dist/sync/git-hooks.d.ts.map +1 -1
- package/sensor/dist/sync/git-hooks.js +15 -15
- package/sensor/dist/sync/git-hooks.js.map +1 -1
- package/sensor/dist/sync/watch-policy.d.ts +2 -2
- package/sensor/dist/sync/watch-policy.js +5 -5
- package/sensor/dist/sync/watch-policy.js.map +1 -1
- package/sensor/dist/sync/watcher.d.ts +2 -2
- package/sensor/dist/sync/watcher.d.ts.map +1 -1
- package/sensor/dist/sync/watcher.js +16 -16
- package/sensor/dist/sync/watcher.js.map +1 -1
- package/sensor/dist/sync/worktree.d.ts +5 -5
- package/sensor/dist/sync/worktree.d.ts.map +1 -1
- package/sensor/dist/sync/worktree.js +9 -9
- package/sensor/dist/sync/worktree.js.map +1 -1
- package/sensor/dist/telemetry/index.d.ts +8 -8
- package/sensor/dist/telemetry/index.d.ts.map +1 -1
- package/sensor/dist/telemetry/index.js +16 -16
- package/sensor/dist/telemetry/index.js.map +1 -1
- package/sensor/dist/types.d.ts +2 -2
- package/sensor/dist/types.js +1 -1
- package/sensor/dist/ui/color.d.ts +2 -2
- package/sensor/dist/ui/color.js +2 -2
- package/sensor/dist/ui/glyphs.d.ts +3 -3
- package/sensor/dist/ui/glyphs.js +7 -7
- package/sensor/dist/ui/glyphs.js.map +1 -1
- package/sensor/dist/utils.d.ts +4 -4
- package/sensor/dist/utils.js +8 -8
- package/sensor/dist/utils.js.map +1 -1
- package/sensor/package.json +8 -13
- package/src/artifact-contracts.mjs +2 -2
- package/src/boundary-compiler.mjs +28 -28
- package/src/boundary-observation-compiler-v2.mjs +10 -10
- package/src/bounded-seam.mjs +144 -0
- package/src/bridge-cli.mjs +227 -0
- package/src/bridge-config.mjs +346 -0
- package/src/bridge-daemon.mjs +328 -0
- package/src/bridge-launch-agent.mjs +311 -0
- package/src/bridge-server.mjs +309 -0
- package/src/cli-help.mjs +163 -0
- package/src/control-compiler.mjs +30 -30
- package/src/dag-chain.mjs +261 -0
- package/src/factory-diagnostics.mjs +8 -7
- package/src/hash-chain.mjs +76 -0
- package/src/node-version-guard.mjs +5 -4
- package/src/project-cli.mjs +392 -0
- package/src/project-identity.mjs +71 -0
- package/src/rc1-evidence-bundle.mjs +16 -16
- package/src/rc1-v4-campaign.mjs +15 -14
- package/src/rc1-v5-artifact-set.mjs +2 -2
- package/src/rc1-v5-campaign.mjs +15 -14
- package/src/rc1-v6-artifact-set.mjs +18 -18
- package/src/rc1-v6-campaign.mjs +16 -16
- package/src/rc1-v6-causal-binding.mjs +16 -14
- package/src/rc1-v6-measurement.mjs +20 -38
- package/src/rc2-artifact-set.mjs +45 -40
- package/src/rc2-campaign.mjs +48 -66
- package/src/rc2-delivery-policy-front-end.mjs +30 -30
- package/src/rc2-rc1-transfer-front-end.mjs +5 -5
- package/src/rc3-actual-dogfood.mjs +6 -6
- package/src/rc3-dogfood-scaffold.mjs +12 -7
- package/src/rc3-scripted-campaign.mjs +75 -21
- package/src/rc4-stage1-dogfood.mjs +24 -7
- package/src/runtime-cli.mjs +2424 -45
- package/src/runtime-contracts.mjs +7 -7
- package/src/runtime-control-store.mjs +547 -0
- package/src/runtime-controller-protocol.mjs +517 -0
- package/src/runtime-direct-os-observer.mjs +284 -0
- package/src/runtime-engine.mjs +2 -2
- package/src/runtime-errors.mjs +1 -1
- package/src/runtime-event-store.mjs +15 -43
- package/src/runtime-front-end.mjs +26 -26
- package/src/runtime-gate-store.mjs +477 -0
- package/src/runtime-hold-recompile.mjs +214 -23
- package/src/runtime-lifecycle-lock.mjs +290 -0
- package/src/runtime-managed-supervisor.mjs +1276 -0
- package/src/runtime-multi-epoch-store.mjs +761 -0
- package/src/runtime-projection.mjs +62 -0
- package/src/seam-transform.mjs +38 -38
- package/src/{codegraph-adapter.mjs → sensor-adapter.mjs} +7 -7
- package/src/sensor-cli.mjs +107 -0
- package/src/sensor-runtime.mjs +48 -0
- package/src/timestamp-contract.mjs +8 -0
- package/src/todo-chain.mjs +178 -0
- package/src/todo-cli.mjs +1032 -0
- package/src/todo-contracts.mjs +501 -0
- package/src/todo-dashboard-registry.mjs +318 -0
- package/src/todo-gantt-html.mjs +416 -0
- package/src/todo-gantt-layout.mjs +603 -0
- package/src/todo-gantt-live.mjs +269 -0
- package/src/todo-gantt-presentation.mjs +217 -0
- package/src/todo-gantt-svg.mjs +249 -0
- package/src/todo-markdown-renderer.mjs +260 -0
- package/src/todo-migration.mjs +260 -0
- package/src/todo-narrative-anchor.mjs +130 -0
- package/src/todo-revision.mjs +425 -0
- package/src/todo-status.mjs +340 -0
- package/src/todo-store.mjs +3451 -0
- package/src/treatment-compiler.mjs +28 -28
- package/src/treatment-runner.mjs +42 -44
- package/sensor/dist/bin/codegraph.d.ts +0 -26
- package/sensor/dist/bin/codegraph.d.ts.map +0 -1
- package/sensor/dist/bin/codegraph.js.map +0 -1
- package/sensor/dist/bin/uninstall.d.ts +0 -14
- package/sensor/dist/bin/uninstall.d.ts.map +0 -1
- package/sensor/dist/bin/uninstall.js +0 -36
- package/sensor/dist/bin/uninstall.js.map +0 -1
- package/sensor/dist/installer/beta-signup.d.ts +0 -54
- package/sensor/dist/installer/beta-signup.d.ts.map +0 -1
- package/sensor/dist/installer/beta-signup.js +0 -178
- package/sensor/dist/installer/beta-signup.js.map +0 -1
- package/sensor/dist/installer/config-writer.d.ts +0 -28
- package/sensor/dist/installer/config-writer.d.ts.map +0 -1
- package/sensor/dist/installer/config-writer.js +0 -91
- package/sensor/dist/installer/config-writer.js.map +0 -1
- package/sensor/dist/installer/index.d.ts +0 -142
- package/sensor/dist/installer/index.d.ts.map +0 -1
- package/sensor/dist/installer/index.js +0 -622
- package/sensor/dist/installer/index.js.map +0 -1
- package/sensor/dist/installer/instructions-template.d.ts +0 -41
- package/sensor/dist/installer/instructions-template.d.ts.map +0 -1
- package/sensor/dist/installer/instructions-template.js +0 -53
- package/sensor/dist/installer/instructions-template.js.map +0 -1
- package/sensor/dist/installer/targets/antigravity.d.ts +0 -57
- package/sensor/dist/installer/targets/antigravity.d.ts.map +0 -1
- package/sensor/dist/installer/targets/antigravity.js +0 -308
- package/sensor/dist/installer/targets/antigravity.js.map +0 -1
- package/sensor/dist/installer/targets/claude.d.ts +0 -62
- package/sensor/dist/installer/targets/claude.d.ts.map +0 -1
- package/sensor/dist/installer/targets/claude.js +0 -454
- package/sensor/dist/installer/targets/claude.js.map +0 -1
- package/sensor/dist/installer/targets/codex.d.ts +0 -18
- package/sensor/dist/installer/targets/codex.d.ts.map +0 -1
- package/sensor/dist/installer/targets/codex.js +0 -185
- package/sensor/dist/installer/targets/codex.js.map +0 -1
- package/sensor/dist/installer/targets/cursor.d.ts +0 -35
- package/sensor/dist/installer/targets/cursor.d.ts.map +0 -1
- package/sensor/dist/installer/targets/cursor.js +0 -254
- package/sensor/dist/installer/targets/cursor.js.map +0 -1
- package/sensor/dist/installer/targets/gemini.d.ts +0 -26
- package/sensor/dist/installer/targets/gemini.d.ts.map +0 -1
- package/sensor/dist/installer/targets/gemini.js +0 -165
- package/sensor/dist/installer/targets/gemini.js.map +0 -1
- package/sensor/dist/installer/targets/hermes.d.ts +0 -18
- package/sensor/dist/installer/targets/hermes.d.ts.map +0 -1
- package/sensor/dist/installer/targets/hermes.js +0 -359
- package/sensor/dist/installer/targets/hermes.js.map +0 -1
- package/sensor/dist/installer/targets/kiro.d.ts +0 -27
- package/sensor/dist/installer/targets/kiro.d.ts.map +0 -1
- package/sensor/dist/installer/targets/kiro.js +0 -178
- package/sensor/dist/installer/targets/kiro.js.map +0 -1
- package/sensor/dist/installer/targets/opencode.d.ts +0 -38
- package/sensor/dist/installer/targets/opencode.d.ts.map +0 -1
- package/sensor/dist/installer/targets/opencode.js +0 -288
- package/sensor/dist/installer/targets/opencode.js.map +0 -1
- package/sensor/dist/installer/targets/registry.d.ts +0 -35
- package/sensor/dist/installer/targets/registry.d.ts.map +0 -1
- package/sensor/dist/installer/targets/registry.js +0 -91
- package/sensor/dist/installer/targets/registry.js.map +0 -1
- package/sensor/dist/installer/targets/shared.d.ts +0 -101
- package/sensor/dist/installer/targets/shared.d.ts.map +0 -1
- package/sensor/dist/installer/targets/shared.js +0 -264
- package/sensor/dist/installer/targets/shared.js.map +0 -1
- package/sensor/dist/installer/targets/toml.d.ts +0 -52
- package/sensor/dist/installer/targets/toml.d.ts.map +0 -1
- package/sensor/dist/installer/targets/toml.js +0 -147
- package/sensor/dist/installer/targets/toml.js.map +0 -1
- package/sensor/dist/installer/targets/types.d.ts +0 -108
- package/sensor/dist/installer/targets/types.d.ts.map +0 -1
- package/sensor/dist/installer/targets/types.js +0 -16
- package/sensor/dist/installer/targets/types.js.map +0 -1
- package/sensor/dist/upgrade/index.d.ts +0 -171
- package/sensor/dist/upgrade/index.d.ts.map +0 -1
- package/sensor/dist/upgrade/index.js +0 -659
- package/sensor/dist/upgrade/index.js.map +0 -1
- package/sensor/dist/upgrade/remove-binary.d.ts +0 -87
- package/sensor/dist/upgrade/remove-binary.d.ts.map +0 -1
- package/sensor/dist/upgrade/remove-binary.js +0 -289
- package/sensor/dist/upgrade/remove-binary.js.map +0 -1
- package/sensor/dist/upgrade/update-check.d.ts +0 -92
- package/sensor/dist/upgrade/update-check.d.ts.map +0 -1
- package/sensor/dist/upgrade/update-check.js +0 -258
- package/sensor/dist/upgrade/update-check.js.map +0 -1
- package/src/bootstrap.mjs +0 -88
|
@@ -3,32 +3,30 @@
|
|
|
3
3
|
*
|
|
4
4
|
* MCP clients (Claude Code, Cursor, opencode, LangChain, OpenAI Agent
|
|
5
5
|
* SDK, …) surface this text in the agent's system prompt automatically,
|
|
6
|
-
* giving the agent a high-level playbook for the
|
|
6
|
+
* giving the agent a high-level playbook for the lattice sensor toolset
|
|
7
7
|
* before it sees individual tool descriptions.
|
|
8
8
|
*
|
|
9
9
|
* Goals when editing this:
|
|
10
|
-
* - Lead the agent to
|
|
10
|
+
* - Lead the agent to lattice_sensor_explore for any structural/flow question
|
|
11
11
|
* - Reinforce "explore instead of Read/Grep" for indexed code
|
|
12
12
|
* - Anti-patterns (don't re-verify with grep; don't hand-reconstruct flows)
|
|
13
13
|
*
|
|
14
14
|
* Keep it tight. The agent reads this every session — long instructions
|
|
15
|
-
* burn tokens.
|
|
16
|
-
*
|
|
17
|
-
* tools (node/search/callers/…) stay defined and are re-enablable via
|
|
18
|
-
* CODEGRAPH_MCP_TOOLS, but they are NOT listed to agents, so don't name them.
|
|
15
|
+
* burn tokens. ADR 0049 / 0059 require the eight compatibility tools to remain
|
|
16
|
+
* visible by default; provider identity is Lattice regardless of their names.
|
|
19
17
|
*/
|
|
20
|
-
export declare const SERVER_INSTRUCTIONS = "#
|
|
18
|
+
export declare const SERVER_INSTRUCTIONS = "# Lattice sensor \u2014 code intelligence over an indexed knowledge graph\n\nProvider identity: lattice. The lattice_sensor_* names below are compatibility tool names served by Lattice's own bundled sensor; they do not call or require the independent Lattice sensor product.\n\nLattice sensor is a SQLite knowledge graph of every symbol, edge, and file in\nthe workspace \u2014 pre-computed structure you would otherwise re-derive by\nreading files (cached intelligence: thousands of parse/trace decisions you\ndon't pay to re-reason each run). Reads are sub-millisecond; the index lags\nwrites by ~1s through the file watcher. Reach for it BEFORE *and* while\nwriting or editing code \u2014 not just for questions: one call returns the\nverbatim source PLUS who calls it and what it affects, so you edit with the\nblast radius in view. More accurate context, in far fewer tokens and\nround-trips than reading files yourself.\n\n## One tool: lattice_sensor_explore \u2014 use it instead of reading files\n\nThere is a single tool, `lattice_sensor_explore`, and it is Read-equivalent. It\ntakes either a natural-language question or a bag of symbol/file names and\nreturns the **verbatim, line-numbered source** of the relevant symbols\ngrouped by file \u2014 the same `<n>\\t<line>` shape `Read` gives you, safe to\n`Edit` from \u2014 PLUS the call path among them (including dynamic-dispatch hops\nlike callbacks, React re-render, and JSX children that grep can't follow) and\na blast-radius summary of what depends on them.\n\nWhether you're answering \"how does X work\" or implementing a change (fixing a\nbug, adding a feature), call `lattice_sensor_explore` before you Read. ONE call\nusually answers the whole question. Lattice sensor IS the pre-built search index \u2014\nso running your own grep + read loop, or delegating the lookup to a separate\nfile-reading sub-task/agent, repeats work lattice sensor already did and costs more\nfor the same answer. A direct lattice sensor answer is typically one to a few\ncalls; a grep/read exploration is dozens.\n\n## How to query\n\n- **Almost any question \u2014 \"how does X work\", architecture, a bug, \"what/where is X\", or surveying an area** \u2192 `lattice_sensor_explore` with a natural-language question or the relevant names. ONE capped call returns the verbatim source grouped by file; most often the ONLY call you need.\n- **\"How does X reach/become Y? / the flow / the path from X to Y\"** \u2192 `lattice_sensor_explore`, naming the symbols that span the flow (e.g. `mutateElement renderScene`) \u2014 it surfaces the call path among them, riding dynamic-dispatch hops, and returns their source.\n- **Reading or editing a file/symbol you can name** \u2192 put its name or file path in the `lattice_sensor_explore` query \u2014 it returns that current line-numbered source (safe to `Edit` from) with the call path and blast radius attached, so you don't Read it separately. For an overloaded name it returns every matching definition's body in one call.\n- **Need more?** Call `lattice_sensor_explore` again with more specific names \u2014 treat the source it returns as already Read.\n\n## Anti-patterns\n\n- **Trust lattice sensor'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 or Read first** to find or understand indexed code \u2014 ONE `lattice_sensor_explore` returns the relevant symbols' source together in a single round-trip. Reach for raw `Read`/`Grep` only to confirm a specific detail lattice sensor didn't cover, or for what lattice sensor doesn't index (configs, docs).\n- **Don't reconstruct a flow by hand** \u2014 name the endpoints in one `lattice_sensor_explore` and it surfaces the path between them, dynamic-dispatch hops included.\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 lattice sensor. A different, rarer banner \u2014 \"\u26A0\uFE0F LatticeSensor auto-sync is DISABLED\u2026\" \u2014 means live watching stopped entirely (the whole index is frozen, not just a few files); until it's resolved, Read files directly to confirm anything that may have changed.\n\n## Limitations\n\n- If a tool reports a project isn't indexed (no `.lattice/sensor/`), stop calling sensor tools for that project for the rest of the session and use your built-in tools there instead. Indexing is the user's decision \u2014 mention they can run `lattice sensor init . --json` if it comes up, but don't run it yourself.\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. Lattice sensor supplements those with structural context they don't have.\n";
|
|
21
19
|
/**
|
|
22
|
-
* Instructions variant sent when the server's own root has NO
|
|
20
|
+
* Instructions variant sent when the server's own root has NO lattice sensor index.
|
|
23
21
|
*
|
|
24
22
|
* The tools are still exposed (gating tool availability on whether `./` has an
|
|
25
23
|
* index is the bug behind #964: it breaks monorepos where only sub-projects are
|
|
26
|
-
* indexed, and a server that started before `
|
|
24
|
+
* indexed, and a server that started before `lattice sensor init . --json` never surfaces the
|
|
27
25
|
* tools afterward). Instead of an "inactive" note, this variant tells the agent
|
|
28
|
-
*
|
|
29
|
-
* a `projectPath` to any project that HAS a `.
|
|
26
|
+
* lattice sensor works **per project**: there's no default project to query, so pass
|
|
27
|
+
* a `projectPath` to any project that HAS a `.lattice/sensor/`. The full single-
|
|
30
28
|
* project playbook ({@link SERVER_INSTRUCTIONS}) is sent instead when the root
|
|
31
29
|
* IS indexed, so the common case stays tight.
|
|
32
30
|
*/
|
|
33
|
-
export declare const SERVER_INSTRUCTIONS_NO_ROOT_INDEX = "#
|
|
31
|
+
export declare const SERVER_INSTRUCTIONS_NO_ROOT_INDEX = "# Lattice sensor \u2014 available (per-project; pass projectPath)\n\nProvider identity: lattice. The lattice_sensor_* names below are compatibility tool names served by Lattice's own bundled sensor; they do not call or require the independent Lattice sensor product.\n\nLattice sensor is a SQLite knowledge graph of a codebase's symbols, edges, and\nfiles: one `lattice_sensor_explore` call returns the verbatim, line-numbered source\nof the relevant symbols PLUS the call paths between them and a blast-radius\nsummary \u2014 replacing a grep + Read loop with one round-trip.\n\nThis server started somewhere with no `.lattice/sensor/` of its own, so there is no\ndefault project \u2014 but the tools are available and work **per project**:\n\n- To query a project that HAS a `.lattice/sensor/` index (e.g. a service inside a\n monorepo, or a second repo), pass its path as `projectPath` to\n `lattice_sensor_explore` (and any other lattice sensor tool). Lattice sensor resolves the\n nearest `.lattice/sensor/` at or above that path and answers from it \u2014 for as many\n projects as you like in one session.\n- For a project with no `.lattice/sensor/`, use your built-in tools (Read/Grep/Glob)\n for that project. Indexing is the user's decision \u2014 don't run it yourself, but\n if it comes up they can run `lattice sensor init . --json` in a project to enable Lattice sensor\n there (a new index is picked up live, no restart).\n";
|
|
34
32
|
//# 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":"AAAA
|
|
1
|
+
{"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,mBAAmB,igKAoD/B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iCAAiC,06CAqB7C,CAAC"}
|
|
@@ -6,23 +6,23 @@ exports.SERVER_INSTRUCTIONS_NO_ROOT_INDEX = exports.SERVER_INSTRUCTIONS = void 0
|
|
|
6
6
|
*
|
|
7
7
|
* MCP clients (Claude Code, Cursor, opencode, LangChain, OpenAI Agent
|
|
8
8
|
* SDK, …) surface this text in the agent's system prompt automatically,
|
|
9
|
-
* giving the agent a high-level playbook for the
|
|
9
|
+
* giving the agent a high-level playbook for the lattice sensor toolset
|
|
10
10
|
* before it sees individual tool descriptions.
|
|
11
11
|
*
|
|
12
12
|
* Goals when editing this:
|
|
13
|
-
* - Lead the agent to
|
|
13
|
+
* - Lead the agent to lattice_sensor_explore for any structural/flow question
|
|
14
14
|
* - Reinforce "explore instead of Read/Grep" for indexed code
|
|
15
15
|
* - Anti-patterns (don't re-verify with grep; don't hand-reconstruct flows)
|
|
16
16
|
*
|
|
17
17
|
* Keep it tight. The agent reads this every session — long instructions
|
|
18
|
-
* burn tokens.
|
|
19
|
-
*
|
|
20
|
-
* tools (node/search/callers/…) stay defined and are re-enablable via
|
|
21
|
-
* CODEGRAPH_MCP_TOOLS, but they are NOT listed to agents, so don't name them.
|
|
18
|
+
* burn tokens. ADR 0049 / 0059 require the eight compatibility tools to remain
|
|
19
|
+
* visible by default; provider identity is Lattice regardless of their names.
|
|
22
20
|
*/
|
|
23
|
-
exports.SERVER_INSTRUCTIONS = `#
|
|
21
|
+
exports.SERVER_INSTRUCTIONS = `# Lattice sensor — code intelligence over an indexed knowledge graph
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
Provider identity: lattice. The lattice_sensor_* names below are compatibility tool names served by Lattice's own bundled sensor; they do not call or require the independent Lattice sensor product.
|
|
24
|
+
|
|
25
|
+
Lattice sensor is a SQLite knowledge graph of every symbol, edge, and file in
|
|
26
26
|
the workspace — pre-computed structure you would otherwise re-derive by
|
|
27
27
|
reading files (cached intelligence: thousands of parse/trace decisions you
|
|
28
28
|
don't pay to re-reason each run). Reads are sub-millisecond; the index lags
|
|
@@ -32,9 +32,9 @@ verbatim source PLUS who calls it and what it affects, so you edit with the
|
|
|
32
32
|
blast radius in view. More accurate context, in far fewer tokens and
|
|
33
33
|
round-trips than reading files yourself.
|
|
34
34
|
|
|
35
|
-
## One tool:
|
|
35
|
+
## One tool: lattice_sensor_explore — use it instead of reading files
|
|
36
36
|
|
|
37
|
-
There is a single tool, \`
|
|
37
|
+
There is a single tool, \`lattice_sensor_explore\`, and it is Read-equivalent. It
|
|
38
38
|
takes either a natural-language question or a bag of symbol/file names and
|
|
39
39
|
returns the **verbatim, line-numbered source** of the relevant symbols
|
|
40
40
|
grouped by file — the same \`<n>\\t<line>\` shape \`Read\` gives you, safe to
|
|
@@ -43,64 +43,66 @@ like callbacks, React re-render, and JSX children that grep can't follow) and
|
|
|
43
43
|
a blast-radius summary of what depends on them.
|
|
44
44
|
|
|
45
45
|
Whether you're answering "how does X work" or implementing a change (fixing a
|
|
46
|
-
bug, adding a feature), call \`
|
|
47
|
-
usually answers the whole question.
|
|
46
|
+
bug, adding a feature), call \`lattice_sensor_explore\` before you Read. ONE call
|
|
47
|
+
usually answers the whole question. Lattice sensor IS the pre-built search index —
|
|
48
48
|
so running your own grep + read loop, or delegating the lookup to a separate
|
|
49
|
-
file-reading sub-task/agent, repeats work
|
|
50
|
-
for the same answer. A direct
|
|
49
|
+
file-reading sub-task/agent, repeats work lattice sensor already did and costs more
|
|
50
|
+
for the same answer. A direct lattice sensor answer is typically one to a few
|
|
51
51
|
calls; a grep/read exploration is dozens.
|
|
52
52
|
|
|
53
53
|
## How to query
|
|
54
54
|
|
|
55
|
-
- **Almost any question — "how does X work", architecture, a bug, "what/where is X", or surveying an area** → \`
|
|
56
|
-
- **"How does X reach/become Y? / the flow / the path from X to Y"** → \`
|
|
57
|
-
- **Reading or editing a file/symbol you can name** → put its name or file path in the \`
|
|
58
|
-
- **Need more?** Call \`
|
|
55
|
+
- **Almost any question — "how does X work", architecture, a bug, "what/where is X", or surveying an area** → \`lattice_sensor_explore\` with a natural-language question or the relevant names. ONE capped call returns the verbatim source grouped by file; most often the ONLY call you need.
|
|
56
|
+
- **"How does X reach/become Y? / the flow / the path from X to Y"** → \`lattice_sensor_explore\`, naming the symbols that span the flow (e.g. \`mutateElement renderScene\`) — it surfaces the call path among them, riding dynamic-dispatch hops, and returns their source.
|
|
57
|
+
- **Reading or editing a file/symbol you can name** → put its name or file path in the \`lattice_sensor_explore\` query — it returns that current line-numbered source (safe to \`Edit\` from) with the call path and blast radius attached, so you don't Read it separately. For an overloaded name it returns every matching definition's body in one call.
|
|
58
|
+
- **Need more?** Call \`lattice_sensor_explore\` again with more specific names — treat the source it returns as already Read.
|
|
59
59
|
|
|
60
60
|
## Anti-patterns
|
|
61
61
|
|
|
62
|
-
- **Trust
|
|
63
|
-
- **Don't grep or Read first** to find or understand indexed code — ONE \`
|
|
64
|
-
- **Don't reconstruct a flow by hand** — name the endpoints in one \`
|
|
65
|
-
- **After editing, check the staleness banner.** When a tool response starts with "⚠️ Some files referenced below were edited since the last index sync…", the listed files are pending re-index — Read those specific files for accurate content. Every file NOT in that banner is fresh, so still trust
|
|
62
|
+
- **Trust lattice sensor's results — 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.
|
|
63
|
+
- **Don't grep or Read first** to find or understand indexed code — ONE \`lattice_sensor_explore\` returns the relevant symbols' source together in a single round-trip. Reach for raw \`Read\`/\`Grep\` only to confirm a specific detail lattice sensor didn't cover, or for what lattice sensor doesn't index (configs, docs).
|
|
64
|
+
- **Don't reconstruct a flow by hand** — name the endpoints in one \`lattice_sensor_explore\` and it surfaces the path between them, dynamic-dispatch hops included.
|
|
65
|
+
- **After editing, check the staleness banner.** When a tool response starts with "⚠️ Some files referenced below were edited since the last index sync…", the listed files are pending re-index — Read those specific files for accurate content. Every file NOT in that banner is fresh, so still trust lattice sensor. A different, rarer banner — "⚠️ LatticeSensor auto-sync is DISABLED…" — means live watching stopped entirely (the whole index is frozen, not just a few files); until it's resolved, Read files directly to confirm anything that may have changed.
|
|
66
66
|
|
|
67
67
|
## Limitations
|
|
68
68
|
|
|
69
|
-
- If a tool reports a project isn't indexed (no \`.
|
|
69
|
+
- If a tool reports a project isn't indexed (no \`.lattice/sensor/\`), stop calling sensor tools for that project for the rest of the session and use your built-in tools there instead. Indexing is the user's decision — mention they can run \`lattice sensor init . --json\` if it comes up, but don't run it yourself.
|
|
70
70
|
- Index lags file writes by ~1 second.
|
|
71
71
|
- Cross-file resolution is best-effort name matching; ambiguous calls may return multiple candidates.
|
|
72
|
-
- No live correctness validation — that's still the TypeScript compiler / test suite / linter's job.
|
|
72
|
+
- No live correctness validation — that's still the TypeScript compiler / test suite / linter's job. Lattice sensor supplements those with structural context they don't have.
|
|
73
73
|
`;
|
|
74
74
|
/**
|
|
75
|
-
* Instructions variant sent when the server's own root has NO
|
|
75
|
+
* Instructions variant sent when the server's own root has NO lattice sensor index.
|
|
76
76
|
*
|
|
77
77
|
* The tools are still exposed (gating tool availability on whether `./` has an
|
|
78
78
|
* index is the bug behind #964: it breaks monorepos where only sub-projects are
|
|
79
|
-
* indexed, and a server that started before `
|
|
79
|
+
* indexed, and a server that started before `lattice sensor init . --json` never surfaces the
|
|
80
80
|
* tools afterward). Instead of an "inactive" note, this variant tells the agent
|
|
81
|
-
*
|
|
82
|
-
* a `projectPath` to any project that HAS a `.
|
|
81
|
+
* lattice sensor works **per project**: there's no default project to query, so pass
|
|
82
|
+
* a `projectPath` to any project that HAS a `.lattice/sensor/`. The full single-
|
|
83
83
|
* project playbook ({@link SERVER_INSTRUCTIONS}) is sent instead when the root
|
|
84
84
|
* IS indexed, so the common case stays tight.
|
|
85
85
|
*/
|
|
86
|
-
exports.SERVER_INSTRUCTIONS_NO_ROOT_INDEX = `#
|
|
86
|
+
exports.SERVER_INSTRUCTIONS_NO_ROOT_INDEX = `# Lattice sensor — available (per-project; pass projectPath)
|
|
87
|
+
|
|
88
|
+
Provider identity: lattice. The lattice_sensor_* names below are compatibility tool names served by Lattice's own bundled sensor; they do not call or require the independent Lattice sensor product.
|
|
87
89
|
|
|
88
|
-
|
|
89
|
-
files: one \`
|
|
90
|
+
Lattice sensor is a SQLite knowledge graph of a codebase's symbols, edges, and
|
|
91
|
+
files: one \`lattice_sensor_explore\` call returns the verbatim, line-numbered source
|
|
90
92
|
of the relevant symbols PLUS the call paths between them and a blast-radius
|
|
91
93
|
summary — replacing a grep + Read loop with one round-trip.
|
|
92
94
|
|
|
93
|
-
This server started somewhere with no \`.
|
|
95
|
+
This server started somewhere with no \`.lattice/sensor/\` of its own, so there is no
|
|
94
96
|
default project — but the tools are available and work **per project**:
|
|
95
97
|
|
|
96
|
-
- To query a project that HAS a \`.
|
|
98
|
+
- To query a project that HAS a \`.lattice/sensor/\` index (e.g. a service inside a
|
|
97
99
|
monorepo, or a second repo), pass its path as \`projectPath\` to
|
|
98
|
-
\`
|
|
99
|
-
nearest \`.
|
|
100
|
+
\`lattice_sensor_explore\` (and any other lattice sensor tool). Lattice sensor resolves the
|
|
101
|
+
nearest \`.lattice/sensor/\` at or above that path and answers from it — for as many
|
|
100
102
|
projects as you like in one session.
|
|
101
|
-
- For a project with no \`.
|
|
103
|
+
- For a project with no \`.lattice/sensor/\`, use your built-in tools (Read/Grep/Glob)
|
|
102
104
|
for that project. Indexing is the user's decision — don't run it yourself, but
|
|
103
|
-
if it comes up they can run \`
|
|
105
|
+
if it comes up they can run \`lattice sensor init . --json\` in a project to enable Lattice sensor
|
|
104
106
|
there (a new index is picked up live, no restart).
|
|
105
107
|
`;
|
|
106
108
|
//# sourceMappingURL=server-instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDlC,CAAC;AAEF;;;;;;;;;;;GAWG;AACU,QAAA,iCAAiC,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBhD,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* tools/list, tools/call) over a single {@link JsonRpcTransport}. It owns
|
|
4
4
|
* per-client state only (which protocol version the client asked for, whether
|
|
5
5
|
* it advertised `roots`, the one-shot roots/list latch); the heavyweight
|
|
6
|
-
* resources (
|
|
6
|
+
* resources (LatticeSensor, watcher, ToolHandler) live in the shared
|
|
7
7
|
* {@link MCPEngine} so daemon mode can collapse N inotify sets / DB handles
|
|
8
8
|
* to one.
|
|
9
9
|
*
|
|
@@ -80,7 +80,7 @@ export declare class MCPSession {
|
|
|
80
80
|
* 2. if still uninitialized and we never asked the client for its roots,
|
|
81
81
|
* do so now (one-shot); fall back to cwd if the client lacks roots;
|
|
82
82
|
* 3. last-resort: re-walk from the best candidate — picks up projects
|
|
83
|
-
* that were
|
|
83
|
+
* that were initialized after the server started.
|
|
84
84
|
*/
|
|
85
85
|
private retryInitIfNeeded;
|
|
86
86
|
/**
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* tools/list, tools/call) over a single {@link JsonRpcTransport}. It owns
|
|
5
5
|
* per-client state only (which protocol version the client asked for, whether
|
|
6
6
|
* it advertised `roots`, the one-shot roots/list latch); the heavyweight
|
|
7
|
-
* resources (
|
|
7
|
+
* resources (LatticeSensor, watcher, ToolHandler) live in the shared
|
|
8
8
|
* {@link MCPEngine} so daemon mode can collapse N inotify sets / DB handles
|
|
9
9
|
* to one.
|
|
10
10
|
*
|
|
@@ -62,8 +62,8 @@ const telemetry_1 = require("../telemetry");
|
|
|
62
62
|
// Exported so the proxy can answer `initialize` locally with the IDENTICAL
|
|
63
63
|
// payload the daemon would send — no drift between the two handshake paths.
|
|
64
64
|
exports.SERVER_INFO = {
|
|
65
|
-
name: '
|
|
66
|
-
version: version_1.
|
|
65
|
+
name: 'lattice-sensor',
|
|
66
|
+
version: version_1.LatticeSensorPackageVersion,
|
|
67
67
|
};
|
|
68
68
|
/**
|
|
69
69
|
* Instructions for the `initialize` response, with an optional notice
|
|
@@ -228,12 +228,12 @@ class MCPSession {
|
|
|
228
228
|
// single-project playbook. When it ISN'T, send the per-project variant
|
|
229
229
|
// (tools are still exposed — see handleToolsList): it tells the agent there
|
|
230
230
|
// is no default project and to pass `projectPath` to any project that has a
|
|
231
|
-
// `.
|
|
231
|
+
// `.lattice/sensor/`. Gating tool AVAILABILITY on whether `./` is indexed was the
|
|
232
232
|
// #964 bug — it broke monorepos (only sub-projects indexed) and never
|
|
233
|
-
// surfaced the tools after a mid-session `
|
|
233
|
+
// surfaced the tools after a mid-session `lattice sensor init . --json`. When no explicit
|
|
234
234
|
// path is known yet (roots/list dance pending), cwd is the best predictor of
|
|
235
235
|
// where the default project will resolve.
|
|
236
|
-
const indexed = (0, directory_1.
|
|
236
|
+
const indexed = (0, directory_1.findNearestLatticeSensorRoot)(explicitPath ?? process.cwd()) !== null;
|
|
237
237
|
// Respond to the handshake BEFORE doing any heavy init — see issue #172.
|
|
238
238
|
this.transport.sendResult(request.id, {
|
|
239
239
|
protocolVersion: exports.PROTOCOL_VERSION,
|
|
@@ -252,14 +252,14 @@ class MCPSession {
|
|
|
252
252
|
await this.retryInitIfNeeded();
|
|
253
253
|
// Always expose the tools — even when the server root has no index. Gating
|
|
254
254
|
// availability on whether `./` is indexed (the old behavior) breaks the
|
|
255
|
-
// monorepo case where only sub-projects carry a `.
|
|
255
|
+
// monorepo case where only sub-projects carry a `.lattice/sensor/` (the agent
|
|
256
256
|
// saw zero tools and couldn't even reach an indexed sub-project by
|
|
257
257
|
// `projectPath`), and it hides the tools from a session that started before
|
|
258
|
-
// the user ran `
|
|
258
|
+
// the user ran `lattice sensor init . --json` (most hosts request the list once, so the
|
|
259
259
|
// freshly-built index never surfaces). #964. The not-indexed case is still
|
|
260
260
|
// safe: a call against an un-indexed path returns SUCCESS-shaped guidance
|
|
261
|
-
// ("pass projectPath / run
|
|
262
|
-
// teach the agent to abandon
|
|
261
|
+
// ("pass projectPath / run lattice sensor init . --json"), never `isError`, so it can't
|
|
262
|
+
// teach the agent to abandon lattice sensor. `getTools()` returns the default
|
|
263
263
|
// surface even before a project is open.
|
|
264
264
|
this.transport.sendResult(request.id, {
|
|
265
265
|
tools: this.engine.getToolHandler().getTools(),
|
|
@@ -278,13 +278,13 @@ class MCPSession {
|
|
|
278
278
|
this.transport.sendError(request.id, transport_1.ErrorCodes.InvalidParams, `Unknown tool: ${toolName}`);
|
|
279
279
|
return;
|
|
280
280
|
}
|
|
281
|
-
if (process.env.
|
|
281
|
+
if (process.env.LATTICE_SENSOR_MCP_DEBUG)
|
|
282
282
|
process.stderr.write(`[mcp-debug] toolsCall ${toolName} id=${String(request.id)} pre-init\n`);
|
|
283
283
|
await this.retryInitIfNeeded();
|
|
284
|
-
if (process.env.
|
|
284
|
+
if (process.env.LATTICE_SENSOR_MCP_DEBUG)
|
|
285
285
|
process.stderr.write(`[mcp-debug] toolsCall ${toolName} id=${String(request.id)} dispatch\n`);
|
|
286
286
|
const result = await this.engine.getToolHandler().execute(toolName, toolArgs);
|
|
287
|
-
if (process.env.
|
|
287
|
+
if (process.env.LATTICE_SENSOR_MCP_DEBUG)
|
|
288
288
|
process.stderr.write(`[mcp-debug] toolsCall ${toolName} id=${String(request.id)} done\n`);
|
|
289
289
|
this.transport.sendResult(request.id, result);
|
|
290
290
|
// After the reply is on the wire — telemetry must never delay a tool
|
|
@@ -297,7 +297,7 @@ class MCPSession {
|
|
|
297
297
|
* 2. if still uninitialized and we never asked the client for its roots,
|
|
298
298
|
* do so now (one-shot); fall back to cwd if the client lacks roots;
|
|
299
299
|
* 3. last-resort: re-walk from the best candidate — picks up projects
|
|
300
|
-
* that were
|
|
300
|
+
* that were initialized after the server started.
|
|
301
301
|
*/
|
|
302
302
|
async retryInitIfNeeded() {
|
|
303
303
|
if (this.resolvePromise) {
|
|
@@ -307,7 +307,7 @@ class MCPSession {
|
|
|
307
307
|
catch { /* fall through to retry */ }
|
|
308
308
|
this.resolvePromise = null;
|
|
309
309
|
}
|
|
310
|
-
if (this.engine.
|
|
310
|
+
if (this.engine.hasDefaultLatticeSensor())
|
|
311
311
|
return;
|
|
312
312
|
const hint = this.explicitProjectPath ?? this.engine.getProjectPath();
|
|
313
313
|
if (!hint && !this.rootsAttempted) {
|
|
@@ -320,7 +320,7 @@ class MCPSession {
|
|
|
320
320
|
}
|
|
321
321
|
catch { /* fall through */ }
|
|
322
322
|
this.resolvePromise = null;
|
|
323
|
-
if (this.engine.
|
|
323
|
+
if (this.engine.hasDefaultLatticeSensor())
|
|
324
324
|
return;
|
|
325
325
|
}
|
|
326
326
|
// Last resort: walk from the best candidate (sync open). Picks up
|
|
@@ -341,12 +341,12 @@ class MCPSession {
|
|
|
341
341
|
target = rootPath;
|
|
342
342
|
}
|
|
343
343
|
else {
|
|
344
|
-
process.stderr.write('[
|
|
344
|
+
process.stderr.write('[LatticeSensor MCP] Client returned no workspace roots; falling back to process cwd.\n');
|
|
345
345
|
}
|
|
346
346
|
}
|
|
347
347
|
catch (err) {
|
|
348
348
|
const msg = err instanceof Error ? err.message : String(err);
|
|
349
|
-
process.stderr.write(`[
|
|
349
|
+
process.stderr.write(`[LatticeSensor MCP] roots/list request failed (${msg}); falling back to process cwd.\n`);
|
|
350
350
|
}
|
|
351
351
|
await this.engine.ensureInitialized(target);
|
|
352
352
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH,wDAMC;AAtCD,2CAA6B;AAC7B,2CAAgG;AAEhG,mCAAgC;AAChC,+DAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
* listener exists. The detached daemon must never arm this — its stdin is
|
|
26
26
|
* `'ignore'` and its lifecycle is refcount/idle-based.
|
|
27
27
|
*
|
|
28
|
-
* Tune with `
|
|
28
|
+
* Tune with `LATTICE_SENSOR_STARTUP_HANDSHAKE_TIMEOUT_MS`; `0` disables.
|
|
29
29
|
*/
|
|
30
30
|
/** Default wait for the first byte of MCP traffic before assuming orphaned. */
|
|
31
31
|
export declare const DEFAULT_STARTUP_HANDSHAKE_TIMEOUT_MS = 900000;
|
|
32
|
-
export declare const STARTUP_HANDSHAKE_TIMEOUT_ENV = "
|
|
32
|
+
export declare const STARTUP_HANDSHAKE_TIMEOUT_ENV = "LATTICE_SENSOR_STARTUP_HANDSHAKE_TIMEOUT_MS";
|
|
33
33
|
/**
|
|
34
34
|
* Parse the timeout env override. Missing/invalid → default; `<= 0` → `0`
|
|
35
|
-
* (disabled), the same disable convention as `
|
|
35
|
+
* (disabled), the same disable convention as `LATTICE_SENSOR_PPID_POLL_MS`.
|
|
36
36
|
*/
|
|
37
37
|
export declare function parseStartupHandshakeTimeoutMs(raw: string | undefined): number;
|
|
38
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-handshake.d.ts","sourceRoot":"","sources":["../../src/mcp/startup-handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,oCAAoC,SAAU,CAAC;AAE5D,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"startup-handshake.d.ts","sourceRoot":"","sources":["../../src/mcp/startup-handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,oCAAoC,SAAU,CAAC;AAE5D,eAAO,MAAM,6BAA6B,gDAAgD,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM9E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,IAAI,EACvB,MAAM,GAAE,MAAM,CAAC,cAA8B,EAC7C,SAAS,GAAE,MAAmF,GAC7F,MAAM,IAAI,CAcZ"}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* listener exists. The detached daemon must never arm this — its stdin is
|
|
27
27
|
* `'ignore'` and its lifecycle is refcount/idle-based.
|
|
28
28
|
*
|
|
29
|
-
* Tune with `
|
|
29
|
+
* Tune with `LATTICE_SENSOR_STARTUP_HANDSHAKE_TIMEOUT_MS`; `0` disables.
|
|
30
30
|
*/
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
32
|
exports.STARTUP_HANDSHAKE_TIMEOUT_ENV = exports.DEFAULT_STARTUP_HANDSHAKE_TIMEOUT_MS = void 0;
|
|
@@ -34,10 +34,10 @@ exports.parseStartupHandshakeTimeoutMs = parseStartupHandshakeTimeoutMs;
|
|
|
34
34
|
exports.armStartupHandshakeTimeout = armStartupHandshakeTimeout;
|
|
35
35
|
/** Default wait for the first byte of MCP traffic before assuming orphaned. */
|
|
36
36
|
exports.DEFAULT_STARTUP_HANDSHAKE_TIMEOUT_MS = 900_000; // 15 min
|
|
37
|
-
exports.STARTUP_HANDSHAKE_TIMEOUT_ENV = '
|
|
37
|
+
exports.STARTUP_HANDSHAKE_TIMEOUT_ENV = 'LATTICE_SENSOR_STARTUP_HANDSHAKE_TIMEOUT_MS';
|
|
38
38
|
/**
|
|
39
39
|
* Parse the timeout env override. Missing/invalid → default; `<= 0` → `0`
|
|
40
|
-
* (disabled), the same disable convention as `
|
|
40
|
+
* (disabled), the same disable convention as `LATTICE_SENSOR_PPID_POLL_MS`.
|
|
41
41
|
*/
|
|
42
42
|
function parseStartupHandshakeTimeoutMs(raw) {
|
|
43
43
|
if (raw === undefined || raw === '')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-handshake.js","sourceRoot":"","sources":["../../src/mcp/startup-handshake.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;AAWH,wEAMC;AAOD,gEAkBC;AAxCD,+EAA+E;AAClE,QAAA,oCAAoC,GAAG,OAAO,CAAC,CAAC,SAAS;AAEzD,QAAA,6BAA6B,GAAG,
|
|
1
|
+
{"version":3,"file":"startup-handshake.js","sourceRoot":"","sources":["../../src/mcp/startup-handshake.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;AAWH,wEAMC;AAOD,gEAkBC;AAxCD,+EAA+E;AAClE,QAAA,oCAAoC,GAAG,OAAO,CAAC,CAAC,SAAS;AAEzD,QAAA,6BAA6B,GAAG,6CAA6C,CAAC;AAE3F;;;GAGG;AACH,SAAgB,8BAA8B,CAAC,GAAuB;IACpE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,4CAAoC,CAAC;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,4CAAoC,CAAC;IAC1E,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CACxC,WAAuB,EACvB,SAAgC,OAAO,CAAC,KAAK,EAC7C,YAAoB,8BAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,qCAA6B,CAAC,CAAC;IAE9F,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,EAAE,GAAkB,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,GAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3C,WAAW,EAAE,CAAC;IAChB,CAAC,EAAE,SAAS,CAAC,CAAC;IACd,0EAA0E;IAC1E,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjC,OAAO,GAAS,EAAE;QAChB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3C,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC"}
|