@qoder-ai/qoder-agent-sdk 1.0.35 → 1.0.37
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/README.md +32 -13
- package/dist/artifacts/session-artifacts.d.ts +2 -0
- package/dist/core/process-transport.d.ts +11 -6
- package/dist/core/runtime-launch-options.d.ts +6 -0
- package/dist/core/worker-transport.d.ts +1 -1
- package/dist/daemon/daemon-auth-rpc.d.ts +1 -7
- package/dist/daemon/daemon-connection.d.ts +2 -18
- package/dist/daemon/daemon-session-transport.d.ts +1 -14
- package/dist/daemon/global-daemon.d.ts +24 -0
- package/dist/daemon/protocol.d.ts +12 -51
- package/dist/daemon/start-daemon.d.ts +0 -61
- package/dist/index.d.ts +7 -7
- package/dist/index.js +31 -31
- package/dist/protocol/control.d.ts +36 -9
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/messages.d.ts +4 -0
- package/dist/protocol/permissions.d.ts +18 -0
- package/dist/query/query-runner.d.ts +23 -19
- package/dist/runtime-manifest.json +5 -5
- package/dist/types/artifacts.d.ts +31 -0
- package/dist/types/byok.d.ts +1 -1
- package/dist/types/control.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/options.d.ts +33 -5
- package/dist/types/permissions.d.ts +6 -2
- package/package.json +2 -2
- package/dist/daemon/remote-session-launch-rpc.d.ts +0 -3
- package/dist/daemon/session-metadata.d.ts +0 -19
- package/dist/daemon/session-registration-store.d.ts +0 -10
- package/dist/daemon/session-store-rpc.d.ts +0 -45
package/README.md
CHANGED
|
@@ -457,27 +457,46 @@ supports the built-in Process and Worker transports. Use
|
|
|
457
457
|
`importSessionToStore(sessionId, store, options)` to copy an existing local main
|
|
458
458
|
transcript, child-agent transcripts, and metadata into a store.
|
|
459
459
|
|
|
460
|
-
|
|
461
|
-
|
|
460
|
+
A Query can replace the CLI Artifact snapshot with an App-owned cumulative
|
|
461
|
+
snapshot. Configure the callback on that Query:
|
|
462
462
|
|
|
463
463
|
```ts
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
464
|
+
import { join } from "node:path";
|
|
465
|
+
import {
|
|
466
|
+
qodercliAuth,
|
|
467
|
+
query,
|
|
468
|
+
type ResolveSessionArtifacts,
|
|
469
|
+
} from "@qoder-ai/qoder-agent-sdk";
|
|
470
|
+
|
|
471
|
+
const resolveSessionArtifacts: ResolveSessionArtifacts = async (
|
|
472
|
+
localSessionId,
|
|
473
|
+
cwd,
|
|
474
|
+
) => ({
|
|
475
|
+
artifacts: [
|
|
476
|
+
{
|
|
477
|
+
path: join(cwd, "outputs/report.pdf"),
|
|
478
|
+
displayPath: "outputs/report.pdf",
|
|
479
|
+
name: "report.pdf",
|
|
480
|
+
kind: "presented",
|
|
481
|
+
group: { key: "outputs", name: "Outputs" },
|
|
482
|
+
relativePath: "report.pdf",
|
|
483
|
+
},
|
|
484
|
+
],
|
|
468
485
|
});
|
|
469
486
|
|
|
470
487
|
const running = query({
|
|
471
|
-
prompt,
|
|
472
|
-
options: {
|
|
488
|
+
prompt: "Create a report.",
|
|
489
|
+
options: {
|
|
490
|
+
auth: qodercliAuth(),
|
|
491
|
+
cwd: "/path/to/project",
|
|
492
|
+
resolveSessionArtifacts,
|
|
493
|
+
},
|
|
473
494
|
});
|
|
474
495
|
```
|
|
475
496
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
and cannot override it per Query. Registration sends summaries only; transcript
|
|
480
|
-
entries are loaded lazily when a Worker needs to resume the Session.
|
|
497
|
+
The callback receives the local Session ID and working directory. Return the
|
|
498
|
+
current full snapshot; `artifacts: []` clears it. If the callback is omitted or
|
|
499
|
+
rejects, the CLI snapshot remains in effect.
|
|
481
500
|
|
|
482
501
|
### Production stores
|
|
483
502
|
|
|
@@ -17,7 +17,6 @@ import type { McpServerConfigForProcessTransport, McpServerToolPolicy } from '..
|
|
|
17
17
|
import type { InternalAuthOptions } from '../types/auth.js';
|
|
18
18
|
import type { SecurityScanOptions, SpawnedProcess, SpawnOptions, SettingSource } from '../types/options.js';
|
|
19
19
|
import type { DiagnosticsSink } from './sdk-diagnostics.js';
|
|
20
|
-
import type { SessionExtra } from '../daemon/session-metadata.js';
|
|
21
20
|
export declare class QoderCliProcessError extends Error {
|
|
22
21
|
readonly code: "QODER_CLI_PROCESS_ERROR";
|
|
23
22
|
readonly exitCode?: number | null;
|
|
@@ -74,8 +73,6 @@ export interface ProcessTransportOptions {
|
|
|
74
73
|
/** SDK-internal diagnostics sink. This is not forwarded to qodercli. */
|
|
75
74
|
diagnostics?: DiagnosticsSink;
|
|
76
75
|
agent?: string;
|
|
77
|
-
/** SDK-internal Session metadata consumed by the shared daemon. */
|
|
78
|
-
extra?: SessionExtra;
|
|
79
76
|
sessionId?: string;
|
|
80
77
|
continue?: boolean;
|
|
81
78
|
resume?: string;
|
|
@@ -134,11 +131,15 @@ export declare class ProcessTransport implements Transport, QueryTransportProvid
|
|
|
134
131
|
private options;
|
|
135
132
|
private ready;
|
|
136
133
|
private closed;
|
|
134
|
+
private shutdownStarted;
|
|
137
135
|
private initializePromise;
|
|
138
136
|
private authExpiredFired;
|
|
139
137
|
private pendingInput;
|
|
140
138
|
private diagnostics?;
|
|
141
139
|
private processExitError;
|
|
140
|
+
private processStopped;
|
|
141
|
+
private closeTimer;
|
|
142
|
+
private killTimer;
|
|
142
143
|
private stderrTail;
|
|
143
144
|
private launchOptionsBuilder;
|
|
144
145
|
constructor(options?: ProcessTransportOptions);
|
|
@@ -179,7 +180,11 @@ export declare class ProcessTransport implements Transport, QueryTransportProvid
|
|
|
179
180
|
* 5. Send SIGKILL if still running
|
|
180
181
|
*/
|
|
181
182
|
close(): void;
|
|
182
|
-
|
|
183
|
+
/** 回收进程资源,不改变调用方主动关闭状态;异常仍由读取循环传播。 */
|
|
184
|
+
private shutdownProcess;
|
|
185
|
+
private hasProcessStopped;
|
|
186
|
+
private finishProcess;
|
|
187
|
+
private observeProcess;
|
|
183
188
|
/**
|
|
184
189
|
* Get the underlying process PID, if available.
|
|
185
190
|
*/
|
|
@@ -201,8 +206,8 @@ export declare class ProcessTransport implements Transport, QueryTransportProvid
|
|
|
201
206
|
* and is used directly as the command.
|
|
202
207
|
*/
|
|
203
208
|
private resolveExecutable;
|
|
204
|
-
/**
|
|
205
|
-
private
|
|
209
|
+
/** 清理 runtime 已消费或不再可能消费的启动制品。 */
|
|
210
|
+
private cleanupLaunchArtifacts;
|
|
206
211
|
/** Fire `onAuthExpired` at most once per session. */
|
|
207
212
|
private fireAuthExpired;
|
|
208
213
|
}
|
|
@@ -75,6 +75,12 @@ export declare class RuntimeLaunchOptionsBuilder {
|
|
|
75
75
|
constructor(options: RuntimeLaunchOptions, diagnostics?: DiagnosticsSink, logPrefix?: string);
|
|
76
76
|
prepare(): Promise<RuntimeLaunchConfig>;
|
|
77
77
|
cleanupGeneratedSettings(): void;
|
|
78
|
+
/**
|
|
79
|
+
* 清理仅用于启动 runtime 的临时文件。
|
|
80
|
+
*
|
|
81
|
+
* 调用方必须保证 runtime 尚未启动或已经退出。runtime 存活期间清理会与其启动读取形成竞态。
|
|
82
|
+
*/
|
|
83
|
+
cleanupLaunchArtifacts(): Promise<void>;
|
|
78
84
|
cleanupAuthPayload(): Promise<void>;
|
|
79
85
|
buildEnv(): Record<string, string>;
|
|
80
86
|
private serviceAccountCredentialEnvVars;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
1
|
import type { InternalAuthOptions } from '../types/auth.js';
|
|
2
2
|
import { type DaemonRequestHandler } from './daemon-connection.js';
|
|
3
|
-
export declare function createDaemonAuthRequestHandler(auth: InternalAuthOptions, callbackTimeoutMs?: number): DaemonRequestHandler;
|
|
4
|
-
export declare function createDaemonRequestHandler(options: {
|
|
5
|
-
auth: InternalAuthOptions;
|
|
6
|
-
sessionStoreHandler?: DaemonRequestHandler;
|
|
7
|
-
remoteSessionLaunchHandler?: DaemonRequestHandler;
|
|
8
|
-
callbackTimeoutMs?: number;
|
|
9
|
-
}): DaemonRequestHandler;
|
|
3
|
+
export declare function createDaemonAuthRequestHandler(auth: InternalAuthOptions, callbackTimeoutMs?: number): DaemonRequestHandler;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Readable, Writable } from "node:stream";
|
|
2
|
-
import { type DaemonControlRequestFrame, type
|
|
2
|
+
import { type DaemonControlRequestFrame, type DaemonWireSessionMessage, type JsonObject, type JsonValue, type OpenSessionParams, type RenameSessionResult } from "./protocol.js";
|
|
3
3
|
import { DaemonSessionTransport, type DaemonSessionTransportOptions } from "./daemon-session-transport.js";
|
|
4
4
|
export declare const SESSION_STORE_FILE_CHECKPOINTING_CAPABILITY = "session_store_file_checkpointing_v1";
|
|
5
5
|
export declare const SESSION_STORE_FORK_BARRIER_CAPABILITY = "session_store_fork_barrier_v1";
|
|
@@ -10,10 +10,6 @@ export interface DaemonConnectionOptions {
|
|
|
10
10
|
maxFrameBytes?: number;
|
|
11
11
|
}
|
|
12
12
|
export type DaemonRequestHandler = (request: DaemonControlRequestFrame) => Promise<JsonValue>;
|
|
13
|
-
export type RemoteControlFailure = {
|
|
14
|
-
environmentId: string;
|
|
15
|
-
error: DaemonRpcError;
|
|
16
|
-
};
|
|
17
13
|
export declare class DaemonRpcError extends Error {
|
|
18
14
|
readonly code: string;
|
|
19
15
|
readonly retryable: boolean;
|
|
@@ -57,29 +53,18 @@ export declare class DaemonConnection {
|
|
|
57
53
|
private readonly capabilities;
|
|
58
54
|
private stopping;
|
|
59
55
|
private failure;
|
|
60
|
-
private remoteControlFailureListener;
|
|
61
|
-
private readonly daemonEventListeners;
|
|
62
56
|
private readonly failureListeners;
|
|
63
57
|
constructor(options: DaemonConnectionOptions);
|
|
64
58
|
initialize(sdkVersion: string, optionalCapabilitiesOrTimeout?: readonly string[] | number, timeoutMs?: number): Promise<void>;
|
|
65
59
|
createSessionTransport(options: DaemonSessionTransportOptions): DaemonSessionTransport;
|
|
66
60
|
supportsCapability(capability: string): boolean;
|
|
67
|
-
createAttachedSessionTransport(remoteSessionId: string): DaemonSessionTransport;
|
|
68
|
-
onRemoteControlFailure(listener: (failure: RemoteControlFailure) => void): void;
|
|
69
|
-
onDaemonEvent(listener: (event: DaemonEventFrame) => void): () => void;
|
|
70
61
|
onFailure(listener: (error: Error) => void): () => void;
|
|
71
62
|
openSession(params: OpenSessionParams, transport: DaemonSessionTransport): Promise<string>;
|
|
72
|
-
subscribeSession(remoteSessionId: string, transport: DaemonSessionTransport): Promise<SubscribeSessionResult>;
|
|
73
|
-
enableRemoteControl(params: EnableRemoteControlParams): Promise<EnableRemoteControlResult>;
|
|
74
63
|
listSessions(): Promise<import("./protocol.js").DaemonSessionInfo[]>;
|
|
75
64
|
renameSession(sessionId: string, title: string): Promise<RenameSessionResult>;
|
|
76
|
-
disableRemoteControl(): Promise<void>;
|
|
77
|
-
syncSessionRegistrations(localSessionIds: string[]): Promise<void>;
|
|
78
|
-
updateSessionMetadata(sessionId: string, extra: JsonObject): Promise<UpdateSessionMetadataResult>;
|
|
79
65
|
sendSessionMessage(message: DaemonWireSessionMessage): Promise<void>;
|
|
80
66
|
closeSession(sessionId: string): Promise<void>;
|
|
81
67
|
deleteSession(localSessionId: string): Promise<void>;
|
|
82
|
-
unsubscribeSession(sessionId: string): Promise<void>;
|
|
83
68
|
shutdown(timeoutMs?: number): Promise<void>;
|
|
84
69
|
fail(error: unknown, notifyListeners?: boolean): void;
|
|
85
70
|
private request;
|
|
@@ -97,7 +82,6 @@ export declare class DaemonConnection {
|
|
|
97
82
|
private rejectLegacyInitialize;
|
|
98
83
|
private acceptRequest;
|
|
99
84
|
private writeInboundError;
|
|
100
|
-
private
|
|
101
|
-
private acceptRemoteControlEvent;
|
|
85
|
+
private acceptSessionUpdatedStatusEvent;
|
|
102
86
|
private writeFrame;
|
|
103
87
|
}
|
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
import type { Transport } from '../core/transport.js';
|
|
2
2
|
import type { StdoutMessage } from '../types/control.js';
|
|
3
|
-
import type { DaemonWireSessionMessage
|
|
3
|
+
import type { DaemonWireSessionMessage } from './protocol.js';
|
|
4
4
|
import type { DaemonConnection } from './daemon-connection.js';
|
|
5
|
-
import type { SessionExtra } from './session-metadata.js';
|
|
6
5
|
export type DaemonSessionTransportOptions = {
|
|
7
6
|
workerArgs: string[];
|
|
8
7
|
cwd?: string;
|
|
9
8
|
configDir?: string;
|
|
10
|
-
extra?: SessionExtra;
|
|
11
9
|
cleanup?: () => void;
|
|
12
|
-
remoteSessionId?: never;
|
|
13
|
-
} | {
|
|
14
|
-
remoteSessionId: string;
|
|
15
|
-
workerArgs?: never;
|
|
16
|
-
cwd?: never;
|
|
17
|
-
configDir?: never;
|
|
18
|
-
extra?: never;
|
|
19
|
-
cleanup?: never;
|
|
20
10
|
};
|
|
21
11
|
export declare class DaemonSessionTransport implements Transport {
|
|
22
12
|
private readonly connection;
|
|
@@ -34,11 +24,8 @@ export declare class DaemonSessionTransport implements Transport {
|
|
|
34
24
|
private cleaned;
|
|
35
25
|
private releasePromise;
|
|
36
26
|
private closePromise;
|
|
37
|
-
private subscribeResult;
|
|
38
|
-
private readonly remoteSessionId;
|
|
39
27
|
constructor(connection: DaemonConnection, options: DaemonSessionTransportOptions);
|
|
40
28
|
initialize(): Promise<void>;
|
|
41
|
-
initializationResult(): Promise<JsonObject>;
|
|
42
29
|
write(data: string): void;
|
|
43
30
|
readMessages(): AsyncGenerator<StdoutMessage, void, unknown>;
|
|
44
31
|
endInput(): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { InternalAuthOptions } from '../types/auth.js';
|
|
2
|
+
import { type Daemon } from './start-daemon.js';
|
|
3
|
+
export interface InitDaemonOptions {
|
|
4
|
+
auth: InternalAuthOptions;
|
|
5
|
+
/** Idle Worker timeout in milliseconds. Set to 0 to disable reclamation. */
|
|
6
|
+
workerIdleTimeoutMs?: number;
|
|
7
|
+
cwd?: string;
|
|
8
|
+
pathToQoderCLIExecutable?: string;
|
|
9
|
+
proxy?: string;
|
|
10
|
+
env?: Record<string, string | undefined>;
|
|
11
|
+
}
|
|
12
|
+
export type DaemonFallbackReason = 'protocol_version_mismatch' | 'daemon_unavailable';
|
|
13
|
+
export type DaemonInitResult = {
|
|
14
|
+
mode: 'daemon';
|
|
15
|
+
daemon: Daemon;
|
|
16
|
+
} | {
|
|
17
|
+
mode: 'direct';
|
|
18
|
+
reason: DaemonFallbackReason;
|
|
19
|
+
};
|
|
20
|
+
export declare class DaemonConfigurationConflictError extends Error {
|
|
21
|
+
constructor();
|
|
22
|
+
}
|
|
23
|
+
export declare function initDaemon(options: InitDaemonOptions): Promise<DaemonInitResult>;
|
|
24
|
+
export declare function shutdownDaemon(): Promise<void>;
|
|
@@ -41,11 +41,15 @@ export interface DaemonErrorResponseFrame {
|
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
export type DaemonControlResponseFrame = DaemonSuccessResponseFrame | DaemonErrorResponseFrame;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
data:
|
|
44
|
+
/** Daemon-private Session failure notification consumed by the SDK transport. */
|
|
45
|
+
export interface DaemonSessionUpdatedStatusEventFrame {
|
|
46
|
+
type: "status_event";
|
|
47
|
+
status: "daemon.session_updated";
|
|
48
|
+
data: {
|
|
49
|
+
local_session_id: string;
|
|
50
|
+
state: "failed";
|
|
51
|
+
error: JsonObject;
|
|
52
|
+
};
|
|
49
53
|
}
|
|
50
54
|
export interface KeepAliveFrame {
|
|
51
55
|
type: "keep_alive";
|
|
@@ -55,7 +59,7 @@ export type DaemonWireSessionMessage = JsonObject & {
|
|
|
55
59
|
type: string;
|
|
56
60
|
session_id?: string;
|
|
57
61
|
};
|
|
58
|
-
export type DaemonProtocolFrame = DaemonControlRequestFrame | DaemonControlResponseFrame |
|
|
62
|
+
export type DaemonProtocolFrame = DaemonControlRequestFrame | DaemonControlResponseFrame | DaemonSessionUpdatedStatusEventFrame | KeepAliveFrame | DaemonWireSessionMessage;
|
|
59
63
|
export type InitializeDaemonParams = {
|
|
60
64
|
daemon_protocol_version: typeof DAEMON_PROTOCOL_VERSION;
|
|
61
65
|
sdk_version: string;
|
|
@@ -70,27 +74,15 @@ export type OpenSessionParams = {
|
|
|
70
74
|
worker_args: string[];
|
|
71
75
|
cwd?: string;
|
|
72
76
|
config_dir?: string;
|
|
73
|
-
extra?: JsonObject;
|
|
74
77
|
};
|
|
75
78
|
export type OpenSessionResult = {
|
|
76
79
|
session_id: string;
|
|
77
80
|
};
|
|
78
|
-
export type SubscribeSessionParams = {
|
|
79
|
-
remote_session_id: string;
|
|
80
|
-
};
|
|
81
|
-
export type SubscribeSessionResult = {
|
|
82
|
-
session_id: string;
|
|
83
|
-
initialization_result: JsonObject;
|
|
84
|
-
};
|
|
85
|
-
export type UnsubscribeSessionParams = Record<string, never>;
|
|
86
81
|
export type SessionRuntimeState = "pending" | "ready" | "inactive" | "failed";
|
|
87
82
|
export type DaemonSessionInfo = {
|
|
88
83
|
local_session_id: string;
|
|
89
|
-
remote_session_id?: string;
|
|
90
|
-
environment_id?: string;
|
|
91
84
|
title: string;
|
|
92
85
|
cwd?: string;
|
|
93
|
-
extra?: JsonObject;
|
|
94
86
|
state: SessionRuntimeState;
|
|
95
87
|
created_at: string;
|
|
96
88
|
updated_at: string;
|
|
@@ -105,58 +97,27 @@ export type RenameSessionParams = {
|
|
|
105
97
|
export type RenameSessionResult = {
|
|
106
98
|
session: DaemonSessionInfo;
|
|
107
99
|
};
|
|
108
|
-
export type EnableRemoteControlParams = {
|
|
109
|
-
external_id: string;
|
|
110
|
-
environment_type: string;
|
|
111
|
-
name?: string;
|
|
112
|
-
metadata?: JsonObject;
|
|
113
|
-
};
|
|
114
|
-
export type EnableRemoteControlResult = {
|
|
115
|
-
environment_id: string;
|
|
116
|
-
};
|
|
117
|
-
export type DisableRemoteControlParams = Record<string, never>;
|
|
118
|
-
export type SyncSessionRegistrationsParams = {
|
|
119
|
-
local_session_ids: string[];
|
|
120
|
-
};
|
|
121
|
-
export type UpdateSessionMetadataParams = {
|
|
122
|
-
extra: JsonObject;
|
|
123
|
-
};
|
|
124
|
-
export type UpdateSessionMetadataResult = {
|
|
125
|
-
session: DaemonSessionInfo;
|
|
126
|
-
};
|
|
127
100
|
export type CloseSessionParams = Record<string, never>;
|
|
128
101
|
export type DeleteSessionParams = {
|
|
129
102
|
local_session_id: string;
|
|
130
103
|
};
|
|
131
104
|
export type ShutdownParams = Record<string, never>;
|
|
132
|
-
export type DaemonCommandMethod = "initialize" | "open_session" | "list_sessions" | "rename_session" | "
|
|
105
|
+
export type DaemonCommandMethod = "initialize" | "open_session" | "list_sessions" | "rename_session" | "close_session" | "delete_session" | "shutdown";
|
|
133
106
|
export interface DaemonCommandParamsMap {
|
|
134
107
|
initialize: InitializeDaemonParams;
|
|
135
108
|
open_session: OpenSessionParams;
|
|
136
109
|
list_sessions: ListSessionsParams;
|
|
137
110
|
rename_session: RenameSessionParams;
|
|
138
|
-
subscribe_session: SubscribeSessionParams;
|
|
139
|
-
unsubscribe_session: UnsubscribeSessionParams;
|
|
140
|
-
enable_remote_control: EnableRemoteControlParams;
|
|
141
|
-
sync_session_registrations: SyncSessionRegistrationsParams;
|
|
142
|
-
update_session_metadata: UpdateSessionMetadataParams;
|
|
143
|
-
disable_remote_control: DisableRemoteControlParams;
|
|
144
111
|
close_session: CloseSessionParams;
|
|
145
112
|
delete_session: DeleteSessionParams;
|
|
146
113
|
shutdown: ShutdownParams;
|
|
147
114
|
}
|
|
148
|
-
export type DaemonCommandRequest = DaemonControlRequestFrame<"initialize", InitializeDaemonParams> | DaemonControlRequestFrame<"open_session", OpenSessionParams> | DaemonControlRequestFrame<"list_sessions", ListSessionsParams> | DaemonControlRequestFrame<"rename_session", RenameSessionParams> | DaemonControlRequestFrame<"
|
|
115
|
+
export type DaemonCommandRequest = DaemonControlRequestFrame<"initialize", InitializeDaemonParams> | DaemonControlRequestFrame<"open_session", OpenSessionParams> | DaemonControlRequestFrame<"list_sessions", ListSessionsParams> | DaemonControlRequestFrame<"rename_session", RenameSessionParams> | DaemonControlRequestFrame<"close_session", CloseSessionParams> | DaemonControlRequestFrame<"delete_session", DeleteSessionParams> | DaemonControlRequestFrame<"shutdown", ShutdownParams>;
|
|
149
116
|
export interface DaemonCommandResultMap {
|
|
150
117
|
initialize: InitializeDaemonResult;
|
|
151
118
|
open_session: OpenSessionResult;
|
|
152
119
|
list_sessions: ListSessionsResult;
|
|
153
120
|
rename_session: RenameSessionResult;
|
|
154
|
-
subscribe_session: SubscribeSessionResult;
|
|
155
|
-
unsubscribe_session: null;
|
|
156
|
-
enable_remote_control: EnableRemoteControlResult;
|
|
157
|
-
sync_session_registrations: null;
|
|
158
|
-
update_session_metadata: UpdateSessionMetadataResult;
|
|
159
|
-
disable_remote_control: null;
|
|
160
121
|
close_session: null;
|
|
161
122
|
delete_session: null;
|
|
162
123
|
shutdown: null;
|
|
@@ -1,96 +1,35 @@
|
|
|
1
1
|
import type { InternalAuthOptions } from '../types/auth.js';
|
|
2
|
-
import type { Query, OnElicitation } from '../types/options.js';
|
|
3
|
-
import type { CanUseTool } from '../types/permissions.js';
|
|
4
2
|
import type { ProcessTransportOptions } from '../core/process-transport.js';
|
|
5
3
|
import type { QueryTransportProvider } from '../core/transport.js';
|
|
6
|
-
import { type DaemonSessionStore } from './session-store-rpc.js';
|
|
7
|
-
import { type ResolveRemoteSessionLaunch, type SessionExtra, type SessionMetadataUpdate } from './session-metadata.js';
|
|
8
4
|
export type DaemonState = 'ready' | 'stopping' | 'stopped' | 'failed';
|
|
9
|
-
export type RemoteControlState = 'ready' | 'stopping' | 'stopped' | 'failed';
|
|
10
|
-
export interface EnableRemoteControlOptions {
|
|
11
|
-
externalId: string;
|
|
12
|
-
/**
|
|
13
|
-
* Remote Manager-registered push-family Environment type for this Host.
|
|
14
|
-
* The value is an Environment identity component and must remain stable.
|
|
15
|
-
*/
|
|
16
|
-
environmentType: string;
|
|
17
|
-
name?: string;
|
|
18
|
-
metadata?: Record<string, unknown>;
|
|
19
|
-
}
|
|
20
|
-
export interface RemoteControl {
|
|
21
|
-
readonly environmentId: string;
|
|
22
|
-
readonly state: RemoteControlState;
|
|
23
|
-
disable(): Promise<void>;
|
|
24
|
-
}
|
|
25
|
-
export interface AttachSessionOptions {
|
|
26
|
-
canUseTool?: CanUseTool;
|
|
27
|
-
onElicitation?: OnElicitation;
|
|
28
|
-
}
|
|
29
5
|
export type SessionRuntimeState = 'pending' | 'ready' | 'inactive' | 'failed';
|
|
30
6
|
export interface DaemonSessionInfo {
|
|
31
7
|
localSessionId: string;
|
|
32
|
-
remoteSessionId?: string;
|
|
33
|
-
environmentId?: string;
|
|
34
8
|
title: string;
|
|
35
9
|
cwd?: string;
|
|
36
|
-
extra?: SessionExtra;
|
|
37
10
|
state: SessionRuntimeState;
|
|
38
11
|
createdAt: string;
|
|
39
12
|
updatedAt: string;
|
|
40
13
|
}
|
|
41
14
|
export interface StartDaemonOptions {
|
|
42
15
|
auth: InternalAuthOptions;
|
|
43
|
-
capacity: number;
|
|
44
16
|
/** Idle Worker timeout in milliseconds. Set to 0 to disable reclamation. */
|
|
45
17
|
workerIdleTimeoutMs?: number;
|
|
46
18
|
cwd?: string;
|
|
47
19
|
pathToQoderCLIExecutable?: string;
|
|
48
20
|
proxy?: string;
|
|
49
21
|
env?: Record<string, string | undefined>;
|
|
50
|
-
sessionStore?: DaemonSessionStore;
|
|
51
|
-
/** Resolves a remotely-created Session to trusted local launch paths. */
|
|
52
|
-
resolveRemoteSessionLaunch?: ResolveRemoteSessionLaunch;
|
|
53
22
|
}
|
|
54
|
-
export type DaemonEvent = {
|
|
55
|
-
type: 'daemonStateChanged';
|
|
56
|
-
previousState: DaemonState;
|
|
57
|
-
state: DaemonState;
|
|
58
|
-
error?: Error;
|
|
59
|
-
} | {
|
|
60
|
-
type: 'remoteControlStateChanged';
|
|
61
|
-
environmentId?: string;
|
|
62
|
-
previousState: RemoteControlState;
|
|
63
|
-
state: RemoteControlState;
|
|
64
|
-
error?: Error;
|
|
65
|
-
} | {
|
|
66
|
-
type: 'sessionDiscovered';
|
|
67
|
-
session: DaemonSessionInfo;
|
|
68
|
-
} | {
|
|
69
|
-
type: 'sessionUpdated';
|
|
70
|
-
session: DaemonSessionInfo;
|
|
71
|
-
previousState?: SessionRuntimeState;
|
|
72
|
-
} | {
|
|
73
|
-
type: 'sessionDeleted';
|
|
74
|
-
localSessionId: string;
|
|
75
|
-
};
|
|
76
|
-
export type DaemonEventCallback = (event: DaemonEvent) => void;
|
|
77
23
|
export interface Daemon {
|
|
78
24
|
readonly state: DaemonState;
|
|
79
25
|
listSessions(): Promise<DaemonSessionInfo[]>;
|
|
80
|
-
onEvent(callback: DaemonEventCallback): () => void;
|
|
81
26
|
renameSession(localSessionId: string, title: string): Promise<DaemonSessionInfo>;
|
|
82
|
-
updateSessionMetadata(localSessionId: string, update: SessionMetadataUpdate): Promise<DaemonSessionInfo>;
|
|
83
27
|
deleteSession(localSessionId: string): Promise<void>;
|
|
84
|
-
enableRemoteControl(options: EnableRemoteControlOptions): Promise<RemoteControl>;
|
|
85
|
-
attachSession(remoteSessionId: string, options?: AttachSessionOptions): Promise<Query>;
|
|
86
28
|
stop(): Promise<void>;
|
|
87
29
|
}
|
|
88
30
|
interface InternalDaemonRuntime {
|
|
89
31
|
readonly auth: InternalAuthOptions;
|
|
90
32
|
readonly transportProvider: QueryTransportProvider<ProcessTransportOptions>;
|
|
91
|
-
readonly sessionStore?: DaemonSessionStore;
|
|
92
|
-
readonly supportsSessionStoreFileCheckpointing: boolean;
|
|
93
|
-
readonly supportsSessionStoreForkBarrier: boolean;
|
|
94
33
|
}
|
|
95
34
|
export declare function getDaemonRuntime(daemon: Daemon): InternalDaemonRuntime | undefined;
|
|
96
35
|
export declare function startDaemon(options: StartDaemonOptions): Promise<Daemon>;
|
package/dist/index.d.ts
CHANGED
|
@@ -55,11 +55,10 @@ export { query } from './query/query.js';
|
|
|
55
55
|
export { startup } from './query/startup.js';
|
|
56
56
|
export type { StartupParams, WarmQuery } from './query/startup.js';
|
|
57
57
|
export { resolveSettings } from './settings/resolve-settings.js';
|
|
58
|
+
export { initDaemon, shutdownDaemon } from './daemon/global-daemon.js';
|
|
59
|
+
export type { DaemonFallbackReason, DaemonInitResult, InitDaemonOptions, } from './daemon/global-daemon.js';
|
|
58
60
|
export { startDaemon } from './daemon/start-daemon.js';
|
|
59
|
-
export type { Daemon,
|
|
60
|
-
export type { RemoteSessionLaunch, RemoteSessionLaunchRequest, ResolveRemoteSessionLaunch, SessionExtra, SessionExtraValue, SessionMetadataUpdate, } from './daemon/session-metadata.js';
|
|
61
|
-
export type { DaemonSessionStore, DaemonSessionSummary, } from './daemon/session-store-rpc.js';
|
|
62
|
-
export { DEFAULT_SESSION_STORE_MAX_PAYLOAD_BYTES, measureSessionStoreEntryPayloadBytes, } from './daemon/session-store-rpc.js';
|
|
61
|
+
export type { Daemon, DaemonState, DaemonSessionInfo, SessionRuntimeState, StartDaemonOptions, } from './daemon/start-daemon.js';
|
|
63
62
|
export { DEFAULT_RUNTIME_TRANSPORT, } from './core/default-runtime.js';
|
|
64
63
|
export { ProcessTransport, QoderCliProcessError, } from './core/process-transport.js';
|
|
65
64
|
export { hasResolvableQoderWorkerRuntime, QoderWorkerRuntimeError, WorkerTransport, resolveQoderWorkerRuntimePath, } from './core/worker-transport.js';
|
|
@@ -98,13 +97,14 @@ export type { QueryTransportCreateOptions, QueryTransportProviderOption, } from
|
|
|
98
97
|
export type { ProcessTransportOptions } from './core/process-transport.js';
|
|
99
98
|
export type { WorkerRuntimeTransportOptions, WorkerTransportOptions, } from './core/worker-transport.js';
|
|
100
99
|
export type { QueryTransportProvider, Transport, } from './core/transport.js';
|
|
101
|
-
export type { Options, QueryTransportOptions, Query, SpawnOptions, SpawnedProcess, ElicitationRequest, ElicitationResult, OnElicitation, PromptRequest, PromptRequestOption, PromptResponse, CanUseTool, SecurityScanOptions, } from './types/options.js';
|
|
100
|
+
export type { Options, QueryTransportOptions, Query, RemoteProjectionEnableOptions, RemoteProjectionCheckpoint, SpawnOptions, SpawnedProcess, ElicitationRequest, ElicitationResult, OnElicitation, PromptRequest, PromptRequestOption, PromptResponse, CanUseTool, SecurityScanOptions, } from './types/options.js';
|
|
101
|
+
export type { ArtifactGroup, SessionArtifactBase, SessionArtifact, ResolveSessionArtifactsResult, ResolveSessionArtifacts, } from './types/artifacts.js';
|
|
102
102
|
export type { EffectiveMemoryConfig, MemoryConsumptionFile, MemoryConsumptionOptions, MemoryConsumptionResult, MemoryGenerationGateInput, MemoryGenerationGateResult, MemoryGenerationOptions, MemoryGenerationFailedFile, MemoryGenerationResult, MemoryMode, MemoryOptions, MemoryRoot, MemoryRootAccess, MemoryShouldGenerate, } from './types/memory.js';
|
|
103
103
|
export type { EffectiveEvolutionConfig, EffectiveSkillEvolutionConfig, EvolutionOptions, SkillEvolutionGateInput, SkillEvolutionGateResult, SkillEvolutionGenerationOptions, SkillEvolutionMode, SkillEvolutionOptions, SkillEvolutionResult, SkillEvolutionShouldReview, SkillEvolutionSuggestion, } from './types/skill-evolution.js';
|
|
104
104
|
export { MAX_SKILL_EVOLUTION_REVIEW_THRESHOLD } from './types/skill-evolution.js';
|
|
105
105
|
export type { AgentCreateParams, BetaManagedAgentsAgentToolName, BetaManagedAgentsAgentToolset20260401Params, BetaManagedAgentsCustomSkillParams, BetaManagedAgentsFileResourceParams, BetaManagedAgentsModel, BetaManagedAgentsSkillParams, BetaManagedAgentsURLMCPServerParams, CloudAgentOptions, CloudAgentReference, CloudAgentStreamOptions, CloudSessionResource, CloudSessionCreateParams, CloudSessionCreateReference, CloudSessionExistingReference, CloudSessionReference, SessionCreateParams, } from './types/cloud-agent.js';
|
|
106
106
|
export type { SettingSource as SettingSourceFromOptions } from './types/options.js';
|
|
107
|
-
export type { PermissionMode, PermissionBehavior, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, CanUseToolOptions, } from './types/permissions.js';
|
|
107
|
+
export type { PermissionMode, PermissionBehavior, PermissionScope, CanUseToolPermissionKind, CanUseToolPermissionOption, CanUseToolPermissionDetails, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, CanUseToolOptions, } from './types/permissions.js';
|
|
108
108
|
export type { HookEvent, HookPermissionDecision, HookCallback, HookCallbackMatcher, HookInput, HookSpecificOutput, HookJSONOutput, AsyncHookJSONOutput, SyncHookJSONOutput, BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PostCompactHookInput, PermissionRequestHookInput, PermissionDeniedHookInput, InstructionsLoadedHookInput, WorktreeCreateHookInput, WorktreeRemoveHookInput, CwdChangedHookInput, FileChangedHookInput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput, PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput, SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput, WorktreeCreateHookSpecificOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, } from './types/hooks.js';
|
|
109
109
|
export type { McpStdioServerConfig, McpSSEServerConfig, McpHttpServerConfig, McpSdkServerConfig, McpSdkServerConfigWithInstance, McpServerConfig, McpServerToolPolicy, McpServerConfigForProcessTransport, McpServerStatus, McpServerStatusConfig, } from './types/mcp.js';
|
|
110
110
|
export type { AgentDefinition, AgentInfo, AgentMemoryScope, AgentMcpServerSpec, } from './types/agents.js';
|
|
@@ -114,7 +114,7 @@ export { filterEscalatingDefaultMode } from './types/settings.js';
|
|
|
114
114
|
export type { QoderModelPurpose } from './types/control.js';
|
|
115
115
|
export type { SDKControlRequest, SDKControlResponse, SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse, SDKControlReloadSkillsRequest, SDKControlReloadSkillsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKPlanModeSnapshot, } from './types/control.js';
|
|
116
116
|
export type { SDKControlGetModelPolicyRequest, SDKControlGetModelPolicyResponse, SDKCapabilities, ModelPolicyContext, ModelPolicyResult, ModelPolicyProvider, } from './types/model-policy-provider.js';
|
|
117
|
-
export type { SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, BYOKModelValidationInput, BYOKProviderInfo, BYOKModelTypeInfo, BYOKModelInfo, ByokProtocol, ByokModelConfigInfo, CustomByokProviderConfigInfo, ByokConfigInfo, ByokModelConfigInput, CustomByokProviderThinkingMode, CustomByokProviderReasoningEffortLevel, CustomByokProviderThinkingCapabilitiesInput, CustomByokProviderModelCapabilitiesInput, CustomByokProviderModelInput, CustomByokProviderConfigInput, CreateByokConfigInput, UpdateByokModelConfigInput, UpdateCustomByokProviderConfigInput, UpdateByokConfigInput, DeleteByokConfigInput, CheckByokConfigInput, ByokConfigReference, ByokConfigCheckResult, CustomModel, } from './types/byok.js';
|
|
117
|
+
export type { SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, BYOKModelValidationInput, BYOKLocalizedName, BYOKProviderInfo, BYOKModelTypeInfo, BYOKModelInfo, ByokProtocol, ByokModelConfigInfo, CustomByokProviderConfigInfo, ByokConfigInfo, ByokModelConfigInput, CustomByokProviderThinkingMode, CustomByokProviderReasoningEffortLevel, CustomByokProviderThinkingCapabilitiesInput, CustomByokProviderModelCapabilitiesInput, CustomByokProviderModelInput, CustomByokProviderConfigInput, CreateByokConfigInput, UpdateByokModelConfigInput, UpdateCustomByokProviderConfigInput, UpdateByokConfigInput, DeleteByokConfigInput, CheckByokConfigInput, ByokConfigReference, ByokConfigCheckResult, CustomModel, } from './types/byok.js';
|
|
118
118
|
export { isBashToolBackgroundLaunchResult } from './types/tools.js';
|
|
119
119
|
export type { AgentInput, AgentOutput, AgentToolCompletionResult, AgentToolBackgroundLaunchResult, AgentToolTeammateSpawnedResult, BashInput, BashToolBackgroundLaunchResult, FileReadInput, FileReadOutput, FileEditInput, FileWriteInput, GlobInput, GrepInput, WebFetchInput, WebSearchInput, AskUserQuestionInput, NotebookEditInput, TaskCreateInput, TaskCreateOutput, TaskGetInput, TaskGetOutput, TaskUpdateInput, TaskUpdateOutput, TaskListInput, TaskListOutput, ExitPlanModeInput, TodoWriteInput, ToolInputSchemas, ToolOutputSchemas, } from './types/tools.js';
|
|
120
120
|
export type { FeedbackResult } from './types/account.js';
|