wicked-crew 0.7.34 → 0.7.36

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 (185) hide show
  1. package/dist/api/chat-scope.d.ts +29 -1
  2. package/dist/api/chat-scope.d.ts.map +1 -1
  3. package/dist/api/chat-scope.js +67 -12
  4. package/dist/api/chat-scope.js.map +1 -1
  5. package/dist/api/chat-transcripts.d.ts +60 -0
  6. package/dist/api/chat-transcripts.d.ts.map +1 -0
  7. package/dist/api/chat-transcripts.js +139 -0
  8. package/dist/api/chat-transcripts.js.map +1 -0
  9. package/dist/api/chat-turns.d.ts +43 -4
  10. package/dist/api/chat-turns.d.ts.map +1 -1
  11. package/dist/api/chat-turns.js +73 -6
  12. package/dist/api/chat-turns.js.map +1 -1
  13. package/dist/api/delivery-cache.d.ts +23 -6
  14. package/dist/api/delivery-cache.d.ts.map +1 -1
  15. package/dist/api/delivery-cache.js +27 -17
  16. package/dist/api/delivery-cache.js.map +1 -1
  17. package/dist/api/delivery-index.d.ts +45 -3
  18. package/dist/api/delivery-index.d.ts.map +1 -1
  19. package/dist/api/delivery-index.js +79 -4
  20. package/dist/api/delivery-index.js.map +1 -1
  21. package/dist/api/requirements.d.ts +3 -5
  22. package/dist/api/requirements.d.ts.map +1 -1
  23. package/dist/api/requirements.js +30 -146
  24. package/dist/api/requirements.js.map +1 -1
  25. package/dist/api/retry-index.d.ts +14 -0
  26. package/dist/api/retry-index.d.ts.map +1 -1
  27. package/dist/api/retry-index.js +29 -0
  28. package/dist/api/retry-index.js.map +1 -1
  29. package/dist/api/roster-standing.d.ts +4 -4
  30. package/dist/api/roster-standing.d.ts.map +1 -1
  31. package/dist/api/roster-standing.js +24 -12
  32. package/dist/api/roster-standing.js.map +1 -1
  33. package/dist/api/routes.d.ts +142 -10
  34. package/dist/api/routes.d.ts.map +1 -1
  35. package/dist/api/routes.js +292 -44
  36. package/dist/api/routes.js.map +1 -1
  37. package/dist/api/run-timing-index.d.ts +22 -0
  38. package/dist/api/run-timing-index.d.ts.map +1 -1
  39. package/dist/api/run-timing-index.js +34 -0
  40. package/dist/api/run-timing-index.js.map +1 -1
  41. package/dist/api/seat-health.d.ts +2 -46
  42. package/dist/api/seat-health.d.ts.map +1 -1
  43. package/dist/api/seat-health.js +28 -111
  44. package/dist/api/seat-health.js.map +1 -1
  45. package/dist/api/seat-standing.d.ts +9 -8
  46. package/dist/api/seat-standing.d.ts.map +1 -1
  47. package/dist/api/seat-standing.js +22 -32
  48. package/dist/api/seat-standing.js.map +1 -1
  49. package/dist/api/server.d.ts.map +1 -1
  50. package/dist/api/server.js +114 -12
  51. package/dist/api/server.js.map +1 -1
  52. package/dist/api/skills.d.ts +2 -2
  53. package/dist/api/skills.d.ts.map +1 -1
  54. package/dist/api/skills.js +5 -2
  55. package/dist/api/skills.js.map +1 -1
  56. package/dist/api/stall-frame-index.d.ts +68 -0
  57. package/dist/api/stall-frame-index.d.ts.map +1 -0
  58. package/dist/api/stall-frame-index.js +106 -0
  59. package/dist/api/stall-frame-index.js.map +1 -0
  60. package/dist/api/stall-watchdog.d.ts +22 -2
  61. package/dist/api/stall-watchdog.d.ts.map +1 -1
  62. package/dist/api/stall-watchdog.js +41 -11
  63. package/dist/api/stall-watchdog.js.map +1 -1
  64. package/dist/campaigns/plan.d.ts +12 -2
  65. package/dist/campaigns/plan.d.ts.map +1 -1
  66. package/dist/campaigns/plan.js +3 -0
  67. package/dist/campaigns/plan.js.map +1 -1
  68. package/dist/campaigns/rollup.d.ts +5 -0
  69. package/dist/campaigns/rollup.d.ts.map +1 -1
  70. package/dist/campaigns/rollup.js +3 -2
  71. package/dist/campaigns/rollup.js.map +1 -1
  72. package/dist/campaigns/routes.d.ts +5 -2
  73. package/dist/campaigns/routes.d.ts.map +1 -1
  74. package/dist/campaigns/routes.js +13 -3
  75. package/dist/campaigns/routes.js.map +1 -1
  76. package/dist/cli/index.js +137 -23
  77. package/dist/cli/index.js.map +1 -1
  78. package/dist/cli/port.d.ts +19 -0
  79. package/dist/cli/port.d.ts.map +1 -0
  80. package/dist/cli/port.js +39 -0
  81. package/dist/cli/port.js.map +1 -0
  82. package/dist/core/adapter.d.ts +68 -2
  83. package/dist/core/adapter.d.ts.map +1 -1
  84. package/dist/core/adapter.js +176 -23
  85. package/dist/core/adapter.js.map +1 -1
  86. package/dist/core/bridge-reaper.d.ts +57 -1
  87. package/dist/core/bridge-reaper.d.ts.map +1 -1
  88. package/dist/core/bridge-reaper.js +143 -21
  89. package/dist/core/bridge-reaper.js.map +1 -1
  90. package/dist/core/cursor.d.ts +7 -0
  91. package/dist/core/cursor.d.ts.map +1 -1
  92. package/dist/core/cursor.js +7 -1
  93. package/dist/core/cursor.js.map +1 -1
  94. package/dist/core/deliver-text.d.ts +35 -2
  95. package/dist/core/deliver-text.d.ts.map +1 -1
  96. package/dist/core/deliver-text.js +127 -17
  97. package/dist/core/deliver-text.js.map +1 -1
  98. package/dist/core/deliver-triage.d.ts.map +1 -1
  99. package/dist/core/deliver-triage.js +5 -2
  100. package/dist/core/deliver-triage.js.map +1 -1
  101. package/dist/core/deliver.d.ts +76 -2
  102. package/dist/core/deliver.d.ts.map +1 -1
  103. package/dist/core/deliver.js +209 -16
  104. package/dist/core/deliver.js.map +1 -1
  105. package/dist/core/engine-roster.d.ts +4 -3
  106. package/dist/core/engine-roster.d.ts.map +1 -1
  107. package/dist/core/engine-roster.js +10 -14
  108. package/dist/core/engine-roster.js.map +1 -1
  109. package/dist/core/types.d.ts +30 -0
  110. package/dist/core/types.d.ts.map +1 -1
  111. package/dist/core/types.js +6 -4
  112. package/dist/core/types.js.map +1 -1
  113. package/dist/core/versions.d.ts +17 -0
  114. package/dist/core/versions.d.ts.map +1 -0
  115. package/dist/core/versions.js +35 -0
  116. package/dist/core/versions.js.map +1 -0
  117. package/dist/interactive/bridge-pool.d.ts +66 -14
  118. package/dist/interactive/bridge-pool.d.ts.map +1 -1
  119. package/dist/interactive/bridge-pool.js +130 -17
  120. package/dist/interactive/bridge-pool.js.map +1 -1
  121. package/dist/interactive/bridge-root.d.ts +47 -16
  122. package/dist/interactive/bridge-root.d.ts.map +1 -1
  123. package/dist/interactive/bridge-root.js +102 -31
  124. package/dist/interactive/bridge-root.js.map +1 -1
  125. package/dist/interactive/doc-delete-routes.d.ts +3 -1
  126. package/dist/interactive/doc-delete-routes.d.ts.map +1 -1
  127. package/dist/interactive/doc-delete-routes.js.map +1 -1
  128. package/dist/interactive/doc-list-routes.d.ts +3 -1
  129. package/dist/interactive/doc-list-routes.d.ts.map +1 -1
  130. package/dist/interactive/doc-list-routes.js.map +1 -1
  131. package/dist/interactive/docs-index.d.ts +3 -1
  132. package/dist/interactive/docs-index.d.ts.map +1 -1
  133. package/dist/interactive/docs-index.js +1 -1
  134. package/dist/interactive/docs-index.js.map +1 -1
  135. package/dist/interactive/project-root.d.ts +8 -2
  136. package/dist/interactive/project-root.d.ts.map +1 -1
  137. package/dist/interactive/project-root.js +1 -1
  138. package/dist/interactive/project-root.js.map +1 -1
  139. package/dist/interactive/proxy-routes.d.ts +3 -1
  140. package/dist/interactive/proxy-routes.d.ts.map +1 -1
  141. package/dist/interactive/proxy-routes.js.map +1 -1
  142. package/dist/projects/graph.d.ts +4 -0
  143. package/dist/projects/graph.d.ts.map +1 -1
  144. package/dist/projects/graph.js +4 -2
  145. package/dist/projects/graph.js.map +1 -1
  146. package/dist/projects/routes.d.ts +2 -2
  147. package/dist/projects/state-home-preflight.d.ts +30 -7
  148. package/dist/projects/state-home-preflight.d.ts.map +1 -1
  149. package/dist/projects/state-home-preflight.js +59 -16
  150. package/dist/projects/state-home-preflight.js.map +1 -1
  151. package/dist/projects/state-home-registry.d.ts.map +1 -1
  152. package/dist/projects/state-home-registry.js +2 -0
  153. package/dist/projects/state-home-registry.js.map +1 -1
  154. package/dist/qe/acceptance.d.ts +9 -0
  155. package/dist/qe/acceptance.d.ts.map +1 -1
  156. package/dist/qe/acceptance.js +16 -1
  157. package/dist/qe/acceptance.js.map +1 -1
  158. package/dist/qe/author-workflow.d.ts.map +1 -1
  159. package/dist/qe/author-workflow.js +2 -1
  160. package/dist/qe/author-workflow.js.map +1 -1
  161. package/dist/skills/base-skill.d.ts +32 -10
  162. package/dist/skills/base-skill.d.ts.map +1 -1
  163. package/dist/skills/base-skill.js +36 -27
  164. package/dist/skills/base-skill.js.map +1 -1
  165. package/dist/skills/guards.d.ts.map +1 -1
  166. package/dist/skills/guards.js +3 -0
  167. package/dist/skills/guards.js.map +1 -1
  168. package/dist/skills/runtime.d.ts +9 -5
  169. package/dist/skills/runtime.d.ts.map +1 -1
  170. package/dist/skills/runtime.js +11 -7
  171. package/dist/skills/runtime.js.map +1 -1
  172. package/dist/skills/store.d.ts +30 -0
  173. package/dist/skills/store.d.ts.map +1 -1
  174. package/dist/skills/store.js +159 -3
  175. package/dist/skills/store.js.map +1 -1
  176. package/dist/skills/tree.d.ts +12 -0
  177. package/dist/skills/tree.d.ts.map +1 -1
  178. package/dist/skills/tree.js +26 -0
  179. package/dist/skills/tree.js.map +1 -1
  180. package/dist/studio/assets/index-Dk98qXKv.js +546 -0
  181. package/dist/studio/index.html +1 -1
  182. package/dist/studio/testid-inventory.json +89 -5
  183. package/endpoint-manifest.json +13 -1
  184. package/package.json +4 -4
  185. package/dist/studio/assets/index-DhojBZ1T.js +0 -544
@@ -0,0 +1,17 @@
1
+ /** The three components a crew install is made of; `null` = not present in this install. */
2
+ export interface InstalledVersions {
3
+ /** This package's own version. */
4
+ crew: string;
5
+ /** The wicked-core-ts engine binding resolvable from this install, or `null`. */
6
+ coreTs: string | null;
7
+ /** The studio bundle at `dist/studio`, or `null` for a headless (unbundled) install. */
8
+ studioBundle: string | null;
9
+ }
10
+ /** Read the three versions of THIS install. Pure file reads; no daemon, no socket. */
11
+ export declare function installedVersions(): InstalledVersions;
12
+ /**
13
+ * The lines `wicked-crew --version` prints — one per component, `<name> <version>`, with
14
+ * `unknown` for an unresolvable engine binding and `none` for an unbundled studio.
15
+ */
16
+ export declare function versionLines(v?: InstalledVersions): string[];
17
+ //# sourceMappingURL=versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../src/core/versions.ts"],"names":[],"mappings":"AAgBA,4FAA4F;AAC5F,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wFAAwF;IACxF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,IAAI,iBAAiB,CAMrD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAE,iBAAuC,GAAG,MAAM,EAAE,CAMjF"}
@@ -0,0 +1,35 @@
1
+ // The versions of THIS install, in one place (crew#551 / crew#493, F-RC1-044, F-003 — FIX-IT-ALL
2
+ // L10-1). `wicked-crew --version` prints them; `GET /api/v1/diagnostics.components` reports the
3
+ // same three for the daemon that is actually serving a port — which may be a DIFFERENT install
4
+ // (an `npx wicked-crew` next to a global one, crew#499), so the CLI answer is scoped to the code
5
+ // that is running and never consults a socket.
6
+ //
7
+ // Nothing here is a new reader: the three joins reuse the readers that already existed unjoined —
8
+ // `crewPackageVersion()` (the origin stamp on dead-letter records), `installedPackageVersion()`
9
+ // (the diagnostics route's `components.coreTs`, which walks the resolver's candidate dirs because
10
+ // wicked-core-ts's exports map refuses `require.resolve` on `/package.json`) and
11
+ // `readStudioBundleVersion()` (the bundled studio's `testid-inventory.json`, TH-13) at the root
12
+ // the daemon serves (`defaultStudioRoot()`).
13
+ import { installedPackageVersion, readStudioBundleVersion } from '../api/diagnostics.js';
14
+ import { defaultStudioRoot } from '../api/server.js';
15
+ import { crewPackageVersion } from '../cli/governance.js';
16
+ /** Read the three versions of THIS install. Pure file reads; no daemon, no socket. */
17
+ export function installedVersions() {
18
+ return {
19
+ crew: crewPackageVersion(),
20
+ coreTs: installedPackageVersion('wicked-core-ts'),
21
+ studioBundle: readStudioBundleVersion(defaultStudioRoot()),
22
+ };
23
+ }
24
+ /**
25
+ * The lines `wicked-crew --version` prints — one per component, `<name> <version>`, with
26
+ * `unknown` for an unresolvable engine binding and `none` for an unbundled studio.
27
+ */
28
+ export function versionLines(v = installedVersions()) {
29
+ return [
30
+ `wicked-crew ${v.crew}`,
31
+ `wicked-core-ts ${v.coreTs ?? 'unknown'}`,
32
+ `wicked-studio ${v.studioBundle ?? 'none'}`,
33
+ ];
34
+ }
35
+ //# sourceMappingURL=versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/core/versions.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,gGAAgG;AAChG,+FAA+F;AAC/F,iGAAiG;AACjG,+CAA+C;AAC/C,EAAE;AACF,kGAAkG;AAClG,gGAAgG;AAChG,kGAAkG;AAClG,iFAAiF;AACjF,gGAAgG;AAChG,6CAA6C;AAC7C,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAY1D,sFAAsF;AACtF,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,IAAI,EAAE,kBAAkB,EAAE;QAC1B,MAAM,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;QACjD,YAAY,EAAE,uBAAuB,CAAC,iBAAiB,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAuB,iBAAiB,EAAE;IACrE,OAAO;QACL,eAAe,CAAC,CAAC,IAAI,EAAE;QACvB,kBAAkB,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE;QACzC,iBAAiB,CAAC,CAAC,YAAY,IAAI,MAAM,EAAE;KAC5C,CAAC;AACJ,CAAC"}
@@ -26,9 +26,11 @@
26
26
  * bridge: recording can never fail — or slow down — a proxied request.
27
27
  *
28
28
  * THE SPAWN ENV (acceptance findings F-042 + F-043). The bridge validates and registers a doc's
29
- * project against `WICKED_CREW_API` — defaulting to `http://127.0.0.1:7701` when unset — and emits
30
- * onto the wicked-bus at `WICKED_BUS_DATA_DIR` — defaulting to `~/.something-wicked/wicked-bus`.
31
- * A bridge spawned with the daemon's bare env therefore talked to whatever daemon owned :7701 (a
29
+ * project against `WICKED_CREW_API` — until interactive 0.9.3 defaulting to `http://127.0.0.1:7701`
30
+ * when unset; since 0.9.3 it FAILS CLOSED instead (R-L7-a: binding, picker and the runs probe are
31
+ * off and name the variable) — and emits onto the wicked-bus at `WICKED_BUS_DATA_DIR`, defaulting
32
+ * to `~/.something-wicked/wicked-bus`. A bridge spawned with the daemon's bare env therefore talked
33
+ * to whatever daemon owned :7701 (a
32
34
  * daemon on any other port could not create a single project-bound document) and shared ONE bus
33
35
  * with every other daemon on the host (two daemons' durable cursors racing for one `doc.created`).
34
36
  * So the spawn now exports BOTH: `WICKED_CREW_API` = this daemon's own bound origin, and
@@ -48,6 +50,15 @@
48
50
  * (`npx` → shell → node), it must differ from the pid just recycled, and a bridge whose lineage
49
51
  * cannot be read is used but never written into the sidecar. A sidecar entry is a claim of
50
52
  * ownership that licenses a later kill, so it is only ever written for a pid this daemon spawned.
53
+ *
54
+ * LIFETIME (F-W1-103, FIX-IT-ALL wave 1): a crew-spawned bridge lives exactly as long as a crew
55
+ * daemon OWNS it — adopt-or-kill, never leak. The sidecar's `ownerPid` + `ownerStartedAt` is that
56
+ * daemon — one process incarnation, so a recycled pid never reads as a live owner — the spawner, or
57
+ * the daemon that last adopted the bridge (adoption stamps the adopter). The daemon's shutdown
58
+ * reaps the bridges it spawned (the npm wrapper AND its server child), and every daemon's boot and
59
+ * periodic sweeps reap a bridge tree reparented to init whose sidecar owner is gone
60
+ * (`core/bridge-reaper.ts`). Two bridges on ports nothing would ever look up again, ~20 h after
61
+ * their daemon exited, were the finding.
51
62
  */
52
63
  import { type ChildProcess } from 'node:child_process';
53
64
  import type { AddressInfo } from 'node:net';
@@ -61,11 +72,11 @@ export declare const RECYCLE_HARD_MS = 1000;
61
72
  /** Parent hops walked when proving a lockfile pid descends from the child this daemon spawned. */
62
73
  export declare const LINEAGE_MAX_HOPS = 16;
63
74
  /** The range crew needs when nothing overrides it (see F-081 above). */
64
- export declare const INTERACTIVE_DEFAULT_RANGE = "^0.9.2";
75
+ export declare const INTERACTIVE_DEFAULT_RANGE = "^0.9.3";
65
76
  /** The env override of the RANGE (not the package). */
66
77
  export declare const INTERACTIVE_SPEC_ENV = "WICKED_INTERACTIVE_SPEC";
67
78
  /** The default spec — what the daemon spawns with no override. */
68
- export declare const INTERACTIVE_SPEC = "wicked-interactive@^0.9.2";
79
+ export declare const INTERACTIVE_SPEC = "wicked-interactive@^0.9.3";
69
80
  /** A semver RANGE this daemon will resolve: one comparator, or a space-separated intersection of
70
81
  * them (`>=0.9.1 <1.0.0`). Tags (`latest`), `x`-ranges, `||` unions, paths and `pkg@range` spellings
71
82
  * are refused — the override names a floor within the package, nothing else. */
@@ -106,13 +117,17 @@ export declare class BridgeUnavailableError extends Error {
106
117
  readonly hint: string;
107
118
  constructor(message: string, hint: string);
108
119
  }
109
- /** The two variables crew hands the bridge it spawns (F-042/F-043). Absent = not set — the bridge
110
- * falls back to its own defaults, which is exactly the pre-fix behavior this exists to end. */
120
+ /** The three variables crew hands the bridge it spawns (F-042/F-043, BC-50). Absent = not set —
121
+ * the bridge falls back to its own defaults, which is exactly the pre-fix behavior this exists to
122
+ * end (since interactive 0.9.3 an unset `WICKED_CREW_API` fails CLOSED there — R-L7-a). */
111
123
  export interface BridgeEnv {
112
124
  /** The daemon's own origin — where the bridge validates/registers project bindings. */
113
125
  WICKED_CREW_API?: string;
114
126
  /** The directory holding the `bus.db` this daemon's interactive seams read. */
115
127
  WICKED_BUS_DATA_DIR?: string;
128
+ /** Where the recorder's Playwright browser is provisioned AND looked for:
129
+ * `<state home>/interactive/recorder-browsers` (BC-50 / R-L7-d), never the global cache. */
130
+ PLAYWRIGHT_BROWSERS_PATH?: string;
116
131
  }
117
132
  /** What crew writes beside the lockfile after IT starts a bridge. */
118
133
  export interface CrewSidecar {
@@ -121,9 +136,15 @@ export interface CrewSidecar {
121
136
  env: BridgeEnv;
122
137
  startedBy: 'wicked-crew';
123
138
  startedAt: string;
124
- /** The DAEMON that spawned it. A bridge whose owner is still alive is that daemon's to stop —
125
- * never this one's (codex on crew#506). */
139
+ /** The DAEMON that owns it: the spawner, or the daemon that last ADOPTED it (F-W1-103 — adoption
140
+ * stamps the adopter, so the orphan sweeps see a bridge in use). A bridge whose owner is still
141
+ * alive is that daemon's to stop — never this one's (codex on crew#506). */
126
142
  ownerPid?: number;
143
+ /** The owner's process start time as the process table reports it ({@link processStartedAt}), so
144
+ * `ownerPid` names ONE incarnation of that pid: a recycled pid reads as "owner gone" instead of
145
+ * keeping the bridge alive for as long as the pid stays taken (crew #606 review, MED-2). Absent
146
+ * on a sidecar written before this field existed — pid liveness is all those can be checked by. */
147
+ ownerStartedAt?: string;
127
148
  }
128
149
  /** Injectable IO — the integration suite substitutes a fake bridge for the real `npx` spawn. */
129
150
  export interface BridgePoolIo {
@@ -159,10 +180,13 @@ export interface BridgePoolIo {
159
180
  */
160
181
  busDataDir?: string | null;
161
182
  }
162
- /** The {@link BridgeEnv} this pool hands a bridge it starts, from its io. Only DEFINED values ride. */
183
+ /** The {@link BridgeEnv} this pool hands a bridge it starts, from its io. Only DEFINED values ride;
184
+ * the browsers path always does — it is crew's placement, under the daemon's own state home. */
163
185
  export declare function bridgeEnvFor(io: Pick<BridgePoolIo, 'studioOrigin' | 'busDataDir'>): BridgeEnv;
164
186
  export { busDataDirOf } from './bus-location.js';
165
- /** `true` when two bridge envs agree on every variable either one sets. */
187
+ /** `true` when two bridge envs agree on every variable either one sets. A sidecar written before
188
+ * the browsers-path key existed (crew ≤ 0.7.34) does NOT match — that mismatch is the recycle
189
+ * that carries a live bridge onto interactive 0.9.3 (see the 0.9.3 note above). */
166
190
  export declare function bridgeEnvMatches(a: BridgeEnv, b: BridgeEnv): boolean;
167
191
  /** `<root>/.wi-serve.crew.json`, or null when absent/unparseable/incomplete. */
168
192
  export declare function readCrewSidecar(root: string): CrewSidecar | null;
@@ -176,6 +200,28 @@ export declare function boundOrigin(addr: AddressInfo | string | null): string |
176
200
  export declare function readLock(root: string): LiveBridge | null;
177
201
  /** Signal 0 probes existence without delivering: EPERM means alive-but-not-ours. */
178
202
  export declare function pidAlive(pid: number): boolean;
203
+ /**
204
+ * The start time of `pid` as the process table reports it, or null when it cannot be read. Together
205
+ * with the pid it identifies ONE process incarnation — a recycled pid has a different start — which
206
+ * is what a sidecar's `ownerPid` needs to mean "that daemon" on a host that stays up for weeks.
207
+ * POSIX asks `ps -o lstart=` (the same spelling on macOS and procps); Windows asks CIM. Read once
208
+ * per bridge start / adoption and once per orphan candidate — never on a hot path.
209
+ */
210
+ export declare function processStartedAt(pid: number): string | null;
211
+ /** This daemon's own start time, read once — what it writes into every sidecar it owns. */
212
+ export declare function daemonStartedAt(): string | null;
213
+ /**
214
+ * Is the daemon a sidecar names as owner still THAT daemon? Alive means the pid is in the table AND,
215
+ * when the sidecar recorded the owner's start time, the pid's start time today is the same one — a
216
+ * recycled pid is "owner gone" (crew #606 review, MED-2). A sidecar without `ownerStartedAt` can only
217
+ * be checked by pid (disclosed gap); an UNREADABLE start time today reads as alive — a possibly-live
218
+ * daemon's bridge is never treated as reapable on uncertainty. No owner at all is "not alive".
219
+ * `io` is for tests (a fake table); production uses the real one.
220
+ */
221
+ export declare function ownerAlive(sidecar: Pick<CrewSidecar, 'ownerPid' | 'ownerStartedAt'>, io?: {
222
+ alive?: (pid: number) => boolean;
223
+ startedAt?: (pid: number) => string | null;
224
+ }): boolean;
179
225
  /**
180
226
  * The parent pid of `pid`, or null when it cannot be read (no such process, no `ps` / PowerShell,
181
227
  * an unparseable answer). POSIX asks `ps`; Windows asks CIM. Only consulted once per bridge start.
@@ -206,9 +252,11 @@ export declare class InteractiveBridgePool {
206
252
  private resolveOrStart;
207
253
  /**
208
254
  * A live bridge was found through the lockfile. Is it one THIS daemon can use (F-042/F-043)?
209
- * - crew's sidecar names this pid and its env matches ours → adopt silently;
210
- * - the sidecar names this pid with a DIFFERENT env: if the daemon that spawned it (`ownerPid`)
211
- * is STILL ALIVE, the bridge is that daemon's — two daemons sharing one docs root — and this
255
+ * - crew's sidecar names this pid and its env matches ours → adopt silently, and stamp THIS
256
+ * daemon as its owner (F-W1-103) so the reaper's orphan sweeps — which reap a crew bridge whose
257
+ * owner daemon is gone — see it in use for as long as this daemon lives;
258
+ * - the sidecar names this pid with a DIFFERENT env: if the daemon that owns it (`ownerPid`, the
259
+ * SAME incarnation — pid and start time, {@link ownerAlive}) is STILL ALIVE, the bridge is that daemon's — two daemons sharing one docs root — and this
212
260
  * one must not kill it mid-create (codex on crew#506): refuse with a `BridgeUnavailableError`
213
261
  * naming the owner and the fix (give this daemon its own interactive root). Only a bridge
214
262
  * whose owner is gone (a previous daemon that exited, or this very process after a
@@ -247,6 +295,10 @@ export declare class InteractiveBridgePool {
247
295
  * but NOT recorded — a sidecar is a claim of ownership, and only a pid this daemon spawned earns it.
248
296
  */
249
297
  private start;
298
+ /** Adopting a crew-started bridge makes THIS daemon its owner (F-W1-103): rewrite the sidecar's
299
+ * `ownerPid` — pid, env and `startedAt` untouched — so the orphan sweeps, which reap a crew
300
+ * bridge whose owner daemon is gone, see it in use. Best-effort, like {@link writeSidecar}. */
301
+ private claimSidecar;
250
302
  /** Record which pid crew started and with which env, so a later adopt can tell ours from a
251
303
  * sibling daemon's (see {@link adoptOrRecycle}). Only ever called for a pid whose lineage from
252
304
  * this daemon's own spawn is PROVEN (see {@link start}). Best-effort: an unwritable sidecar only
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-pool.d.ts","sourceRoot":"","sources":["../../src/interactive/bridge-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-pool.d.ts","sourceRoot":"","sources":["../../src/interactive/bridge-pool.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,11 @@
26
26
  * bridge: recording can never fail — or slow down — a proxied request.
27
27
  *
28
28
  * THE SPAWN ENV (acceptance findings F-042 + F-043). The bridge validates and registers a doc's
29
- * project against `WICKED_CREW_API` — defaulting to `http://127.0.0.1:7701` when unset — and emits
30
- * onto the wicked-bus at `WICKED_BUS_DATA_DIR` — defaulting to `~/.something-wicked/wicked-bus`.
31
- * A bridge spawned with the daemon's bare env therefore talked to whatever daemon owned :7701 (a
29
+ * project against `WICKED_CREW_API` — until interactive 0.9.3 defaulting to `http://127.0.0.1:7701`
30
+ * when unset; since 0.9.3 it FAILS CLOSED instead (R-L7-a: binding, picker and the runs probe are
31
+ * off and name the variable) — and emits onto the wicked-bus at `WICKED_BUS_DATA_DIR`, defaulting
32
+ * to `~/.something-wicked/wicked-bus`. A bridge spawned with the daemon's bare env therefore talked
33
+ * to whatever daemon owned :7701 (a
32
34
  * daemon on any other port could not create a single project-bound document) and shared ONE bus
33
35
  * with every other daemon on the host (two daemons' durable cursors racing for one `doc.created`).
34
36
  * So the spawn now exports BOTH: `WICKED_CREW_API` = this daemon's own bound origin, and
@@ -48,11 +50,21 @@
48
50
  * (`npx` → shell → node), it must differ from the pid just recycled, and a bridge whose lineage
49
51
  * cannot be read is used but never written into the sidecar. A sidecar entry is a claim of
50
52
  * ownership that licenses a later kill, so it is only ever written for a pid this daemon spawned.
53
+ *
54
+ * LIFETIME (F-W1-103, FIX-IT-ALL wave 1): a crew-spawned bridge lives exactly as long as a crew
55
+ * daemon OWNS it — adopt-or-kill, never leak. The sidecar's `ownerPid` + `ownerStartedAt` is that
56
+ * daemon — one process incarnation, so a recycled pid never reads as a live owner — the spawner, or
57
+ * the daemon that last adopted the bridge (adoption stamps the adopter). The daemon's shutdown
58
+ * reaps the bridges it spawned (the npm wrapper AND its server child), and every daemon's boot and
59
+ * periodic sweeps reap a bridge tree reparented to init whose sidecar owner is gone
60
+ * (`core/bridge-reaper.ts`). Two bridges on ports nothing would ever look up again, ~20 h after
61
+ * their daemon exited, were the finding.
51
62
  */
52
63
  import { spawn as nodeSpawn, spawnSync } from 'node:child_process';
53
64
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
54
65
  import { join, resolve } from 'node:path';
55
66
  import { childEnvWithBootEstateDb } from '../core/governance-store.js';
67
+ import { recorderBrowsersPath } from './bridge-root.js';
56
68
  export const LOCK_NAME = '.wi-serve.json';
57
69
  /** Crew's sidecar beside the bridge's lockfile: which pid crew started, and with which env (F-042/F-043). */
58
70
  export const CREW_SIDECAR_NAME = '.wi-serve.crew.json';
@@ -109,11 +121,21 @@ export const LINEAGE_MAX_HOPS = 16;
109
121
  * the recorder snapshot, and `wicked-interactive doctor [--install]` is the operator remedy. A 0.9.1
110
122
  * bridge answers the same routes WITHOUT the typed frames, so a daemon pinned back through
111
123
  * `WICKED_INTERACTIVE_SPEC` gets the boot warning and an untyped thread on recorder failure.
124
+ *
125
+ * 0.9.3 (wicked-interactive #229 — FIX-IT-ALL L7-I1, F-RC1-120/121/122): the floor follows 0.9.3
126
+ * because the bridge's BUS IDENTITY is now per served root (`wi-service-*@<h8>`) — two bridges on
127
+ * one bus db no longer share a cursor, so a project partition's `demo.requested` is never drained
128
+ * (and silently acked) by the default root's bridge; a frame for a doc outside a bridge's root is
129
+ * refused loudly (`/api/health.unknown_doc_refused`, `plugin`). It also fails CLOSED on an unset
130
+ * `WICKED_CREW_API` (crew always sets it) and its remedies carry `PLAYWRIGHT_BROWSERS_PATH` — the
131
+ * third {@link BridgeEnv} key this pool now hands every bridge, which is ALSO the rollout vehicle:
132
+ * a running 0.9.2 bridge's sidecar lacks the key, {@link bridgeEnvMatches} says no, and the pool
133
+ * recycles it into `npx wicked-interactive@^0.9.3`.
112
134
  */
113
135
  /** The package crew starts as the interactive bridge — named in CODE exactly once. */
114
136
  const INTERACTIVE_PACKAGE = 'wicked-interactive';
115
137
  /** The range crew needs when nothing overrides it (see F-081 above). */
116
- export const INTERACTIVE_DEFAULT_RANGE = '^0.9.2';
138
+ export const INTERACTIVE_DEFAULT_RANGE = '^0.9.3';
117
139
  /** The env override of the RANGE (not the package). */
118
140
  export const INTERACTIVE_SPEC_ENV = 'WICKED_INTERACTIVE_SPEC';
119
141
  /** The default spec — what the daemon spawns with no override. */
@@ -182,19 +204,25 @@ export class BridgeUnavailableError extends Error {
182
204
  function serveCommand(root) {
183
205
  return `npx ${interactiveSpec()} serve --root ${root}`;
184
206
  }
185
- /** The {@link BridgeEnv} this pool hands a bridge it starts, from its io. Only DEFINED values ride. */
207
+ /** The {@link BridgeEnv} this pool hands a bridge it starts, from its io. Only DEFINED values ride;
208
+ * the browsers path always does — it is crew's placement, under the daemon's own state home. */
186
209
  export function bridgeEnvFor(io) {
187
210
  const origin = io.studioOrigin?.() ?? null;
188
211
  const busDir = io.busDataDir ?? null;
189
212
  return {
190
213
  ...(origin !== null ? { WICKED_CREW_API: origin } : {}),
191
214
  ...(busDir !== null ? { WICKED_BUS_DATA_DIR: busDir } : {}),
215
+ PLAYWRIGHT_BROWSERS_PATH: recorderBrowsersPath(),
192
216
  };
193
217
  }
194
218
  export { busDataDirOf } from './bus-location.js';
195
- /** `true` when two bridge envs agree on every variable either one sets. */
219
+ /** `true` when two bridge envs agree on every variable either one sets. A sidecar written before
220
+ * the browsers-path key existed (crew ≤ 0.7.34) does NOT match — that mismatch is the recycle
221
+ * that carries a live bridge onto interactive 0.9.3 (see the 0.9.3 note above). */
196
222
  export function bridgeEnvMatches(a, b) {
197
- return a.WICKED_CREW_API === b.WICKED_CREW_API && a.WICKED_BUS_DATA_DIR === b.WICKED_BUS_DATA_DIR;
223
+ return (a.WICKED_CREW_API === b.WICKED_CREW_API &&
224
+ a.WICKED_BUS_DATA_DIR === b.WICKED_BUS_DATA_DIR &&
225
+ a.PLAYWRIGHT_BROWSERS_PATH === b.PLAYWRIGHT_BROWSERS_PATH);
198
226
  }
199
227
  /** `<root>/.wi-serve.crew.json`, or null when absent/unparseable/incomplete. */
200
228
  export function readCrewSidecar(root) {
@@ -205,6 +233,7 @@ export function readCrewSidecar(root) {
205
233
  const env = {
206
234
  ...(typeof raw.env.WICKED_CREW_API === 'string' ? { WICKED_CREW_API: raw.env.WICKED_CREW_API } : {}),
207
235
  ...(typeof raw.env.WICKED_BUS_DATA_DIR === 'string' ? { WICKED_BUS_DATA_DIR: raw.env.WICKED_BUS_DATA_DIR } : {}),
236
+ ...(typeof raw.env.PLAYWRIGHT_BROWSERS_PATH === 'string' ? { PLAYWRIGHT_BROWSERS_PATH: raw.env.PLAYWRIGHT_BROWSERS_PATH } : {}),
208
237
  };
209
238
  return {
210
239
  pid: raw.pid,
@@ -212,6 +241,7 @@ export function readCrewSidecar(root) {
212
241
  startedBy: 'wicked-crew',
213
242
  startedAt: typeof raw.startedAt === 'string' ? raw.startedAt : '',
214
243
  ...(typeof raw.ownerPid === 'number' ? { ownerPid: raw.ownerPid } : {}),
244
+ ...(typeof raw.ownerStartedAt === 'string' ? { ownerStartedAt: raw.ownerStartedAt } : {}),
215
245
  };
216
246
  }
217
247
  catch {
@@ -261,6 +291,66 @@ export function pidAlive(pid) {
261
291
  return err.code === 'EPERM';
262
292
  }
263
293
  }
294
+ /**
295
+ * The start time of `pid` as the process table reports it, or null when it cannot be read. Together
296
+ * with the pid it identifies ONE process incarnation — a recycled pid has a different start — which
297
+ * is what a sidecar's `ownerPid` needs to mean "that daemon" on a host that stays up for weeks.
298
+ * POSIX asks `ps -o lstart=` (the same spelling on macOS and procps); Windows asks CIM. Read once
299
+ * per bridge start / adoption and once per orphan candidate — never on a hot path.
300
+ */
301
+ export function processStartedAt(pid) {
302
+ if (!Number.isInteger(pid) || pid <= 0)
303
+ return null;
304
+ try {
305
+ const res = process.platform === 'win32'
306
+ ? spawnSync('powershell', [
307
+ '-NoProfile',
308
+ '-NonInteractive',
309
+ '-Command',
310
+ `(Get-CimInstance Win32_Process -Filter "ProcessId=${pid}").CreationDate.ToUniversalTime().ToString('o')`,
311
+ ], { encoding: 'utf8', timeout: 5000, windowsHide: true, env: childEnvWithBootEstateDb() })
312
+ : spawnSync('ps', ['-o', 'lstart=', '-p', String(pid)], { encoding: 'utf8', timeout: 5000, env: childEnvWithBootEstateDb() });
313
+ if (res.error || res.status !== 0)
314
+ return null;
315
+ const out = String(res.stdout).trim();
316
+ return out === '' ? null : out;
317
+ }
318
+ catch {
319
+ return null;
320
+ }
321
+ }
322
+ let ownStartedAt;
323
+ /** This daemon's own start time, read once — what it writes into every sidecar it owns. */
324
+ export function daemonStartedAt() {
325
+ if (ownStartedAt === undefined)
326
+ ownStartedAt = processStartedAt(process.pid);
327
+ return ownStartedAt;
328
+ }
329
+ /** The owner identity this daemon stamps into a sidecar it spawns or adopts: its pid, and its start
330
+ * time when the process table gave one. */
331
+ function ownerIdentity() {
332
+ const started = daemonStartedAt();
333
+ return { ownerPid: process.pid, ...(started !== null ? { ownerStartedAt: started } : {}) };
334
+ }
335
+ /**
336
+ * Is the daemon a sidecar names as owner still THAT daemon? Alive means the pid is in the table AND,
337
+ * when the sidecar recorded the owner's start time, the pid's start time today is the same one — a
338
+ * recycled pid is "owner gone" (crew #606 review, MED-2). A sidecar without `ownerStartedAt` can only
339
+ * be checked by pid (disclosed gap); an UNREADABLE start time today reads as alive — a possibly-live
340
+ * daemon's bridge is never treated as reapable on uncertainty. No owner at all is "not alive".
341
+ * `io` is for tests (a fake table); production uses the real one.
342
+ */
343
+ export function ownerAlive(sidecar, io = {}) {
344
+ const owner = sidecar.ownerPid;
345
+ if (owner === undefined || !Number.isInteger(owner) || owner <= 0)
346
+ return false;
347
+ if (!(io.alive ?? pidAlive)(owner))
348
+ return false;
349
+ if (sidecar.ownerStartedAt === undefined)
350
+ return true;
351
+ const now = (io.startedAt ?? processStartedAt)(owner);
352
+ return now === null || now === sidecar.ownerStartedAt;
353
+ }
264
354
  /**
265
355
  * The parent pid of `pid`, or null when it cannot be read (no such process, no `ps` / PowerShell,
266
356
  * an unparseable answer). POSIX asks `ps`; Windows asks CIM. Only consulted once per bridge start.
@@ -366,9 +456,11 @@ export class InteractiveBridgePool {
366
456
  }
367
457
  /**
368
458
  * A live bridge was found through the lockfile. Is it one THIS daemon can use (F-042/F-043)?
369
- * - crew's sidecar names this pid and its env matches ours → adopt silently;
370
- * - the sidecar names this pid with a DIFFERENT env: if the daemon that spawned it (`ownerPid`)
371
- * is STILL ALIVE, the bridge is that daemon's — two daemons sharing one docs root — and this
459
+ * - crew's sidecar names this pid and its env matches ours → adopt silently, and stamp THIS
460
+ * daemon as its owner (F-W1-103) so the reaper's orphan sweeps — which reap a crew bridge whose
461
+ * owner daemon is gone — see it in use for as long as this daemon lives;
462
+ * - the sidecar names this pid with a DIFFERENT env: if the daemon that owns it (`ownerPid`, the
463
+ * SAME incarnation — pid and start time, {@link ownerAlive}) is STILL ALIVE, the bridge is that daemon's — two daemons sharing one docs root — and this
372
464
  * one must not kill it mid-create (codex on crew#506): refuse with a `BridgeUnavailableError`
373
465
  * naming the owner and the fix (give this daemon its own interactive root). Only a bridge
374
466
  * whose owner is gone (a previous daemon that exited, or this very process after a
@@ -381,8 +473,10 @@ export class InteractiveBridgePool {
381
473
  const expected = bridgeEnvFor(this.io);
382
474
  const sidecar = readCrewSidecar(root);
383
475
  if (sidecar !== null && sidecar.pid === live.pid) {
384
- if (bridgeEnvMatches(sidecar.env, expected))
476
+ if (bridgeEnvMatches(sidecar.env, expected)) {
477
+ this.claimSidecar(root, sidecar);
385
478
  return live;
479
+ }
386
480
  const owner = sidecar.ownerPid;
387
481
  const ownerOrigin = sidecar.env.WICKED_CREW_API ?? '(unknown origin)';
388
482
  if (owner === undefined || !Number.isInteger(owner) || owner <= 0) {
@@ -394,7 +488,7 @@ export class InteractiveBridgePool {
394
488
  `(${ownerOrigin}) by a daemon this one cannot identify`, `stop it yourself (kill ${live.pid}) if no other crew daemon is using it, or give this daemon its own ` +
395
489
  `interactive root (WICKED_INTERACTIVE_ROOT, or the project's interactiveRoot setting); the next request starts a bridge for this one`);
396
490
  }
397
- if (owner !== process.pid && pidAlive(owner)) {
491
+ if (owner !== process.pid && ownerAlive(sidecar)) {
398
492
  this.io.log?.(`interactive bridge pid ${live.pid} for ${root} belongs to another live crew daemon (pid ${owner}, ` +
399
493
  `${ownerOrigin}) with ${describeEnv(sidecar.env)}; this daemon needs ${describeEnv(expected)} — NOT ` +
400
494
  `recycling a bridge another daemon owns`);
@@ -541,8 +635,10 @@ export class InteractiveBridgePool {
541
635
  const env = { ...childEnvWithBootEstateDb(), ...bridgeEnv };
542
636
  const child = (this.io.spawn ?? defaultSpawn)(root, env);
543
637
  const childPid = child.pid; // undefined when the spawn failed synchronously — its 'error' follows
544
- // Detached + unref: the bridge is a SHARED instance keyed by root, so it must outlive the
545
- // daemon that happened to start it (and be adoptable by the next one via the lockfile).
638
+ // Detached + unref: the bridge is keyed by root and adoptable through its lockfile, so the
639
+ // daemon never holds it as an awaited handle. It does NOT outlive crew (F-W1-103): the daemon's
640
+ // shutdown reaps the wrapper and its server child, and a daemon that dies too hard for that
641
+ // leaves a sidecar whose owner is gone — the next boot sweep reaps it (`core/bridge-reaper.ts`).
546
642
  child.on('error', (err) => {
547
643
  spawnFailure = err.message;
548
644
  });
@@ -592,12 +688,28 @@ export class InteractiveBridgePool {
592
688
  this.io.log?.(`interactive bridge for ${root} did not come up within the start budget`);
593
689
  throw new BridgeUnavailableError(`the interactive bridge for ${root} did not become healthy in time`, `run \`${serveCommand(root)}\` in a terminal to see the failure (or check ${join(root, '.wi-serve.log')})`);
594
690
  }
691
+ /** Adopting a crew-started bridge makes THIS daemon its owner (F-W1-103): rewrite the sidecar's
692
+ * `ownerPid` — pid, env and `startedAt` untouched — so the orphan sweeps, which reap a crew
693
+ * bridge whose owner daemon is gone, see it in use. Best-effort, like {@link writeSidecar}. */
694
+ claimSidecar(root, sidecar) {
695
+ const mine = ownerIdentity();
696
+ if (sidecar.ownerPid === mine.ownerPid && sidecar.ownerStartedAt === mine.ownerStartedAt)
697
+ return;
698
+ // What crew recorded at the spawn stays; only the owner identity changes hands.
699
+ const recorded = { pid: sidecar.pid, env: sidecar.env, startedBy: sidecar.startedBy, startedAt: sidecar.startedAt };
700
+ try {
701
+ writeFileSync(join(root, CREW_SIDECAR_NAME), JSON.stringify({ ...recorded, ...mine }, null, 2), 'utf8');
702
+ }
703
+ catch (err) {
704
+ this.io.debug?.(`could not claim ${CREW_SIDECAR_NAME} in ${root}: ${err.message}`);
705
+ }
706
+ }
595
707
  /** Record which pid crew started and with which env, so a later adopt can tell ours from a
596
708
  * sibling daemon's (see {@link adoptOrRecycle}). Only ever called for a pid whose lineage from
597
709
  * this daemon's own spawn is PROVEN (see {@link start}). Best-effort: an unwritable sidecar only
598
710
  * costs the adopt-time check, never the start. */
599
711
  writeSidecar(root, pid, env) {
600
- const sidecar = { pid, env, startedBy: 'wicked-crew', startedAt: new Date().toISOString(), ownerPid: process.pid };
712
+ const sidecar = { pid, env, startedBy: 'wicked-crew', startedAt: new Date().toISOString(), ...ownerIdentity() };
601
713
  try {
602
714
  writeFileSync(join(root, CREW_SIDECAR_NAME), JSON.stringify(sidecar, null, 2), 'utf8');
603
715
  }
@@ -606,8 +718,9 @@ export class InteractiveBridgePool {
606
718
  }
607
719
  }
608
720
  }
609
- /** `npx wicked-interactive serve` in `<root>`, detached, output to the bridge's own log, with the
610
- * env the pool computed (the daemon's own plus {@link BridgeEnv}). */
721
+ /** `npx wicked-interactive serve` in `<root>`, detached, stdio IGNORED (the bridge's own stdout/
722
+ * stderr — its `bus identity` and refusal lines — are discarded here; `GET /api/health` is the
723
+ * observable), with the env the pool computed (the daemon's own plus {@link BridgeEnv}). */
611
724
  function defaultSpawn(root, env) {
612
725
  // `--yes` is load-bearing: without it npx PROMPTS when the package is not installed, and a
613
726
  // daemon has no tty to answer with — the request would hang instead of failing to a 503.
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-pool.js","sourceRoot":"","sources":["../../src/interactive/bridge-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-pool.js","sourceRoot":"","sources":["../../src/interactive/bridge-pool.ts"],"names":[],"mappings":"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"}