@sanqianx/claude-ai-workbench 0.13.2 → 0.13.4
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/LICENSE +201 -201
- package/README.md +156 -156
- package/apps/agent-terminal/app.css +652 -613
- package/apps/agent-terminal/app.js +143 -67
- package/apps/agent-terminal/conversation-composer.js +44 -0
- package/apps/agent-terminal/index.html +172 -170
- package/apps/agent-terminal/panel-host-proof.html +152 -152
- package/apps/agent-terminal/panel-proof-content.html +41 -41
- package/apps/agent-terminal/right-workspace-dock.css +189 -159
- package/apps/agent-terminal/right-workspace-dock.js +652 -521
- package/apps/agent-terminal/user-question-card.js +68 -0
- package/apps/ai-profile-settings-host/index.html +25 -25
- package/apps/ai-profile-settings-host/page.css +1 -1
- package/apps/ai-profile-settings-host/page.js +113 -113
- package/apps/minimal-test-host/README.md +15 -15
- package/apps/minimal-test-host/host.css +2 -2
- package/apps/minimal-test-host/host.js +35 -35
- package/apps/minimal-test-host/index.html +58 -58
- package/apps/minimal-test-host/optional-mock/fault-injection.js +15 -15
- package/docs/sdk/FILE_LAYOUT.md +31 -31
- package/docs/sdk/INTEGRATION.md +126 -126
- package/docs/sdk/README.md +21 -21
- package/docs/sdk/SESSION_EVENTS.md +15 -13
- package/docs/sdk/openapi.yaml +16 -1
- package/package.json +1 -1
- package/packages/client/README.md +29 -29
- package/packages/client/index.d.ts +122 -122
- package/packages/client/index.js +260 -260
- package/packages/client/package.json +2 -2
- package/packages/contracts/README.md +9 -9
- package/packages/contracts/index.d.ts +519 -517
- package/packages/contracts/index.js +312 -312
- package/packages/contracts/package.json +1 -1
- package/packages/core/README.md +8 -8
- package/packages/core/index.d.ts +76 -76
- package/packages/core/index.js +222 -222
- package/packages/core/package.json +2 -2
- package/packages/server/README.md +17 -17
- package/packages/server/bin/agent-terminal-server.js +42 -42
- package/packages/server/bin/claude-workbench.js +225 -225
- package/packages/server/index.d.ts +171 -171
- package/packages/server/index.js +230 -230
- package/packages/server/lib/agent-discovery.js +133 -133
- package/packages/server/lib/agent-registry.js +143 -143
- package/packages/server/lib/agent-spawn-env.js +17 -17
- package/packages/server/lib/attachment-store.js +78 -78
- package/packages/server/lib/bridges/app-server-bridge.js +373 -373
- package/packages/server/lib/bridges/opencode-server-bridge.js +506 -506
- package/packages/server/lib/capture-settings-store.js +35 -35
- package/packages/server/lib/claude-history-recovery.js +87 -87
- package/packages/server/lib/cli-session-recovery.js +28 -28
- package/packages/server/lib/context-resolver.js +55 -55
- package/packages/server/lib/conversation-capture.js +51 -51
- package/packages/server/lib/delegation-phase-store.js +357 -357
- package/packages/server/lib/delegation-store.js +474 -468
- package/packages/server/lib/diagnostics.js +32 -32
- package/packages/server/lib/drivers/cli-json-runner.js +974 -974
- package/packages/server/lib/drivers/codex-driver.js +1461 -1442
- package/packages/server/lib/drivers/opencode-driver.js +1554 -1554
- package/packages/server/lib/drivers/zcode-driver.js +1250 -1250
- package/packages/server/lib/drivers/zcode-profile-runtime.js +71 -71
- package/packages/server/lib/event-stream.js +138 -138
- package/packages/server/lib/folder-picker.js +623 -623
- package/packages/server/lib/http-handler.js +339 -339
- package/packages/server/lib/json-file.js +26 -26
- package/packages/server/lib/knowledge-context.js +33 -33
- package/packages/server/lib/model-detection.js +295 -295
- package/packages/server/lib/parent-context.js +44 -0
- package/packages/server/lib/profile-store.js +283 -283
- package/packages/server/lib/project-store.js +102 -102
- package/packages/server/lib/runtime-loader.js +120 -120
- package/packages/server/lib/session-archive-store.js +53 -53
- package/packages/server/lib/session-history.js +612 -612
- package/packages/server/lib/system-doctor.js +125 -125
- package/packages/server/lib/ui-preferences-store.js +48 -48
- package/packages/server/lib/user-questions.js +67 -0
- package/packages/server/lib/workbench-service.js +1696 -1675
- package/packages/server/package.json +2 -2
- package/packages/ui/README.md +30 -30
- package/packages/ui/ai-profile-settings.d.ts +45 -45
- package/packages/ui/ai-profile-settings.js +283 -283
- package/packages/ui/claude-terminal.d.ts +31 -31
- package/packages/ui/claude-terminal.js +343 -343
- package/packages/ui/index.d.ts +18 -18
- package/packages/ui/index.js +51 -51
- package/packages/ui/package.json +2 -2
- package/packages/ui/theme.css +13 -13
- package/src/assets/claude-prompts.json +21 -21
- package/src/backend/http/ai-profile-routes.js +61 -61
- package/src/backend/http/claude-routes.js +170 -170
- package/src/backend/http/node-helpers.js +45 -45
- package/src/backend/index.js +21 -21
- package/src/backend/lib/ai-adapter.js +144 -144
- package/src/backend/lib/ai-profile-store.js +259 -259
- package/src/backend/lib/ai-vendor-presets.js +83 -83
- package/src/backend/lib/ai-workspace.js +140 -140
- package/src/backend/lib/automation-config.js +253 -253
- package/src/backend/lib/claude-cli-runner.js +2408 -2392
- package/src/backend/lib/data-dir.js +169 -169
- package/src/backend/lib/llm-client.js +176 -176
- package/src/backend/lib/model-context-windows.js +82 -82
- package/src/backend/lib/native-task-control.js +217 -217
- package/src/backend/lib/native-task-history-index.js +475 -475
- package/src/backend/lib/native-task-history-reader.js +526 -526
- package/src/backend/lib/native-task-messages.js +457 -457
- package/src/backend/lib/native-task-registry.js +325 -325
- package/src/backend/lib/native-task-runtime.js +242 -242
- package/src/backend/lib/native-task-trace.js +440 -440
- package/src/backend/lib/native-task-transcript.js +393 -393
- package/src/backend/lib/prompt-registry.js +166 -166
- package/src/backend/lib/runtime-config.js +121 -121
- package/src/backend/lib/sdk-session-stream.js +143 -143
- package/src/backend/lib/sdk-turn-stream.js +16 -16
- package/src/backend/lib/store-scope.js +131 -131
- package/src/backend/lib/task-identity.js +104 -104
- package/src/backend/lib/task-state-projection.js +58 -58
- package/src/index.js +7 -7
- package/src/sdk-wave-a.ts +1 -1
- package/src/sdk-wave-b.ts +1 -1
- package/src/sdk-wave-c.ts +1 -1
- package/src/sdk-wave-d.ts +1 -1
- package/src/sdk-wave-e.ts +1 -1
|
@@ -1,171 +1,171 @@
|
|
|
1
|
-
import type { Server } from "node:http";
|
|
2
|
-
import type { AgentId, AgentStatus, AiProfile, AiProfileInput, AttachmentInput, DelegationAcceptResult, DelegationListPage, EffortLevel, PermissionMode, Project, ProjectInput, ProjectPatch, SessionSummary, SessionHistoryPage, SlashCommand, WorkbenchContext } from "@claude-ai-workbench/contracts";
|
|
3
|
-
|
|
4
|
-
export interface WorkbenchRunner {
|
|
5
|
-
startChatSession(options: Record<string, unknown>): {sessionId: string};
|
|
6
|
-
startDelegatedSession?(options: Record<string, unknown>): {sessionId: string; replayed?: boolean};
|
|
7
|
-
supportsDelegatedSessions?(agentId: AgentId): boolean;
|
|
8
|
-
listSessions(filter?: Record<string, unknown>): Record<string, unknown>[];
|
|
9
|
-
getState(sessionId: string): Record<string, unknown> | null;
|
|
10
|
-
getSession(sessionId: string): Record<string, unknown> | null;
|
|
11
|
-
getSessionTokenUsage(sessionId: string): Record<string, unknown>;
|
|
12
|
-
subscribe(sessionId: string, listener: (event: Record<string, unknown>) => void): () => void;
|
|
13
|
-
sendInput(sessionId: string, text: string, profile: Record<string, unknown>, options?: Record<string, unknown>): Promise<unknown>;
|
|
14
|
-
listSupportedCommands?(sessionId: string, profile: Record<string, unknown>): Promise<SlashCommand[]>;
|
|
15
|
-
resolvePermission(sessionId: string, requestId: string, decision: Record<string, unknown>): unknown;
|
|
16
|
-
abort(sessionId: string, reason?: string): void;
|
|
17
|
-
deleteSession(sessionId: string): unknown;
|
|
18
|
-
findClaudeExecutableForSdk(): unknown;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface WorkbenchServerOptions {
|
|
22
|
-
dataDir?: string;
|
|
23
|
-
workspaces?: Record<string, string>;
|
|
24
|
-
runner?: WorkbenchRunner;
|
|
25
|
-
profiles?: ProfileStore;
|
|
26
|
-
attachments?: AttachmentStore;
|
|
27
|
-
contexts?: ContextResolver;
|
|
28
|
-
service?: WorkbenchService;
|
|
29
|
-
projects?: ProjectStore;
|
|
30
|
-
sessionArchive?: SessionArchiveStore;
|
|
31
|
-
registry?: AgentRegistry;
|
|
32
|
-
drivers?: Partial<Record<AgentId, WorkbenchRunner>>;
|
|
33
|
-
agentDiscovery?: AgentDiscovery;
|
|
34
|
-
modelContextWindows?: { resolveContextWindow(model: string): number | null };
|
|
35
|
-
apiPrefix?: string;
|
|
36
|
-
corsOrigin?: string;
|
|
37
|
-
serveHost?: boolean;
|
|
38
|
-
staticRoot?: string;
|
|
39
|
-
profileSettingsRoot?: string;
|
|
40
|
-
terminalHostRoot?: string;
|
|
41
|
-
agentTerminalRoot?: string;
|
|
42
|
-
createMissingWorkspaces?: boolean;
|
|
43
|
-
version?: string;
|
|
44
|
-
maxSessions?: number;
|
|
45
|
-
maxConcurrentRuns?: number;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export interface WorkbenchServer {
|
|
49
|
-
server: Server;
|
|
50
|
-
service: WorkbenchService;
|
|
51
|
-
profiles: ProfileStore;
|
|
52
|
-
attachments: AttachmentStore;
|
|
53
|
-
contexts: ContextResolver;
|
|
54
|
-
projects: ProjectStore;
|
|
55
|
-
sessionArchive: SessionArchiveStore;
|
|
56
|
-
registry: AgentRegistry;
|
|
57
|
-
agentDiscovery: AgentDiscovery;
|
|
58
|
-
apiPrefix: string;
|
|
59
|
-
dataDir: string;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export declare class ProfileStore {
|
|
63
|
-
constructor(options: {dataDir: string; profileFile?: string; credentialFile?: string});
|
|
64
|
-
list(): AiProfile[];
|
|
65
|
-
get(id: string): AiProfile | null;
|
|
66
|
-
save(input: AiProfileInput, idOverride?: string): AiProfile;
|
|
67
|
-
delete(id: string): boolean;
|
|
68
|
-
setCredential(id: string, credential: string | {secret: string}): void;
|
|
69
|
-
runtimeProfile(id: string): Record<string, unknown>;
|
|
70
|
-
runtimeDraft(input: AiProfileInput, credential?: string | {secret: string}): Record<string, unknown>;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export declare class ContextResolver {
|
|
74
|
-
constructor(options?: {workspaces?: Record<string, string>; createMissing?: boolean});
|
|
75
|
-
register(ref: string, target: string): void;
|
|
76
|
-
unregister(ref: string): boolean;
|
|
77
|
-
resolve(context: WorkbenchContext): {context: WorkbenchContext; workspacePath: string};
|
|
78
|
-
findByRealPath(realPath: string): string[];
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export declare class ProjectStore {
|
|
82
|
-
constructor(options: {dataDir: string; projectFile?: string});
|
|
83
|
-
list(): Project[];
|
|
84
|
-
get(id: string): Project | null;
|
|
85
|
-
create(input: ProjectInput): Project;
|
|
86
|
-
rename(id: string, name: string): Project;
|
|
87
|
-
update(id: string, patch: ProjectPatch): Project;
|
|
88
|
-
remove(id: string): boolean;
|
|
89
|
-
toWorkspaceMap(): Record<string, string>;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export declare class SessionArchiveStore {
|
|
93
|
-
constructor(options: {dataDir: string; archiveFile?: string});
|
|
94
|
-
isArchived(sessionId: string): boolean;
|
|
95
|
-
archive(sessionId: string): {archivedAt: string};
|
|
96
|
-
restore(sessionId: string): boolean;
|
|
97
|
-
forget(sessionId: string): void;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export declare class AgentRegistry {
|
|
101
|
-
constructor(options?: {drivers?: Partial<Record<AgentId, WorkbenchRunner>>});
|
|
102
|
-
register(agentId: AgentId, driver: WorkbenchRunner): WorkbenchRunner;
|
|
103
|
-
driverFor(agentId: AgentId): WorkbenchRunner;
|
|
104
|
-
agentOf(sessionId: string): AgentId;
|
|
105
|
-
asRunner(): WorkbenchRunner;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export interface AgentDiscovery {
|
|
109
|
-
(): Record<AgentId, AgentStatus & {reason?: string}>;
|
|
110
|
-
invalidate?(): void;
|
|
111
|
-
refresh?(): Promise<Record<AgentId, AgentStatus>>;
|
|
112
|
-
snapshot?(): { state: string; generation: number; updatedAt: string | null };
|
|
113
|
-
close?(): void;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export interface CliDriverOptions {
|
|
117
|
-
command?: string;
|
|
118
|
-
spawn?: typeof import("node:child_process").spawn;
|
|
119
|
-
ignoreUserConfig?: boolean;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export declare class AttachmentStore {
|
|
123
|
-
constructor(options: {root: string});
|
|
124
|
-
saveMany(sessionId: string, attachments: AttachmentInput[]): Record<string, unknown>[];
|
|
125
|
-
save(sessionId: string, attachment: AttachmentInput): Record<string, unknown>;
|
|
126
|
-
read(sessionId: string, attachmentId: string): {metadata: Record<string, unknown>; data: Buffer} | null;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
export declare class WorkbenchService {
|
|
130
|
-
readonly version: string;
|
|
131
|
-
loadHistory(sessionId: string, options?: { before?: string; limit?: number }): SessionHistoryPage;
|
|
132
|
-
listProjects(): {projects: Project[]};
|
|
133
|
-
getProject(id: string): Project;
|
|
134
|
-
createProject(input: ProjectInput): Project;
|
|
135
|
-
renameProject(id: string, input: ProjectPatch): Project;
|
|
136
|
-
removeProject(id: string): boolean;
|
|
137
|
-
listSessions(contextId: string, options?: {includeArchived?: boolean}): SessionSummary[];
|
|
138
|
-
startSession(context: WorkbenchContext, aiProfileId?: string | null, options?: {agentId?: AgentId; model?: string | null; permissionMode?: PermissionMode; effort?: EffortLevel}): SessionSummary;
|
|
139
|
-
listCommands(sessionId: string): Promise<{commands: SlashCommand[]}>;
|
|
140
|
-
readAttachment(sessionId: string, attachmentId: string): {metadata: Record<string, unknown>; data: Buffer};
|
|
141
|
-
send(sessionId: string, text?: string, options?: Record<string, unknown>, attachments?: AttachmentInput[]): Promise<Record<string, unknown>>;
|
|
142
|
-
createDelegation(parentSessionId: string, input: Record<string, unknown>): Promise<DelegationAcceptResult>;
|
|
143
|
-
listDelegations(parentSessionId: string, query: {storeScope?: string | null; contextId?: string | null}): DelegationListPage;
|
|
144
|
-
testProfile(profileId: string): Promise<Record<string, unknown>>;
|
|
145
|
-
testProfileDraft(input: {profile: AiProfileInput; credential?: string}): Promise<Record<string, unknown>>;
|
|
146
|
-
destroy(): void;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export declare function createWorkbenchServer(options?: WorkbenchServerOptions): WorkbenchServer;
|
|
150
|
-
export declare function createAgentDiscovery(options?: {claudeProbe?: (options?: {signal?: AbortSignal}) => {available: boolean; version?: string | null} | Promise<{available: boolean; version?: string | null}>; cacheTtlMs?: number; probeTimeoutMs?: number; scanBudgetMs?: number}): AgentDiscovery;
|
|
151
|
-
export declare function createCodexDriver(options?: CliDriverOptions): WorkbenchRunner;
|
|
152
|
-
export declare function createOpenCodeDriver(options?: CliDriverOptions): WorkbenchRunner;
|
|
153
|
-
export declare function createZCodeDriver(): WorkbenchRunner;
|
|
154
|
-
export declare function createDelegationStore(options: {root: string; storeScope: string; fsx?: unknown}): {
|
|
155
|
-
reserve(input: Record<string, unknown>): Record<string, unknown>;
|
|
156
|
-
getByRequest(scope: Record<string, string>, requestId: string): Record<string, unknown> | null;
|
|
157
|
-
getById(scope: Record<string, string>, delegationId: string): Record<string, unknown> | null;
|
|
158
|
-
list(scope: Record<string, string>): Record<string, unknown>[];
|
|
159
|
-
describe(): Record<string, unknown>;
|
|
160
|
-
};
|
|
161
|
-
export declare function createDelegationPhaseStore(options: {root: string; storeScope: string; fsx?: unknown}): {
|
|
162
|
-
recordChildCreated(input: Record<string, unknown>): boolean;
|
|
163
|
-
recordChildCreateFailed(input: Record<string, unknown>): boolean;
|
|
164
|
-
claimDispatch(input: Record<string, unknown>): {claimed: boolean; claim: Record<string, unknown> | null};
|
|
165
|
-
recordOutcome(input: Record<string, unknown>): boolean;
|
|
166
|
-
abandonLiveClaim(input: Record<string, unknown>): boolean;
|
|
167
|
-
stateOf(delegationId: string): Record<string, unknown>;
|
|
168
|
-
isClaimLive(delegationId: string): boolean;
|
|
169
|
-
describe(): Record<string, unknown>;
|
|
170
|
-
};
|
|
171
|
-
export declare function createHttpHandler(service: WorkbenchService, options?: Record<string, unknown>): (request: unknown, response: unknown) => Promise<boolean>;
|
|
1
|
+
import type { Server } from "node:http";
|
|
2
|
+
import type { AgentId, AgentStatus, AiProfile, AiProfileInput, AttachmentInput, DelegationAcceptResult, DelegationListPage, EffortLevel, PermissionMode, Project, ProjectInput, ProjectPatch, SessionSummary, SessionHistoryPage, SlashCommand, WorkbenchContext } from "@claude-ai-workbench/contracts";
|
|
3
|
+
|
|
4
|
+
export interface WorkbenchRunner {
|
|
5
|
+
startChatSession(options: Record<string, unknown>): {sessionId: string};
|
|
6
|
+
startDelegatedSession?(options: Record<string, unknown>): {sessionId: string; replayed?: boolean};
|
|
7
|
+
supportsDelegatedSessions?(agentId: AgentId): boolean;
|
|
8
|
+
listSessions(filter?: Record<string, unknown>): Record<string, unknown>[];
|
|
9
|
+
getState(sessionId: string): Record<string, unknown> | null;
|
|
10
|
+
getSession(sessionId: string): Record<string, unknown> | null;
|
|
11
|
+
getSessionTokenUsage(sessionId: string): Record<string, unknown>;
|
|
12
|
+
subscribe(sessionId: string, listener: (event: Record<string, unknown>) => void): () => void;
|
|
13
|
+
sendInput(sessionId: string, text: string, profile: Record<string, unknown>, options?: Record<string, unknown>): Promise<unknown>;
|
|
14
|
+
listSupportedCommands?(sessionId: string, profile: Record<string, unknown>): Promise<SlashCommand[]>;
|
|
15
|
+
resolvePermission(sessionId: string, requestId: string, decision: Record<string, unknown>): unknown;
|
|
16
|
+
abort(sessionId: string, reason?: string): void;
|
|
17
|
+
deleteSession(sessionId: string): unknown;
|
|
18
|
+
findClaudeExecutableForSdk(): unknown;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface WorkbenchServerOptions {
|
|
22
|
+
dataDir?: string;
|
|
23
|
+
workspaces?: Record<string, string>;
|
|
24
|
+
runner?: WorkbenchRunner;
|
|
25
|
+
profiles?: ProfileStore;
|
|
26
|
+
attachments?: AttachmentStore;
|
|
27
|
+
contexts?: ContextResolver;
|
|
28
|
+
service?: WorkbenchService;
|
|
29
|
+
projects?: ProjectStore;
|
|
30
|
+
sessionArchive?: SessionArchiveStore;
|
|
31
|
+
registry?: AgentRegistry;
|
|
32
|
+
drivers?: Partial<Record<AgentId, WorkbenchRunner>>;
|
|
33
|
+
agentDiscovery?: AgentDiscovery;
|
|
34
|
+
modelContextWindows?: { resolveContextWindow(model: string): number | null };
|
|
35
|
+
apiPrefix?: string;
|
|
36
|
+
corsOrigin?: string;
|
|
37
|
+
serveHost?: boolean;
|
|
38
|
+
staticRoot?: string;
|
|
39
|
+
profileSettingsRoot?: string;
|
|
40
|
+
terminalHostRoot?: string;
|
|
41
|
+
agentTerminalRoot?: string;
|
|
42
|
+
createMissingWorkspaces?: boolean;
|
|
43
|
+
version?: string;
|
|
44
|
+
maxSessions?: number;
|
|
45
|
+
maxConcurrentRuns?: number;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface WorkbenchServer {
|
|
49
|
+
server: Server;
|
|
50
|
+
service: WorkbenchService;
|
|
51
|
+
profiles: ProfileStore;
|
|
52
|
+
attachments: AttachmentStore;
|
|
53
|
+
contexts: ContextResolver;
|
|
54
|
+
projects: ProjectStore;
|
|
55
|
+
sessionArchive: SessionArchiveStore;
|
|
56
|
+
registry: AgentRegistry;
|
|
57
|
+
agentDiscovery: AgentDiscovery;
|
|
58
|
+
apiPrefix: string;
|
|
59
|
+
dataDir: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export declare class ProfileStore {
|
|
63
|
+
constructor(options: {dataDir: string; profileFile?: string; credentialFile?: string});
|
|
64
|
+
list(): AiProfile[];
|
|
65
|
+
get(id: string): AiProfile | null;
|
|
66
|
+
save(input: AiProfileInput, idOverride?: string): AiProfile;
|
|
67
|
+
delete(id: string): boolean;
|
|
68
|
+
setCredential(id: string, credential: string | {secret: string}): void;
|
|
69
|
+
runtimeProfile(id: string): Record<string, unknown>;
|
|
70
|
+
runtimeDraft(input: AiProfileInput, credential?: string | {secret: string}): Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export declare class ContextResolver {
|
|
74
|
+
constructor(options?: {workspaces?: Record<string, string>; createMissing?: boolean});
|
|
75
|
+
register(ref: string, target: string): void;
|
|
76
|
+
unregister(ref: string): boolean;
|
|
77
|
+
resolve(context: WorkbenchContext): {context: WorkbenchContext; workspacePath: string};
|
|
78
|
+
findByRealPath(realPath: string): string[];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export declare class ProjectStore {
|
|
82
|
+
constructor(options: {dataDir: string; projectFile?: string});
|
|
83
|
+
list(): Project[];
|
|
84
|
+
get(id: string): Project | null;
|
|
85
|
+
create(input: ProjectInput): Project;
|
|
86
|
+
rename(id: string, name: string): Project;
|
|
87
|
+
update(id: string, patch: ProjectPatch): Project;
|
|
88
|
+
remove(id: string): boolean;
|
|
89
|
+
toWorkspaceMap(): Record<string, string>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export declare class SessionArchiveStore {
|
|
93
|
+
constructor(options: {dataDir: string; archiveFile?: string});
|
|
94
|
+
isArchived(sessionId: string): boolean;
|
|
95
|
+
archive(sessionId: string): {archivedAt: string};
|
|
96
|
+
restore(sessionId: string): boolean;
|
|
97
|
+
forget(sessionId: string): void;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export declare class AgentRegistry {
|
|
101
|
+
constructor(options?: {drivers?: Partial<Record<AgentId, WorkbenchRunner>>});
|
|
102
|
+
register(agentId: AgentId, driver: WorkbenchRunner): WorkbenchRunner;
|
|
103
|
+
driverFor(agentId: AgentId): WorkbenchRunner;
|
|
104
|
+
agentOf(sessionId: string): AgentId;
|
|
105
|
+
asRunner(): WorkbenchRunner;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface AgentDiscovery {
|
|
109
|
+
(): Record<AgentId, AgentStatus & {reason?: string}>;
|
|
110
|
+
invalidate?(): void;
|
|
111
|
+
refresh?(): Promise<Record<AgentId, AgentStatus>>;
|
|
112
|
+
snapshot?(): { state: string; generation: number; updatedAt: string | null };
|
|
113
|
+
close?(): void;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface CliDriverOptions {
|
|
117
|
+
command?: string;
|
|
118
|
+
spawn?: typeof import("node:child_process").spawn;
|
|
119
|
+
ignoreUserConfig?: boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export declare class AttachmentStore {
|
|
123
|
+
constructor(options: {root: string});
|
|
124
|
+
saveMany(sessionId: string, attachments: AttachmentInput[]): Record<string, unknown>[];
|
|
125
|
+
save(sessionId: string, attachment: AttachmentInput): Record<string, unknown>;
|
|
126
|
+
read(sessionId: string, attachmentId: string): {metadata: Record<string, unknown>; data: Buffer} | null;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export declare class WorkbenchService {
|
|
130
|
+
readonly version: string;
|
|
131
|
+
loadHistory(sessionId: string, options?: { before?: string; limit?: number }): SessionHistoryPage;
|
|
132
|
+
listProjects(): {projects: Project[]};
|
|
133
|
+
getProject(id: string): Project;
|
|
134
|
+
createProject(input: ProjectInput): Project;
|
|
135
|
+
renameProject(id: string, input: ProjectPatch): Project;
|
|
136
|
+
removeProject(id: string): boolean;
|
|
137
|
+
listSessions(contextId: string, options?: {includeArchived?: boolean}): SessionSummary[];
|
|
138
|
+
startSession(context: WorkbenchContext, aiProfileId?: string | null, options?: {agentId?: AgentId; model?: string | null; permissionMode?: PermissionMode; effort?: EffortLevel}): SessionSummary;
|
|
139
|
+
listCommands(sessionId: string): Promise<{commands: SlashCommand[]}>;
|
|
140
|
+
readAttachment(sessionId: string, attachmentId: string): {metadata: Record<string, unknown>; data: Buffer};
|
|
141
|
+
send(sessionId: string, text?: string, options?: Record<string, unknown>, attachments?: AttachmentInput[]): Promise<Record<string, unknown>>;
|
|
142
|
+
createDelegation(parentSessionId: string, input: Record<string, unknown>): Promise<DelegationAcceptResult>;
|
|
143
|
+
listDelegations(parentSessionId: string, query: {storeScope?: string | null; contextId?: string | null}): DelegationListPage;
|
|
144
|
+
testProfile(profileId: string): Promise<Record<string, unknown>>;
|
|
145
|
+
testProfileDraft(input: {profile: AiProfileInput; credential?: string}): Promise<Record<string, unknown>>;
|
|
146
|
+
destroy(): void;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export declare function createWorkbenchServer(options?: WorkbenchServerOptions): WorkbenchServer;
|
|
150
|
+
export declare function createAgentDiscovery(options?: {claudeProbe?: (options?: {signal?: AbortSignal}) => {available: boolean; version?: string | null} | Promise<{available: boolean; version?: string | null}>; cacheTtlMs?: number; probeTimeoutMs?: number; scanBudgetMs?: number}): AgentDiscovery;
|
|
151
|
+
export declare function createCodexDriver(options?: CliDriverOptions): WorkbenchRunner;
|
|
152
|
+
export declare function createOpenCodeDriver(options?: CliDriverOptions): WorkbenchRunner;
|
|
153
|
+
export declare function createZCodeDriver(): WorkbenchRunner;
|
|
154
|
+
export declare function createDelegationStore(options: {root: string; storeScope: string; fsx?: unknown}): {
|
|
155
|
+
reserve(input: Record<string, unknown>): Record<string, unknown>;
|
|
156
|
+
getByRequest(scope: Record<string, string>, requestId: string): Record<string, unknown> | null;
|
|
157
|
+
getById(scope: Record<string, string>, delegationId: string): Record<string, unknown> | null;
|
|
158
|
+
list(scope: Record<string, string>): Record<string, unknown>[];
|
|
159
|
+
describe(): Record<string, unknown>;
|
|
160
|
+
};
|
|
161
|
+
export declare function createDelegationPhaseStore(options: {root: string; storeScope: string; fsx?: unknown}): {
|
|
162
|
+
recordChildCreated(input: Record<string, unknown>): boolean;
|
|
163
|
+
recordChildCreateFailed(input: Record<string, unknown>): boolean;
|
|
164
|
+
claimDispatch(input: Record<string, unknown>): {claimed: boolean; claim: Record<string, unknown> | null};
|
|
165
|
+
recordOutcome(input: Record<string, unknown>): boolean;
|
|
166
|
+
abandonLiveClaim(input: Record<string, unknown>): boolean;
|
|
167
|
+
stateOf(delegationId: string): Record<string, unknown>;
|
|
168
|
+
isClaimLive(delegationId: string): boolean;
|
|
169
|
+
describe(): Record<string, unknown>;
|
|
170
|
+
};
|
|
171
|
+
export declare function createHttpHandler(service: WorkbenchService, options?: Record<string, unknown>): (request: unknown, response: unknown) => Promise<boolean>;
|