@extentos/mcp-server 0.0.10 → 0.0.12

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.
Files changed (42) hide show
  1. package/README.md +88 -83
  2. package/dist/tools/data/version.js +6 -6
  3. package/dist/tools/definitions.d.ts.map +1 -1
  4. package/dist/tools/definitions.js +4 -19
  5. package/dist/tools/definitions.js.map +1 -1
  6. package/dist/tools/docs/index.d.ts.map +1 -1
  7. package/dist/tools/docs/index.js +99 -13
  8. package/dist/tools/docs/index.js.map +1 -1
  9. package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -1
  10. package/dist/tools/handlers/createSimulatorSession.js +8 -4
  11. package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
  12. package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
  13. package/dist/tools/handlers/generateConnectionModule.js +45 -4
  14. package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
  15. package/dist/tools/handlers/generateConsumer.js +15 -18
  16. package/dist/tools/handlers/generateConsumer.js.map +1 -1
  17. package/dist/tools/handlers/initSpec.d.ts.map +1 -1
  18. package/dist/tools/handlers/initSpec.js +6 -1
  19. package/dist/tools/handlers/initSpec.js.map +1 -1
  20. package/dist/tools/handlers/updateSpec.d.ts.map +1 -1
  21. package/dist/tools/handlers/updateSpec.js +10 -2
  22. package/dist/tools/handlers/updateSpec.js.map +1 -1
  23. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  24. package/dist/tools/handlers/validateIntegration.js +9 -1
  25. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  26. package/dist/tools/registry.d.ts.map +1 -1
  27. package/dist/tools/registry.js +0 -2
  28. package/dist/tools/registry.js.map +1 -1
  29. package/dist/tools/templates/androidBootstrap.d.ts.map +1 -1
  30. package/dist/tools/templates/androidBootstrap.js +45 -2
  31. package/dist/tools/templates/androidBootstrap.js.map +1 -1
  32. package/dist/tools/templates/callbackHandler.d.ts.map +1 -1
  33. package/dist/tools/templates/callbackHandler.js +16 -4
  34. package/dist/tools/templates/callbackHandler.js.map +1 -1
  35. package/dist/tools/templates/iosBootstrap.d.ts.map +1 -1
  36. package/dist/tools/templates/iosBootstrap.js +76 -48
  37. package/dist/tools/templates/iosBootstrap.js.map +1 -1
  38. package/dist/tools/util/manifest.d.ts +10 -0
  39. package/dist/tools/util/manifest.d.ts.map +1 -1
  40. package/dist/tools/util/manifest.js +5 -1
  41. package/dist/tools/util/manifest.js.map +1 -1
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -1,83 +1,88 @@
1
- # @extentos/mcp-server
2
-
3
- MCP server for building Meta-glasses-connected apps with Claude Code and other
4
- MCP-aware agents. Exposes 19 deterministic tools covering planning, spec
5
- authoring, code generation, permissions, credential guidance, validation, and
6
- a browser-based simulator for testing without physical hardware.
7
-
8
- ## Install
9
-
10
- Register the server with Claude Code (or any MCP host) in one line:
11
-
12
- ```bash
13
- claude mcp add extentos -- npx -y @extentos/mcp-server@latest
14
- ```
15
-
16
- Restart Claude Code. `/mcp` should list `extentos` with all tools available.
17
-
18
- Prerequisites: Node.js 20+ on `PATH`. That's it — `npx` fetches the package on
19
- first run and caches it.
20
-
21
- ## Getting started (for the agent)
22
-
23
- If an AI agent is using this server, the canonical first step is
24
- **`planIntegration(goal: "<what the dev wants to build>")`**. That tool
25
- returns the tool sequence to follow, plus suggested blocks/streams/triggers
26
- derived from the goal. Don't guess — call it first.
27
-
28
- When in doubt about a concept, **`searchDocs(query: "<natural language>")`**
29
- is the escape hatch. The corpus covers blocks, streams, triggers, actions,
30
- auto-bind lifecycle, the local-bridge probe, voice UX rules, and more.
31
-
32
- The standard flow:
33
-
34
- 1. `planIntegration` first call, maps the goal to a tool sequence
35
- 2. `generateConnectionModule` — bootstrap module, Gradle/SPM wiring, empty spec
36
- 3. `initSpec` first populated spec + callback handler dispatch template
37
- 4. `generateConsumer(kind: "callback")` — handler stubs the dev fills in
38
- 5. `getPermissions` / `validateIntegration` — check wiring before testing
39
- 6. `createSimulatorSession` — provision a browser-hosted glasses surrogate
40
- 7. `inspectIntegration` / `updateSpec` iterate (always inspect for the
41
- `basedOn` freshness token before updating)
42
- 8. `getEventLog` / `getSimulatorStatus` debug a running session
43
- 9. `getProductionChecklist` — walk through ship-readiness
44
-
45
- See the full tool reference and example flow in the repo:
46
-
47
- - [MCP tool catalog](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/MCP_TOOLS.md)
48
- - [12-step example flow](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/EXAMPLE_FLOW.md)
49
- - [Authentication model](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/AUTHENTICATION.md)
50
- - [Auto-bind dev loop](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/PERSISTENT_DEV_SESSION.md)
51
-
52
- ## Features
53
-
54
- - **Anonymous-first.** First simulator session needs no signup. 500-event
55
- anonymous meter; account linking via device-code flow when exhausted.
56
- - **Auto-bind dev loop (Android).** Once the library is in your app, the
57
- MCP and library coordinate via a `127.0.0.1:31337/whoami` localhost
58
- bridge. Subsequent `createSimulatorSession` calls auto-attach the
59
- running app to the new session no rebuild, no URL paste, no typed
60
- code in the happy path. Calling the tool while a session is already
61
- active supersedes silently. iOS auto-bind: in progress.
62
- - **Browser simulator surrogate.** Camera, mic, hardware alerts,
63
- notifications, replay all browser-side; no physical glasses needed
64
- for the bulk of the dev loop.
65
-
66
- ## Platforms
67
-
68
- - **Android**primary target for the current pre-release. Library resolves
69
- from `mavenLocal()` during Phase 7a; Maven Central promotion is on the
70
- Phase 7b roadmap. Auto-bind is fully shipped on this platform.
71
- - **iOS** — supported via SPM. Same MCP tool surface, different generated
72
- artifacts. Auto-bind in progress; iOS apps still use the URL-bake path
73
- via `extentos.session.plist` until that lands.
74
-
75
- ## Status
76
-
77
- Pre-1.0. APIs may shift between minor versions until the hardware test loop
78
- closes. Pin to an exact version (`@0.1.0`) if you need reproducibility across
79
- sessions.
80
-
81
- ## License
82
-
83
- MIT see [LICENSE](https://github.com/Asgermolgaard/vibe-hardware/blob/master/LICENSE) in the repo.
1
+ # @extentos/mcp-server
2
+
3
+ MCP server for building Meta-glasses-connected apps with Claude Code and other
4
+ MCP-aware agents. Exposes 18 deterministic tools covering capability discovery,
5
+ spec authoring, code generation, permissions, credential guidance, validation,
6
+ and a browser-based simulator for testing without physical hardware.
7
+
8
+ The server has no planning tool — agents are better planners than regex bundles
9
+ of keyword matches. Catalog topics in `searchDocs` carry inline minimal
10
+ examples sufficient for most specs; `getExampleSpec` is a reference library
11
+ for studying complex compositions on demand.
12
+
13
+ ## Install
14
+
15
+ Register the server with Claude Code (or any MCP host) in one line:
16
+
17
+ ```bash
18
+ claude mcp add extentos -- npx -y @extentos/mcp-server@latest
19
+ ```
20
+
21
+ Restart Claude Code. `/mcp` should list `extentos` with all tools available.
22
+
23
+ Prerequisites: Node.js 20+ on `PATH`. That's it `npx` fetches the package on
24
+ first run and caches it.
25
+
26
+ ## Getting started (for the agent)
27
+
28
+ The agent plans composition itself. Start with discovery, then mutate.
29
+
30
+ **Discovery (read these first; cheap, all local):**
31
+
32
+ - `getPlatformInfo({ sections: ["version", "capabilities"], glasses: "meta_rayban" })` — fetch the catalog of what exists.
33
+ - `searchDocs({ topic: "getting_started" })` — index of catalog topics, mutation tool order, constraint topics.
34
+ - `searchDocs({ topic: "trigger_types" | "action_types" | "block_types" | "stream_types" | "spec_format" })` — primitive catalog with inline minimal examples.
35
+
36
+ **Mutation tool sequence (deterministic, in order):**
37
+
38
+ 1. `generateConnectionModule` — one-shot scaffold (bootstrap module, Gradle/SPM wiring, empty spec). Returns `developerInstructions.Step 1` asking the dev where `ExtentosConnectionPage` should live surface the question, do not skip it.
39
+ 2. `initSpec` — populate the first real spec from the primitives you composed.
40
+ 3. `generateConsumer(kind: "callback")` stub `app_callback` handlers if the spec has any. (`kind: "stream"` for stream consumers.)
41
+ 4. `validateIntegration` pre-test correctness gate. Re-run after every mutation.
42
+ 5. `createSimulatorSession` — provision a browser-hosted glasses surrogate.
43
+
44
+ **Iteration:** `inspectIntegration` (for the `basedOn` freshness token) → `updateSpec` → `generateConsumer` (if handlers/streams added) → `validateIntegration`.
45
+
46
+ **Debugging:** `getEventLog`, `getSimulatorStatus`. **Ship-readiness:** `getProductionChecklist`.
47
+
48
+ **Reference library (on demand):** `getExampleSpec` returns 8 worked patterns (voice_assistant, live_translation, video_call, etc.). Use only for complex compositions; the catalog topics cover simple cases without it.
49
+
50
+ See the full tool reference and example flow in the repo:
51
+
52
+ - [MCP tool catalog](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/MCP_TOOLS.md)
53
+ - [12-step example flow](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/EXAMPLE_FLOW.md)
54
+ - [Authentication model](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/AUTHENTICATION.md)
55
+ - [Auto-bind dev loop](https://github.com/Asgermolgaard/vibe-hardware/blob/master/docs/mcp/PERSISTENT_DEV_SESSION.md)
56
+
57
+ ## Features
58
+
59
+ - **Anonymous-first.** First simulator session needs no signup. 500-event
60
+ anonymous meter; account linking via device-code flow when exhausted.
61
+ - **Auto-bind dev loop (Android).** Once the library is in your app, the
62
+ MCP and library coordinate via a `127.0.0.1:31337/whoami` localhost
63
+ bridge. Subsequent `createSimulatorSession` calls auto-attach the
64
+ running app to the new session no rebuild, no URL paste, no typed
65
+ code in the happy path. Calling the tool while a session is already
66
+ active supersedes silently. iOS auto-bind: in progress.
67
+ - **Browser simulator surrogate.** Camera, mic, hardware alerts,
68
+ notifications, replayall browser-side; no physical glasses needed
69
+ for the bulk of the dev loop.
70
+
71
+ ## Platforms
72
+
73
+ - **Android** primary target for the current pre-release. Library resolves
74
+ from `mavenLocal()` during Phase 7a; Maven Central promotion is on the
75
+ Phase 7b roadmap. Auto-bind is fully shipped on this platform.
76
+ - **iOS** — supported via SPM. Same MCP tool surface, different generated
77
+ artifacts. Auto-bind in progress; iOS apps still use the URL-bake path
78
+ via `extentos.session.plist` until that lands.
79
+
80
+ ## Status
81
+
82
+ Pre-1.0. APIs may shift between minor versions until the hardware test loop
83
+ closes. Pin to an exact version (`@0.1.0`) if you need reproducibility across
84
+ sessions.
85
+
86
+ ## License
87
+
88
+ MIT — see [LICENSE](https://github.com/Asgermolgaard/vibe-hardware/blob/master/LICENSE) in the repo.
@@ -6,13 +6,13 @@
6
6
  // scaffold a project pointing at 1.0.0 (no probe code) while running
7
7
  // 0.0.7+ server-side smarts that needed 1.1.x to function.
8
8
  //
9
- // Pre-public-Maven note: 1.1.4-pair currently lives only on the dev's
9
+ // Pre-public-Maven note: 1.1.5-pair currently lives only on the dev's
10
10
  // mavenLocal (./gradlew :glasses-core:publishToMavenLocal). Until a
11
11
  // public Maven Central / JitPack publish lands, scaffolded projects
12
12
  // require the dev to run mavenLocal-publish first. Document next to
13
13
  // the dependency notation in generateConnectionModule.
14
14
  export const VERSION_INFO = {
15
- latestStable: "1.1.4-pair",
15
+ latestStable: "1.1.5-pair",
16
16
  specVersion: "1.0",
17
17
  android: {
18
18
  minimumSdk: 31,
@@ -30,13 +30,13 @@ export const VERSION_INFO = {
30
30
  },
31
31
  artifacts: {
32
32
  android: {
33
- core: "com.extentos:glasses:1.1.4-pair",
34
- ui: "com.extentos:glasses-ui:1.1.4-pair",
35
- debug: "com.extentos:glasses-debug:1.1.4-pair",
33
+ core: "com.extentos:glasses:1.1.5-pair",
34
+ ui: "com.extentos:glasses-ui:1.1.5-pair",
35
+ debug: "com.extentos:glasses-debug:1.1.5-pair",
36
36
  },
37
37
  ios: {
38
38
  package: "https://github.com/extentos/swift-glasses",
39
- version: "1.1.4-pair",
39
+ version: "1.1.5-pair",
40
40
  products: ["GlassesCore", "GlassesUI", "GlassesDebug", "GlassesLifecycle", "GlassesTesting"],
41
41
  },
42
42
  },
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;CACH;AAMD,eAAO,MAAM,eAAe,EAAE,OAAO,EA6WpC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAyB,CAAC"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB,EAAE,KAAK,CAAC;KAC7B,CAAC;CACH;AAMD,eAAO,MAAM,eAAe,EAAE,OAAO,EA6VpC,CAAC;AAEF,eAAO,MAAM,SAAS,QAAyB,CAAC"}
@@ -9,7 +9,7 @@ export const toolDefinitions = [
9
9
  // --- 1. Discovery and Planning ---
10
10
  {
11
11
  name: "getPlatformInfo",
12
- description: "Return static platform metadata (library version, spec schema, glasses capabilities) in a single call. USE at session start. DON'T USE for how to use a primitive (use searchDocs) or what's installed in the project (use inspectIntegration).",
12
+ description: "Return static platform metadata (library version, spec schema, glasses capabilities) in a single call. The right first call for any new task — gives you the catalog of what exists so you can plan composition yourself. Pair with searchDocs for inline examples of each primitive. USE at session start, before any spec work. DON'T USE for how to use a primitive (use searchDocs catalog topics) or what's installed in the project (use inspectIntegration).",
13
13
  inputSchema: {
14
14
  type: "object",
15
15
  properties: {
@@ -24,24 +24,9 @@ export const toolDefinitions = [
24
24
  additionalProperties: false,
25
25
  },
26
26
  },
27
- {
28
- name: "planIntegration",
29
- description: "Turn a natural-language goal into a tool-call sequence. Strategy-level, pre-generation. USE as first tool call. DON'T USE for modifying the spec (use updateSpec).",
30
- inputSchema: {
31
- type: "object",
32
- properties: {
33
- goal: { type: "string", minLength: 1 },
34
- platform: platformEnum,
35
- glasses: glassesEnum,
36
- hasExistingIntegration: { type: "boolean" },
37
- },
38
- required: ["goal", "platform", "glasses"],
39
- additionalProperties: false,
40
- },
41
- },
42
27
  {
43
28
  name: "getExampleSpec",
44
- description: "Retrieve a complete reference spec for one of 8 common patterns. USE as starting point or reference. DON'T USE for direct copy-paste (use initSpec for the real spec).",
29
+ description: "Reference library retrieve one of 8 worked example specs (voice_assistant, live_translation, scene_description, notification_reader, navigation_guide, video_call, object_detection, voice_notes) when you want to study a complete worked composition. USE on demand to study how complex flows compose; peel pieces off, do not copy whole. DON'T USE for simple cases — read searchDocs catalog topics (trigger_types, action_types, block_types) instead, which carry inline minimal examples sufficient for most specs. DON'T USE as a starting template for initSpec — write the spec from primitives the dev's goal actually needs.",
45
30
  inputSchema: {
46
31
  type: "object",
47
32
  properties: {
@@ -66,7 +51,7 @@ export const toolDefinitions = [
66
51
  // --- 2. Setup and Generation ---
67
52
  {
68
53
  name: "generateConnectionModule",
69
- description: "One-shot project scaffold — bootstrap module, empty spec, manifest, dependencies, permissions. Run once per project before any spec work. USE as first generation tool after planIntegration. DON'T USE when Extentos is already installed (use inspectIntegration + updateSpec).",
54
+ description: "One-shot project scaffold — bootstrap module, empty spec, manifest, dependencies, permissions. Run once per project before any spec work. Returns developerInstructions.Step 1 telling you to ask the dev where ExtentosConnectionPage should live (5 placement options); do not skip that prompt. USE as the first generation tool when scaffolding a fresh project. DON'T USE when Extentos is already installed (use inspectIntegration + updateSpec).",
70
55
  inputSchema: {
71
56
  type: "object",
72
57
  properties: {
@@ -334,7 +319,7 @@ export const toolDefinitions = [
334
319
  // --- 7. Documentation ---
335
320
  {
336
321
  name: "searchDocs",
337
- description: "Search Extentos documentation by topic or keyword. Primary way to learn about the platform. USE to understand how things work. DON'T USE for capability listing (use getPlatformInfo).",
322
+ description: "Search Extentos documentation by topic or keyword. Primary way to learn about the platform — catalog topics (trigger_types, action_types, block_types, stream_types, spec_format, template_syntax, app_callback_guide, library_api) carry inline minimal examples agents can compose against, so most specs can be written without ever fetching a getExampleSpec pattern. Topic IDs are stable; read getting_started first to see the index. USE to understand how a primitive works or how to compose primitives. DON'T USE for the platform capability list (use getPlatformInfo) or for project-installed state (use inspectIntegration).",
338
323
  inputSchema: {
339
324
  type: "object",
340
325
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAiHD,eAAO,MAAM,SAAS,EAAE,QAAQ,EA8S/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuB/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAiHD,eAAO,MAAM,SAAS,EAAE,QAAQ,EAoY/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuB/E"}
@@ -118,35 +118,90 @@ export const DOC_INDEX = [
118
118
  {
119
119
  topic: "getting_started",
120
120
  title: "Getting Started with Extentos",
121
- content: "Extentos lets agents build Meta Ray-Ban apps from a structured spec. Standard tool order: planIntegration → getPlatformInfo → generateConnectionModule → initSpec → generateConsumer(callback) → validateIntegration → createSimulatorSession. The library carries all hardware logic — developer code is a spec file plus thin generated glue (bootstrap + callback dispatch + optional stream consumer) plus handler bodies.",
122
- keywords: ["setup", "start", "first", "begin", "overview", "walkthrough", "tool order", "workflow"],
123
- relatedTools: ["planIntegration", "generateConnectionModule", "initSpec", "getPlatformInfo"],
121
+ content: "Extentos lets agents build Meta Ray-Ban apps from a structured spec. The library carries all hardware logic — developer code is a spec file plus thin generated glue (bootstrap + callback dispatch + optional stream consumer) plus handler bodies. " +
122
+ "Agents plan composition themselves; there is no planning tool. Read the catalog topics below to see what primitives exist, then assemble the smallest spec your goal needs. " +
123
+ "Catalog topics: trigger_types, action_types, block_types, stream_types, spec_format, template_syntax, toggles, app_callback_guide, library_api, voice_ux_guide, permissions, connection_ui_placement. Each has inline minimal examples sufficient for most specs. " +
124
+ "Constraint topics: constraints_and_limitations, audio_video_coexistence, spec_validation_rules. " +
125
+ "Mutation tool sequence (deterministic, in order): " +
126
+ "(1) getPlatformInfo — one call to fetch capability surface and library version. " +
127
+ "(2) generateConnectionModule — one-shot scaffold (bootstrap + dependencies + empty spec). Surfaces a developerInstructions.Step 1 prompt to ask the dev about ExtentosConnectionPage placement; do not skip it. " +
128
+ "(3) initSpec — populate the first real spec from primitives you composed. " +
129
+ "(4) generateConsumer(kind: 'callback') — stub app_callback handlers if your spec uses any. Use kind: 'stream' for stream consumers. " +
130
+ "(5) validateIntegration — pre-test correctness gate. Re-run after every mutation. " +
131
+ "(6) createSimulatorSession — provision a browser simulator session to test end-to-end. " +
132
+ "For changes after step 3: inspectIntegration → updateSpec → generateConsumer (if handlers/streams added) → validateIntegration. " +
133
+ "Reference library: getExampleSpec returns 8 worked patterns (voice_assistant, live_translation, etc.). On-demand only — read it when studying a complex composition. The catalog topics cover the simple cases without it.",
134
+ keywords: ["setup", "start", "first", "begin", "overview", "walkthrough", "tool order", "workflow", "catalog"],
135
+ relatedTools: ["getPlatformInfo", "generateConnectionModule", "initSpec", "searchDocs", "validateIntegration"],
124
136
  },
125
137
  {
126
138
  topic: "block_types",
127
139
  title: "Block Types",
128
- content: "3 blocks: capture_photo (one-shot still), capture_video (bounded clip with duration), record_audio (bounded mic capture). Each returns a URI plus format metadata. Blocks are discrete, bounded operations — continuous media uses streams. Constraints: Meta DAT does not expose live-stream video capture, so capture_video is clip-only.",
140
+ content: "3 blocks: capture_photo (one-shot still), capture_video (bounded clip with duration), record_audio (bounded mic capture). Each returns a URI plus format metadata. Blocks are discrete, bounded operations — continuous media uses streams. Constraints: Meta DAT does not expose live-stream video capture, so capture_video is clip-only.\n\n" +
141
+ "Minimal block declarations (drop straight into spec.blocks[]):\n" +
142
+ ` { "type": "capture_photo", "id": "main_camera", "params": { "resolution": "MEDIUM", "format": "jpeg" } }\n` +
143
+ ` { "type": "capture_video", "id": "main_clip", "params": { "max_duration_seconds": 5, "resolution": "MEDIUM" } }\n` +
144
+ ` { "type": "record_audio", "id": "note_recorder", "params": { "max_duration_seconds": 30, "silence_timeout_seconds": 3, "quality": "standard" } }\n\n` +
145
+ "Invoke from a trigger via the block_call action: " +
146
+ `{ "type": "block_call", "block_id": "main_camera", "save_as": "photo" } — the result is then available as {{photo}} in subsequent actions.`,
129
147
  keywords: ["block", "capture_photo", "capture_video", "record_audio", "photo", "video", "audio", "capture"],
130
148
  relatedTools: ["getPlatformInfo", "initSpec", "updateSpec"],
131
149
  },
132
150
  {
133
151
  topic: "stream_types",
134
152
  title: "Stream Types",
135
- content: "5 streams: video_frames (outbound from glasses camera), audio_chunks (outbound mic), transcription_incremental (STT events), outgoing_video_stream (phone→glasses video), outgoing_audio_stream (phone→glasses audio). Consumption: Kotlin Flow on Android, AsyncStream on iOS. Backpressure via buffering strategy per stream config. Lifecycle: start/stop tied to app foreground; foreground service required on Android 14+.",
153
+ content: "5 streams: video_frames (outbound from glasses camera), audio_chunks (outbound mic), transcription_incremental (STT events), outgoing_video_stream (phone→glasses video), outgoing_audio_stream (phone→glasses audio). Consumption: Kotlin Flow on Android, AsyncStream on iOS. Backpressure via buffering strategy per stream config. Lifecycle: start/stop tied to app foreground; foreground service required on Android 14+.\n\n" +
154
+ "Minimal stream declarations (drop straight into spec.streams[]):\n" +
155
+ ` { "type": "transcription_incremental", "id": "live_transcript", "config": { "language": "en-US" } }\n` +
156
+ ` { "type": "video_frames", "id": "frames", "config": { "resolution": "LOW", "frame_rate": 2, "codec": "hvc1", "backpressure": "drop_oldest" } }\n` +
157
+ ` { "type": "audio_chunks", "id": "mic", "config": { "chunk_millis": 20, "codec": "opus" } }\n\n` +
158
+ "Streams are gated by toggles (transcription_enabled, camera_streaming_enabled, audio_capture_enabled). Set the toggle to start; consumer code lives in ExtentosStreams.{kt,swift} — generate the consumer scaffold via generateConsumer(kind: \"stream\", streams: [...]).",
136
159
  keywords: ["stream", "video_frames", "audio_chunks", "transcription", "flow", "asyncstream", "backpressure", "continuous"],
137
160
  relatedTools: ["getPlatformInfo", "generateConsumer", "getPermissions"],
138
161
  },
139
162
  {
140
163
  topic: "trigger_types",
141
164
  title: "Trigger Types",
142
- content: "13 triggers: voice_command (custom phrase), wake_word, push_to_talk, capture_button, tap, double_tap, manual_launch, phone_notification_forwarded, incoming_call_detected, location_updated, thermal_warning, connection_state_changed, fallback. Payloads vary — voice_command exposes captures dict, tap has position, location_updated has lat/long. Distinct from presets (`fallback_default`, `thermal_throttle`, `disconnect_announce` on initSpec.presetTriggers) which are canned trigger shapes expanded into the spec.",
165
+ content: "13 triggers: voice_command (custom phrase), wake_word, push_to_talk, capture_button, tap, double_tap, manual_launch, phone_notification_forwarded, incoming_call_detected, location_updated, thermal_warning, connection_state_changed, fallback. Payloads vary — voice_command exposes captures dict, tap has position, location_updated has lat/long. Distinct from presets (`fallback_default`, `thermal_throttle`, `disconnect_announce` on initSpec.presetTriggers) which are canned trigger shapes expanded into the spec.\n\n" +
166
+ "Minimal trigger declarations (drop straight into spec.triggers[]). The most common shape — voice phrase invokes app code:\n" +
167
+ ` {\n` +
168
+ ` "type": "voice_command",\n` +
169
+ ` "id": "t_my_phrase",\n` +
170
+ ` "phrase": "do the thing",\n` +
171
+ ` "match_mode": "contains",\n` +
172
+ ` "actions": [\n` +
173
+ ` { "type": "app_callback", "handler": "do_the_thing", "input": {}, "save_as": "result" },\n` +
174
+ ` { "type": "speak_text", "text": "Done." }\n` +
175
+ ` ]\n` +
176
+ ` }\n\n` +
177
+ "Other minimal shapes:\n" +
178
+ ` { "type": "tap", "id": "t_tap", "actions": [...] }\n` +
179
+ ` { "type": "manual_launch", "id": "t_start", "actions": [...] } // fires once on app start\n` +
180
+ ` { "type": "fallback", "id": "t_fallback", "actions": [{ "type": "speak_text", "text": "Sorry, I didn't catch that." }] }\n\n` +
181
+ "voice_command match_mode options: 'exact' | 'starts_with' | 'contains'. Use 'contains' for natural-language flexibility. See voice_ux_guide topic for phrase design rules.",
143
182
  keywords: ["trigger", "voice_command", "tap", "capture_button", "wake_word", "fallback", "notification", "thermal", "preset"],
144
183
  relatedTools: ["getPlatformInfo", "getVoiceCommandGuidance", "updateSpec"],
145
184
  },
146
185
  {
147
186
  topic: "action_types",
148
187
  title: "Action Types",
149
- content: "15 actions inside trigger flows: block_call, stream_start, stream_stop, speak_text, app_callback, set_toggle, set_variable, branch, retry_with_backoff, when_connected, wait, delay, stop_flow, log, emit_event. app_callback routes to host-code handlers for AI / domain logic. Schema permits branch depth ≤ 4; reference-pattern examples keep depth ≤ 1 by convention. retry_with_backoff succeeds when save_as is populated.",
188
+ content: "15 actions inside trigger flows: block_call, stream_start, stream_stop, speak_text, app_callback, set_toggle, set_variable, branch, retry_with_backoff, when_connected, wait, delay, stop_flow, log, emit_event. app_callback routes to host-code handlers for AI / domain logic. Schema permits branch depth ≤ 4; reference-pattern examples keep depth ≤ 1 by convention. retry_with_backoff succeeds when save_as is populated.\n\n" +
189
+ "Minimal action shapes (drop into a trigger's actions[]):\n" +
190
+ ` { "type": "speak_text", "text": "Hello." }\n` +
191
+ ` { "type": "app_callback", "handler": "my_handler", "input": { "key": "{{some_var}}" }, "save_as": "result" }\n` +
192
+ ` { "type": "block_call", "block_id": "main_camera", "save_as": "photo" }\n` +
193
+ ` { "type": "set_toggle", "key": "transcription_enabled", "value": true }\n` +
194
+ ` { "type": "set_variable", "name": "counter", "value": 0 }\n` +
195
+ ` { "type": "log", "level": "info", "message": "fired" }\n\n` +
196
+ "Branch (conditional flow):\n" +
197
+ ` {\n` +
198
+ ` "type": "branch",\n` +
199
+ ` "condition": { "variable": "result.description", "operator": "is_empty" },\n` +
200
+ ` "then": [{ "type": "speak_text", "text": "No result." }],\n` +
201
+ ` "else": [{ "type": "speak_text", "text": "{{result.description}}" }]\n` +
202
+ ` }\n\n` +
203
+ "Branch operators: equals, not_equals, is_empty, not_empty, greater_than, less_than. Variables resolve via {{name}} — see template_syntax topic. " +
204
+ "app_callback is how the spec calls back into the developer's app (the most common shape for any host-app integration: voice phrase → app_callback → app does the thing). Generate the handler stub via generateConsumer(kind: 'callback').",
150
205
  keywords: ["action", "block_call", "app_callback", "branch", "retry", "speak", "set_toggle", "set_variable"],
151
206
  relatedTools: ["updateSpec", "generateConsumer"],
152
207
  },
@@ -160,7 +215,28 @@ export const DOC_INDEX = [
160
215
  {
161
216
  topic: "spec_format",
162
217
  title: "Spec Format",
163
- content: "Top-level: extentos_version ('1.0'), target.vendor ('meta_rayban'), blocks[], streams[], triggers[]. Each block/stream/trigger has a unique id. Triggers declare a type, optional id, and an actions[] array. Spec file lives at app/src/main/assets/extentos.spec.json (Android) or Resources/extentos.spec.json (iOS), byte-identical across platforms.",
218
+ content: "Top-level: extentos_version ('1.0'), target.vendor ('meta_rayban'), blocks[], streams[], triggers[]. Each block/stream/trigger has a unique id. Triggers declare a type, optional id, and an actions[] array. Spec file lives at app/src/main/assets/extentos.spec.json (Android) or Resources/extentos.spec.json (iOS), byte-identical across platforms.\n\n" +
219
+ "Minimal valid spec — voice phrase that calls back into the host app (the smallest useful shape):\n" +
220
+ ` {\n` +
221
+ ` "$schema": "extentos://schema/v1",\n` +
222
+ ` "extentos_version": "1.0",\n` +
223
+ ` "target": { "vendor": "meta_rayban" },\n` +
224
+ ` "blocks": [],\n` +
225
+ ` "streams": [],\n` +
226
+ ` "triggers": [\n` +
227
+ ` {\n` +
228
+ ` "type": "voice_command",\n` +
229
+ ` "id": "t_my_phrase",\n` +
230
+ ` "phrase": "do the thing",\n` +
231
+ ` "match_mode": "contains",\n` +
232
+ ` "actions": [\n` +
233
+ ` { "type": "app_callback", "handler": "do_the_thing", "input": {}, "save_as": "result" },\n` +
234
+ ` { "type": "speak_text", "text": "Done." }\n` +
235
+ ` ]\n` +
236
+ ` }\n` +
237
+ ` ]\n` +
238
+ ` }\n\n` +
239
+ "Add blocks[] entries when capturing photo/video/audio. Add streams[] entries for continuous flows (transcription, video frames). See block_types, stream_types, trigger_types, action_types for inline examples of each.",
164
240
  keywords: ["spec", "format", "structure", "extentos_version", "target", "schema", "top-level"],
165
241
  relatedTools: ["validateSpec", "initSpec", "updateSpec", "inspectIntegration"],
166
242
  },
@@ -202,15 +278,25 @@ export const DOC_INDEX = [
202
278
  {
203
279
  topic: "library_api",
204
280
  title: "Extentos Library API",
205
- content: "ExtentosGlasses is the top-level object, carrying 8 sub-clients: blocks, streams, triggers, toggles, events, extensions, connection, state. ExtentosConfig controls spec source, transport override, appearance theme. Creation: ExtentosGlasses.create() on Android / Extentos.create() on iOS. Register app_callback handlers via glasses.extensions.registerAppCallbackHandler(name, impl).",
206
- keywords: ["library", "api", "extentosglasses", "config", "subclient", "create", "register"],
281
+ content: "ExtentosGlasses is the top-level object, carrying 8 consumer-facing sub-clients (identical on Android and iOS): connection, camera, audio, runtime, toggles, extensions, debug, telemetry. Spec lifecycle lives on `runtime` (loadSpec returns ExtentosResult — pattern-match Ok/Err, do NOT use Kotlin runCatching, which never catches the Err channel since loadSpec never throws). Register app_callback handlers via glasses.extensions.registerAppCallbackHandler(name, impl). ExtentosConfig controls transport override, debug, telemetryConsent, applicationContext (Android), and metaCredentials. Creation: ExtentosGlasses.create() on Android / Extentos.create() on iOS.",
282
+ keywords: ["library", "api", "extentosglasses", "config", "subclient", "create", "register", "runtime", "loadSpec", "ExtentosResult"],
207
283
  relatedTools: ["generateConnectionModule", "generateConsumer"],
208
284
  },
209
285
  {
210
286
  topic: "app_callback_guide",
211
287
  title: "App Callback Handlers",
212
- content: "app_callback routes flow control to native code for AI calls, domain logic, external service access. Register via glasses.extensions.registerAppCallbackHandler(name, impl). AppCall shape: { name, args: {...}, caller: { triggerId, flowId } }. Returning a value populates the flow's save_as variable. Timeouts surface as 'callback.timeout' events.",
213
- keywords: ["app_callback", "callback", "handler", "register", "appcall", "timeout", "byok"],
288
+ content: "app_callback routes flow control from the spec into the developer's native code for AI calls, domain logic (DB writes, file IO, repository ops), or external service access. Register via glasses.extensions.registerAppCallbackHandler(handler). AppCall carries the handler name, the input map declared in the spec's app_callback action, and caller context (triggerId, flowId). Returning AppCallbackResult.Success(value) populates the flow's save_as variable; returning Error short-circuits the flow. Timeouts surface as 'callback.timeout' events.\n\n" +
289
+ "Handler stub generation: call generateConsumer(kind: 'callback', handlers: [...]) → emits ExtentosCallbacks.{kt,swift} with marker-bounded dispatch and a USER-CODE block per handler for your implementation. The bootstrap dispatch region gets a replace_region patch that wires registration.\n\n" +
290
+ "Android handler shape (from generated stub — fill in USER-CODE):\n" +
291
+ " private suspend fun handleDoTheThing(call: AppCall): AppCallbackResult {\n" +
292
+ " // USER-CODE-START:do_the_thing\n" +
293
+ " MyAppRepository.doTheThing()\n" +
294
+ " return AppCallbackResult.Success(buildJsonObject { put(\"ok\", true) })\n" +
295
+ " // USER-CODE-END:do_the_thing\n" +
296
+ " }\n\n" +
297
+ "iOS handler shape: same idea — `private func handleDoTheThing(_ call: AppCall) async -> AppCallbackResult` with USER-CODE markers; return .success(value:) or .error(code:, message:).\n\n" +
298
+ "Generated stubs return an AI-provider TODO comment ONLY when you pass a `suggestedProvider` field to generateConsumer; otherwise the stub gets a generic implementation TODO suitable for non-AI handlers.",
299
+ keywords: ["app_callback", "callback", "handler", "register", "appcall", "timeout", "byok", "user-code"],
214
300
  relatedTools: ["generateConsumer", "getCredentialGuide", "updateSpec"],
215
301
  },
216
302
  {
@@ -288,7 +374,7 @@ export const DOC_INDEX = [
288
374
  title: "Platform Constraints and Limitations",
289
375
  content: "Meta DAT is phone↔glasses — no browser↔glasses. 'Hey Meta' wake word not accessible to third parties. Live video streaming from glasses camera not exposed in current DAT (frames only). Custom gestures beyond tap/double-tap not in preview. Publishing to store is preview-limited; private testing via export is the safe default. iOS SDK: iOS 15.2+, Swift 6 preferred. A2DP/HFP can't run concurrently.",
290
376
  keywords: ["limit", "constraint", "dat", "gap", "wake word", "preview", "unsupported"],
291
- relatedTools: ["getPlatformInfo", "planIntegration"],
377
+ relatedTools: ["getPlatformInfo", "searchDocs"],
292
378
  },
293
379
  {
294
380
  topic: "connection_ui",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,yEAAyE;AACzE,sEAAsE;AACtE,0EAA0E;AAC1E,qEAAqE;AACrE,uBAAuB;AAUvB,2EAA2E;AAC3E,mEAAmE;AACnE,uDAAuD;AACvD,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6JA0G0H,CAAC;AAE9J,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,+BAA+B;QACtC,OAAO,EACL,gaAAga;QACla,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC;QACnG,YAAY,EAAE,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,UAAU,EAAE,iBAAiB,CAAC;KAC7F;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,aAAa;QACpB,OAAO,EACL,6UAA6U;QAC/U,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;QAC3G,YAAY,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,YAAY,CAAC;KAC5D;IACD;QACE,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,OAAO,EACL,kaAAka;QACpa,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC;QAC1H,YAAY,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;KACxE;IACD;QACE,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,OAAO,EACL,kgBAAkgB;QACpgB,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC7H,YAAY,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,YAAY,CAAC;KAC3E;IACD;QACE,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,OAAO,EACL,oaAAoa;QACta,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC;QAC5G,YAAY,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;KACjD;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,kBAAkB;QACzB,OAAO,EACL,yWAAyW;QAC3W,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,CAAC;QACtG,YAAY,EAAE,CAAC,yBAAyB,EAAE,YAAY,CAAC;KACxD;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,aAAa;QACpB,OAAO,EACL,2VAA2V;QAC7V,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC;QAC9F,YAAY,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,CAAC;KAC/E;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EACL,qXAAqX;QACvX,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC;QACzF,YAAY,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC;KACtD;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,0BAA0B;QACjC,OAAO,EACL,kWAAkW;QACpW,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC;QAC7F,YAAY,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;KAC7C;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EACL,0VAA0V;QAC5V,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;QACjG,YAAY,EAAE,CAAC,YAAY,EAAE,yBAAyB,CAAC;KACxD;IACD;QACE,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EACL,wWAAwW;QAC1W,QAAQ,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC;QACrG,YAAY,EAAE,CAAC,oBAAoB,EAAE,aAAa,CAAC;KACpD;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,2BAA2B;QAClC,OAAO,EACL,0VAA0V;QAC5V,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC;QAC/F,YAAY,EAAE,CAAC,YAAY,CAAC;KAC7B;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EACL,gYAAgY;QAClY,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC5F,YAAY,EAAE,CAAC,0BAA0B,EAAE,kBAAkB,CAAC;KAC/D;IACD;QACE,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EACL,2VAA2V;QAC7V,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;QAC3F,YAAY,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,CAAC;KACvE;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EACL,yWAAyW;QAC3W,QAAQ,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC;QAC1F,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;KAC/D;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EACL,uVAAuV;QACzV,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,cAAc,CAAC;QACjG,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EACL,gQAAgQ;QAClQ,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC;QAC7E,YAAY,EAAE,CAAC,wBAAwB,CAAC;KACzC;IACD;QACE,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EACL,gUAAgU;QAClU,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC;QACxF,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,aAAa,CAAC;KAC9E;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,kBAAkB;QACzB,OAAO,EACL,6eAA6e;QAC/e,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC;QACxF,YAAY,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC;KACpD;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EACL,4kBAA4kB;QAC9kB,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC;QACvG,YAAY,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,wBAAwB,CAAC;KAClF;IACD;QACE,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,aAAa;QACpB,OAAO,EACL,8gBAA8gB;QAChhB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,CAAC;QACvG,YAAY,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;KAC/D;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EACL,sYAAsY;QACxY,QAAQ,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QAC1E,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC;KACjF;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EACL,wTAAwT;QAC1T,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;QAChF,YAAY,EAAE,CAAC,YAAY,CAAC;KAC7B;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,+BAA+B;QACtC,OAAO,EACL,+eAA+e;QACjf,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC;QACnG,YAAY,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;KAC5D;IACD;QACE,KAAK,EAAE,6BAA6B;QACpC,KAAK,EAAE,sCAAsC;QAC7C,OAAO,EACL,gZAAgZ;QAClZ,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC;QACtF,YAAY,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;KACrD;IACD;QACE,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,OAAO,EACL,4uBAA4uB;QAC9uB,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,CAAC;QAC5H,YAAY,EAAE,CAAC,0BAA0B,CAAC;KAC3C;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EAAE,0BAA0B;QACnC,QAAQ,EAAE;YACR,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,gBAAgB;YAChB,aAAa;YACb,oBAAoB;YACpB,iBAAiB;YACjB,oBAAoB;YACpB,UAAU;YACV,SAAS;YACT,eAAe;YACf,SAAS;YACT,iBAAiB;YACjB,SAAS;YACT,SAAS;SACV;QACD,YAAY,EAAE,CAAC,0BAA0B,CAAC;KAC3C;IACD;QACE,KAAK,EAAE,6BAA6B;QACpC,KAAK,EAAE,wCAAwC;QAC/C,OAAO,EACL,89BAA89B;QACh+B,QAAQ,EAAE;YACR,WAAW;YACX,WAAW;YACX,UAAU;YACV,UAAU;YACV,WAAW;YACX,kBAAkB;YAClB,kBAAkB;YAClB,SAAS;YACT,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,SAAS;YACT,aAAa;YACb,gBAAgB;YAChB,mBAAmB;SACpB;QACD,YAAY,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,0BAA0B,CAAC;KAC3F;IACD;QACE,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,2CAA2C;QAClD,OAAO,EACL,y5BAAy5B;QAC35B,QAAQ,EAAE;YACR,WAAW;YACX,UAAU;YACV,WAAW;YACX,OAAO;YACP,QAAQ;YACR,cAAc;YACd,aAAa;YACb,OAAO;YACP,WAAW;YACX,aAAa;YACb,KAAK;YACL,yBAAyB;YACzB,WAAW;YACX,UAAU;SACX;QACD,YAAY,EAAE,CAAC,wBAAwB,CAAC;KACzC;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,4CAA4C;QACnD,OAAO,EACL,ijCAAijC;QACnjC,QAAQ,EAAE;YACR,MAAM;YACN,aAAa;YACb,YAAY;YACZ,UAAU;YACV,kBAAkB;YAClB,eAAe;YACf,OAAO;YACP,WAAW;YACX,QAAQ;YACR,cAAc;YACd,WAAW;YACX,QAAQ;YACR,MAAM;YACN,SAAS;SACV;QACD,YAAY,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,CAAC;KAC7D;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,WAAoB;IACjE,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QACvG,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;gBAAE,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,KAAK,IAAI,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;YACtD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,EAAE,KAAK,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;qBACpB,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,KAAK,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,IAAI,WAAW,GAAG,CAAC;gBAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/docs/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSimulatorSession.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/createSimulatorSession.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA2C5E,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CA8IpF"}
1
+ {"version":3,"file":"createSimulatorSession.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/createSimulatorSession.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA2C5E,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAkJpF"}
@@ -107,10 +107,14 @@ export async function handleCreateSimulatorSession(raw) {
107
107
  : `Session ${body.sessionId} ready. Rebuild ${parsed.platform} project to bake URL into the binary.`,
108
108
  };
109
109
  if (parsed.platform === "ios") {
110
- // iOS: still write the plist so the legacy fallback works on re-run
111
- // without an MCP probe. But note attached=true means the running app
112
- // already has this session the plist only matters for the *next*
113
- // build of the project.
110
+ // iOS: when auto-bind attached the device, the running app is already
111
+ // on the new session via the persistent /ws/pending socket writing
112
+ // a plist would baked-in a stale URL on the next clean build, defeats
113
+ // the auto-bind path. Mirror Android's gating: skip the plist + the
114
+ // .gitignore touch when attached === true.
115
+ if (attached) {
116
+ return okResponse(baseResponse);
117
+ }
114
118
  const filePlan = writeSessionFile("ios", parsed.projectPath, sessionValues);
115
119
  const gitignoreResult = ensureGitignore(parsed.projectPath, filePlan.relativePath);
116
120
  return okResponse({