@wrongstack/webui-server 0.306.3 → 0.307.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 (45) hide show
  1. package/dist/index.js +3744 -2815
  2. package/dist/protocol/client-operations.d.ts +1 -1
  3. package/dist/protocol/client-workspace.d.ts +1 -1
  4. package/dist/protocol/index.js +12 -0
  5. package/dist/protocol/registry.d.ts +2 -2
  6. package/dist/protocol/server-workspace.d.ts +1 -1
  7. package/dist/server/collaboration-ws-handler.d.ts +20 -0
  8. package/dist/server/connections/collector.d.ts +15 -0
  9. package/dist/server/connections/helpers.d.ts +18 -0
  10. package/dist/server/connections/index.d.ts +5 -0
  11. package/dist/server/connections/service-actions.d.ts +16 -0
  12. package/dist/server/connections/types.d.ts +55 -0
  13. package/dist/server/connections-health-route.d.ts +5 -66
  14. package/dist/server/entry.js +3608 -2696
  15. package/dist/server/file-handlers.d.ts +37 -0
  16. package/dist/server/goal-ws-handler.d.ts +16 -0
  17. package/dist/server/http-server/api-router.d.ts +22 -0
  18. package/dist/server/http-server/index.d.ts +6 -0
  19. package/dist/server/http-server/security-helpers.d.ts +24 -0
  20. package/dist/server/http-server/static-file-handler.d.ts +10 -0
  21. package/dist/server/http-server.d.ts +28 -87
  22. package/dist/server/index.d.ts +4 -1
  23. package/dist/server/network-info.d.ts +2 -3
  24. package/dist/server/pref-helpers.d.ts +1 -1
  25. package/dist/server/project-watcher.d.ts +31 -0
  26. package/dist/server/sdd-board-ws-handler.d.ts +9 -0
  27. package/dist/server/sdd-wizard-ws-handler.d.ts +1 -0
  28. package/dist/server/server-runtime.d.ts +1 -1
  29. package/dist/server/session-cleanup-scheduler.d.ts +26 -0
  30. package/dist/server/session-deletion.d.ts +13 -0
  31. package/dist/server/setup-events-pattern-handlers.d.ts +10 -0
  32. package/dist/server/setup-events-status-watcher.d.ts +1 -1
  33. package/dist/server/setup-events-subagent-handlers.d.ts +14 -0
  34. package/dist/server/setup-events-tool-handlers.d.ts +18 -0
  35. package/dist/server/setup-events.d.ts +1 -2
  36. package/dist/server/shell-open.d.ts +9 -8
  37. package/dist/server/start-webui-companion.d.ts +16 -0
  38. package/dist/server/start-webui-credential-watcher.d.ts +13 -0
  39. package/dist/server/start-webui-remediation.d.ts +14 -0
  40. package/dist/server/start-webui-shutdown.d.ts +43 -0
  41. package/dist/server/start-webui-todos.d.ts +13 -0
  42. package/dist/server/start-webui.d.ts +2 -29
  43. package/dist/server/techstack-handlers.d.ts +2 -2
  44. package/dist/server/worktree-ws-handler.d.ts +7 -0
  45. package/package.json +13 -13
@@ -0,0 +1,43 @@
1
+ import type * as http from 'node:http';
2
+ import type { WebSocket, WebSocketServer } from 'ws';
3
+ import type { ConnectedClient } from './types.js';
4
+ export declare function setupWebuiShutdown(options: {
5
+ session: any;
6
+ tokenCounter: any;
7
+ clients: Map<WebSocket, ConnectedClient>;
8
+ httpServer: http.Server;
9
+ companionServer: http.Server | null;
10
+ wssPrimary: WebSocketServer;
11
+ wssSecondary?: WebSocketServer | null | undefined;
12
+ stopEmptySessionCleanup: {
13
+ dispose: () => Promise<void>;
14
+ };
15
+ getKanbanSupervisorDispose: () => (() => void) | null;
16
+ todosCheckpoint: {
17
+ detach: () => Promise<void>;
18
+ };
19
+ stopHeapWatchdog: () => Promise<void>;
20
+ getCredentialWatcherClose: () => (() => void) | undefined;
21
+ disposeRealtimeHandlers: () => void;
22
+ governanceHandle?: {
23
+ close: () => Promise<{
24
+ ok: boolean;
25
+ action?: string;
26
+ message?: string;
27
+ } | undefined>;
28
+ } | undefined;
29
+ logger: any;
30
+ brainMonitor: any;
31
+ agentServices: any;
32
+ mcpRegistry: any;
33
+ sessionIdentity: any;
34
+ eventArming: any;
35
+ getEternalSubscription: () => {
36
+ dispose: () => void;
37
+ } | null;
38
+ clearEternalSubscription: () => void;
39
+ codebaseIndexing: any;
40
+ memoryStore: any;
41
+ globalConfigPath: string;
42
+ }): () => void;
43
+ //# sourceMappingURL=start-webui-shutdown.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { attachTodosCheckpoint } from '@wrongstack/core/storage';
2
+ export declare function createStandaloneTodosCheckpointLifecycle(input: {
3
+ state: Parameters<typeof attachTodosCheckpoint>[0];
4
+ sessionsDir: string;
5
+ sessionId: string;
6
+ events?: Parameters<typeof attachTodosCheckpoint>[3];
7
+ traceId?: string | undefined;
8
+ warn?: ((message: string) => void) | undefined;
9
+ }): {
10
+ rebind: (sessionId: string, sessionsDir: string) => Promise<void>;
11
+ detach: () => Promise<void>;
12
+ };
13
+ //# sourceMappingURL=start-webui-todos.d.ts.map
@@ -7,19 +7,9 @@
7
7
  * service construction (Phase 1c), route/dispatcher/connection wiring
8
8
  * (Phase 1b/1a), WS + HTTP server creation, and graceful shutdown.
9
9
  */
10
- import { attachTodosCheckpoint } from '@wrongstack/core/storage';
10
+ import { createStandaloneTodosCheckpointLifecycle } from './start-webui-todos.js';
11
11
  import type { WebUIOptions } from './types.js';
12
- export declare function createStandaloneTodosCheckpointLifecycle(input: {
13
- state: Parameters<typeof attachTodosCheckpoint>[0];
14
- sessionsDir: string;
15
- sessionId: string;
16
- events?: Parameters<typeof attachTodosCheckpoint>[3];
17
- traceId?: string | undefined;
18
- warn?: ((message: string) => void) | undefined;
19
- }): {
20
- rebind: (sessionId: string, sessionsDir: string) => Promise<void>;
21
- detach: () => Promise<void>;
22
- };
12
+ export { createStandaloneTodosCheckpointLifecycle };
23
13
  export declare function startWebUI(opts?: WebUIOptions & {
24
14
  wsHost?: string | undefined;
25
15
  httpPort?: number | undefined;
@@ -29,21 +19,4 @@ export declare function startWebUI(opts?: WebUIOptions & {
29
19
  requireToken?: boolean | undefined;
30
20
  open?: boolean | undefined;
31
21
  }): Promise<void>;
32
- /**
33
- * Webui-side mailbox bridge discovery.
34
- *
35
- * The webui doesn't spawn a bridge — the bridge (`wstack mailbox serve`)
36
- * is spawned by any CLI surface via the auto-bootstrap wiring. We just
37
- * probe the per-project lock for an already-running instance and stash
38
- * the discovered handle on `ctx.meta['mailboxBridge']` so any later
39
- * code (the `/mailbox` HTTP surface, agent-status broadcasters,
40
- * external-agent proxy) can find it without re-running discovery.
41
- *
42
- * If no bridge is running, we log a breadcrumb so the user knows
43
- * to start one (`wstack --repl`, `wstack --webui`, or
44
- * `wstack mailbox serve` standalone).
45
- *
46
- * Best-effort: never throws. A failure (missing lock dir, ENOENT,
47
- * etc.) logs at warn level and returns — the webui keeps running.
48
- */
49
22
  //# sourceMappingURL=start-webui.d.ts.map
@@ -100,8 +100,8 @@ export declare function handleTechStackCancel(res: http.ServerResponse, deps: Te
100
100
  export declare function handleTechStackDependencyResearch(res: http.ServerResponse, deps: TechStackHandlerDeps, dependencyId: string): Promise<void>;
101
101
  /** GET /api/techstack/jobs/:id */
102
102
  export declare function handleTechStackJobStatus(res: http.ServerResponse, deps: TechStackHandlerDeps, jobId: string): void;
103
- /** GET /api/techstack/reports/:id?format=md|json */
104
- export declare function handleTechStackReport(res: http.ServerResponse, deps: TechStackHandlerDeps, reportId: string, format: 'md' | 'json'): void;
103
+ /** GET /api/techstack/reports/:id?format=md|json|spdx|cyclonedx */
104
+ export declare function handleTechStackReport(res: http.ServerResponse, deps: TechStackHandlerDeps, reportId: string, format: 'md' | 'json' | 'spdx' | 'cyclonedx'): void;
105
105
  /** GET /api/techstack/trends */
106
106
  export declare function handleTechStackTrends(res: http.ServerResponse, deps: TechStackHandlerDeps): Promise<void>;
107
107
  /** GET /api/techstack/remediation */
@@ -20,6 +20,13 @@ export declare class WorktreeWebSocketHandler {
20
20
  private readonly clients;
21
21
  private readonly handles;
22
22
  private baseBranch;
23
+ /**
24
+ * Change-detection pair for the 2s resync interval: every state mutation
25
+ * bumps `stateVersion`, every broadcast records it in `broadcastVersion`,
26
+ * so the interval only re-sends when something actually changed.
27
+ */
28
+ private stateVersion;
29
+ private broadcastVersion;
23
30
  private broadcastInterval;
24
31
  private readonly offs;
25
32
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/webui-server",
3
- "version": "0.306.3",
3
+ "version": "0.307.0",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack WebUI HTTP/WebSocket server module — extracted from @wrongstack/webui in PR #243/244 to remove the CLI -> @wrongstack/webui/server cross-package edge (audit §3.1.1). Pure backend: HTTP routes, WebSocket handlers, MCP tool wrappers, HTML serving. The web frontend lives in @wrongstack/webui; this package is the standalone server it can run on.",
6
6
  "keywords": [
@@ -39,20 +39,20 @@
39
39
  "!dist/**/*.map"
40
40
  ],
41
41
  "dependencies": {
42
- "ws": "^8.21.1",
43
- "@wrongstack/core": "0.306.3",
44
- "@wrongstack/requirement-intake": "0.306.3",
45
- "@wrongstack/mcp": "0.306.3",
46
- "@wrongstack/providers": "0.306.3",
47
- "@wrongstack/kanban": "0.306.3",
48
- "@wrongstack/tools": "0.306.3",
49
- "@wrongstack/runtime": "0.306.3",
50
- "@wrongstack/techstack": "0.306.3",
51
- "@wrongstack/sage": "0.306.3",
52
- "@wrongstack/sdd": "0.306.3"
42
+ "ws": "^8.21.3",
43
+ "@wrongstack/providers": "0.307.0",
44
+ "@wrongstack/requirement-intake": "0.307.0",
45
+ "@wrongstack/mcp": "0.307.0",
46
+ "@wrongstack/core": "0.307.0",
47
+ "@wrongstack/techstack": "0.307.0",
48
+ "@wrongstack/runtime": "0.307.0",
49
+ "@wrongstack/sage": "0.307.0",
50
+ "@wrongstack/kanban": "0.307.0",
51
+ "@wrongstack/tools": "0.307.0",
52
+ "@wrongstack/sdd": "0.307.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@types/node": "^26.1.2",
55
+ "@types/node": "^26.2.0",
56
56
  "@types/ws": "^8.18.1",
57
57
  "typescript": "^7.0.2"
58
58
  },