@wrongstack/webui-server 0.293.0 → 0.295.1
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.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19499 -14317
- package/dist/index.js.map +4 -4
- package/dist/protocol/client-conversation.d.ts +3 -0
- package/dist/protocol/client-conversation.d.ts.map +1 -0
- package/dist/protocol/client-integrations.d.ts +3 -0
- package/dist/protocol/client-integrations.d.ts.map +1 -0
- package/dist/protocol/client-operations.d.ts +3 -0
- package/dist/protocol/client-operations.d.ts.map +1 -0
- package/dist/protocol/client-workspace.d.ts +3 -0
- package/dist/protocol/client-workspace.d.ts.map +1 -0
- package/dist/protocol/connection-fsm.d.ts +39 -0
- package/dist/protocol/connection-fsm.d.ts.map +1 -0
- package/dist/protocol/decoder.d.ts +6 -0
- package/dist/protocol/decoder.d.ts.map +1 -0
- package/dist/protocol/index.d.ts +8 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +874 -0
- package/dist/protocol/index.js.map +7 -0
- package/dist/protocol/projections.d.ts +113 -0
- package/dist/protocol/projections.d.ts.map +1 -0
- package/dist/protocol/registry.d.ts +6 -0
- package/dist/protocol/registry.d.ts.map +1 -0
- package/dist/protocol/replay-payload.d.ts +41 -0
- package/dist/protocol/replay-payload.d.ts.map +1 -0
- package/dist/protocol/server-conversation.d.ts +3 -0
- package/dist/protocol/server-conversation.d.ts.map +1 -0
- package/dist/protocol/server-integrations.d.ts +3 -0
- package/dist/protocol/server-integrations.d.ts.map +1 -0
- package/dist/protocol/server-operations.d.ts +4 -0
- package/dist/protocol/server-operations.d.ts.map +1 -0
- package/dist/protocol/server-workspace.d.ts +3 -0
- package/dist/protocol/server-workspace.d.ts.map +1 -0
- package/dist/protocol/types.d.ts +24 -0
- package/dist/protocol/types.d.ts.map +1 -0
- package/dist/protocol/version.d.ts +20 -0
- package/dist/protocol/version.d.ts.map +1 -0
- package/dist/server/agent-roster-handlers.d.ts +31 -0
- package/dist/server/agent-roster-handlers.d.ts.map +1 -0
- package/dist/server/agent-roster-routes.d.ts +8 -0
- package/dist/server/agent-roster-routes.d.ts.map +1 -0
- package/dist/server/autonomy-routes.d.ts +9 -0
- package/dist/server/autonomy-routes.d.ts.map +1 -0
- package/dist/server/backend-services.d.ts +19 -6
- package/dist/server/backend-services.d.ts.map +1 -1
- package/dist/server/boot.d.ts +4 -1
- package/dist/server/boot.d.ts.map +1 -1
- package/dist/server/brain-handlers.d.ts +47 -0
- package/dist/server/brain-handlers.d.ts.map +1 -0
- package/dist/server/chronicle-routes.d.ts +14 -0
- package/dist/server/chronicle-routes.d.ts.map +1 -0
- package/dist/server/client-presence.d.ts +26 -0
- package/dist/server/client-presence.d.ts.map +1 -0
- package/dist/server/client-transport-routes.d.ts +8 -0
- package/dist/server/client-transport-routes.d.ts.map +1 -0
- package/dist/server/codebase-indexing.d.ts +3 -1
- package/dist/server/codebase-indexing.d.ts.map +1 -1
- package/dist/server/codemap-cache.d.ts +14 -0
- package/dist/server/codemap-cache.d.ts.map +1 -0
- package/dist/server/codemap-handlers.d.ts +2 -3
- package/dist/server/codemap-handlers.d.ts.map +1 -1
- package/dist/server/codemap-telemetry.d.ts.map +1 -1
- package/dist/server/collaboration-ws-handler.d.ts +3 -1
- package/dist/server/collaboration-ws-handler.d.ts.map +1 -1
- package/dist/server/completion-handlers.d.ts +2 -1
- package/dist/server/completion-handlers.d.ts.map +1 -1
- package/dist/server/completion-routes.d.ts +7 -0
- package/dist/server/completion-routes.d.ts.map +1 -0
- package/dist/server/config-doctor.d.ts +11 -0
- package/dist/server/config-doctor.d.ts.map +1 -0
- package/dist/server/connection-handler.d.ts +9 -46
- package/dist/server/connection-handler.d.ts.map +1 -1
- package/dist/server/connection-lifecycle.d.ts +43 -0
- package/dist/server/connection-lifecycle.d.ts.map +1 -0
- package/dist/server/content-routes.d.ts +15 -0
- package/dist/server/content-routes.d.ts.map +1 -0
- package/dist/server/conversation-operations.d.ts +28 -0
- package/dist/server/conversation-operations.d.ts.map +1 -0
- package/dist/server/conversation-routes.d.ts +10 -0
- package/dist/server/conversation-routes.d.ts.map +1 -0
- package/dist/server/custom-context-modes.d.ts +1 -1
- package/dist/server/custom-context-modes.d.ts.map +1 -1
- package/dist/server/design-handlers.d.ts +8 -0
- package/dist/server/design-handlers.d.ts.map +1 -1
- package/dist/server/discover-mailbox-bridge.d.ts.map +1 -1
- package/dist/server/embedded-host-adapters.d.ts +96 -0
- package/dist/server/embedded-host-adapters.d.ts.map +1 -0
- package/dist/server/embedded-lifecycle.d.ts +113 -0
- package/dist/server/embedded-lifecycle.d.ts.map +1 -0
- package/dist/server/embedded-message-router.d.ts +64 -0
- package/dist/server/embedded-message-router.d.ts.map +1 -0
- package/dist/server/entry.js +17227 -14052
- package/dist/server/entry.js.map +4 -4
- package/dist/server/eternal-iteration-broadcast.d.ts +1 -1
- package/dist/server/eternal-iteration-broadcast.d.ts.map +1 -1
- package/dist/server/file-handlers.d.ts.map +1 -1
- package/dist/server/frontend-static-serve.d.ts +133 -0
- package/dist/server/frontend-static-serve.d.ts.map +1 -0
- package/dist/server/git-process.d.ts +4 -0
- package/dist/server/git-process.d.ts.map +1 -0
- package/dist/server/goal-snapshot-routes.d.ts +7 -0
- package/dist/server/goal-snapshot-routes.d.ts.map +1 -0
- package/dist/server/goal-ws-handler.d.ts +3 -1
- package/dist/server/goal-ws-handler.d.ts.map +1 -1
- package/dist/server/handlers/worklist-handlers.d.ts +14 -20
- package/dist/server/handlers/worklist-handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +150 -121
- package/dist/server/handlers.js.map +3 -3
- package/dist/server/host-routes.d.ts +7 -0
- package/dist/server/host-routes.d.ts.map +1 -0
- package/dist/server/http-server/analytics-handler.d.ts +2 -0
- package/dist/server/http-server/analytics-handler.d.ts.map +1 -1
- package/dist/server/http-server/api-handlers.d.ts.map +1 -1
- package/dist/server/http-server.d.ts +20 -23
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/index.d.ts +57 -22
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/instance-registry.d.ts +1 -3
- package/dist/server/instance-registry.d.ts.map +1 -1
- package/dist/server/introspection-routes.d.ts +19 -0
- package/dist/server/introspection-routes.d.ts.map +1 -0
- package/dist/server/kanban-board-watcher.d.ts +19 -0
- package/dist/server/kanban-board-watcher.d.ts.map +1 -0
- package/dist/server/kanban-dispatch.d.ts +42 -0
- package/dist/server/kanban-dispatch.d.ts.map +1 -0
- package/dist/server/kanban-host-routes.d.ts +10 -0
- package/dist/server/kanban-host-routes.d.ts.map +1 -0
- package/dist/server/kanban-routes.d.ts +13 -3
- package/dist/server/kanban-routes.d.ts.map +1 -1
- package/dist/server/kanban-run-mirror.d.ts +76 -0
- package/dist/server/kanban-run-mirror.d.ts.map +1 -0
- package/dist/server/kanban-supervisor.d.ts +47 -0
- package/dist/server/kanban-supervisor.d.ts.map +1 -0
- package/dist/server/mailbox-handlers.d.ts +12 -4
- package/dist/server/mailbox-handlers.d.ts.map +1 -1
- package/dist/server/mailbox-routes.d.ts +8 -0
- package/dist/server/mailbox-routes.d.ts.map +1 -1
- package/dist/server/mcp-handlers.d.ts +4 -0
- package/dist/server/mcp-handlers.d.ts.map +1 -1
- package/dist/server/memory-handlers.d.ts +54 -46
- package/dist/server/memory-handlers.d.ts.map +1 -1
- package/dist/server/memory-routes.d.ts +11 -0
- package/dist/server/memory-routes.d.ts.map +1 -0
- package/dist/server/message-dispatcher.d.ts +3 -4
- package/dist/server/message-dispatcher.d.ts.map +1 -1
- package/dist/server/mode-handlers.d.ts +6 -15
- package/dist/server/mode-handlers.d.ts.map +1 -1
- package/dist/server/mode-operations.d.ts +24 -0
- package/dist/server/mode-operations.d.ts.map +1 -0
- package/dist/server/mode-routes.d.ts +2 -0
- package/dist/server/mode-routes.d.ts.map +1 -1
- package/dist/server/model-auto-discovery.d.ts +1 -1
- package/dist/server/model-auto-discovery.d.ts.map +1 -1
- package/dist/server/model-catalog.d.ts +1 -1
- package/dist/server/model-catalog.d.ts.map +1 -1
- package/dist/server/model-operations.d.ts +29 -0
- package/dist/server/model-operations.d.ts.map +1 -0
- package/dist/server/network-info.d.ts +50 -0
- package/dist/server/network-info.d.ts.map +1 -0
- package/dist/server/path-containment.d.ts.map +1 -1
- package/dist/server/port-utils.d.ts +18 -25
- package/dist/server/port-utils.d.ts.map +1 -1
- package/dist/server/pre-context-services.d.ts +32 -5
- package/dist/server/pre-context-services.d.ts.map +1 -1
- package/dist/server/pref-helpers.d.ts +1 -3
- package/dist/server/pref-helpers.d.ts.map +1 -1
- package/dist/server/prefs-handlers.d.ts +22 -0
- package/dist/server/prefs-handlers.d.ts.map +1 -0
- package/dist/server/prefs-routes.d.ts +5 -0
- package/dist/server/prefs-routes.d.ts.map +1 -1
- package/dist/server/privileged-actions.d.ts +16 -0
- package/dist/server/privileged-actions.d.ts.map +1 -0
- package/dist/server/process-handlers.d.ts +8 -6
- package/dist/server/process-handlers.d.ts.map +1 -1
- package/dist/server/process-routes.d.ts +9 -0
- package/dist/server/process-routes.d.ts.map +1 -0
- package/dist/server/project-handlers.d.ts +25 -33
- package/dist/server/project-handlers.d.ts.map +1 -1
- package/dist/server/projects-manifest.d.ts +8 -0
- package/dist/server/projects-manifest.d.ts.map +1 -1
- package/dist/server/prompts-handlers.d.ts +2 -1
- package/dist/server/prompts-handlers.d.ts.map +1 -1
- package/dist/server/provider-config-io.d.ts +2 -2
- package/dist/server/provider-config-io.d.ts.map +1 -1
- package/dist/server/provider-config-standalone.d.ts +5 -3
- package/dist/server/provider-config-standalone.d.ts.map +1 -1
- package/dist/server/provider-handlers.d.ts +63 -6
- package/dist/server/provider-handlers.d.ts.map +1 -1
- package/dist/server/provider-keys.d.ts +1 -1
- package/dist/server/provider-keys.d.ts.map +1 -1
- package/dist/server/provider-routes.d.ts +28 -2
- package/dist/server/provider-routes.d.ts.map +1 -1
- package/dist/server/provider-store.d.ts +5 -4
- package/dist/server/provider-store.d.ts.map +1 -1
- package/dist/server/route-family-dispatcher.d.ts +71 -0
- package/dist/server/route-family-dispatcher.d.ts.map +1 -0
- package/dist/server/routes.d.ts +17 -7
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/sdd-board-ws-handler.d.ts +5 -1
- package/dist/server/sdd-board-ws-handler.d.ts.map +1 -1
- package/dist/server/sdd-wizard-wiring.d.ts +14 -3
- package/dist/server/sdd-wizard-wiring.d.ts.map +1 -1
- package/dist/server/sdd-wizard-ws-handler.d.ts.map +1 -1
- package/dist/server/server-runtime.d.ts +16 -12
- package/dist/server/server-runtime.d.ts.map +1 -1
- package/dist/server/session-handlers.d.ts +30 -11
- package/dist/server/session-handlers.d.ts.map +1 -1
- package/dist/server/session-history.d.ts +1 -1
- package/dist/server/session-history.d.ts.map +1 -1
- package/dist/server/setup-event-projection.d.ts +10 -0
- package/dist/server/setup-event-projection.d.ts.map +1 -0
- package/dist/server/setup-events-watcher.d.ts +13 -0
- package/dist/server/setup-events-watcher.d.ts.map +1 -0
- package/dist/server/setup-events.d.ts +11 -21
- package/dist/server/setup-events.d.ts.map +1 -1
- package/dist/server/setup-screen.d.ts +2 -1
- package/dist/server/setup-screen.d.ts.map +1 -1
- package/dist/server/shell-open.d.ts +26 -2
- package/dist/server/shell-open.d.ts.map +1 -1
- package/dist/server/skills-handlers.d.ts +2 -2
- package/dist/server/skills-handlers.d.ts.map +1 -1
- package/dist/server/specs-ws-handler.d.ts.map +1 -1
- package/dist/server/standalone-session-identity.d.ts +3 -2
- package/dist/server/standalone-session-identity.d.ts.map +1 -1
- package/dist/server/start-webui.d.ts +9 -1
- package/dist/server/start-webui.d.ts.map +1 -1
- package/dist/server/stream-coalescer.d.ts +49 -0
- package/dist/server/stream-coalescer.d.ts.map +1 -0
- package/dist/server/techstack-handlers.d.ts +12 -2
- package/dist/server/techstack-handlers.d.ts.map +1 -1
- package/dist/server/terminal-ws-handler.d.ts +5 -3
- package/dist/server/terminal-ws-handler.d.ts.map +1 -1
- package/dist/server/types.d.ts +10 -3
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/worklist-routes.d.ts +21 -0
- package/dist/server/worklist-routes.d.ts.map +1 -0
- package/dist/server/worktree-routes.d.ts +10 -0
- package/dist/server/worktree-routes.d.ts.map +1 -0
- package/dist/server/worktree-ws-handler.d.ts +2 -1
- package/dist/server/worktree-ws-handler.d.ts.map +1 -1
- package/dist/server/ws-auth.d.ts.map +1 -1
- package/dist/server/ws-payload-validation.d.ts +11 -0
- package/dist/server/ws-payload-validation.d.ts.map +1 -1
- package/dist/server/ws-utils.d.ts +8 -0
- package/dist/server/ws-utils.d.ts.map +1 -1
- package/package.json +14 -10
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { Agent } from '@wrongstack/core/agent';
|
|
2
|
+
import type { Config, MemoryPort, ModelsRegistry, ModeStore, ProviderConfig, SessionStore, SessionWriter } from '@wrongstack/core/types';
|
|
3
|
+
import type { WebSocket } from 'ws';
|
|
4
|
+
import type { ConversationRouteHandlers } from './conversation-routes.js';
|
|
5
|
+
import type { CustomModeStore } from './custom-context-modes.js';
|
|
6
|
+
import type { PendingConfirm } from './pending-confirms.js';
|
|
7
|
+
import type { ProjectRouteHandlers } from './project-routes.js';
|
|
8
|
+
import type { SessionRouteHandlers } from './session-routes.js';
|
|
9
|
+
import type { WSServerMessage } from './types.js';
|
|
10
|
+
export interface EmbeddedHostTransport {
|
|
11
|
+
send: (ws: WebSocket, message: WSServerMessage) => void;
|
|
12
|
+
broadcast: (message: WSServerMessage) => void;
|
|
13
|
+
log: (message: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export interface EmbeddedProviderStore {
|
|
16
|
+
load(): Promise<Record<string, ProviderConfig>>;
|
|
17
|
+
save(providers: Record<string, ProviderConfig>): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export interface EmbeddedProviderContext extends EmbeddedHostTransport {
|
|
20
|
+
providerStore: EmbeddedProviderStore;
|
|
21
|
+
modelsRegistry: ModelsRegistry | undefined;
|
|
22
|
+
}
|
|
23
|
+
export interface EmbeddedAgentConfigContext extends EmbeddedHostTransport {
|
|
24
|
+
agent: Agent;
|
|
25
|
+
modeStore: ModeStore | undefined;
|
|
26
|
+
buildSessionStart: (overrides?: Record<string, unknown>) => Promise<unknown>;
|
|
27
|
+
loadSavedProviders: () => Promise<Record<string, ProviderConfig>>;
|
|
28
|
+
modelsRegistry?: ModelsRegistry | undefined;
|
|
29
|
+
memoryStore?: MemoryPort | undefined;
|
|
30
|
+
getConfig?: (() => Config | undefined) | undefined;
|
|
31
|
+
onMaxContextResolved?: ((providerId: string, modelId: string, maxContext: number) => void) | undefined;
|
|
32
|
+
persistPrefs?: ((payload: Record<string, unknown>) => Promise<void>) | undefined;
|
|
33
|
+
}
|
|
34
|
+
export declare function applyEmbeddedModelSwitch(ctx: EmbeddedAgentConfigContext, providerId: string, modelId: string): Promise<void>;
|
|
35
|
+
export declare function createEmbeddedProviderOperations(ctx: EmbeddedProviderContext): {
|
|
36
|
+
handleProvidersList: (ws: WebSocket) => Promise<void>;
|
|
37
|
+
handleProvidersSaved: (ws: WebSocket) => Promise<void>;
|
|
38
|
+
handleProviderModels: (ws: WebSocket, providerId: string) => Promise<void>;
|
|
39
|
+
adoptDefaultProviderIfUnset: (providerId: string) => Promise<void>;
|
|
40
|
+
broadcastSaved: (providers: Record<string, ProviderConfig>) => void;
|
|
41
|
+
handleKeyUpsert: (ws: WebSocket, providerId: string, label: string, apiKey: string) => Promise<void>;
|
|
42
|
+
handleKeyDelete: (ws: WebSocket, providerId: string, label: string) => Promise<void>;
|
|
43
|
+
handleKeySetActive: (ws: WebSocket, providerId: string, label: string) => Promise<void>;
|
|
44
|
+
handleProviderAdd: (ws: WebSocket, payload: {
|
|
45
|
+
id: string;
|
|
46
|
+
family: string;
|
|
47
|
+
baseUrl?: string | undefined;
|
|
48
|
+
apiKey?: string | undefined;
|
|
49
|
+
}) => Promise<void>;
|
|
50
|
+
handleProviderRemove: (ws: WebSocket, providerId: string) => Promise<void>;
|
|
51
|
+
handleProviderClearModels: (ws: WebSocket, providerId: string) => Promise<void>;
|
|
52
|
+
handleProviderUndoClear: (ws: WebSocket, providerId: string, previousModels: string[]) => Promise<void>;
|
|
53
|
+
handleProviderUpdate: (ws: WebSocket, payload: {
|
|
54
|
+
id: string;
|
|
55
|
+
family?: string | undefined;
|
|
56
|
+
baseUrl?: string | undefined;
|
|
57
|
+
envVars?: string[] | undefined;
|
|
58
|
+
models?: string[] | undefined;
|
|
59
|
+
}) => Promise<void>;
|
|
60
|
+
handleProviderProbe: (ws: WebSocket, providerId: string, timeoutMs?: number) => Promise<void>;
|
|
61
|
+
handleOAuthStart: (ws: WebSocket, kind: import("@wrongstack/providers/oauth").OAuthKind, customProviderId?: string) => Promise<void>;
|
|
62
|
+
handleOAuthCode: (ws: WebSocket, kind: import("@wrongstack/providers/oauth").OAuthKind, input: string) => Promise<void>;
|
|
63
|
+
handleOAuthCancel: (ws: WebSocket, kind: import("@wrongstack/providers/oauth").OAuthKind) => void;
|
|
64
|
+
loadConfigProviders: () => Promise<Record<string, ProviderConfig>>;
|
|
65
|
+
};
|
|
66
|
+
export interface EmbeddedConversationContext extends EmbeddedHostTransport {
|
|
67
|
+
agent: Agent;
|
|
68
|
+
abortControllers: Map<WebSocket, AbortController>;
|
|
69
|
+
pendingConfirms: Map<string, PendingConfirm>;
|
|
70
|
+
}
|
|
71
|
+
export declare function createEmbeddedConversationRoutes(ctx: EmbeddedConversationContext): ConversationRouteHandlers;
|
|
72
|
+
export interface EmbeddedSessionOptions {
|
|
73
|
+
projectRoot?: string | undefined;
|
|
74
|
+
agent: Agent;
|
|
75
|
+
session: SessionWriter;
|
|
76
|
+
sessionStore?: SessionStore | undefined;
|
|
77
|
+
sessionsDir?: string | undefined;
|
|
78
|
+
onSessionSwapped?: ((sessionId: string) => void) | undefined;
|
|
79
|
+
}
|
|
80
|
+
export interface EmbeddedSessionContext extends EmbeddedHostTransport {
|
|
81
|
+
opts: EmbeddedSessionOptions;
|
|
82
|
+
buildSessionStart: (overrides?: Record<string, unknown>) => Promise<unknown>;
|
|
83
|
+
getCustomModeStore: () => Promise<CustomModeStore>;
|
|
84
|
+
}
|
|
85
|
+
export declare function createEmbeddedSessionRoutes(ctx: EmbeddedSessionContext): SessionRouteHandlers;
|
|
86
|
+
export declare function broadcastEmbeddedGoalSnapshot(ctx: EmbeddedSessionContext): Promise<void>;
|
|
87
|
+
export interface EmbeddedProjectContext extends EmbeddedHostTransport {
|
|
88
|
+
opts: EmbeddedSessionOptions & {
|
|
89
|
+
globalConfigPath?: string | undefined;
|
|
90
|
+
};
|
|
91
|
+
abortControllers: Map<WebSocket, AbortController>;
|
|
92
|
+
abortLegacyRun: () => void;
|
|
93
|
+
buildSessionStart: (overrides?: Record<string, unknown>) => Promise<unknown>;
|
|
94
|
+
}
|
|
95
|
+
export declare function createEmbeddedProjectRoutes(ctx: EmbeddedProjectContext): ProjectRouteHandlers;
|
|
96
|
+
//# sourceMappingURL=embedded-host-adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedded-host-adapters.d.ts","sourceRoot":"","sources":["../../src/server/embedded-host-adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { type WebUIInstanceRecord } from './instance-registry.js';
|
|
2
|
+
import type { SurfaceKind } from './port-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* PR 7 of Issue #30 (webui-server 8-PR refactor): process lifecycle.
|
|
5
|
+
*
|
|
6
|
+
* Three concerns pulled out of the ~3000-line `runWebUI` body:
|
|
7
|
+
*
|
|
8
|
+
* - `registerWebuiInstance` — record this embedded WebUI in the shared
|
|
9
|
+
* running-instance registry (so `wstack --webui --list` sees it).
|
|
10
|
+
* - `announceWebuiReady` — log the ready banner and pop the browser
|
|
11
|
+
* once the HTTP server is listening.
|
|
12
|
+
* - `createWebuiShutdown` + `registerWebuiSignalHandlers` — the
|
|
13
|
+
* SIGINT/SIGTERM teardown sequence.
|
|
14
|
+
*
|
|
15
|
+
* Each external dependency (registry IO, browser launch) is an
|
|
16
|
+
* injectable seam so the orchestration can be unit-tested without
|
|
17
|
+
* touching disk or spawning a browser. Run-loop state (abort
|
|
18
|
+
* controllers, client map, the run promise's `resolve`) stays in
|
|
19
|
+
* `webui-server.ts` and is threaded in as callbacks — the module never
|
|
20
|
+
* captures it.
|
|
21
|
+
*/
|
|
22
|
+
export interface RegisterWebuiInstanceParams {
|
|
23
|
+
pid: number;
|
|
24
|
+
/** Surface kind — 'webui' or 'simpleui'. */
|
|
25
|
+
surface: SurfaceKind;
|
|
26
|
+
host: string;
|
|
27
|
+
/** Port serving both HTTP and WebSocket (single-port design). */
|
|
28
|
+
httpPort: number;
|
|
29
|
+
/** Browser-facing public URL when served through a tunnel/proxy. */
|
|
30
|
+
publicUrl?: string | undefined;
|
|
31
|
+
projectRoot: string;
|
|
32
|
+
/** ISO timestamp when the instance registered. */
|
|
33
|
+
startedAt: string;
|
|
34
|
+
/** Registry base dir (dirname of globalConfigPath); undefined ⇒ registry default. */
|
|
35
|
+
registryBaseDir: string | undefined;
|
|
36
|
+
}
|
|
37
|
+
export interface RegisterWebuiInstanceDeps {
|
|
38
|
+
registerFn?: (record: WebUIInstanceRecord, baseDir?: string) => Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Fire-and-forget registration of this WebUI in the running-instance
|
|
42
|
+
* registry. Best-effort: a registry write error never blocks startup and
|
|
43
|
+
* is swallowed (the registry is a convenience index, not a source of
|
|
44
|
+
* truth). Caller guards on `projectRoot` being known.
|
|
45
|
+
*/
|
|
46
|
+
export declare function registerWebuiInstance(p: RegisterWebuiInstanceParams, deps?: RegisterWebuiInstanceDeps): void;
|
|
47
|
+
export interface AnnounceWebuiReadyParams {
|
|
48
|
+
/** Surface kind — 'webui' or 'simpleui'. */
|
|
49
|
+
surface: SurfaceKind;
|
|
50
|
+
/** The HTTP server (StaticServeHandle.server). */
|
|
51
|
+
server: {
|
|
52
|
+
on: (event: 'listening', cb: () => void) => void;
|
|
53
|
+
};
|
|
54
|
+
host: string;
|
|
55
|
+
/** Port serving both HTTP and WebSocket. */
|
|
56
|
+
httpPort: number;
|
|
57
|
+
open: boolean;
|
|
58
|
+
/** Auth token for WS connections. Included in the URL so the frontend can exchange it for an HttpOnly cookie via /ws-auth. */
|
|
59
|
+
wsToken?: string;
|
|
60
|
+
/** Browser-facing public URL when served through a tunnel/proxy. */
|
|
61
|
+
publicUrl?: string | undefined;
|
|
62
|
+
log?: (msg: string) => void;
|
|
63
|
+
openBrowserFn?: (url: string) => void;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Once the HTTP server is listening, print the ready banner and (if
|
|
67
|
+
* `open`) launch the browser at the served URL.
|
|
68
|
+
*/
|
|
69
|
+
export declare function announceWebuiReady(p: AnnounceWebuiReadyParams): void;
|
|
70
|
+
export interface WebuiShutdownResources {
|
|
71
|
+
/** Abort every in-flight run (legacy single slot + per-socket controllers) and clear them. */
|
|
72
|
+
abortInFlight: () => void;
|
|
73
|
+
/** Run and drop every event-bus unsubscriber. */
|
|
74
|
+
unsubscribeEvents: () => void;
|
|
75
|
+
/** Close every connected socket and clear the client map. */
|
|
76
|
+
closeClients: () => void;
|
|
77
|
+
/** Close the static HTTP server (no-op when WS-only). */
|
|
78
|
+
closeHttpServer: () => void;
|
|
79
|
+
/** The WebSocket server to stop (its close callback resolves the run promise). */
|
|
80
|
+
wss: {
|
|
81
|
+
close: (cb?: () => void) => void;
|
|
82
|
+
};
|
|
83
|
+
/** This process's pid — the registry liveness key. */
|
|
84
|
+
pid: number;
|
|
85
|
+
/** Registry base dir (undefined ⇒ registry default). */
|
|
86
|
+
registryBaseDir: string | undefined;
|
|
87
|
+
/** Called once teardown settles — wired to the run promise's `resolve`. */
|
|
88
|
+
onStopped: () => void;
|
|
89
|
+
log?: (msg: string) => void;
|
|
90
|
+
debug?: (msg: string) => void;
|
|
91
|
+
/** Injectable for tests; defaults to the real registry unregister. */
|
|
92
|
+
unregisterFn?: (pid: number, baseDir?: string) => Promise<void>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Build the SIGINT/SIGTERM teardown handler. The returned function is
|
|
96
|
+
* idempotent: the first call runs the teardown, later calls (e.g. a
|
|
97
|
+
* second Ctrl+C, or a signal after another server in the same process
|
|
98
|
+
* already stopped) return immediately.
|
|
99
|
+
*
|
|
100
|
+
* Order matches the original inline handler: abort runs → unsubscribe
|
|
101
|
+
* events → close clients → unregister from the instance registry (async,
|
|
102
|
+
* awaited inside the wss.close callback) → close HTTP → close WS → on
|
|
103
|
+
* close, once the unregister settles, `onStopped()`.
|
|
104
|
+
*/
|
|
105
|
+
export declare function createWebuiShutdown(res: WebuiShutdownResources): () => void;
|
|
106
|
+
/**
|
|
107
|
+
* Register `shutdown` on SIGINT and SIGTERM. The wrapper self-detaches
|
|
108
|
+
* both listeners on first fire (so a server that has already shut down
|
|
109
|
+
* can't re-trigger teardown). Returns an unregister function for tests
|
|
110
|
+
* and clean restarts.
|
|
111
|
+
*/
|
|
112
|
+
export declare function registerWebuiSignalHandlers(shutdown: () => void): () => void;
|
|
113
|
+
//# sourceMappingURL=embedded-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedded-lifecycle.d.ts","sourceRoot":"","sources":["../../src/server/embedded-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Agent } from '@wrongstack/core/agent';
|
|
2
|
+
import type { TrustBoundary } from '@wrongstack/core/security';
|
|
3
|
+
import type { Logger, MemoryPort } from '@wrongstack/core/types';
|
|
4
|
+
import type { MCPRegistry } from '@wrongstack/mcp';
|
|
5
|
+
import type { WebSocket } from 'ws';
|
|
6
|
+
import { type BrainHandlerContext } from './brain-handlers.js';
|
|
7
|
+
import type { DesignContext } from './design-handlers.js';
|
|
8
|
+
import { type EmbeddedAgentConfigContext, type EmbeddedConversationContext, type EmbeddedProjectContext, type EmbeddedProviderContext, type EmbeddedSessionContext } from './embedded-host-adapters.js';
|
|
9
|
+
import type { GoalWebSocketHandler } from './goal-ws-handler.js';
|
|
10
|
+
import type { IntrospectionRouteContext } from './introspection-routes.js';
|
|
11
|
+
import type { KanbanTaskDispatcher } from './kanban-dispatch.js';
|
|
12
|
+
import type { KanbanHostRouteHandlers } from './kanban-host-routes.js';
|
|
13
|
+
import type { MailboxRouteHandlers } from './mailbox-routes.js';
|
|
14
|
+
import type { PrefsHandlerContext } from './prefs-handlers.js';
|
|
15
|
+
import type { PromptsContext } from './prompts-handlers.js';
|
|
16
|
+
import type { SddBoardWebSocketHandler } from './sdd-board-ws-handler.js';
|
|
17
|
+
import type { SddWizardWebSocketHandler } from './sdd-wizard-ws-handler.js';
|
|
18
|
+
import type { SkillsContext } from './skills-handlers.js';
|
|
19
|
+
import type { SpecsWebSocketHandler } from './specs-ws-handler.js';
|
|
20
|
+
import type { TerminalWebSocketHandler } from './terminal-ws-handler.js';
|
|
21
|
+
import type { WSClientMessage, WSServerMessage } from './types.js';
|
|
22
|
+
import type { WorktreeWebSocketHandler } from './worktree-ws-handler.js';
|
|
23
|
+
export interface EmbeddedMessageRouterOptions {
|
|
24
|
+
agent: Agent;
|
|
25
|
+
projectRoot?: string | undefined;
|
|
26
|
+
profileConfigPath: string;
|
|
27
|
+
mcpRegistry?: MCPRegistry | undefined;
|
|
28
|
+
memoryStore?: MemoryPort | undefined;
|
|
29
|
+
onKanbanDispatch?: KanbanTaskDispatcher | undefined;
|
|
30
|
+
}
|
|
31
|
+
export interface EmbeddedMessageRouterDeps {
|
|
32
|
+
trustBoundary: TrustBoundary;
|
|
33
|
+
opts: EmbeddedMessageRouterOptions;
|
|
34
|
+
logger: Logger;
|
|
35
|
+
send: (ws: WebSocket, message: WSServerMessage) => void;
|
|
36
|
+
sendResult: (ws: WebSocket, success: boolean, message: string) => void;
|
|
37
|
+
sessionPayload: <T extends Record<string, unknown>>(payload: T) => T & {
|
|
38
|
+
sessionId: string;
|
|
39
|
+
};
|
|
40
|
+
currentSessionId: () => string;
|
|
41
|
+
shutdown: () => void;
|
|
42
|
+
providerCtx: EmbeddedProviderContext;
|
|
43
|
+
brainCtx: BrainHandlerContext;
|
|
44
|
+
introspectionCtx: IntrospectionRouteContext;
|
|
45
|
+
skillsCtx: SkillsContext;
|
|
46
|
+
promptsCtx: PromptsContext;
|
|
47
|
+
designCtx: DesignContext;
|
|
48
|
+
agentConfigCtx: EmbeddedAgentConfigContext;
|
|
49
|
+
prefsCtx: PrefsHandlerContext;
|
|
50
|
+
projectCtx: EmbeddedProjectContext;
|
|
51
|
+
sessionCtx: EmbeddedSessionContext;
|
|
52
|
+
conversationCtx: EmbeddedConversationContext;
|
|
53
|
+
mailboxRoutes: MailboxRouteHandlers;
|
|
54
|
+
goalHandler: GoalWebSocketHandler;
|
|
55
|
+
specsHandler: SpecsWebSocketHandler;
|
|
56
|
+
sddBoardHandler: SddBoardWebSocketHandler;
|
|
57
|
+
sddWizardHandler: SddWizardWebSocketHandler | null;
|
|
58
|
+
worktreeHandler: WorktreeWebSocketHandler;
|
|
59
|
+
terminalHandler: TerminalWebSocketHandler;
|
|
60
|
+
kanbanHostRoutes: KanbanHostRouteHandlers;
|
|
61
|
+
}
|
|
62
|
+
export type EmbeddedMessageRouter = (ws: WebSocket, client: unknown, message: WSClientMessage) => Promise<void>;
|
|
63
|
+
export declare function createEmbeddedMessageRouter(deps: EmbeddedMessageRouterDeps): EmbeddedMessageRouter;
|
|
64
|
+
//# sourceMappingURL=embedded-message-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedded-message-router.d.ts","sourceRoot":"","sources":["../../src/server/embedded-message-router.ts"],"names":[],"mappings":"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"}
|