@wrongstack/webui-server 0.286.0 → 0.289.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/index.js +2618 -620
  2. package/dist/index.js.map +4 -4
  3. package/dist/server/backend-services.d.ts +2 -2
  4. package/dist/server/backend-services.d.ts.map +1 -1
  5. package/dist/server/codebase-indexing.d.ts +2 -1
  6. package/dist/server/codebase-indexing.d.ts.map +1 -1
  7. package/dist/server/codemap-handlers.d.ts +26 -0
  8. package/dist/server/codemap-handlers.d.ts.map +1 -0
  9. package/dist/server/codemap-telemetry.d.ts +15 -0
  10. package/dist/server/codemap-telemetry.d.ts.map +1 -0
  11. package/dist/server/collaboration-ws-handler.d.ts +1 -1
  12. package/dist/server/connection-handler.d.ts +2 -2
  13. package/dist/server/connection-handler.d.ts.map +1 -1
  14. package/dist/server/context-meta.d.ts.map +1 -1
  15. package/dist/server/entry.js +2586 -613
  16. package/dist/server/entry.js.map +4 -4
  17. package/dist/server/goal-handlers.d.ts +1 -1
  18. package/dist/server/goal-routes.d.ts +10 -0
  19. package/dist/server/goal-routes.d.ts.map +1 -0
  20. package/dist/server/{autophase-ws-handler.d.ts → goal-ws-handler.d.ts} +31 -15
  21. package/dist/server/goal-ws-handler.d.ts.map +1 -0
  22. package/dist/server/handlers.js +1 -0
  23. package/dist/server/handlers.js.map +2 -2
  24. package/dist/server/http-server.d.ts +20 -0
  25. package/dist/server/http-server.d.ts.map +1 -1
  26. package/dist/server/index.d.ts +12 -10
  27. package/dist/server/index.d.ts.map +1 -1
  28. package/dist/server/instance-registry.d.ts +5 -3
  29. package/dist/server/instance-registry.d.ts.map +1 -1
  30. package/dist/server/kanban-routes.d.ts +3 -0
  31. package/dist/server/kanban-routes.d.ts.map +1 -1
  32. package/dist/server/mcp-handlers.d.ts +1 -1
  33. package/dist/server/memory-handlers.d.ts +78 -9
  34. package/dist/server/memory-handlers.d.ts.map +1 -1
  35. package/dist/server/message-dispatcher.d.ts.map +1 -1
  36. package/dist/server/mode-handlers.d.ts.map +1 -1
  37. package/dist/server/port-utils.d.ts +48 -10
  38. package/dist/server/port-utils.d.ts.map +1 -1
  39. package/dist/server/pre-context-services.d.ts.map +1 -1
  40. package/dist/server/pref-helpers.d.ts +1 -1
  41. package/dist/server/pref-helpers.d.ts.map +1 -1
  42. package/dist/server/provider-handlers.d.ts +13 -0
  43. package/dist/server/provider-handlers.d.ts.map +1 -1
  44. package/dist/server/provider-keys.d.ts.map +1 -1
  45. package/dist/server/provider-routes.d.ts +2 -0
  46. package/dist/server/provider-routes.d.ts.map +1 -1
  47. package/dist/server/routes.d.ts +22 -24
  48. package/dist/server/routes.d.ts.map +1 -1
  49. package/dist/server/sdd-wizard-wiring.d.ts +31 -1
  50. package/dist/server/sdd-wizard-wiring.d.ts.map +1 -1
  51. package/dist/server/server-runtime.d.ts +8 -1
  52. package/dist/server/server-runtime.d.ts.map +1 -1
  53. package/dist/server/session-handlers.d.ts +4 -4
  54. package/dist/server/session-handlers.d.ts.map +1 -1
  55. package/dist/server/session-history.d.ts +29 -0
  56. package/dist/server/session-history.d.ts.map +1 -0
  57. package/dist/server/setup-events.d.ts +1 -1
  58. package/dist/server/setup-events.d.ts.map +1 -1
  59. package/dist/server/start-webui.d.ts.map +1 -1
  60. package/dist/server/techstack-handlers.d.ts +101 -0
  61. package/dist/server/techstack-handlers.d.ts.map +1 -0
  62. package/dist/server/worktree-ws-handler.d.ts +1 -1
  63. package/dist/server/ws-payload-validation.d.ts.map +1 -1
  64. package/package.json +10 -12
  65. package/dist/server/autophase-routes.d.ts +0 -10
  66. package/dist/server/autophase-routes.d.ts.map +0 -1
  67. package/dist/server/autophase-ws-handler.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kanban-routes.d.ts","sourceRoot":"","sources":["../../src/server/kanban-routes.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAUD,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,OAAO,CAAC,CAwlBlB"}
1
+ {"version":3,"file":"kanban-routes.d.ts","sourceRoot":"","sources":["../../src/server/kanban-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAIb,MAAM,kBAAkB,CAAC;AAqD1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACjD;AA+DD,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,OAAO,CAAC,CAi7BlB"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * MCP management handlers for the WebUI server (both the standalone
3
- * `wstackui` server and the CLI's embedded `--webui` server).
3
+ * standalone server and the CLI's embedded `--webui` server).
4
4
  *
5
5
  * These are thin WebSocket translators over the shared, surface-agnostic
6
6
  * management core in `@wrongstack/mcp` (`manage.ts`) — the SAME core the REPL
@@ -1,28 +1,97 @@
1
1
  /**
2
2
  * Shared memory-operation WebSocket handlers for both the standalone WebUI
3
- * server and the CLI's `--webui` embedded server. Extracted from the
4
- * duplicated switch cases in `index.ts` and `cli/src/webui-server.ts`.
3
+ * server and the CLI's `--webui` embedded server.
5
4
  *
6
5
  * Each function handles the full request→response cycle for one message
7
6
  * type. Callers drop them into their switch statement:
8
7
  *
9
8
  * case 'memory.list': return handleMemoryList(ws, memoryStore);
9
+ *
10
+ * SuperMemory handlers use duck-typing to detect the store capability:
11
+ *
12
+ * case 'memory.super.list': return handleSuperMemoryList(ws, memoryStore);
10
13
  */
11
14
  import type { WebSocket } from 'ws';
12
15
  import type { MemoryStore } from '@wrongstack/core';
13
16
  /**
14
- * List all memory entries across all scopes.
17
+ * List memory for the chat `/memory` command. When the backend is Super Memory
18
+ * (always, in practice) this renders the rich structured view — the same one
19
+ * surface as the MemoryManager panel and the CLI/TUI `/memory show`. Falls back
20
+ * to `readAll()` text only for a non-super store.
15
21
  * Responds with `{ type: 'memory.list', payload: { text } }`.
16
22
  */
17
23
  export declare function handleMemoryList(ws: WebSocket, memoryStore: MemoryStore): Promise<void>;
18
24
  /**
19
- * Persist a new memory entry.
20
- * Responds with `{ type: 'key.operation_result', payload: { success, message } }`.
25
+ * List all SuperMemory entries with stats.
26
+ * Request: { type: 'memory.super.list' }
27
+ * Response: { type: 'memory.super.list', payload: { memories, stats } }
28
+ */
29
+ export declare function handleSuperMemoryList(ws: WebSocket, memoryStore: MemoryStore): Promise<void>;
30
+ /**
31
+ * Get a single SuperMemory entry by ID.
32
+ * Request: { type: 'memory.super.get', payload: { id } }
33
+ * Response: { type: 'memory.super.get', payload: { memory } }
34
+ */
35
+ export declare function handleSuperMemoryGet(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
36
+ /**
37
+ * Update a SuperMemory entry.
38
+ * Request: { type: 'memory.super.update', payload: { id, ...patch } }
39
+ * Response: { type: 'memory.super.update', payload: { memory } }
40
+ * On error: { type: 'memory.super.update', payload: { error } }
41
+ */
42
+ export declare function handleSuperMemoryUpdate(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
43
+ /**
44
+ * Create a new SuperMemory entry with full metadata.
45
+ * Request: { type: 'memory.super.remember', payload: { text, kind?, scope?, tags?, anchors?, importance?, confidence?, freshness?, supersedes?, contradicts? } }
46
+ * Response: { type: 'memory.super.remember', payload: { memory } }
47
+ * On error: { type: 'memory.super.remember', payload: { error } }
48
+ */
49
+ export declare function handleSuperMemoryRemember(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
50
+ /**
51
+ * Delete a SuperMemory entry (soft-delete with cascade cleanup).
52
+ * Request: { type: 'memory.super.delete', payload: { id, reason? } }
53
+ * Response: { type: 'memory.super.delete', payload: { success, message } }
54
+ *
55
+ * Uses an operation-specific response type (not the generic
56
+ * `key.operation_result`) so the client can correlate the response
57
+ * to this specific action without matching unrelated broadcast events.
58
+ */
59
+ export declare function handleSuperMemoryDelete(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
60
+ /**
61
+ * Restore a deleted Super Memory entry to active status (PR #1).
62
+ * Request: { type: 'memory.super.recover', payload: { id, reason? } }
63
+ * Response: { type: 'memory.super.recover', payload: { memory?, noop?, activeId? } }
64
+ *
65
+ * - `noop: true` when the id was already active (no write happened)
66
+ * - `activeId: <id>` when the id was superseded — returns the head of the chain
67
+ * - otherwise returns the freshly-restored memory
68
+ */
69
+ export declare function handleSuperMemoryRecover(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
70
+ /**
71
+ * Resolve a pending hygiene review candidate (PR #1).
72
+ * Request: { type: 'memory.super.candidateResolve', payload: { candidateId, action: 'accept'|'reject', reason? } }
73
+ * Response: { type: 'memory.super.candidateResolve', payload: { candidate, resolvedAction } }
74
+ *
75
+ * The store handles audit + status mutation; the handler just relays the
76
+ * payload. If the candidate id is unknown, the store returns null and we
77
+ * surface a structured error.
78
+ */
79
+ export declare function handleSuperMemoryCandidateResolve(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
80
+ /**
81
+ * Scan deleted records and either preview (dry-run) or apply a backfill
82
+ * that creates fresh active versions for recoverable entries (PR #3).
83
+ *
84
+ * Request: { type: 'memory.super.backfillRecoverable', payload: { apply, filter? } }
85
+ * Response: { type: 'memory.super.backfillRecoverable', payload: { examined, recovered, recoverable, dryRun } }
86
+ *
87
+ * `apply` defaults to false (dry-run preview). When true, the store writes
88
+ * new active versions and links them to the original `deleted` records via
89
+ * `supersedes`. The report count fields are forwarded for dashboard / UI use.
21
90
  */
22
- export declare function handleMemoryRemember(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
91
+ export declare function handleSuperMemoryBackfillRecoverable(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
23
92
  /**
24
- * Remove memory entries matching the given text.
25
- * Responds with `{ type: 'key.operation_result', payload: { success, message } }`.
93
+ * Rich file-drawer query returns 3 buckets (primary/symbol/related)
94
+ * with matchedVia, matchStrength, supersededByActiveId, pendingReview (PR #4).
26
95
  */
27
- export declare function handleMemoryForget(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
96
+ export declare function handleSuperMemoryForFile(ws: WebSocket, msg: unknown, memoryStore: MemoryStore): Promise<void>;
28
97
  //# sourceMappingURL=memory-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-handlers.d.ts","sourceRoot":"","sources":["../../src/server/memory-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
1
+ {"version":3,"file":"memory-handlers.d.ts","sourceRoot":"","sources":["../../src/server/memory-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA2GpD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAwBD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,CACrD,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oCAAoC,CACxD,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-dispatcher.d.ts","sourceRoot":"","sources":["../../src/server/message-dispatcher.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AA8BpC,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAc7E,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAgB3F,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKnE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,IAAI,eAAe,GAAG,IAAI,CAAC;IAC9B,GAAG,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AACD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,8DAA8D;IAC9D,UAAU,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5D,6EAA6E;IAC7E,gBAAgB,EAAE;QAAE,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IAChE,6DAA6D;IAC7D,OAAO,EAAE,cAAc,CAAC;IACxB,2EAA2E;IAC3E,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAumBlF"}
1
+ {"version":3,"file":"message-dispatcher.d.ts","sourceRoot":"","sources":["../../src/server/message-dispatcher.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAyCpC,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAc7E,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAgB3F,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKnE;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,IAAI,eAAe,GAAG,IAAI,CAAC;IAC9B,GAAG,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;CACzC;AACD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,iBAAiB,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,8DAA8D;IAC9D,UAAU,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5D,6EAA6E;IAC7E,gBAAgB,EAAE;QAAE,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IAChE,6DAA6D;IAC7D,OAAO,EAAE,cAAc,CAAC;IACxB,2EAA2E;IAC3E,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC9C;AAuBD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAqsBlF"}
@@ -1 +1 @@
1
- {"version":3,"file":"mode-handlers.d.ts","sourceRoot":"","sources":["../../src/server/mode-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EACL,KAAK,OAAO,EACZ,0BAA0B,EAE1B,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D;mFACmF;AACnF,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,KAAK,iBAAiB,GAAG,WAAW,CAClC,qBAAqB,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC,mBAAmB,CAAC,CAAC;AAEvB,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,gEAAgE;IAChE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,6EAA6E;IAC7E,mBAAmB,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,iBAAiB,CA8E9E"}
1
+ {"version":3,"file":"mode-handlers.d.ts","sourceRoot":"","sources":["../../src/server/mode-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EACL,KAAK,OAAO,EACZ,0BAA0B,EAE1B,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D;mFACmF;AACnF,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,KAAK,iBAAiB,GAAG,WAAW,CAClC,qBAAqB,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC,mBAAmB,CAAC,CAAC;AAEvB,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,gEAAgE;IAChE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,6EAA6E;IAC7E,mBAAmB,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,iBAAiB,CA0F9E"}
@@ -1,17 +1,55 @@
1
1
  /**
2
- * Free-port discovery for the standalone WebUI server.
2
+ * Free-port discovery for the WebUI / SimpleUI servers.
3
3
  *
4
- * When a user runs several instances, the default ports (HTTP 3456 / WS 3457)
5
- * are taken by the first one. Rather than make the user hand-pick `PORT` /
6
- * `WS_PORT` for every extra instance, the server probes upward from the
7
- * requested port and binds the first free one — then stamps that real port into
8
- * the served HTML and the instance registry so everything stays consistent.
4
+ * Design:
5
+ * - **Surface-aware port ranges.** WebUI defaults to 3456 (HTTP) / 3457 (WS);
6
+ * SimpleUI defaults to 3466 / 3467. These ranges are disjoint, so a WebUI
7
+ * instance never accidentally claims a SimpleUI slot and vice versa.
8
+ * - **Auto-advance.** When a port is taken, the server probes upward and binds
9
+ * the first free one (see `findFreePort`). The actual port is stamped into
10
+ * the served HTML and the instance registry so the user sees the real URL.
11
+ * - **Instance registry.** Every live process records itself in
12
+ * `~/.wrongstack/webui-instances.json` with its PID, surface, ports, and
13
+ * project root. A crashed instance is pruned on the next registry read
14
+ * (`process.kill(pid, 0)` probe), so ghosts don't accumulate.
15
+ * - **TOCTOU window.** The probe binds a throwaway `net.Server` then closes
16
+ * it, so there is a tiny race between "found free" and "real server binds".
17
+ * For local multi-instance use that race is negligible; if it ever loses,
18
+ * the real bind fails loudly with EADDRINUSE exactly as before.
19
+ */
20
+ /**
21
+ * Surface-specific default port ranges.
22
+ *
23
+ * These bases are intentionally spaced so the auto-advance window of one
24
+ * surface (typically a few ports up) never reaches the other surface's base:
9
25
  *
10
- * The probe binds a throwaway `net.Server`, then closes it, so there is a tiny
11
- * TOCTOU window between "found free" and "the real server binds it". For local
12
- * single-user multi-instance use that race is negligible; if it ever loses, the
13
- * real bind fails loudly with EADDRINUSE exactly as before.
26
+ * WebUI: HTTP 3456-3465, WS 3457-3466 (10-port window)
27
+ * SimpleUI: HTTP 3466-3475, WS 3467-3476 (10-port window)
28
+ *
29
+ * This keeps the ranges visually distinct and prevents accidental overlap
30
+ * when both surfaces run multiple instances in the same project.
31
+ */
32
+ export declare const SURFACE_DEFAULT_PORTS: {
33
+ readonly webui: {
34
+ readonly http: 3456;
35
+ readonly ws: 3457;
36
+ };
37
+ readonly simpleui: {
38
+ readonly http: 3466;
39
+ readonly ws: 3467;
40
+ };
41
+ };
42
+ export type SurfaceKind = keyof typeof SURFACE_DEFAULT_PORTS;
43
+ /** Human-readable label for surfaces. */
44
+ export declare function surfaceLabel(surface: SurfaceKind): string;
45
+ /**
46
+ * Return the surface-specific default port pair (HTTP + WS).
47
+ * Freezes the returned object so callers can't mutate the constant table.
14
48
  */
49
+ export declare function getSurfaceDefaultPorts(surface: SurfaceKind): {
50
+ http: number;
51
+ ws: number;
52
+ };
15
53
  /** Resolve true when `port` can be bound on `host`, false on EADDRINUSE/EACCES. */
16
54
  export declare function isPortFree(host: string, port: number): Promise<boolean>;
17
55
  export interface FindFreePortOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"port-utils.d.ts","sourceRoot":"","sources":["../../src/server/port-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAavE;AAED,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
1
+ {"version":3,"file":"port-utils.d.ts","sourceRoot":"","sources":["../../src/server/port-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB;;iBACrB,IAAI,EAAE,IAAI;iBAAE,EAAE,EAAE,IAAI;;;iBACnB,IAAI,EAAE,IAAI;iBAAE,EAAE,EAAE,IAAI;;CAC+B,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAE7D,yCAAyC;AACzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAEA;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAavE;AAED,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pre-context-services.d.ts","sourceRoot":"","sources":["../../src/server/pre-context-services.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EACL,KAAK,kBAAkB,EACvB,gBAAgB,EAGhB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAElB,QAAQ,EAER,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,YAAY,EACZ,OAAO,EAUP,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAsB1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAMjE,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,kCAAkC,CAAC;AAK1C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,oBAAoB,CAAC;IACpC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC9C,eAAe,EAAE,kCAAkC,CAAC;IACpD,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC5C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE;QAAE,YAAY,EAAE,mBAAmB,GAAG,SAAS,CAAC;QAAC,WAAW,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAC7F,oBAAoB,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAsR7B"}
1
+ {"version":3,"file":"pre-context-services.d.ts","sourceRoot":"","sources":["../../src/server/pre-context-services.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EACL,KAAK,kBAAkB,EACvB,gBAAgB,EAGhB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAElB,QAAQ,EAER,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,YAAY,EACZ,OAAO,EAUP,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AA0B1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAMjE,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,kCAAkC,CAAC;AAK1C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,oBAAoB,CAAC;IACpC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC9C,eAAe,EAAE,kCAAkC,CAAC;IACpD,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC5C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE;QAAE,YAAY,EAAE,mBAAmB,GAAG,SAAS,CAAC;QAAC,WAAW,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAC7F,oBAAoB,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAmS7B"}
@@ -1,6 +1,6 @@
1
1
  import type { SecretVault } from '@wrongstack/core';
2
2
  /** Pref keys exposed to the settings panel via prefs.get / prefs.updated. */
3
- export declare const PREF_KEYS: readonly ['autonomy', 'autonomyDelayMs', 'autoProceedMaxIterations', 'yolo', 'maxIterations', 'chime', 'confirmExit', 'streamFleet', 'nextPrediction', 'enhanceEnabled', 'enhanceDelayMs', 'enhanceLanguage', 'featureMcp', 'featurePlugins', 'featureMemory', 'featureSkills', 'featureModelsRegistry', 'indexOnStart', 'contextAutoCompact', 'contextStrategy', 'contextMode', 'tokenSavingTier', 'maxConcurrent', 'titleAnimation', 'uiLocale', 'logLevel', 'auditLevel', 'hqEnabled', 'hqUrl', 'hqToken', 'hqRawContent', 'tgConfigured', 'tgSessionEnd', 'tgDelegate', 'tgLongToolMs', 'reasoningMode', 'reasoningEffort', 'reasoningPreserve', 'cacheTtl', 'fallbackModels', 'fallbackProfiles', 'favoriteModels', 'favoriteModelsOnly', 'modelMatrix', 'fallbackAuto', 'refinerProvider', 'refinerModel', 'thinkingWord', 'statuslineMode', 'animationStyle', 'breakerEnabled', 'breakerAutoKillResetMs', 'fsAccess', 'debugStream'];
3
+ export declare const PREF_KEYS: readonly ['autonomy', 'autonomyDelayMs', 'autoProceedMaxIterations', 'yolo', 'maxIterations', 'chime', 'confirmExit', 'streamFleet', 'nextPrediction', 'enhanceEnabled', 'enhanceDelayMs', 'enhanceLanguage', 'featureMcp', 'featurePlugins', 'featureMemory', 'featureSkills', 'featureModelsRegistry', 'indexOnStart', 'contextAutoCompact', 'contextStrategy', 'contextMode', 'tokenSavingTier', 'maxConcurrent', 'titleAnimation', 'uiLocale', 'logLevel', 'auditLevel', 'hqEnabled', 'hqUrl', 'hqToken', 'hqRawContent', 'tgConfigured', 'tgSessionEnd', 'tgDelegate', 'tgLongToolMs', 'reasoningMode', 'reasoningEffort', 'reasoningPreserve', 'cacheTtl', 'fallbackModels', 'fallbackProfiles', 'favoriteModels', 'favoriteModelsOnly', 'modelMatrix', 'fallbackAuto', 'refinerProvider', 'refinerModel', 'refinerFallbackProfile', 'thinkingWord', 'statuslineMode', 'animationStyle', 'showModelReasoning', 'breakerEnabled', 'breakerAutoKillResetMs', 'fsAccess', 'debugStream', 'chimeraEnabled', 'chimeraProvider', 'chimeraModel', 'chimeraMaxFiles', 'chimeraAutoFix', 'autoReviewEnabled', 'autoReviewProvider', 'autoReviewModel', 'autoReviewFallbackProfile', 'autoReviewFallbackModels', 'autoReviewDebounceMs', 'autoReviewMaxFilesPerBatch', 'autoReviewMaxConcurrentReviews', 'autoReviewCascadeOn', 'pluginsEnabled'];
4
4
  export interface PrefHelperDeps {
5
5
  globalConfigPath: string;
6
6
  vault: SecretVault;
@@ -1 +1 @@
1
- {"version":3,"file":"pref-helpers.d.ts","sourceRoot":"","sources":["../../src/server/pref-helpers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,6EAA6E;AAC7E,eAAO,MAAM,SAAS,YACpB,UAAU,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,MAAM,EACN,eAAe,EACf,OAAO,EACP,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,EAGd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAEhB,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,aAAa,CACL,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1F;AAED;;;;;;;kBAOkB;AAClB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EACjD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAkOf"}
1
+ {"version":3,"file":"pref-helpers.d.ts","sourceRoot":"","sources":["../../src/server/pref-helpers.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,6EAA6E;AAC7E,eAAO,MAAM,SAAS,YACpB,UAAU,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,MAAM,EACN,eAAe,EACf,OAAO,EACP,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,OAAO,EACP,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,cAAc,EAGd,iBAAiB,EACjB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EAEpB,gBAAgB,EAChB,wBAAwB,EACxB,UAAU,EACV,aAAa,EAIb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,gCAAgC,EAChC,qBAAqB,EAErB,gBAAgB,CACR,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1F;AAED;;;;;;;kBAOkB;AAClB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EACjD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAqWf"}
@@ -32,6 +32,19 @@ export interface SavedProviderView {
32
32
  * reaches the wire.
33
33
  */
34
34
  export declare function projectSavedProviders(providers: Record<string, ProviderConfig>): SavedProviderView[];
35
+ /**
36
+ * Probe a saved provider's OpenAI-compatible `/v1/models` and map the
37
+ * discovered ids into the minimal model-descriptor shape the WebUI dropdown
38
+ * needs. Used as a fallback when a config-only custom provider (no saved
39
+ * `models` allowlist, absent from models.dev) would otherwise resolve to an
40
+ * empty list. Returns `[]` on any failure — the caller treats that as "no
41
+ * models" (unchanged behaviour).
42
+ */
43
+ export declare function probeModelDescriptors(cfg: ProviderConfig): Promise<Array<{
44
+ id: string;
45
+ name: string;
46
+ capabilities: [];
47
+ }>>;
35
48
  export interface ProviderHandlerDeps {
36
49
  globalConfigPath: string;
37
50
  vault: import('@wrongstack/core').SecretVault;
@@ -1 +1 @@
1
- {"version":3,"file":"provider-handlers.d.ts","sourceRoot":"","sources":["../../src/server/provider-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-handlers.d.ts","sourceRoot":"","sources":["../../src/server/provider-handlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-keys.d.ts","sourceRoot":"","sources":["../../src/server/provider-keys.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,EAAE,CAQnE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,CAc/E;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIzD;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CACvB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,WAAW,CAab;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CACvB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,WAAW,CAcb;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,WAAW,CASb;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CACzB,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAClG,MAAM,EAAE,MAAM,GACb,WAAW,CAkBb;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAM1F"}
1
+ {"version":3,"file":"provider-keys.d.ts","sourceRoot":"","sources":["../../src/server/provider-keys.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,EAAE,CAQnE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,CAc/E;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIzD;AAgCD,iFAAiF;AACjF,wBAAgB,SAAS,CACvB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,WAAW,CAuBb;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CACvB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,WAAW,CAcb;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,WAAW,CASb;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CACzB,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAClG,MAAM,EAAE,MAAM,GACb,WAAW,CA0Bb;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAM1F"}
@@ -7,6 +7,8 @@ export interface ProviderRouteHandlers {
7
7
  listProviderModels: (ws: WebSocket, msg: WSClientMessage) => Promise<void>;
8
8
  switchModel: (ws: WebSocket, msg: WSClientMessage) => Promise<void>;
9
9
  refineModel: (ws: WebSocket, msg: WSClientMessage) => Promise<void>;
10
+ /** Adopt a just-added provider as the live default when no model is active. */
11
+ adoptDefaultProviderIfUnset: (providerId: string) => Promise<void>;
10
12
  providerHandlers: ReturnType<typeof createProviderHandlers>;
11
13
  }
12
14
  export declare function handleProviderRoute(ws: WebSocket, msg: WSClientMessage, routes: ProviderRouteHandlers): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"provider-routes.d.ts","sourceRoot":"","sources":["../../src/server/provider-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,kBAAkB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,kBAAkB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,gBAAgB,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAC7D;AAuCD,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAgJlB"}
1
+ {"version":3,"file":"provider-routes.d.ts","sourceRoot":"","sources":["../../src/server/provider-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,kBAAkB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,kBAAkB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,+EAA+E;IAC/E,2BAA2B,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,gBAAgB,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAC7D;AAuCD,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAmJlB"}
@@ -1,34 +1,32 @@
1
- import type { WebSocket, WebSocketServer } from 'ws';
2
- import type { Agent, AgentPipelines, Context, MemoryStore, DefaultModeStore, EventBus, ModelsRegistry, ObservableBrainArbiter, PermissionPolicy, Provider, ProviderConfig, ProviderRegistry, SkillInstaller, SkillLoader, ToolRegistry } from '@wrongstack/core';
1
+ import type { Agent, AgentPipelines, AutoCompactionMiddleware, BrainAutoRisk, BrainRuntime, Compactor, ConfigStore, Context, DefaultModeStore, EventBus, Logger, MemoryStore, ModelsRegistry, ObservableBrainArbiter, PermissionPolicy, Provider, ProviderConfig, ProviderRegistry, SecretVault, SessionStore, SkillInstaller, SkillLoader, ToolRegistry } from '@wrongstack/core';
3
2
  import type { DefaultTokenCounter } from '@wrongstack/core/infrastructure';
4
- import type { AutoCompactionMiddleware, BrainAutoRisk, BrainRuntime, Compactor, ConfigStore, Logger, SecretVault } from '@wrongstack/core';
5
- import type { SessionStore } from '@wrongstack/core';
3
+ import type { WebSocket, WebSocketServer } from 'ws';
6
4
  type Session = Awaited<ReturnType<SessionStore['create']>>;
7
5
  import type { Config } from '@wrongstack/core/types';
8
6
  import type { MCPRegistry } from '@wrongstack/mcp';
9
- import type { AutoPhaseWebSocketHandler } from './autophase-ws-handler.js';
10
- import type { SpecsWebSocketHandler } from './specs-ws-handler.js';
11
- import type { SddBoardWebSocketHandler } from './sdd-board-ws-handler.js';
12
- import type { SddWizardWebSocketHandler } from './sdd-wizard-ws-handler.js';
13
- import type { WorktreeWebSocketHandler } from './worktree-ws-handler.js';
7
+ import type { GoalRouteHandlers } from './goal-routes.js';
8
+ import type { GoalWebSocketHandler } from './goal-ws-handler.js';
9
+ import type { BrainRouteHandlers } from './brain-routes.js';
14
10
  import type { CollaborationWebSocketHandler } from './collaboration-ws-handler.js';
15
- import type { TerminalWebSocketHandler } from './terminal-ws-handler.js';
16
- import type { ProviderRouteHandlers } from './provider-routes.js';
17
- import type { SessionRouteHandlers } from './session-routes.js';
18
- import type { ProjectRouteHandlers } from './project-routes.js';
19
- import type { ModeRouteHandlers } from './mode-routes.js';
20
- import type { PrefsRouteHandlers } from './prefs-routes.js';
21
- import type { ShellGitRouteHandlers } from './shell-git-routes.js';
11
+ import type { CustomModeStore } from './custom-context-modes.js';
22
12
  import type { MailboxRouteHandlers } from './mailbox-routes.js';
23
13
  import type { McpRouteHandlers } from './mcp-routes.js';
24
- import type { BrainRouteHandlers } from './brain-routes.js';
25
- import type { AutoPhaseRouteHandlers } from './autophase-routes.js';
26
- import type { SpecsRouteHandlers } from './specs-routes.js';
14
+ import type { ModeRouteHandlers } from './mode-routes.js';
15
+ import { type PendingConfirm } from './pending-confirms.js';
16
+ import type { PrefsRouteHandlers } from './prefs-routes.js';
17
+ import type { ProjectRouteHandlers } from './project-routes.js';
18
+ import type { ProviderRouteHandlers } from './provider-routes.js';
27
19
  import type { SddBoardRouteHandlers } from './sdd-board-routes.js';
20
+ import type { SddBoardWebSocketHandler } from './sdd-board-ws-handler.js';
28
21
  import type { SddWizardRouteHandlers } from './sdd-wizard-routes.js';
22
+ import type { SddWizardWebSocketHandler } from './sdd-wizard-ws-handler.js';
23
+ import type { SessionRouteHandlers } from './session-routes.js';
24
+ import type { ShellGitRouteHandlers } from './shell-git-routes.js';
25
+ import type { SpecsRouteHandlers } from './specs-routes.js';
26
+ import type { SpecsWebSocketHandler } from './specs-ws-handler.js';
27
+ import type { TerminalWebSocketHandler } from './terminal-ws-handler.js';
29
28
  import type { ConnectedClient } from './types.js';
30
- import type { CustomModeStore } from './custom-context-modes.js';
31
- import { type PendingConfirm } from './pending-confirms.js';
29
+ import type { WorktreeWebSocketHandler } from './worktree-ws-handler.js';
32
30
  /**
33
31
  * Mutable session-scoped state. Handlers always read LIVE values through
34
32
  * these getters and write through setters — same closure semantics as
@@ -107,8 +105,8 @@ export interface WebuiDeps {
107
105
  httpPort: number;
108
106
  wssPrimary: WebSocketServer;
109
107
  wssSecondary: WebSocketServer | null;
110
- /** Per-feature WS handlers (autophase, specs, sdd-board, sdd-wizard, …). */
111
- autoPhaseHandler: AutoPhaseWebSocketHandler;
108
+ /** Per-feature WS handlers (goal, specs, sdd-board, sdd-wizard, …). */
109
+ goalHandler: GoalWebSocketHandler;
112
110
  specsHandler: SpecsWebSocketHandler;
113
111
  sddBoardHandler: SddBoardWebSocketHandler;
114
112
  sddWizardHandler: SddWizardWebSocketHandler;
@@ -172,7 +170,7 @@ export interface AllRoutes {
172
170
  mailboxRoutes: MailboxRouteHandlers;
173
171
  mcpRoutes: McpRouteHandlers;
174
172
  brainRoutes: BrainRouteHandlers;
175
- autoPhaseRoutes: AutoPhaseRouteHandlers;
173
+ goalRoutes: GoalRouteHandlers;
176
174
  specsRoutes: SpecsRouteHandlers;
177
175
  sddBoardRoutes: SddBoardRouteHandlers;
178
176
  sddWizardRoutes: SddWizardRouteHandlers;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,KAAK,EACL,cAAc,EACd,wBAAwB,EACxB,aAAa,EAEb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,WAAW,EACX,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,kBAAkB,CAAC;AAW1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErD,KAAK,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AASjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAiBhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,OAAO,EAAE,KAAK,cAAc,EAAsC,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAMhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAiBzE;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,IAAI,MAAM,CAAC;IACpB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,IAAI,MAAM,CAAC;IACzB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,aAAa,IAAI,MAAM,CAAC;IACxB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,mBAAmB,IAAI,MAAM,CAAC;IAC9B,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,eAAe,IAAI,YAAY,CAAC;IAChC,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1C,SAAS,IAAI,MAAM,CAAC;IACpB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0EAA0E;IAC1E,oBAAoB,IAAI,OAAO,CAAC;IAChC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C;;;;;OAKG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,sDAAsD;IACtD,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;CAC/C;AA8BD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,kBAAkB,EAAE,SAAS,CAAC;IAChD,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,mBAAmB,CAAC;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACpD,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,uEAAuE;IACvE,WAAW,EAAE,oBAAoB,CAAC;IAClC,YAAY,EAAE,qBAAqB,CAAC;IACpC,eAAe,EAAE,wBAAwB,CAAC;IAC1C,gBAAgB,EAAE,yBAAyB,CAAC;IAC5C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,aAAa,EAAE,6BAA6B,CAAC;IAC7C,eAAe,EAAE,wBAAwB,CAAC;IAC1C,+CAA+C;IAC/C,KAAK,EAAE,sBAAsB,CAAC;IAC9B,aAAa,EAAE;QAAE,WAAW,EAAE,aAAa,CAAA;KAAE,CAAC;IAC9C,+DAA+D;IAC/D,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClF;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,MAAM,OAAO,CAAC;QACjC,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,wEAAwE;IACxE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,0EAA0E;IAC1E,8BAA8B,EAAE,CAC9B,WAAW,EAAE,QAAQ,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,cAAc,GAAG,SAAS,KACrC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,qFAAqF;IACrF,kBAAkB,EAAE,CAClB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EACjD,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,uEAAuE;IACvE,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,4DAA4D;IAC5D,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,qBAAqB,CAAC;IACtC,aAAa,EAAE,oBAAoB,CAAC;IACpC,aAAa,EAAE,oBAAoB,CAAC;IACpC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,EAAE,kBAAkB,CAAC;IAChC,cAAc,EAAE,qBAAqB,CAAC;IACtC,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,kBAAkB,CAAC;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,EAAE,kBAAkB,CAAC;IAChC,cAAc,EAAE,qBAAqB,CAAC;IACtC,eAAe,EAAE,sBAAsB,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,cAAc,GACjB,SAAS,CAywBX"}
@@ -1,5 +1,35 @@
1
- import { type Agent, type AgentFactory, type BrainArbiter, type EventBus } from '@wrongstack/core';
1
+ import { type Agent, type AgentFactory, type BrainArbiter, type EventBus, type TaskGraph, TaskTracker } from '@wrongstack/core';
2
+ import { type SddRunHandle, SddRunRegistry } from '@wrongstack/sdd';
2
3
  import type { SddWizardDeps } from './sdd-wizard-ws-handler.js';
4
+ /** Config knobs shared by the wizard start and the launch-from-board start. */
5
+ export interface StartSddRunFromGraphConfig {
6
+ parallelSlots?: number | undefined;
7
+ defaultModel?: string | undefined;
8
+ defaultProvider?: string | undefined;
9
+ fallbackModels?: string[] | undefined;
10
+ /** Per-run git-worktree isolation. Omit → env default (WRONGSTACK_SDD_WORKTREES). */
11
+ worktrees?: boolean | undefined;
12
+ }
13
+ export interface StartSddRunFromGraphDeps {
14
+ agent: Agent;
15
+ events: EventBus;
16
+ projectRoot: string;
17
+ subagentFactory: AgentFactory;
18
+ brain?: BrainArbiter | undefined;
19
+ projectSddBoards: string;
20
+ registry?: SddRunRegistry | undefined;
21
+ /** Isolated read-only LLM turn for the supervisor's auto-split. Omit → no split. */
22
+ runIsolatedTurn?: ((prompt: string, name: string) => Promise<string>) | undefined;
23
+ }
24
+ /**
25
+ * Start a multi-agent SDD run from a ready TaskGraph — the shared core behind
26
+ * BOTH the wizard's `startRun` and launching a run from a kanban board. Builds a
27
+ * TaskTracker from the graph (when none is supplied), sets up worktree isolation,
28
+ * the completion-gate verifier and the Brain failure supervisor, then defers to
29
+ * `startSddRun` (which owns the projector + cross-process control drain, so the
30
+ * run is steerable from any surface). Returns the run handle.
31
+ */
32
+ export declare function startSddRunFromGraph(graph: TaskGraph, deps: StartSddRunFromGraphDeps, config?: StartSddRunFromGraphConfig, tracker?: TaskTracker): SddRunHandle;
3
33
  export interface SddWizardWiringOptions {
4
34
  /** Leader agent — seeds the run's default factory + project context. */
5
35
  agent: Agent;
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-wizard-wiring.d.ts","sourceRoot":"","sources":["../../src/server/sdd-wizard-wiring.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EAGd,MAAM,kBAAkB,CAAC;AAa1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,KAAK,EAAE,KAAK,CAAC;IACb,4EAA4E;IAC5E,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,eAAe,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,6DAA6D;IAC7D,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAqBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,aAAa,CA0I9E"}
1
+ {"version":3,"file":"sdd-wizard-wiring.d.ts","sourceRoot":"","sources":["../../src/server/sdd-wizard-wiring.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,WAAW,EAGZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAKL,KAAK,YAAY,EAEjB,cAAc,EAKf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,oFAAoF;IACpF,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CACnF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,wBAAwB,EAC9B,MAAM,GAAE,0BAA+B,EACvC,OAAO,CAAC,EAAE,WAAW,GACpB,YAAY,CAoEd;AAED,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,KAAK,EAAE,KAAK,CAAC;IACb,4EAA4E;IAC5E,MAAM,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,eAAe,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,6DAA6D;IAC7D,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAqBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,aAAa,CAwF9E"}
@@ -16,6 +16,7 @@ export interface ResolvedPorts {
16
16
  * `WEBUI_STRICT_PORT` is set.
17
17
  */
18
18
  export declare function resolvePorts(opts: {
19
+ surface?: 'webui' | 'simpleui' | undefined;
19
20
  wsPort?: number | undefined;
20
21
  wsHost?: string | undefined;
21
22
  httpPort?: number | undefined;
@@ -87,7 +88,7 @@ export declare function armEvents(wssPrimary: WebSocketServer, wssSecondary: Web
87
88
  * it lives in the separate `@wrongstack/webui` package. Callers can pass an
88
89
  * explicit `distDir`; when they don't, we try to resolve the frontend package
89
90
  * relative to the server entry that is asking. This lets the standalone
90
- * `wstackui` binary serve the webui assets when both packages are installed,
91
+ * standalone server serve the webui assets when both packages are installed,
91
92
  * while also allowing embedded callers (e.g. the desktop app) to pass an exact
92
93
  * path so they don't depend on module-resolution layout.
93
94
  */
@@ -106,6 +107,12 @@ export declare function startHttpServer(opts: {
106
107
  openBrowser: boolean;
107
108
  watcherMetrics: FileWatcherMetrics;
108
109
  onFleetPing: () => void;
110
+ onTechStackEvent?: ((event: import('./techstack-handlers.js').TechStackEvent) => void) | undefined;
111
+ /** Live provider access for TechStack's LLM research stage. */
112
+ getLlm?: (() => {
113
+ provider: import('@wrongstack/core').Provider;
114
+ model: string;
115
+ } | undefined) | undefined;
109
116
  distDir?: string | undefined;
110
117
  }): import('node:http').Server;
111
118
  export interface ShutdownDeps {
@@ -1 +1 @@
1
- {"version":3,"file":"server-runtime.d.ts","sourceRoot":"","sources":["../../src/server/server-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-runtime.d.ts","sourceRoot":"","sources":["../../src/server/server-runtime.ts"],"names":[],"mappings":"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"}
@@ -9,12 +9,12 @@
9
9
  * as getters/setters so this stays a pure function of its context. Handler
10
10
  * bodies are a verbatim lift — only dependency references changed.
11
11
  */
12
- import type { WebSocket } from 'ws';
13
- import { type Context, type SessionStore, type ToolRegistry, type createStrategyCompactor } from '@wrongstack/core';
12
+ import { type Context, type createStrategyCompactor, type SessionStore, type ToolRegistry } from '@wrongstack/core';
14
13
  import type { DefaultTokenCounter } from '@wrongstack/core/infrastructure';
15
- import type { ConnectedClient } from './types.js';
16
- import type { SessionRouteHandlers } from './session-routes.js';
14
+ import type { WebSocket } from 'ws';
17
15
  import type { CustomModeStore } from './custom-context-modes.js';
16
+ import type { SessionRouteHandlers } from './session-routes.js';
17
+ import type { ConnectedClient } from './types.js';
18
18
  type Session = Awaited<ReturnType<SessionStore['create']>>;
19
19
  type SessionStartPayload = {
20
20
  sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session-handlers.d.ts","sourceRoot":"","sources":["../../src/server/session-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAG7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAUjE,KAAK,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE3D,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACtD,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,qDAAqD;IACrD,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,mBAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,mBAAmB,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,GAAG,oBAAoB,CAiYvF"}
1
+ {"version":3,"file":"session-handlers.d.ts","sourceRoot":"","sources":["../../src/server/session-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAK5B,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASlD,KAAK,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE3D,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACtD,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,qDAAqD;IACrD,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,mBAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,mBAAmB,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,GAAG,oBAAoB,CAibvF"}
@@ -0,0 +1,29 @@
1
+ import type { SessionSummary } from '@wrongstack/core';
2
+ /**
3
+ * Stable WebSocket projection for the WebUI history surfaces.
4
+ *
5
+ * Keep this mapping shared by the standalone and CLI-hosted WebUI servers so
6
+ * an initial list, rename refresh, and delete refresh cannot silently expose
7
+ * different session metadata.
8
+ */
9
+ export interface SessionHistoryWireEntry {
10
+ id: string;
11
+ title: string;
12
+ name?: string | undefined;
13
+ startedAt: string;
14
+ endedAt?: string | undefined;
15
+ model: string;
16
+ provider: string;
17
+ tokenTotal: number;
18
+ iterationCount?: number | undefined;
19
+ toolCallCount?: number | undefined;
20
+ toolErrorCount?: number | undefined;
21
+ fileChangeCount?: number | undefined;
22
+ toolBreakdown?: Record<string, number> | undefined;
23
+ compactionCount?: number | undefined;
24
+ outcome?: SessionSummary['outcome'];
25
+ isCurrent: boolean;
26
+ }
27
+ export declare function toSessionHistoryEntry(summary: SessionSummary, currentSessionId: string): SessionHistoryWireEntry;
28
+ export declare function toSessionHistoryEntries(summaries: SessionSummary[], currentSessionId: string): SessionHistoryWireEntry[];
29
+ //# sourceMappingURL=session-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../../src/server/session-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,MAAM,GACvB,uBAAuB,CAmBzB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,cAAc,EAAE,EAC3B,gBAAgB,EAAE,MAAM,GACvB,uBAAuB,EAAE,CAE3B"}