@agent-link/agent 0.1.214 → 0.1.216
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/backends/claude.d.ts +2 -8
- package/dist/backends/claude.js +2 -47
- package/dist/backends/claude.js.map +1 -1
- package/dist/backends/types.d.ts +2 -60
- package/dist/backends/types.js +0 -16
- package/dist/backends/types.js.map +1 -1
- package/dist/connection.d.ts +1 -4
- package/dist/connection.js +144 -262
- package/dist/connection.js.map +1 -1
- package/dist/index.js +1 -8
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +1 -129
- package/dist/runtime.js +1 -220
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* ClaudeBackend instances can coexist with the legacy connection.ts
|
|
22
22
|
* subscribers without clobbering each other; shutdown() detaches cleanly.
|
|
23
23
|
*/
|
|
24
|
-
import { type AgentBackend, type ApprovalAnswer, type BackendCapabilities, type BackendHistoryMessage, type
|
|
24
|
+
import { type AgentBackend, type ApprovalAnswer, type BackendCapabilities, type BackendHistoryMessage, type BackendSessionInfo, type BackendSessionRef, type EnsureSessionOpts, type EventListener, type StartOpts, type UserInputAnswer, type UserTurnInput } from './types.js';
|
|
25
25
|
export declare class ClaudeBackend implements AgentBackend {
|
|
26
26
|
readonly type: "claude";
|
|
27
27
|
readonly capabilities: BackendCapabilities;
|
|
@@ -42,7 +42,7 @@ export declare class ClaudeBackend implements AgentBackend {
|
|
|
42
42
|
readonly compact?: undefined;
|
|
43
43
|
readonly fork?: undefined;
|
|
44
44
|
readonly listModels?: undefined;
|
|
45
|
-
readonly renameSession: (workDir: string, session: BackendSessionRef, title: string) => Promise<
|
|
45
|
+
readonly renameSession: (workDir: string, session: BackendSessionRef, title: string) => Promise<void>;
|
|
46
46
|
readonly deleteSession: (workDir: string, session: BackendSessionRef) => Promise<boolean>;
|
|
47
47
|
constructor(_opts?: StartOpts);
|
|
48
48
|
on(listener: EventListener): () => void;
|
|
@@ -54,12 +54,6 @@ export declare class ClaudeBackend implements AgentBackend {
|
|
|
54
54
|
interruptTurn(session: BackendSessionRef): Promise<void>;
|
|
55
55
|
answerUserInput(answer: UserInputAnswer): void;
|
|
56
56
|
answerApproval(answer: ApprovalAnswer): void;
|
|
57
|
-
setModel(conversationId: string | null, model: string | null): void;
|
|
58
|
-
getEffectiveModel(conversationId?: string): string | null;
|
|
59
|
-
isCompacting(conversationId?: string): boolean;
|
|
60
|
-
hasConversation(conversationId: string): boolean;
|
|
61
|
-
restartSession(conversationId: string, opts?: RestartOpts): BackendRestartResult | null;
|
|
62
|
-
createPlaceholderSession(conversationId: string, _workDir: string, opts?: RestartOpts): void;
|
|
63
57
|
listSessions(workDir: string): Promise<BackendSessionInfo[]>;
|
|
64
58
|
readSession(workDir: string, session: BackendSessionRef): Promise<BackendHistoryMessage[]>;
|
|
65
59
|
/** Reverse-lookup: find the conversationId we associated with a session ref. */
|
package/dist/backends/claude.js
CHANGED
|
@@ -76,9 +76,7 @@ export class ClaudeBackend {
|
|
|
76
76
|
});
|
|
77
77
|
// Bind capability-gated methods.
|
|
78
78
|
this.renameSession = async (workDir, session, title) => {
|
|
79
|
-
|
|
80
|
-
// connection.ts can drive the BRAIN_DATA_DIR fallback + retry on false.
|
|
81
|
-
return history.renameSession(workDir, session.backendSessionId, title);
|
|
79
|
+
history.renameSession(workDir, session.backendSessionId, title);
|
|
82
80
|
};
|
|
83
81
|
this.deleteSession = async (workDir, session) => {
|
|
84
82
|
return history.deleteSession(workDir, session.backendSessionId);
|
|
@@ -157,16 +155,9 @@ export class ClaudeBackend {
|
|
|
157
155
|
const sid = session.backendSessionId;
|
|
158
156
|
const isPlaceholder = !sid || sid.startsWith('pending:');
|
|
159
157
|
const hasLive = !!claude.getConversation(convId);
|
|
160
|
-
const
|
|
158
|
+
const options = !isPlaceholder && !hasLive
|
|
161
159
|
? { resumeSessionId: sid }
|
|
162
160
|
: undefined;
|
|
163
|
-
// Merge per-turn metadata (brainMode, recapId, briefingDate, devops*,
|
|
164
|
-
// projectName, icmId, extraArgs) into HandleChatOptions. The runtime
|
|
165
|
-
// passes these through opaquely; only ClaudeBackend interprets them.
|
|
166
|
-
const meta = input.metadata;
|
|
167
|
-
const options = (baseOptions || meta)
|
|
168
|
-
? { ...(meta ?? {}), ...(baseOptions ?? {}) }
|
|
169
|
-
: undefined;
|
|
170
161
|
claude.handleChat(convId, input.text,
|
|
171
162
|
// workDir must come from existing conversation state; if absent, claude.ts
|
|
172
163
|
// will throw when it tries to spawn — caller must ensureSession first.
|
|
@@ -184,42 +175,6 @@ export class ClaudeBackend {
|
|
|
184
175
|
answerApproval(answer) {
|
|
185
176
|
claude.handleToolPermissionResponse(answer.requestId, answer.decision);
|
|
186
177
|
}
|
|
187
|
-
// ── PR4-C user-action surface (keyed by conversationId) ────────────────
|
|
188
|
-
setModel(conversationId, model) {
|
|
189
|
-
// claude.setModel takes (conversationId | undefined, model). null convId
|
|
190
|
-
// means "global default"; null model means clear/default — claude.setModel
|
|
191
|
-
// expects a string for model, so coerce null to '' (claude.ts treats empty
|
|
192
|
-
// as "no override").
|
|
193
|
-
claude.setModel(conversationId ?? undefined, model ?? '');
|
|
194
|
-
}
|
|
195
|
-
getEffectiveModel(conversationId) {
|
|
196
|
-
return claude.getEffectiveModel(conversationId);
|
|
197
|
-
}
|
|
198
|
-
isCompacting(conversationId) {
|
|
199
|
-
return claude.getIsCompacting(conversationId);
|
|
200
|
-
}
|
|
201
|
-
hasConversation(conversationId) {
|
|
202
|
-
return claude.getConversation(conversationId) != null;
|
|
203
|
-
}
|
|
204
|
-
restartSession(conversationId, opts) {
|
|
205
|
-
// claude.restartConversation returns { claudeSessionId: null, wasTurnActive: false }
|
|
206
|
-
// when there's no live conversation. Map that to null per AgentBackend
|
|
207
|
-
// contract (caller falls back to createPlaceholderSession).
|
|
208
|
-
if (!claude.getConversation(conversationId))
|
|
209
|
-
return null;
|
|
210
|
-
const result = claude.restartConversation(conversationId, opts);
|
|
211
|
-
return {
|
|
212
|
-
claudeSessionId: result.claudeSessionId,
|
|
213
|
-
wasTurnActive: result.wasTurnActive,
|
|
214
|
-
history: result.history,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
createPlaceholderSession(conversationId, _workDir, opts) {
|
|
218
|
-
// Claude ignores workDir — claude.ts:898 sets workDir: '' and the next
|
|
219
|
-
// handleChat overrides it. The param is kept in the AgentBackend API for
|
|
220
|
-
// future backends that need it (e.g. CodexBackend).
|
|
221
|
-
claude.createPlaceholderConversation(conversationId, opts);
|
|
222
|
-
}
|
|
223
178
|
// ── History ────────────────────────────────────────────────────────────
|
|
224
179
|
async listSessions(workDir) {
|
|
225
180
|
const items = history.listSessions(workDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/backends/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/backends/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/backends/types.d.ts
CHANGED
|
@@ -54,30 +54,6 @@ export interface BackendSessionRef {
|
|
|
54
54
|
}
|
|
55
55
|
/** Backend-neutral sandbox / permission mode. Each backend maps internally. */
|
|
56
56
|
export type SandboxMode = 'safe' | 'workspace' | 'unrestricted';
|
|
57
|
-
/**
|
|
58
|
-
* Named union for per-conversation permission modes (PR4-C, Codex finding C).
|
|
59
|
-
* Mirrors claude.ts:806 — backends declare which values they support via
|
|
60
|
-
* `capabilities.controls.permissionMode`.
|
|
61
|
-
*/
|
|
62
|
-
export type PermissionMode = 'normal' | 'acceptEdits' | 'auto' | 'default' | 'plan';
|
|
63
|
-
/**
|
|
64
|
-
* Result of a `restartSession` call (PR4-C). `wasTurnActive` drives
|
|
65
|
-
* `execution_cancelled` emission in connection.ts.
|
|
66
|
-
*/
|
|
67
|
-
export interface BackendRestartResult {
|
|
68
|
-
/** New backend session id after restart, or null if conv was empty. */
|
|
69
|
-
claudeSessionId: string | null;
|
|
70
|
-
/** Whether a turn was in flight when restart fired. */
|
|
71
|
-
wasTurnActive: boolean;
|
|
72
|
-
/** Backend-internal history snapshot (opaque). */
|
|
73
|
-
history?: unknown;
|
|
74
|
-
}
|
|
75
|
-
/** Options for `restartSession` / `createPlaceholderSession` (PR4-C). */
|
|
76
|
-
export interface RestartOpts {
|
|
77
|
-
planMode?: boolean;
|
|
78
|
-
brainMode?: boolean;
|
|
79
|
-
permissionMode?: PermissionMode;
|
|
80
|
-
}
|
|
81
57
|
/** Capability descriptor with optional per-feature details. */
|
|
82
58
|
export interface Capability<TDetails = unknown> {
|
|
83
59
|
supported: boolean;
|
|
@@ -139,17 +115,6 @@ export interface BackendCapabilities {
|
|
|
139
115
|
skills: Capability;
|
|
140
116
|
};
|
|
141
117
|
sandboxModes: SandboxMode[];
|
|
142
|
-
/** PR4-C: per-conversation user-action controls. */
|
|
143
|
-
controls: {
|
|
144
|
-
setModel: Capability;
|
|
145
|
-
restartSession: Capability;
|
|
146
|
-
brainMode: Capability;
|
|
147
|
-
planMode: Capability;
|
|
148
|
-
permissionMode: Capability<{
|
|
149
|
-
modes: PermissionMode[];
|
|
150
|
-
}>;
|
|
151
|
-
isCompacting: Capability;
|
|
152
|
-
};
|
|
153
118
|
}
|
|
154
119
|
/** Approval / confirmation requests from the backend to the user. */
|
|
155
120
|
export type ApprovalRequest = {
|
|
@@ -298,13 +263,6 @@ export interface EnsureSessionOpts {
|
|
|
298
263
|
export interface UserTurnInput {
|
|
299
264
|
text: string;
|
|
300
265
|
files?: BackendFileAttachment[];
|
|
301
|
-
/**
|
|
302
|
-
* Backend-specific per-turn metadata. ClaudeBackend forwards these as
|
|
303
|
-
* `HandleChatOptions` (brainMode, recapId, briefingDate, devops*, projectName,
|
|
304
|
-
* icmId, etc.). Codex/other backends may ignore unknown keys. The runtime
|
|
305
|
-
* passes this through opaquely; only the backend interprets it.
|
|
306
|
-
*/
|
|
307
|
-
metadata?: Record<string, unknown>;
|
|
308
266
|
}
|
|
309
267
|
export interface ApprovalAnswer {
|
|
310
268
|
requestId: string;
|
|
@@ -335,7 +293,7 @@ export interface AgentBackend {
|
|
|
335
293
|
answerApproval(answer: ApprovalAnswer): void;
|
|
336
294
|
listSessions(workDir: string): Promise<BackendSessionInfo[]>;
|
|
337
295
|
readSession(workDir: string, session: BackendSessionRef): Promise<BackendHistoryMessage[]>;
|
|
338
|
-
renameSession?(workDir: string, session: BackendSessionRef, title: string): Promise<
|
|
296
|
+
renameSession?(workDir: string, session: BackendSessionRef, title: string): Promise<void>;
|
|
339
297
|
deleteSession?(workDir: string, session: BackendSessionRef): Promise<boolean>;
|
|
340
298
|
compact?(session: BackendSessionRef): Promise<void>;
|
|
341
299
|
fork?(session: BackendSessionRef, fromMessageId?: string): Promise<BackendSessionRef>;
|
|
@@ -347,23 +305,7 @@ export interface AgentBackend {
|
|
|
347
305
|
id: string;
|
|
348
306
|
label?: string;
|
|
349
307
|
}>>;
|
|
350
|
-
|
|
351
|
-
* PR4-C (Codex finding B): keyed by conversationId, NOT BackendSessionRef.
|
|
352
|
-
* Passing null targets the global default model. claude.ts uses
|
|
353
|
-
* `pendingModels.set(convId, model)` for not-yet-started conversations
|
|
354
|
-
* — the convId must be passed straight through.
|
|
355
|
-
*/
|
|
356
|
-
setModel?(conversationId: string | null, model: string | null): void;
|
|
357
|
-
getEffectiveModel?(conversationId?: string): string | null;
|
|
358
|
-
isCompacting?(conversationId?: string): boolean;
|
|
359
|
-
/** Returns null if no conversation exists for convId (caller should fall
|
|
360
|
-
* back to createPlaceholderSession). */
|
|
361
|
-
restartSession?(conversationId: string, opts?: RestartOpts): BackendRestartResult | null;
|
|
362
|
-
/** Create a placeholder + workDir entry so the next ensureSession picks
|
|
363
|
-
* up sticky preferences. Used when no live conversation exists. */
|
|
364
|
-
createPlaceholderSession?(conversationId: string, workDir: string, opts?: RestartOpts): void;
|
|
365
|
-
/** True if the backend currently has a live conversation for convId. */
|
|
366
|
-
hasConversation?(conversationId: string): boolean;
|
|
308
|
+
setModel?(session: BackendSessionRef | null, model: string | null): void;
|
|
367
309
|
on(listener: EventListener): () => void;
|
|
368
310
|
}
|
|
369
311
|
/** Helper: minimal capabilities object for a stub/unknown backend. */
|
package/dist/backends/types.js
CHANGED
|
@@ -45,14 +45,6 @@ export function emptyCapabilities() {
|
|
|
45
45
|
skills: cap(),
|
|
46
46
|
},
|
|
47
47
|
sandboxModes: [],
|
|
48
|
-
controls: {
|
|
49
|
-
setModel: cap(),
|
|
50
|
-
restartSession: cap(),
|
|
51
|
-
brainMode: cap(),
|
|
52
|
-
planMode: cap(),
|
|
53
|
-
permissionMode: { supported: false },
|
|
54
|
-
isCompacting: cap(),
|
|
55
|
-
},
|
|
56
48
|
};
|
|
57
49
|
}
|
|
58
50
|
/**
|
|
@@ -107,14 +99,6 @@ export function claudeCapabilities() {
|
|
|
107
99
|
skills: no(),
|
|
108
100
|
},
|
|
109
101
|
sandboxModes: ['unrestricted'], // Claude runs with bypassPermissions
|
|
110
|
-
controls: {
|
|
111
|
-
setModel: yes(),
|
|
112
|
-
restartSession: yes(),
|
|
113
|
-
brainMode: yes(),
|
|
114
|
-
planMode: yes(),
|
|
115
|
-
permissionMode: { supported: true, details: { modes: ['normal', 'acceptEdits', 'auto', 'default', 'plan'] } },
|
|
116
|
-
isCompacting: yes(),
|
|
117
|
-
},
|
|
118
102
|
};
|
|
119
103
|
}
|
|
120
104
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAA2B,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"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"}
|
package/dist/connection.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig } from './config.js';
|
|
2
|
-
import { AgentRuntime } from './runtime.js';
|
|
3
2
|
import { type EntraToken } from './entra.js';
|
|
4
|
-
/** Test-only accessor for the active runtime instance. */
|
|
5
|
-
export declare function _getRuntimeForTests(): AgentRuntime | null;
|
|
6
3
|
/**
|
|
7
4
|
* Set the Entra token for this connection. Called before connect()
|
|
8
5
|
* after the CLI acquires the token (interactive browser flow or cache).
|
|
@@ -15,7 +12,7 @@ export declare function setEntraToken(token: EntraToken): void;
|
|
|
15
12
|
export declare function connect(config: AgentConfig): Promise<string>;
|
|
16
13
|
/** Get the E2E key for embedding in the session URL. */
|
|
17
14
|
export declare function getE2EKey(): Uint8Array | null;
|
|
18
|
-
export declare function disconnect():
|
|
15
|
+
export declare function disconnect(): void;
|
|
19
16
|
export declare function send(msg: Record<string, unknown>): void;
|
|
20
17
|
/**
|
|
21
18
|
* Called when a recap chat session starts to check if it's linked to an action item.
|