wicked-crew 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/api/capture.d.ts +2 -2
  2. package/dist/api/delivery-assurance.d.ts +1 -6
  3. package/dist/api/delivery-assurance.d.ts.map +1 -1
  4. package/dist/api/delivery-assurance.js +4 -14
  5. package/dist/api/delivery-assurance.js.map +1 -1
  6. package/dist/api/governance-steering.d.ts +2 -2
  7. package/dist/api/mcp.d.ts +4 -4
  8. package/dist/api/recording.d.ts +29 -3
  9. package/dist/api/recording.d.ts.map +1 -1
  10. package/dist/api/recording.js +188 -0
  11. package/dist/api/recording.js.map +1 -1
  12. package/dist/api/roster-standing.d.ts +3 -2
  13. package/dist/api/roster-standing.d.ts.map +1 -1
  14. package/dist/api/roster-standing.js +3 -1
  15. package/dist/api/roster-standing.js.map +1 -1
  16. package/dist/api/routes.d.ts +112 -112
  17. package/dist/api/routes.d.ts.map +1 -1
  18. package/dist/api/routes.js +66 -5
  19. package/dist/api/routes.js.map +1 -1
  20. package/dist/api/seat-probe.d.ts +7 -0
  21. package/dist/api/seat-probe.d.ts.map +1 -1
  22. package/dist/api/seat-probe.js +27 -5
  23. package/dist/api/seat-probe.js.map +1 -1
  24. package/dist/api/seat-version.d.ts +8 -0
  25. package/dist/api/seat-version.d.ts.map +1 -1
  26. package/dist/api/seat-version.js +36 -4
  27. package/dist/api/seat-version.js.map +1 -1
  28. package/dist/api/testing.d.ts +4 -4
  29. package/dist/campaigns/routes.d.ts +2 -2
  30. package/dist/core/adapter.d.ts.map +1 -1
  31. package/dist/core/adapter.js +20 -0
  32. package/dist/core/adapter.js.map +1 -1
  33. package/dist/core/builtin-catalog.d.ts.map +1 -1
  34. package/dist/core/builtin-catalog.js +6 -1
  35. package/dist/core/builtin-catalog.js.map +1 -1
  36. package/dist/core/qe-acceptance-setting.d.ts +65 -0
  37. package/dist/core/qe-acceptance-setting.d.ts.map +1 -0
  38. package/dist/core/qe-acceptance-setting.js +93 -0
  39. package/dist/core/qe-acceptance-setting.js.map +1 -0
  40. package/dist/core/types.d.ts.map +1 -1
  41. package/dist/core/types.js +3 -0
  42. package/dist/core/types.js.map +1 -1
  43. package/dist/editors/pack-install.d.ts +30 -3
  44. package/dist/editors/pack-install.d.ts.map +1 -1
  45. package/dist/editors/pack-install.js +59 -4
  46. package/dist/editors/pack-install.js.map +1 -1
  47. package/dist/events/terminals.d.ts +42 -2
  48. package/dist/events/terminals.d.ts.map +1 -1
  49. package/dist/events/terminals.js +136 -3
  50. package/dist/events/terminals.js.map +1 -1
  51. package/dist/studio/assets/index-1Ucvzihb.js +770 -0
  52. package/dist/studio/assets/index-B0u_f6HD.css +32 -0
  53. package/dist/studio/editors/wicked-deck/editor.json +56 -3
  54. package/dist/studio/editors/wicked-deck/index.html +53 -7
  55. package/dist/studio/editors/wicked-doc/editor.json +91 -0
  56. package/dist/studio/editors/wicked-doc/index.html +161 -0
  57. package/dist/studio/editors/wicked-page/editor.json +42 -4
  58. package/dist/studio/editors/wicked-page/index.html +24 -7
  59. package/dist/studio/editors/wicked-video/editor.json +271 -0
  60. package/dist/studio/editors/wicked-video/index.html +28 -0
  61. package/dist/studio/index.html +2 -2
  62. package/dist/studio/testid-inventory.json +660 -94
  63. package/dist/team/routes.d.ts +2 -2
  64. package/endpoint-manifest.json +14 -1
  65. package/package.json +3 -3
  66. package/dist/studio/assets/index-BSPM1fFW.css +0 -32
  67. package/dist/studio/assets/index-R8uK_NlG.js +0 -848
@@ -16,6 +16,7 @@
16
16
  * Nothing is written into the pack. The registry file is `daemon-editors.json`.
17
17
  */
18
18
  import type { EditorConformanceSummary, InstallEditorResponse, PackCheckResult } from '../core/types.js';
19
+ import { execCapped } from '../core/exec.js';
19
20
  import { EditorRegistry } from './registry.js';
20
21
  export type PackCheckRunner = (packRoot: string) => Promise<PackCheckResult>;
21
22
  /**
@@ -30,8 +31,31 @@ export declare class PackInstallError extends Error {
30
31
  readonly body?: Record<string, unknown> | undefined;
31
32
  constructor(status: 400 | 404 | 409 | 422 | 501, message: string, check?: PackCheckResult | undefined, body?: Record<string, unknown> | undefined);
32
33
  }
33
- /** The install-time conformance run: the pack root in, garden's report out. */
34
- export type ConformanceRunner = (packRoot: string) => Promise<EditorConformanceSummary>;
34
+ /** The install-time conformance run: the pack root in, garden's report out; `editors` (the manifest's
35
+ * entries) sizes the run's overall cap. */
36
+ export type ConformanceRunner = (packRoot: string, editors?: readonly Record<string, unknown>[]) => Promise<EditorConformanceSummary>;
37
+ /** garden's bound on each load of the conformance host page (scripts/editor/conformance.py `--timeout`):
38
+ * this env var, read by garden's runner itself in the daemon's environment, else 120 s. */
39
+ export declare const CONFORMANCE_TIMEOUT_ENV = "WG_EDITOR_CONFORMANCE_TIMEOUT";
40
+ export declare const DEFAULT_CONFORMANCE_LOAD_S = 120;
41
+ /**
42
+ * The per-load bound the runner will use, read the way garden's `load_timeout` reads it: Python's
43
+ * `float()` of the env value (surrounding spaces and digit-group underscores allowed, `1_000` = 1000),
44
+ * valid only within 5-1800 s. A value garden refuses fails its run at once, so the default stands.
45
+ */
46
+ export declare function conformanceLoadSeconds(env?: NodeJS.ProcessEnv): number;
47
+ /**
48
+ * The overall cap on one conformance run, derived from garden's per-load bound so the two never
49
+ * disagree. Per editor (garden scripts/editor/conformance.py):
50
+ * - host-page loads, each allowed the whole bound: 2 (the cases, then the hash-pinned reload); for an
51
+ * editor that speaks protocol 2, 1 more for the card (full screen reuses it) and 1 per plugin-rendered
52
+ * options tab (at least 1 when it declares options);
53
+ * - the cases' fixed waits (~30 s) plus each sequential answer the host allows up to 2 s: every card
54
+ * action, every options tab, and the two full-screen mode changes;
55
+ * plus 60 s for the browser start. One protocol-2 editor with no surfaces, at the default 120 s:
56
+ * 60 + (30 + 2 x 2) + 3 x 120 = 454 s. A fixed 240 s cap killed a correct install at 249 s.
57
+ */
58
+ export declare function conformanceCapMs(editors: readonly Record<string, unknown>[], loadS: number): number;
35
59
  /** The cases a conformance run must report passing for every editor (garden's runner: 0-6 and 8-12). */
36
60
  export declare const CONFORMANCE_CASES: readonly ["0-manifest", "1-handshake", "2-sizes", "3-no-network", "4-permissions", "5-typing", "6-forwarding", "8-strict-input", "9-liveness", "10-keyboard", "11-theme", "12-hash-pinned"];
37
61
  /** The protocol-2 cases an editor whose `protocol` lists 2 must also pass (DES-EDITOR-PLUGIN-CONTRACT-001 §8.3):
@@ -45,7 +69,10 @@ export declare function requiredCases(entry: Record<string, unknown>): string[];
45
69
  * --host-url <this daemon> --json`. A missing garden or runner, no daemon URL, no browser, or an
46
70
  * unreadable report is a FAILED run with the reason — never a pass.
47
71
  */
48
- export declare function gardenConformance(gardenRoot: string | null, hostUrl: () => string | null): ConformanceRunner;
72
+ export declare function gardenConformance(gardenRoot: string | null, hostUrl: () => string | null, deps?: {
73
+ env?: NodeJS.ProcessEnv;
74
+ exec?: typeof execCapped;
75
+ }): ConformanceRunner;
49
76
  /** `POST /editors {packRoot, enabled?}`: the gate, the conformance run, then the registry. */
50
77
  export declare function installPack(packRootRaw: string, enabled: boolean | undefined, deps: {
51
78
  check: PackCheckRunner;
@@ -1 +1 @@
1
- {"version":3,"file":"pack-install.d.ts","sourceRoot":"","sources":["../../src/editors/pack-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,wBAAwB,EAAwB,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/H,OAAO,EAAyB,cAAc,EAA2D,MAAM,eAAe,CAAC;AAE/H,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAiB7E;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe,CAiC1E;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAEvC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;IAE5C,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAH9B,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAC5C,OAAO,EAAE,MAAM,EACN,KAAK,CAAC,EAAE,eAAe,YAAA,EACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAK1C;AAED,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAExF,wGAAwG;AACxG,eAAO,MAAM,iBAAiB,6LAA8L,CAAC;AAC7N;;4GAE4G;AAC5G,eAAO,MAAM,oBAAoB,8DAA+D,CAAC;AAEjG,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAItE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAkD5G;AA0FD,8FAA8F;AAC9F,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,IAAI,EAAE;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GACzF,OAAO,CAAC,qBAAqB,CAAC,CA2DhC"}
1
+ {"version":3,"file":"pack-install.d.ts","sourceRoot":"","sources":["../../src/editors/pack-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,wBAAwB,EAAwB,qBAAqB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/H,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAyB,cAAc,EAA2D,MAAM,eAAe,CAAC;AAE/H,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAiB7E;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe,CAiC1E;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAEvC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;IAE5C,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAH9B,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAC5C,OAAO,EAAE,MAAM,EACN,KAAK,CAAC,EAAE,eAAe,YAAA,EACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAK1C;AAED;4CAC4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEtI;4FAC4F;AAC5F,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AACvE,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKnF;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAWnG;AAED,wGAAwG;AACxG,eAAO,MAAM,iBAAiB,6LAA8L,CAAC;AAC7N;;4GAE4G;AAC5G,eAAO,MAAM,oBAAoB,8DAA+D,CAAC;AAEjG,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAItE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI,EAC5B,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,UAAU,CAAA;CAAO,GAC/D,iBAAiB,CAuDnB;AA0FD,8FAA8F;AAC9F,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,IAAI,EAAE;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GACzF,OAAO,CAAC,qBAAqB,CAAC,CA2DhC"}
@@ -87,6 +87,56 @@ export class PackInstallError extends Error {
87
87
  this.name = 'PackInstallError';
88
88
  }
89
89
  }
90
+ /** garden's bound on each load of the conformance host page (scripts/editor/conformance.py `--timeout`):
91
+ * this env var, read by garden's runner itself in the daemon's environment, else 120 s. */
92
+ export const CONFORMANCE_TIMEOUT_ENV = 'WG_EDITOR_CONFORMANCE_TIMEOUT';
93
+ export const DEFAULT_CONFORMANCE_LOAD_S = 120;
94
+ /**
95
+ * The per-load bound the runner will use, read the way garden's `load_timeout` reads it: Python's
96
+ * `float()` of the env value (surrounding spaces and digit-group underscores allowed, `1_000` = 1000),
97
+ * valid only within 5-1800 s. A value garden refuses fails its run at once, so the default stands.
98
+ */
99
+ export function conformanceLoadSeconds(env = process.env) {
100
+ const raw = (env[CONFORMANCE_TIMEOUT_ENV] ?? '').trim();
101
+ if (raw === '' || !/^[+-]?(\d(_?\d)*(\.(\d(_?\d)*)?)?|\.\d(_?\d)*)([eE][+-]?\d(_?\d)*)?$/.test(raw))
102
+ return DEFAULT_CONFORMANCE_LOAD_S;
103
+ const v = Number(raw.replace(/_/g, ''));
104
+ return Number.isFinite(v) && v >= 5 && v <= 1800 ? v : DEFAULT_CONFORMANCE_LOAD_S;
105
+ }
106
+ /** One editor's manifest surfaces, as far as the run's length depends on them. */
107
+ function surfaceCounts(entry) {
108
+ const surfaces = entry['surfaces'];
109
+ const o = typeof surfaces === 'object' && surfaces !== null ? surfaces : {};
110
+ const card = typeof o['card'] === 'object' && o['card'] !== null ? o['card'] : {};
111
+ const options = typeof o['options'] === 'object' && o['options'] !== null ? o['options'] : {};
112
+ const actions = Array.isArray(card['actions']) ? card['actions'].length : 0;
113
+ const tabs = Array.isArray(options['tabs']) ? options['tabs'] : [];
114
+ const pluginTabs = tabs.filter((t) => typeof t === 'object' && t !== null && t['render'] === 'plugin').length;
115
+ return { actions, tabs: tabs.length, pluginTabs };
116
+ }
117
+ /**
118
+ * The overall cap on one conformance run, derived from garden's per-load bound so the two never
119
+ * disagree. Per editor (garden scripts/editor/conformance.py):
120
+ * - host-page loads, each allowed the whole bound: 2 (the cases, then the hash-pinned reload); for an
121
+ * editor that speaks protocol 2, 1 more for the card (full screen reuses it) and 1 per plugin-rendered
122
+ * options tab (at least 1 when it declares options);
123
+ * - the cases' fixed waits (~30 s) plus each sequential answer the host allows up to 2 s: every card
124
+ * action, every options tab, and the two full-screen mode changes;
125
+ * plus 60 s for the browser start. One protocol-2 editor with no surfaces, at the default 120 s:
126
+ * 60 + (30 + 2 x 2) + 3 x 120 = 454 s. A fixed 240 s cap killed a correct install at 249 s.
127
+ */
128
+ export function conformanceCapMs(editors, loadS) {
129
+ const list = editors.length > 0 ? editors : [{}];
130
+ let seconds = 60;
131
+ for (const e of list) {
132
+ const speaks2 = requiredCases(e).length > CONFORMANCE_CASES.length;
133
+ const c = surfaceCounts(e);
134
+ const loads = 2 + (speaks2 ? 1 + (c.tabs > 0 ? Math.max(1, c.pluginTabs) : 0) : 0);
135
+ const answers = speaks2 ? c.actions + c.tabs + 2 : 0;
136
+ seconds += 30 + 2 * answers + loads * loadS;
137
+ }
138
+ return Math.round(seconds * 1000);
139
+ }
90
140
  /** The cases a conformance run must report passing for every editor (garden's runner: 0-6 and 8-12). */
91
141
  export const CONFORMANCE_CASES = ['0-manifest', '1-handshake', '2-sizes', '3-no-network', '4-permissions', '5-typing', '6-forwarding', '8-strict-input', '9-liveness', '10-keyboard', '11-theme', '12-hash-pinned'];
92
142
  /** The protocol-2 cases an editor whose `protocol` lists 2 must also pass (DES-EDITOR-PLUGIN-CONTRACT-001 §8.3):
@@ -104,9 +154,10 @@ export function requiredCases(entry) {
104
154
  * --host-url <this daemon> --json`. A missing garden or runner, no daemon URL, no browser, or an
105
155
  * unreadable report is a FAILED run with the reason — never a pass.
106
156
  */
107
- export function gardenConformance(gardenRoot, hostUrl) {
157
+ export function gardenConformance(gardenRoot, hostUrl, deps = {}) {
108
158
  const failed = (error) => ({ ok: false, at: new Date().toISOString(), editors: [], error });
109
- return async (packRoot) => {
159
+ const exec = deps.exec ?? execCapped;
160
+ return async (packRoot, editors = []) => {
110
161
  if (gardenRoot === null)
111
162
  return failed('no wicked-garden plugin found to run the editor conformance cases');
112
163
  const script = join(gardenRoot, 'scripts', 'editor', 'conformance.py');
@@ -116,10 +167,14 @@ export function gardenConformance(gardenRoot, hostUrl) {
116
167
  if (host === null)
117
168
  return failed('this daemon does not know its own URL to serve the conformance host page');
118
169
  const args = [script, '--pack', packRoot, '--host-url', host, '--json'];
170
+ // garden's runner gets the very bound the cap was sized from (any spelling of the env var it would
171
+ // read differently, e.g. non-ASCII digits, cannot make the two disagree — codex r2).
172
+ const loadS = conformanceLoadSeconds(deps.env);
173
+ const childEnv = { ...(deps.env ?? process.env), [CONFORMANCE_TIMEOUT_ENV]: String(loadS) };
119
174
  let stdout = '';
120
175
  for (const bin of ['python3', 'python']) {
121
176
  try {
122
- stdout = (await execCapped(bin, args, { timeout: 240_000, windowsHide: true })).stdout;
177
+ stdout = (await exec(bin, args, { timeout: conformanceCapMs(editors, loadS), windowsHide: true, env: childEnv })).stdout;
123
178
  break;
124
179
  }
125
180
  catch (err) {
@@ -258,7 +313,7 @@ export async function installPack(packRootRaw, enabled, deps) {
258
313
  if (deps.registry.get(id)?.firstParty === true)
259
314
  throw new PackInstallError(409, `${id} is a first-party editor's id`, verdict);
260
315
  }
261
- const conformance = await deps.conformance(pack.root);
316
+ const conformance = await deps.conformance(pack.root, pack.editors);
262
317
  // The report counts only for the bytes being installed (codex r1): the run's own version and entry
263
318
  // hash must be the manifest's, which the registry then re-reads at that same hash.
264
319
  const missing = (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"pack-install.js","sourceRoot":"","sources":["../../src/editors/pack-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack-install.js","sourceRoot":"","sources":["../../src/editors/pack-install.ts"],"names":[],"mappings":"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"}
@@ -10,27 +10,67 @@ import type { CoreEvent } from '../core/types.js';
10
10
  * base64-encoded (`bytesB64`); we decode and send it as a BINARY frame so
11
11
  * xterm.js writes the exact bytes — control sequences and multi-byte UTF-8
12
12
  * survive a text-frame round-trip.
13
+ *
14
+ * Output a terminal writes BEFORE its browser socket attaches is held (bounded) and flushed on
15
+ * attach: a login container prints its sign-in link and code the moment it starts, while the
16
+ * browser opens `/ws/terminals/:id` only after the POST that created it returns — seconds later on
17
+ * a loaded host — so without the hold the user would never see the link (wicked-core C6). A
18
+ * terminal that exited (before or after a socket attached) closes any socket that attaches to it.
13
19
  */
20
+ /** Per-terminal bytes held for a socket that has not attached yet (the oldest are dropped). */
21
+ export declare const EARLY_OUTPUT_MAX_BYTES: number;
22
+ /** Terminals whose early output is held at once (an exited one's hold is dropped first). */
23
+ export declare const EARLY_OUTPUT_MAX_TERMINALS = 64;
24
+ /** Exited terminal ids remembered (insertion order, bounded; ids are never reused). */
25
+ export declare const REAPED_MEMORY = 8192;
26
+ /** How long a socket the engine has no terminal for stays open before it is closed: frames the
27
+ * engine emitted before the refusal may still be on their way through the event stream, and the
28
+ * terminal's own exit frame (delivered in order after its output) closes it sooner. */
29
+ export declare const GONE_GRACE_MS = 10000;
14
30
  export declare class TerminalHub {
15
31
  private readonly sockets;
32
+ /** Output for ids no socket has attached to yet. */
33
+ private readonly early;
34
+ /** Ids whose `terminalExited` was seen (kept past their sockets: a later attach closes at once). */
35
+ private readonly reaped;
36
+ /** Ids whose socket detached: nothing is held for them again. */
37
+ private readonly retired;
16
38
  /**
17
39
  * ids whose `terminalExited` we've already routed — so the WS close handler
18
40
  * skips a redundant `closeTerminal` (the engine already reaped that child).
19
41
  */
20
42
  private readonly exited;
21
- /** Bind a browser socket to a terminal id (later `terminalOutput` fans out to it). */
43
+ /** Bind a browser socket to a terminal id (later `terminalOutput` fans out to it), first
44
+ * replaying what the terminal wrote before the socket attached; an exited terminal's socket
45
+ * is closed after the replay. */
22
46
  register(id: string, socket: WebSocket): void;
47
+ /** Whether the hub remembers that terminal `id` exited. */
48
+ knowsExited(id: string): boolean;
49
+ /** Whether `socket` is the one bound to `id` now (a newer attach replaces an older one). */
50
+ isCurrent(id: string, socket: WebSocket): boolean;
51
+ /**
52
+ * The engine holds no terminal `id` for `socket` (never opened, or reaped with its exit no
53
+ * longer remembered). After [`GONE_GRACE_MS`] — time for frames already emitted to arrive and
54
+ * be routed in order — the socket is closed if it is still open; the id's bookkeeping is
55
+ * marked exited only if `socket` is still the bound one (a replaced socket owns nothing).
56
+ */
57
+ gone(id: string, socket: WebSocket, graceMs?: number): void;
23
58
  /** True once a `terminalExited` frame has been routed for this id. */
24
59
  hasExited(id: string): boolean;
25
60
  /** Drop the socket + exit bookkeeping for a terminal id. */
26
61
  unregister(id: string): void;
27
62
  /** Live terminal-socket count (diagnostics / tests). */
28
63
  size(): number;
64
+ /** Terminals with output held for a socket that has not attached yet (diagnostics / tests). */
65
+ heldCount(): number;
29
66
  /**
30
67
  * Route one CoreEvent frame to the terminal socket it belongs to. Called for
31
- * EVERY core event; non-terminal frames and frames for an unknown id are no-ops.
68
+ * EVERY core event; non-terminal frames are no-ops, and a terminal frame for an id no socket
69
+ * has attached to yet is held for it.
32
70
  */
33
71
  route(event: CoreEvent): void;
72
+ /** Hold a terminal's output for a socket that has not attached yet (bounded both ways). */
73
+ private hold;
34
74
  }
35
75
  /**
36
76
  * The per-terminal WS channel: `GET /ws/terminals/:id`. Binds the browser socket
@@ -1 +1 @@
1
- {"version":3,"file":"terminals.d.ts","sourceRoot":"","sources":["../../src/events/terminals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAgB,MAAM,IAAI,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,sFAAsF;IACtF,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IAI7C,sEAAsE;IACtE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5B,wDAAwD;IACxD,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAiB9B;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,WAAW,GACf,IAAI,CAgCN"}
1
+ {"version":3,"file":"terminals.d.ts","sourceRoot":"","sources":["../../src/events/terminals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAgB,MAAM,IAAI,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,QAAY,CAAC;AAChD,4FAA4F;AAC5F,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,uFAAuF;AACvF,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC;;wFAEwF;AACxF,eAAO,MAAM,aAAa,QAAS,CAAC;AAepC,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0D;IAChF,oGAAoG;IACpG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C;;sCAEkC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IAc7C,2DAA2D;IAC3D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,4FAA4F;IAC5F,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO;IAIjD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,MAAsB,GAAG,IAAI;IAU1E,sEAAsE;IACtE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAO5B,wDAAwD;IACxD,IAAI,IAAI,MAAM;IAId,+FAA+F;IAC/F,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAsB7B,2FAA2F;IAC3F,OAAO,CAAC,IAAI;CAkCb;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,WAAW,GACf,IAAI,CAwCN"}
@@ -7,17 +7,92 @@ import { WebSocket } from 'ws';
7
7
  * base64-encoded (`bytesB64`); we decode and send it as a BINARY frame so
8
8
  * xterm.js writes the exact bytes — control sequences and multi-byte UTF-8
9
9
  * survive a text-frame round-trip.
10
+ *
11
+ * Output a terminal writes BEFORE its browser socket attaches is held (bounded) and flushed on
12
+ * attach: a login container prints its sign-in link and code the moment it starts, while the
13
+ * browser opens `/ws/terminals/:id` only after the POST that created it returns — seconds later on
14
+ * a loaded host — so without the hold the user would never see the link (wicked-core C6). A
15
+ * terminal that exited (before or after a socket attached) closes any socket that attaches to it.
10
16
  */
17
+ /** Per-terminal bytes held for a socket that has not attached yet (the oldest are dropped). */
18
+ export const EARLY_OUTPUT_MAX_BYTES = 64 * 1024;
19
+ /** Terminals whose early output is held at once (an exited one's hold is dropped first). */
20
+ export const EARLY_OUTPUT_MAX_TERMINALS = 64;
21
+ /** Exited terminal ids remembered (insertion order, bounded; ids are never reused). */
22
+ export const REAPED_MEMORY = 8192;
23
+ /** How long a socket the engine has no terminal for stays open before it is closed: frames the
24
+ * engine emitted before the refusal may still be on their way through the event stream, and the
25
+ * terminal's own exit frame (delivered in order after its output) closes it sooner. */
26
+ export const GONE_GRACE_MS = 10_000;
27
+ /** Ids whose socket came and went, remembered (bounded) so their last frames are never held. */
28
+ const RETIRED_MEMORY = 1024;
29
+ /** Insert into a bounded insertion-ordered set, dropping the oldest entry past `cap`. */
30
+ function remember(set, id, cap) {
31
+ set.delete(id);
32
+ set.add(id);
33
+ if (set.size > cap) {
34
+ const oldest = set.values().next().value;
35
+ if (oldest !== undefined)
36
+ set.delete(oldest);
37
+ }
38
+ }
11
39
  export class TerminalHub {
12
40
  sockets = new Map();
41
+ /** Output for ids no socket has attached to yet. */
42
+ early = new Map();
43
+ /** Ids whose `terminalExited` was seen (kept past their sockets: a later attach closes at once). */
44
+ reaped = new Set();
45
+ /** Ids whose socket detached: nothing is held for them again. */
46
+ retired = new Set();
13
47
  /**
14
48
  * ids whose `terminalExited` we've already routed — so the WS close handler
15
49
  * skips a redundant `closeTerminal` (the engine already reaped that child).
16
50
  */
17
51
  exited = new Set();
18
- /** Bind a browser socket to a terminal id (later `terminalOutput` fans out to it). */
52
+ /** Bind a browser socket to a terminal id (later `terminalOutput` fans out to it), first
53
+ * replaying what the terminal wrote before the socket attached; an exited terminal's socket
54
+ * is closed after the replay. */
19
55
  register(id, socket) {
20
56
  this.sockets.set(id, socket);
57
+ this.retired.delete(id);
58
+ const held = this.early.get(id);
59
+ this.early.delete(id);
60
+ if (held !== undefined && socket.readyState === WebSocket.OPEN) {
61
+ for (const chunk of held.chunks)
62
+ socket.send(chunk);
63
+ }
64
+ if (this.reaped.has(id)) {
65
+ this.exited.add(id);
66
+ if (socket.readyState === WebSocket.OPEN)
67
+ socket.close();
68
+ }
69
+ }
70
+ /** Whether the hub remembers that terminal `id` exited. */
71
+ knowsExited(id) {
72
+ return this.reaped.has(id);
73
+ }
74
+ /** Whether `socket` is the one bound to `id` now (a newer attach replaces an older one). */
75
+ isCurrent(id, socket) {
76
+ return this.sockets.get(id) === socket;
77
+ }
78
+ /**
79
+ * The engine holds no terminal `id` for `socket` (never opened, or reaped with its exit no
80
+ * longer remembered). After [`GONE_GRACE_MS`] — time for frames already emitted to arrive and
81
+ * be routed in order — the socket is closed if it is still open; the id's bookkeeping is
82
+ * marked exited only if `socket` is still the bound one (a replaced socket owns nothing).
83
+ */
84
+ gone(id, socket, graceMs = GONE_GRACE_MS) {
85
+ const close = () => {
86
+ if (socket.readyState !== WebSocket.OPEN)
87
+ return;
88
+ if (this.isCurrent(id, socket))
89
+ this.exited.add(id);
90
+ socket.close();
91
+ };
92
+ if (graceMs <= 0)
93
+ close();
94
+ else
95
+ setTimeout(close, graceMs).unref?.();
21
96
  }
22
97
  /** True once a `terminalExited` frame has been routed for this id. */
23
98
  hasExited(id) {
@@ -27,22 +102,33 @@ export class TerminalHub {
27
102
  unregister(id) {
28
103
  this.sockets.delete(id);
29
104
  this.exited.delete(id);
105
+ this.early.delete(id);
106
+ remember(this.retired, id, RETIRED_MEMORY);
30
107
  }
31
108
  /** Live terminal-socket count (diagnostics / tests). */
32
109
  size() {
33
110
  return this.sockets.size;
34
111
  }
112
+ /** Terminals with output held for a socket that has not attached yet (diagnostics / tests). */
113
+ heldCount() {
114
+ return this.early.size;
115
+ }
35
116
  /**
36
117
  * Route one CoreEvent frame to the terminal socket it belongs to. Called for
37
- * EVERY core event; non-terminal frames and frames for an unknown id are no-ops.
118
+ * EVERY core event; non-terminal frames are no-ops, and a terminal frame for an id no socket
119
+ * has attached to yet is held for it.
38
120
  */
39
121
  route(event) {
40
122
  const id = typeof event.id === 'string' ? event.id : undefined;
41
123
  if (id === undefined)
42
124
  return;
125
+ if (event.type === 'terminalExited')
126
+ remember(this.reaped, id, REAPED_MEMORY);
43
127
  const socket = this.sockets.get(id);
44
- if (!socket)
128
+ if (!socket) {
129
+ this.hold(id, event);
45
130
  return;
131
+ }
46
132
  if (event.type === 'terminalOutput') {
47
133
  if (typeof event.bytesB64 === 'string' && socket.readyState === WebSocket.OPEN) {
48
134
  socket.send(Buffer.from(event.bytesB64, 'base64'));
@@ -56,6 +142,43 @@ export class TerminalHub {
56
142
  socket.close();
57
143
  }
58
144
  }
145
+ /** Hold a terminal's output for a socket that has not attached yet (bounded both ways). */
146
+ hold(id, event) {
147
+ if (event.type !== 'terminalOutput' || typeof event.bytesB64 !== 'string')
148
+ return;
149
+ if (this.retired.has(id))
150
+ return;
151
+ let held = this.early.get(id);
152
+ if (held === undefined) {
153
+ if (this.early.size >= EARLY_OUTPUT_MAX_TERMINALS) {
154
+ // An exited terminal's hold goes first: a live one (a login printing its link) is the one
155
+ // a browser is about to attach to.
156
+ let victim;
157
+ for (const key of this.early.keys()) {
158
+ if (this.reaped.has(key)) {
159
+ victim = key;
160
+ break;
161
+ }
162
+ }
163
+ victim ??= this.early.keys().next().value;
164
+ if (victim !== undefined)
165
+ this.early.delete(victim);
166
+ }
167
+ held = { chunks: [], bytes: 0 };
168
+ this.early.set(id, held);
169
+ }
170
+ const whole = Buffer.from(event.bytesB64, 'base64');
171
+ // One frame past the bound keeps only a COPY of its tail (agy c6-r1, codex c6-r6): a subarray
172
+ // would keep the whole decoded frame alive behind 64 KiB of accounting.
173
+ const chunk = whole.length > EARLY_OUTPUT_MAX_BYTES
174
+ ? Buffer.from(whole.subarray(whole.length - EARLY_OUTPUT_MAX_BYTES))
175
+ : whole;
176
+ held.chunks.push(chunk);
177
+ held.bytes += chunk.length;
178
+ while (held.bytes > EARLY_OUTPUT_MAX_BYTES && held.chunks.length > 1) {
179
+ held.bytes -= held.chunks.shift()?.length ?? 0;
180
+ }
181
+ }
59
182
  }
60
183
  /** Normalise a ws frame (Buffer | ArrayBuffer | Buffer[]) to a single Buffer. */
61
184
  function toBuffer(data) {
@@ -75,7 +198,13 @@ export function registerTerminalWs(app, adapter, hub) {
75
198
  app.get('/ws/terminals/:id', { websocket: true }, (socket, req) => {
76
199
  const { id } = req.params;
77
200
  const ws = socket;
201
+ // Liveness, unless the hub remembers the exit (register then closes at once; codex c6-r1/r3/r4):
202
+ // an empty write is a no-op on a live terminal and refused for one the engine does not hold. A
203
+ // refused socket is closed after a grace in which frames already emitted still arrive.
204
+ const exitKnown = hub.knowsExited(id);
78
205
  hub.register(id, ws);
206
+ if (!exitKnown)
207
+ void adapter.writeTerminal(id, Buffer.alloc(0)).catch(() => hub.gone(id, ws));
79
208
  // Browser keystrokes (xterm.onData → ws.send): text or binary, both are raw
80
209
  // input bytes for the PTY. Failures (unknown/closed id) are swallowed — the
81
210
  // exit/close path tears the socket down.
@@ -89,6 +218,10 @@ export function registerTerminalWs(app, adapter, hub) {
89
218
  if (torn)
90
219
  return;
91
220
  torn = true;
221
+ // A socket a newer attach replaced owns nothing any more (codex c6-r2): unbinding or closing
222
+ // here would strand the newer socket (its sign-in dialog open forever) or kill its terminal.
223
+ if (!hub.isCurrent(id, ws))
224
+ return;
92
225
  const alreadyExited = hub.hasExited(id);
93
226
  hub.unregister(id);
94
227
  // Socket dropped by the browser (unmount) → close the PTY. Skip when the PTY
@@ -1 +1 @@
1
- {"version":3,"file":"terminals.js","sourceRoot":"","sources":["../../src/events/terminals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminals.js","sourceRoot":"","sources":["../../src/events/terminals.ts"],"names":[],"mappings":"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"}