@ai-workbench/remote-agent 0.8.21 → 0.8.24
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 +28 -155
- package/dist/acp.d.ts +20 -15
- package/dist/acp.js +197 -224
- package/dist/agents.d.ts +0 -1
- package/dist/agents.js +2 -2
- package/dist/broker-runtime.d.ts +3 -5
- package/dist/broker-runtime.js +45 -342
- package/dist/broker.d.ts +6 -31
- package/dist/broker.js +42 -113
- package/dist/catalog-ssh.d.ts +2 -31
- package/dist/catalog-ssh.js +9 -39
- package/dist/claude-local.d.ts +1 -1
- package/dist/claude-local.js +40 -105
- package/dist/client.js +34 -127
- package/dist/close-diagnostics.d.ts +6 -20
- package/dist/close-diagnostics.js +13 -57
- package/dist/connect-contract.d.ts +4 -8
- package/dist/conversation-details.d.ts +0 -29
- package/dist/conversation-details.js +8 -99
- package/dist/employee-endpoint.d.ts +1 -3
- package/dist/employee-endpoint.js +8 -39
- package/dist/employee-exec.d.ts +4 -3
- package/dist/employee-exec.js +25 -13
- package/dist/employee-info.d.ts +5 -1
- package/dist/employee-info.js +16 -5
- package/dist/employee-location.js +3 -4
- package/dist/employee-mcp.js +44 -69
- package/dist/employee-native.d.ts +1 -3
- package/dist/employee-native.js +6 -27
- package/dist/employee-presentation.d.ts +0 -5
- package/dist/employee-presentation.js +0 -15
- package/dist/employee-provider.d.ts +3 -11
- package/dist/employee-provider.js +69 -205
- package/dist/employee-reasons.js +1 -5
- package/dist/employee-shell.d.ts +2 -1
- package/dist/employee-shell.js +10 -13
- package/dist/employee-ssh.d.ts +1 -3
- package/dist/employee-ssh.js +13 -16
- package/dist/employee-tools.d.ts +5 -5
- package/dist/failure-evidence.d.ts +2 -10
- package/dist/failure-evidence.js +12 -61
- package/dist/host-workspace.d.ts +4 -2
- package/dist/host-workspace.js +1 -1
- package/dist/index.d.ts +12 -42
- package/dist/index.js +203 -471
- package/dist/input.js +2 -3
- package/dist/local-user-turn.js +5 -6
- package/dist/mapping.d.ts +0 -3
- package/dist/mapping.js +0 -34
- package/dist/model-catalog.d.ts +2 -41
- package/dist/model-catalog.js +24 -282
- package/dist/model-configuration.d.ts +0 -3
- package/dist/model-configuration.js +8 -47
- package/dist/model-presentation.d.ts +1 -0
- package/dist/model-presentation.js +2 -2
- package/dist/permissions.d.ts +15 -0
- package/dist/permissions.js +30 -0
- package/dist/preflight-diagnostic.js +11 -22
- package/dist/preflight-payload.d.ts +1 -1
- package/dist/preflight-payload.js +2 -2
- package/dist/presentation.d.ts +0 -1
- package/dist/presentation.js +21 -42
- package/dist/provider.d.ts +12 -48
- package/dist/provider.js +18 -106
- package/dist/readiness.js +1 -7
- package/dist/remote-details.d.ts +41 -17
- package/dist/remote-details.js +84 -381
- package/dist/workspace-source.d.ts +1 -25
- package/dist/workspace-source.js +1 -138
- package/package.json +11 -12
- package/dist/catalog-diagnostics.d.ts +0 -16
- package/dist/catalog-diagnostics.js +0 -108
- package/dist/host-layout.d.ts +0 -8
- package/dist/host-layout.js +0 -9
- package/dist/job.d.ts +0 -17
- package/dist/job.js +0 -57
- package/dist/model-defaults.d.ts +0 -29
- package/dist/model-defaults.js +0 -62
- package/dist/oneshot.d.ts +0 -13
- package/dist/oneshot.js +0 -78
- package/dist/protocol-boundary.d.ts +0 -13
- package/dist/protocol-boundary.js +0 -49
- package/dist/provider-locale.d.ts +0 -19
- package/dist/provider-locale.js +0 -73
- package/dist/recovery-checkpoint.d.ts +0 -6
- package/dist/recovery-checkpoint.js +0 -71
- package/dist/recovery.d.ts +0 -51
- package/dist/recovery.js +0 -61
- package/dist/sdk-ssh-wrapper.d.ts +0 -2
- package/dist/sdk-ssh-wrapper.js +0 -34
- package/dist/stage-timing.d.ts +0 -31
- package/dist/stage-timing.js +0 -61
- package/dist/workspace-notice.d.ts +0 -47
- package/dist/workspace-notice.js +0 -273
- package/dist/workspace-source-confirmation.d.ts +0 -4
- package/dist/workspace-source-confirmation.js +0 -12
package/dist/employee-tools.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare function createEmployeeTools(options: Options): {
|
|
|
23
23
|
type: "text";
|
|
24
24
|
text: string;
|
|
25
25
|
annotations?: {
|
|
26
|
-
audience?: ("
|
|
26
|
+
audience?: ("user" | "assistant")[] | undefined;
|
|
27
27
|
priority?: number | undefined;
|
|
28
28
|
lastModified?: string | undefined;
|
|
29
29
|
} | undefined;
|
|
@@ -35,7 +35,7 @@ export declare function createEmployeeTools(options: Options): {
|
|
|
35
35
|
data: string;
|
|
36
36
|
mimeType: string;
|
|
37
37
|
annotations?: {
|
|
38
|
-
audience?: ("
|
|
38
|
+
audience?: ("user" | "assistant")[] | undefined;
|
|
39
39
|
priority?: number | undefined;
|
|
40
40
|
lastModified?: string | undefined;
|
|
41
41
|
} | undefined;
|
|
@@ -47,7 +47,7 @@ export declare function createEmployeeTools(options: Options): {
|
|
|
47
47
|
data: string;
|
|
48
48
|
mimeType: string;
|
|
49
49
|
annotations?: {
|
|
50
|
-
audience?: ("
|
|
50
|
+
audience?: ("user" | "assistant")[] | undefined;
|
|
51
51
|
priority?: number | undefined;
|
|
52
52
|
lastModified?: string | undefined;
|
|
53
53
|
} | undefined;
|
|
@@ -62,7 +62,7 @@ export declare function createEmployeeTools(options: Options): {
|
|
|
62
62
|
mimeType?: string | undefined;
|
|
63
63
|
size?: number | undefined;
|
|
64
64
|
annotations?: {
|
|
65
|
-
audience?: ("
|
|
65
|
+
audience?: ("user" | "assistant")[] | undefined;
|
|
66
66
|
priority?: number | undefined;
|
|
67
67
|
lastModified?: string | undefined;
|
|
68
68
|
} | undefined;
|
|
@@ -94,7 +94,7 @@ export declare function createEmployeeTools(options: Options): {
|
|
|
94
94
|
} | undefined;
|
|
95
95
|
};
|
|
96
96
|
annotations?: {
|
|
97
|
-
audience?: ("
|
|
97
|
+
audience?: ("user" | "assistant")[] | undefined;
|
|
98
98
|
priority?: number | undefined;
|
|
99
99
|
lastModified?: string | undefined;
|
|
100
100
|
} | undefined;
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
import { NeedError } from './remote.ts';
|
|
2
1
|
/** Only typed codes, never exception messages, causes, stderr or RPC data. */
|
|
3
2
|
export declare function closeCode(error: unknown, fallback?: string): string;
|
|
4
3
|
/** Retain trusted typed codes through wrappers; never traverse error text or invoke getters. */
|
|
5
4
|
export declare function closeErrorCodes(error: unknown, fallback?: string): string[];
|
|
6
|
-
export declare function
|
|
7
|
-
|
|
8
|
-
export declare function withFirstFailureEvidence<T>(primary: T, firstReason: unknown, primaryCode: string): T;
|
|
9
|
-
/** A negotiated close reason is independent evidence, never a replacement error or new gate. */
|
|
10
|
-
export declare function withRemoteFailureEvidence<T>(primary: T, remoteReason: unknown, primaryCode: string): T;
|
|
11
|
-
/** A known turn failure is final even while its original resource is still closing. */
|
|
12
|
-
export declare function withPendingCleanupEvidence<T>(primary: T, firstReason: unknown, primaryCode: string): T;
|
|
13
|
-
/** Preserve causal roles without copying arbitrary exception text into employee output. */
|
|
14
|
-
export declare function withFailureEvidence(primary: unknown, secondary: readonly unknown[], kind: 'diagnostic' | 'cleanup', firstReason?: unknown, primaryCode?: string): NeedError;
|
|
5
|
+
export declare function withFirstFailureEvidence<T>(primary: T, first: unknown, original: string): T;
|
|
6
|
+
export declare function withRemoteFailureEvidence<T>(primary: T, reason: unknown, original: string): T;
|
|
15
7
|
export declare function primaryFailureCode(error: unknown, fallback: string): string;
|
|
16
8
|
export declare function failureEvidenceSummary(error: unknown): string;
|
package/dist/failure-evidence.js
CHANGED
|
@@ -29,74 +29,25 @@ export function closeErrorCodes(error, fallback = 'CLOSE_REASON_UNKNOWN') {
|
|
|
29
29
|
}
|
|
30
30
|
return codes.size ? [...codes] : [fallback];
|
|
31
31
|
}
|
|
32
|
-
export function closeFailure(code, message, requires, codes) {
|
|
33
|
-
return Object.assign(new NeedError(code, message, requires), { cause: new AggregateError([...new Set(codes)].map(value => new NeedError(value, '关闭收尾代码 ' + value, '按安全代码核对')), 'CLOSE_AND_DIAGNOSTIC_FAILURES') });
|
|
34
|
-
}
|
|
35
32
|
const evidence = new WeakMap();
|
|
36
|
-
const
|
|
37
|
-
function
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (current && typeof current === 'object') {
|
|
42
|
-
const known = evidence.get(current);
|
|
43
|
-
if (known)
|
|
44
|
-
return known;
|
|
45
|
-
}
|
|
46
|
-
if (!(current instanceof NeedError || current instanceof AggregateError) || seen.has(current))
|
|
47
|
-
continue;
|
|
48
|
-
seen.add(current);
|
|
49
|
-
const cause = Object.getOwnPropertyDescriptor(current, 'cause');
|
|
50
|
-
if (cause && 'value' in cause)
|
|
51
|
-
queue.push(cause.value);
|
|
52
|
-
const children = Object.getOwnPropertyDescriptor(current, 'errors');
|
|
53
|
-
if (children && 'value' in children && Array.isArray(children.value))
|
|
54
|
-
queue.push(...children.value);
|
|
55
|
-
}
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
/** Saving succeeded: retain the original trusted error type, code and presentation. */
|
|
59
|
-
export function withFirstFailureEvidence(primary, firstReason, primaryCode) {
|
|
60
|
-
if (primary && typeof primary === 'object' && safeCode(firstReason) && safeCode(primaryCode)) {
|
|
61
|
-
const previous = retainedEvidence(primary);
|
|
62
|
-
evidence.set(primary, Object.freeze({ ...previous, first: previous?.first ?? firstReason, original: previous?.original ?? Object.freeze([primaryCode]), diagnostic: previous?.diagnostic ?? Object.freeze([]), cleanup: previous?.cleanup ?? Object.freeze([]) }));
|
|
33
|
+
const safe = (value) => typeof value === 'string' && /^[A-Z][A-Z0-9_]*$/.test(value);
|
|
34
|
+
export function withFirstFailureEvidence(primary, first, original) {
|
|
35
|
+
if (primary && typeof primary === 'object') {
|
|
36
|
+
const old = evidence.get(primary);
|
|
37
|
+
evidence.set(primary, { ...old, ...(safe(first) && !old?.first ? { first } : {}), original: old?.original ?? original });
|
|
63
38
|
}
|
|
64
39
|
return primary;
|
|
65
40
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const remote = trustedEmployeeReason(remoteReason);
|
|
41
|
+
export function withRemoteFailureEvidence(primary, reason, original) {
|
|
42
|
+
const remote = trustedEmployeeReason(reason);
|
|
69
43
|
if (primary && typeof primary === 'object' && remote) {
|
|
70
|
-
const
|
|
71
|
-
evidence.set(primary,
|
|
44
|
+
const old = evidence.get(primary);
|
|
45
|
+
evidence.set(primary, { ...old, remote: old?.remote ?? remote, original: old?.original ?? original });
|
|
72
46
|
}
|
|
73
47
|
return primary;
|
|
74
48
|
}
|
|
75
|
-
|
|
76
|
-
export function withPendingCleanupEvidence(primary, firstReason, primaryCode) {
|
|
77
|
-
if (primary && typeof primary === 'object') {
|
|
78
|
-
const previous = retainedEvidence(primary), first = previous?.first ?? (safeCode(firstReason) ? firstReason : undefined);
|
|
79
|
-
evidence.set(primary, Object.freeze({ ...previous, ...(first ? { first } : {}), original: previous?.original ?? Object.freeze([safeCode(primaryCode) ? primaryCode : 'TURN_FAILED']), diagnostic: previous?.diagnostic ?? Object.freeze([]), cleanup: previous?.cleanup ?? Object.freeze([]), cleanupPending: true }));
|
|
80
|
-
}
|
|
81
|
-
return primary;
|
|
82
|
-
}
|
|
83
|
-
/** Preserve causal roles without copying arbitrary exception text into employee output. */
|
|
84
|
-
export function withFailureEvidence(primary, secondary, kind, firstReason, primaryCode) {
|
|
85
|
-
const previous = retainedEvidence(primary), first = previous?.first ?? (safeCode(firstReason) ? firstReason : undefined);
|
|
86
|
-
const original = previous?.original ?? (safeCode(primaryCode) ? [primaryCode] : closeErrorCodes(primary, 'TURN_FAILED'));
|
|
87
|
-
const secondaryFacts = secondary.map(retainedEvidence), added = [...new Set(secondary.flatMap((error, index) => secondaryFacts[index] ? secondaryFacts[index].original.filter(code => !original.includes(code)) : closeErrorCodes(error, kind === 'diagnostic' ? 'DIAGNOSTIC_WRITE_FAILED' : 'REMOTE_CLEANUP_UNCONFIRMED')))];
|
|
88
|
-
const remote = previous?.remote ?? secondaryFacts.find(f => f?.remote)?.remote;
|
|
89
|
-
const facts = Object.freeze({ ...(first ? { first } : {}), ...(remote ? { remote } : {}), original: Object.freeze(original), diagnostic: Object.freeze([...new Set([...(previous?.diagnostic ?? []), ...secondaryFacts.flatMap(f => f?.diagnostic ?? []), ...(kind === 'diagnostic' ? added : [])])]), cleanup: Object.freeze([...new Set([...(previous?.cleanup ?? []), ...secondaryFacts.flatMap(f => f?.cleanup ?? []), ...(kind === 'cleanup' ? added : [])])]) });
|
|
90
|
-
const code = kind === 'cleanup' ? 'REMOTE_CLEANUP_UNCONFIRMED' : !secondary.length ? primary instanceof NeedError ? primary.code : safeCode(primaryCode) ? primaryCode : 'TURN_FAILED' : primary instanceof NeedError && facts.diagnostic.length > 0 && facts.diagnostic.every(code => code === primary.code) && !facts.cleanup.length && !previous ? primary.code : 'CONVERSATION_DETAILS_FAILED';
|
|
91
|
-
const failure = Object.assign(new NeedError(code, '本轮已停止;运行原因与诊断或清理结果分别保留。', '核对原始原因及未确认的保存/清理结果'), { cause: new AggregateError([primary, ...(safeCode(primaryCode) && !(primary instanceof NeedError) ? [new NeedError(primaryCode, '运行错误代码', '可信调用点提供的固定代码')] : []), ...secondary, ...(first ? [new NeedError(first, '首次观察关闭代码', '不是已证明根因')] : [])], 'TURN_FAILURE_EVIDENCE') });
|
|
92
|
-
evidence.set(failure, facts);
|
|
93
|
-
failure.requires = '原错误代码 ' + facts.original.join('、') + (facts.diagnostic.length ? ';诊断错误代码 ' + facts.diagnostic.join('、') : '') + (facts.first ? ';首次观察关闭 ' + facts.first : '') + (facts.cleanup.length ? ';清理错误代码 ' + facts.cleanup.join('、') : '');
|
|
94
|
-
return failure;
|
|
95
|
-
}
|
|
96
|
-
export function primaryFailureCode(error, fallback) { return retainedEvidence(error)?.original[0] ?? fallback; }
|
|
49
|
+
export function primaryFailureCode(error, fallback) { return error && typeof error === 'object' ? evidence.get(error)?.original ?? fallback : fallback; }
|
|
97
50
|
export function failureEvidenceSummary(error) {
|
|
98
|
-
const facts =
|
|
99
|
-
|
|
100
|
-
return '';
|
|
101
|
-
return '技术详情:' + [...(facts.first ? ['首次观察关闭 ' + facts.first] : []), '运行原因 ' + facts.original.join('、'), ...(facts.remote ? ['远端关闭原因 ' + facts.remote] : []), ...(facts.diagnostic.length ? ['详情保存未确认 ' + facts.diagnostic.join('、')] : []), ...(facts.cleanup.length ? ['清理未确认 ' + facts.cleanup.join('、')] : facts.cleanupPending ? ['正在确认主机清理,原资源清理结果尚待确认'] : [])].join(';');
|
|
51
|
+
const facts = error && typeof error === 'object' ? evidence.get(error) : undefined;
|
|
52
|
+
return facts ? '技术详情:' + [...(facts.first ? ['首次关闭原因 ' + facts.first] : []), '运行原因 ' + facts.original, ...(facts.remote ? ['远端原因 ' + facts.remote] : [])].join(';') : '';
|
|
102
53
|
}
|
package/dist/host-workspace.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ConnectApi, ConnectTarget, ConnectionState, RuntimeRequest, Runtime } from './provider.ts';
|
|
2
2
|
import type { NativeWorkspaceApi, HostSessionProjectTarget, LoginProvider } from './connect-contract.ts';
|
|
3
|
-
import type { WorkspaceSourceOptions } from './workspace-source.ts';
|
|
4
3
|
export interface HostWorkspaceGuard {
|
|
5
4
|
readonly signal: AbortSignal;
|
|
6
5
|
readonly revocation: AbortSignal;
|
|
@@ -10,4 +9,7 @@ export interface HostWorkspaceGuard {
|
|
|
10
9
|
dispose(): void;
|
|
11
10
|
}
|
|
12
11
|
/** Current official membership and explicit host selection; never infer source from a pathname. */
|
|
13
|
-
export declare function hostWorkspaceGuard(get: () => ConnectApi | undefined, api: ConnectApi & NativeWorkspaceApi, connection: ConnectionState, target: ConnectTarget, request: RuntimeRequest, workspace:
|
|
12
|
+
export declare function hostWorkspaceGuard(get: () => ConnectApi | undefined, api: ConnectApi & NativeWorkspaceApi, connection: ConnectionState, target: ConnectTarget, request: RuntimeRequest, workspace: ((request: RuntimeRequest) => Promise<{
|
|
13
|
+
id: string;
|
|
14
|
+
path: string;
|
|
15
|
+
}>) | undefined, provider: LoginProvider): Promise<HostWorkspaceGuard | undefined>;
|
package/dist/host-workspace.js
CHANGED
|
@@ -27,7 +27,7 @@ export async function hostWorkspaceGuard(get, api, connection, target, request,
|
|
|
27
27
|
if (rows.length !== 1 || !selected)
|
|
28
28
|
return;
|
|
29
29
|
if (selected.source !== 'host') {
|
|
30
|
-
if (selected.source !== null &&
|
|
30
|
+
if (selected.source !== null && selected.source !== 'local')
|
|
31
31
|
throw invalid();
|
|
32
32
|
return;
|
|
33
33
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type CloseChange } from './close-diagnostics.ts';
|
|
2
1
|
import type { Context } from '@deepseek-ai/cordis';
|
|
3
2
|
import Schema from '@deepseek-ai/schemastery';
|
|
4
|
-
import { LlmAdapter, type GenerateOptions, type StreamChunk } from '@deepseek-ai/dsh-llm';
|
|
3
|
+
import { LlmAdapter, type GenerateOptions, type StreamChunk, type LlmResolvedModelInfo } from '@deepseek-ai/dsh-llm';
|
|
5
4
|
import { type AcpHooks } from './acp.ts';
|
|
6
5
|
import { type RuntimeProvider } from './provider.ts';
|
|
7
6
|
import { type AgentDefinition } from './agents.ts';
|
|
@@ -9,48 +8,34 @@ import { type ImageReader, type HostWorkspacePresentation } from './input.ts';
|
|
|
9
8
|
import type { LoginDiagnostic } from './login-diagnostic.ts';
|
|
10
9
|
import { type ModelDirectory, type HostModel } from './model-catalog.ts';
|
|
11
10
|
import { type PreflightDiagnostics } from './preflight-diagnostic.ts';
|
|
11
|
+
import { type PermissionSource } from './permissions.ts';
|
|
12
|
+
export { readDshPermissions } from './permissions.ts';
|
|
12
13
|
export declare const name = "ai-workbench-remote-agent";
|
|
13
14
|
export declare const settingsNamespace = "ai-workbench-codex";
|
|
14
15
|
export declare const inject: string[];
|
|
15
16
|
/** Owner-approved defaults; administrators may override through the existing settings. */
|
|
16
17
|
export declare const DEFAULT_CONFIG: Readonly<{
|
|
17
|
-
readonly mode: "session";
|
|
18
18
|
readonly acpMaxMessageBytes: 4194304;
|
|
19
19
|
readonly brokerMaxFrameBytes: 2097152;
|
|
20
20
|
readonly brokerControlMaxBytes: 1048576;
|
|
21
|
-
readonly oneShotSandbox: "workspace-write";
|
|
22
|
-
readonly oneShotApproval: "never";
|
|
23
21
|
readonly employeeShellKillGraceMs: 1000;
|
|
24
|
-
readonly employeeHttpMcpPolicy: "ignore";
|
|
25
22
|
}>;
|
|
26
23
|
export declare const Config: Schema<Schemastery.ObjectS<NoInfer<{
|
|
27
|
-
employeeHttpMcpPolicy: Schema<"reject" | "ignore", "reject" | "ignore", "volatile-defined">;
|
|
28
|
-
mode: Schema<"session" | "one-shot", "session" | "one-shot", "volatile-defined">;
|
|
29
24
|
acpMaxMessageBytes: Schema<number, number, "volatile-defined">;
|
|
30
25
|
brokerMaxFrameBytes: Schema<number, number, "volatile-defined">;
|
|
31
26
|
brokerControlMaxBytes: Schema<number, number, "volatile-defined">;
|
|
32
|
-
oneShotSandbox: Schema<"read-only" | "workspace-write" | "danger-full-access", "read-only" | "workspace-write" | "danger-full-access", "volatile-defined">;
|
|
33
|
-
oneShotApproval: Schema<"never", "never", "volatile-defined">;
|
|
34
27
|
employeeShellKillGraceMs: Schema<number, number, "volatile-defined">;
|
|
35
28
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
36
|
-
employeeHttpMcpPolicy: Schema<"reject" | "ignore", "reject" | "ignore", "volatile-defined">;
|
|
37
|
-
mode: Schema<"session" | "one-shot", "session" | "one-shot", "volatile-defined">;
|
|
38
29
|
acpMaxMessageBytes: Schema<number, number, "volatile-defined">;
|
|
39
30
|
brokerMaxFrameBytes: Schema<number, number, "volatile-defined">;
|
|
40
31
|
brokerControlMaxBytes: Schema<number, number, "volatile-defined">;
|
|
41
|
-
oneShotSandbox: Schema<"read-only" | "workspace-write" | "danger-full-access", "read-only" | "workspace-write" | "danger-full-access", "volatile-defined">;
|
|
42
|
-
oneShotApproval: Schema<"never", "never", "volatile-defined">;
|
|
43
32
|
employeeShellKillGraceMs: Schema<number, number, "volatile-defined">;
|
|
44
33
|
}>>, "plain">;
|
|
45
34
|
export interface PluginConfig {
|
|
46
|
-
mode?: 'session' | 'one-shot';
|
|
47
35
|
acpMaxMessageBytes?: number;
|
|
48
36
|
brokerMaxFrameBytes?: number;
|
|
49
37
|
brokerControlMaxBytes?: number;
|
|
50
|
-
oneShotSandbox?: 'read-only' | 'workspace-write' | 'danger-full-access';
|
|
51
|
-
oneShotApproval?: 'never';
|
|
52
38
|
employeeShellKillGraceMs?: number;
|
|
53
|
-
employeeHttpMcpPolicy?: 'reject' | 'ignore';
|
|
54
39
|
}
|
|
55
40
|
type LiveConfig = {
|
|
56
41
|
[K in keyof PluginConfig]: PluginConfig[K] | {
|
|
@@ -61,7 +46,6 @@ type LiveConfig = {
|
|
|
61
46
|
export declare function readConfig(config: LiveConfig): PluginConfig;
|
|
62
47
|
export type LoginFailureReporter = (sessionId: string | undefined, code: string, diagnostic: LoginDiagnostic) => Promise<{
|
|
63
48
|
eventId: string;
|
|
64
|
-
recorded: true;
|
|
65
49
|
}>;
|
|
66
50
|
export declare class CodexRemoteAdapter extends LlmAdapter {
|
|
67
51
|
private resolveRuntime;
|
|
@@ -72,35 +56,29 @@ export declare class CodexRemoteAdapter extends LlmAdapter {
|
|
|
72
56
|
private readonly reportLoginFailure?;
|
|
73
57
|
private readonly directory?;
|
|
74
58
|
private readonly preflightDiagnostics?;
|
|
59
|
+
private readonly permissions?;
|
|
75
60
|
private config;
|
|
76
61
|
private sessions;
|
|
77
62
|
private turns;
|
|
78
63
|
private lifetime;
|
|
79
64
|
private shuttingDown;
|
|
80
65
|
private detached;
|
|
81
|
-
private cleanups;
|
|
82
|
-
private preparationFailures;
|
|
83
66
|
private modelPresentation;
|
|
84
67
|
private employeeNoticeSessions;
|
|
85
|
-
constructor(config: PluginConfig | (() => PluginConfig), resolveRuntime: RuntimeProvider, approve?: InvocationApproval | undefined, providerName?: () => string, agent?: AgentDefinition, readImage?: ImageReader | undefined, reportLoginFailure?: LoginFailureReporter | undefined, directory?: ModelDirectory | undefined, preflightDiagnostics?: PreflightDiagnostics | undefined);
|
|
68
|
+
constructor(config: PluginConfig | (() => PluginConfig), resolveRuntime: RuntimeProvider, approve?: InvocationApproval | undefined, providerName?: () => string, agent?: AgentDefinition, readImage?: ImageReader | undefined, reportLoginFailure?: LoginFailureReporter | undefined, directory?: ModelDirectory | undefined, preflightDiagnostics?: PreflightDiagnostics | undefined, permissions?: PermissionSource | undefined);
|
|
86
69
|
providerInfo(provider: string): {
|
|
87
70
|
id: string;
|
|
88
71
|
name: string;
|
|
89
72
|
};
|
|
90
73
|
private catalog;
|
|
91
|
-
listModels(provider: string): Promise<(
|
|
74
|
+
listModels(provider: string): Promise<(LlmResolvedModelInfo & {
|
|
92
75
|
catalog: HostModel;
|
|
93
76
|
})[]>;
|
|
94
|
-
resolveModel(provider: string, id: string, signal?: AbortSignal): Promise<
|
|
77
|
+
resolveModel(provider: string, id: string, signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
|
|
95
78
|
prepareCall(provider: string, id: string, signal?: AbortSignal): Promise<{
|
|
96
|
-
model:
|
|
97
|
-
catalog: HostModel;
|
|
98
|
-
};
|
|
79
|
+
model: LlmResolvedModelInfo;
|
|
99
80
|
stream: (options: GenerateOptions) => AsyncGenerator<StreamChunk, any, any>;
|
|
100
81
|
}>;
|
|
101
|
-
observeModelInvalidation(fields: readonly string[], changes?: readonly CloseChange[]): void;
|
|
102
|
-
invalidateModelState(): Promise<void>;
|
|
103
|
-
invalidateEmployeeState(): Promise<void>;
|
|
104
82
|
providerRetryPolicy(): {
|
|
105
83
|
mode: "normal";
|
|
106
84
|
maxRetries: number;
|
|
@@ -110,8 +88,6 @@ export declare class CodexRemoteAdapter extends LlmAdapter {
|
|
|
110
88
|
jitterRatio: number;
|
|
111
89
|
};
|
|
112
90
|
private cleanupRuntime;
|
|
113
|
-
/** Publish an already known failure without coupling the official stream to cleanup. */
|
|
114
|
-
private finishFailedTurn;
|
|
115
91
|
disposeSession(sessionId: string): Promise<void>;
|
|
116
92
|
detachSession(sessionId: string): Promise<void>;
|
|
117
93
|
dispose(): Promise<void>;
|
|
@@ -121,25 +97,20 @@ export declare class CodexRemoteAdapter extends LlmAdapter {
|
|
|
121
97
|
/** One official registration owns both routes, preserving opaque replay ownership. */
|
|
122
98
|
export declare class RemoteAgentsAdapter extends LlmAdapter {
|
|
123
99
|
private adapters;
|
|
124
|
-
constructor(config: () => PluginConfig, makeRuntime: (agent: AgentDefinition) => RuntimeProvider, approve: InvocationApproval, nameFor: (agent: AgentDefinition) => string, readImage?: ImageReader, reportLoginFailure?: LoginFailureReporter, directory?: ModelDirectory, preflightDiagnostics?: PreflightDiagnostics);
|
|
100
|
+
constructor(config: () => PluginConfig, makeRuntime: (agent: AgentDefinition) => RuntimeProvider, approve: InvocationApproval, nameFor: (agent: AgentDefinition) => string, readImage?: ImageReader, reportLoginFailure?: LoginFailureReporter, directory?: ModelDirectory, preflightDiagnostics?: PreflightDiagnostics, permissions?: PermissionSource);
|
|
125
101
|
private adapter;
|
|
126
102
|
providerInfo(provider: string): {
|
|
127
103
|
id: string;
|
|
128
104
|
name: string;
|
|
129
105
|
};
|
|
130
|
-
listModels(provider: string): Promise<(
|
|
106
|
+
listModels(provider: string): Promise<(LlmResolvedModelInfo & {
|
|
131
107
|
catalog: HostModel;
|
|
132
108
|
})[]>;
|
|
133
|
-
resolveModel(provider: string, model: string, signal?: AbortSignal): Promise<
|
|
109
|
+
resolveModel(provider: string, model: string, signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
|
|
134
110
|
prepareCall(provider: string, model: string, signal?: AbortSignal): Promise<{
|
|
135
|
-
model:
|
|
136
|
-
catalog: HostModel;
|
|
137
|
-
};
|
|
111
|
+
model: LlmResolvedModelInfo;
|
|
138
112
|
stream: (options: GenerateOptions) => AsyncGenerator<StreamChunk, any, any>;
|
|
139
113
|
}>;
|
|
140
|
-
observeModelInvalidation(fields: readonly string[], changes?: readonly CloseChange[]): void;
|
|
141
|
-
invalidateModelState(): Promise<void>;
|
|
142
|
-
invalidateEmployeeState(): Promise<void>;
|
|
143
114
|
providerRetryPolicy(): {
|
|
144
115
|
mode: "normal";
|
|
145
116
|
maxRetries: number;
|
|
@@ -156,4 +127,3 @@ export declare class RemoteAgentsAdapter extends LlmAdapter {
|
|
|
156
127
|
export declare function apply(ctx: Context, live: LiveConfig): void;
|
|
157
128
|
type InvocationApproval = (request: Parameters<NonNullable<AcpHooks['approve']>>[0], signal: AbortSignal | undefined, options: GenerateOptions, context?: string, hostWorkspace?: HostWorkspacePresentation) => ReturnType<NonNullable<AcpHooks['approve']>>;
|
|
158
129
|
export declare function dshApproval(ctx: Context): InvocationApproval;
|
|
159
|
-
export {};
|