@mduan/paseo-cli 0.11.0-fork.38 → 0.11.0-fork.39
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/commands/agent/run.js +1 -0
- package/node_modules/@getpaseo/client/dist/daemon-client.d.ts +1 -0
- package/node_modules/@getpaseo/client/dist/daemon-client.js +7 -1
- package/node_modules/@getpaseo/client/package.json +3 -3
- package/node_modules/@getpaseo/highlight/package.json +1 -1
- package/node_modules/@getpaseo/plugin/package.json +3 -3
- package/node_modules/@getpaseo/protocol/dist/messages.d.ts +16 -0
- package/node_modules/@getpaseo/protocol/dist/messages.js +2 -0
- package/node_modules/@getpaseo/protocol/package.json +1 -1
- package/node_modules/@getpaseo/relay/package.json +1 -1
- package/node_modules/@getpaseo/server/dist/server/builtin-plugins/package.json +1 -1
- package/node_modules/@getpaseo/server/dist/server/server/agent/create-agent/create.d.ts +2 -0
- package/node_modules/@getpaseo/server/dist/server/server/agent/create-agent/create.js +20 -13
- package/node_modules/@getpaseo/server/dist/server/server/agent/turn-diffs/store.js +5 -1
- package/node_modules/@getpaseo/server/dist/server/server/session.js +2 -0
- package/node_modules/@getpaseo/server/dist/server/server/websocket-server.js +1 -0
- package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{index-9977ea1770735b265bfc050848a159d1.js → index-741733179ad64039fff446da9e5b6f11.js} +7 -7
- package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/index-741733179ad64039fff446da9e5b6f11.js.br +0 -0
- package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{index-9977ea1770735b265bfc050848a159d1.js.gz → index-741733179ad64039fff446da9e5b6f11.js.gz} +0 -0
- package/node_modules/@getpaseo/server/dist/server/web-ui/index.html +1 -1
- package/node_modules/@getpaseo/server/dist/server/web-ui/index.html.br +0 -0
- package/node_modules/@getpaseo/server/dist/server/web-ui/index.html.gz +0 -0
- package/node_modules/@getpaseo/server/package.json +6 -6
- package/package.json +7 -7
- package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/index-9977ea1770735b265bfc050848a159d1.js.br +0 -0
|
@@ -509,6 +509,7 @@ export async function runRunCommand(prompt, options, _command) {
|
|
|
509
509
|
model: resolvedProviderModel.model,
|
|
510
510
|
thinkingOptionId,
|
|
511
511
|
initialPrompt: prompt,
|
|
512
|
+
notifyOnFinish: Boolean(callerAgentId && runsInBackground(options)),
|
|
512
513
|
images,
|
|
513
514
|
env: requestEnv,
|
|
514
515
|
labels: Object.keys(labels).length > 0 ? labels : undefined,
|
|
@@ -182,6 +182,7 @@ export interface CreateAgentRequestOptions extends AgentConfigOverrides {
|
|
|
182
182
|
env?: CreateAgentRequestMessage["env"];
|
|
183
183
|
workspaceId?: string;
|
|
184
184
|
callerAgentId?: string;
|
|
185
|
+
notifyOnFinish?: boolean;
|
|
185
186
|
initialPrompt?: string;
|
|
186
187
|
idempotencyKey?: string;
|
|
187
188
|
clientMessageId?: string;
|
|
@@ -1637,6 +1637,11 @@ export class DaemonClient {
|
|
|
1637
1637
|
return { agent: payload.agent, project: payload.project ?? null };
|
|
1638
1638
|
}
|
|
1639
1639
|
async createAgent(options) {
|
|
1640
|
+
// COMPAT(agentCreationFinishNotifications): added after v0.11.0-fork.38; remove gate after 2027-05-13.
|
|
1641
|
+
if (options.notifyOnFinish &&
|
|
1642
|
+
!this.lastServerInfoMessage?.features?.agentCreationFinishNotifications) {
|
|
1643
|
+
throw new Error("Update the host to receive agent creation finish notifications.");
|
|
1644
|
+
}
|
|
1640
1645
|
const result = await this.creations.createAgent({
|
|
1641
1646
|
...options,
|
|
1642
1647
|
config: resolveAgentConfig(options),
|
|
@@ -1655,6 +1660,7 @@ export class DaemonClient {
|
|
|
1655
1660
|
...(options.env ? { env: options.env } : {}),
|
|
1656
1661
|
...(options.workspaceId !== undefined ? { workspaceId: options.workspaceId } : {}),
|
|
1657
1662
|
...(options.callerAgentId !== undefined ? { callerAgentId: options.callerAgentId } : {}),
|
|
1663
|
+
...(options.notifyOnFinish !== undefined ? { notifyOnFinish: options.notifyOnFinish } : {}),
|
|
1658
1664
|
...(options.initialPrompt ? { initialPrompt: options.initialPrompt } : {}),
|
|
1659
1665
|
idempotencyKey: options.idempotencyKey,
|
|
1660
1666
|
...(options.clientMessageId ? { clientMessageId: options.clientMessageId } : {}),
|
|
@@ -5083,7 +5089,7 @@ export class DaemonClient {
|
|
|
5083
5089
|
}
|
|
5084
5090
|
}
|
|
5085
5091
|
function resolveAgentConfig(options) {
|
|
5086
|
-
const { config, provider, cwd, agentId: _agentId, onEvent: _onEvent, idempotencyKey: _idempotencyKey, clientMessageId: _clientMessageId, callerAgentId: _callerAgentId, outputSchema: _outputSchema, attachments: _attachments, worktree: _worktree, autoArchive: _autoArchive, env: _env, workspaceId: _workspaceId, initialPrompt: _initialPrompt, images: _images, git: _git, worktreeName: _worktreeName, requestId: _requestId, labels: _labels, ...overrides } = options;
|
|
5092
|
+
const { config, provider, cwd, agentId: _agentId, onEvent: _onEvent, idempotencyKey: _idempotencyKey, clientMessageId: _clientMessageId, callerAgentId: _callerAgentId, notifyOnFinish: _notifyOnFinish, outputSchema: _outputSchema, attachments: _attachments, worktree: _worktree, autoArchive: _autoArchive, env: _env, workspaceId: _workspaceId, initialPrompt: _initialPrompt, images: _images, git: _git, worktreeName: _worktreeName, requestId: _requestId, labels: _labels, ...overrides } = options;
|
|
5087
5093
|
const baseConfig = {
|
|
5088
5094
|
...(provider ? { provider } : {}),
|
|
5089
5095
|
...(cwd ? { cwd } : {}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpaseo/client",
|
|
3
|
-
"version": "0.11.0-fork.
|
|
3
|
+
"version": "0.11.0-fork.39",
|
|
4
4
|
"description": "Paseo client SDK package",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"vitest": "^4.1.6"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@getpaseo/protocol": "0.11.0-fork.
|
|
48
|
-
"@getpaseo/relay": "0.11.0-fork.
|
|
47
|
+
"@getpaseo/protocol": "0.11.0-fork.39",
|
|
48
|
+
"@getpaseo/relay": "0.11.0-fork.39"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpaseo/plugin",
|
|
3
|
-
"version": "0.11.0-fork.
|
|
3
|
+
"version": "0.11.0-fork.39",
|
|
4
4
|
"description": "Paseo plugin SDK package",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"test": "vitest run"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@getpaseo/client": "0.11.0-fork.
|
|
70
|
-
"@getpaseo/protocol": "0.11.0-fork.
|
|
69
|
+
"@getpaseo/client": "0.11.0-fork.39",
|
|
70
|
+
"@getpaseo/protocol": "0.11.0-fork.39",
|
|
71
71
|
"@types/node": "^20.9.0",
|
|
72
72
|
"@types/react": "~19.2.0",
|
|
73
73
|
"react": "19.1.0",
|
|
@@ -2185,6 +2185,7 @@ export declare const CreateAgentRequestMessageSchema: z.ZodObject<{
|
|
|
2185
2185
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2186
2186
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
2187
2187
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
2188
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
2188
2189
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
2189
2190
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
2190
2191
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -2364,6 +2365,7 @@ export declare const AgentCreateRequestSchema: z.ZodObject<{
|
|
|
2364
2365
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
2365
2366
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
2366
2367
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
2368
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
2367
2369
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
2368
2370
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
2369
2371
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -2686,6 +2688,7 @@ export declare const WorkspaceInitialAgentSchema: z.ZodObject<{
|
|
|
2686
2688
|
mimeType: z.ZodString;
|
|
2687
2689
|
}, z.core.$strip>>>;
|
|
2688
2690
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
2691
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
2689
2692
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
2690
2693
|
outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
2691
2694
|
autoArchive: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -4183,6 +4186,7 @@ export declare const WorkspaceCreateRequestSchema: z.ZodObject<{
|
|
|
4183
4186
|
mimeType: z.ZodString;
|
|
4184
4187
|
}, z.core.$strip>>>;
|
|
4185
4188
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
4189
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
4186
4190
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
4187
4191
|
outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
4188
4192
|
autoArchive: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -5973,6 +5977,7 @@ export declare const SessionInboundMessageSchema: z.ZodDiscriminatedUnion<[z.Zod
|
|
|
5973
5977
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
5974
5978
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
5975
5979
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
5980
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
5976
5981
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
5977
5982
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
5978
5983
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -7059,6 +7064,7 @@ export declare const SessionInboundMessageSchema: z.ZodDiscriminatedUnion<[z.Zod
|
|
|
7059
7064
|
mimeType: z.ZodString;
|
|
7060
7065
|
}, z.core.$strip>>>;
|
|
7061
7066
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
7067
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
7062
7068
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
7063
7069
|
outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7064
7070
|
autoArchive: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -7234,6 +7240,7 @@ export declare const SessionInboundMessageSchema: z.ZodDiscriminatedUnion<[z.Zod
|
|
|
7234
7240
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
7235
7241
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
7236
7242
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
7243
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
7237
7244
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
7238
7245
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
7239
7246
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -7981,6 +7988,7 @@ export declare const ServerInfoStatusPayloadSchema: z.ZodPipe<z.ZodObject<{
|
|
|
7981
7988
|
agentRequestReceipts: z.ZodOptional<z.ZodBoolean>;
|
|
7982
7989
|
workspaceRequestReceipts: z.ZodOptional<z.ZodBoolean>;
|
|
7983
7990
|
creationLifecycle: z.ZodOptional<z.ZodBoolean>;
|
|
7991
|
+
agentCreationFinishNotifications: z.ZodOptional<z.ZodBoolean>;
|
|
7984
7992
|
hubAgentRpc: z.ZodOptional<z.ZodBoolean>;
|
|
7985
7993
|
providersSnapshot: z.ZodOptional<z.ZodBoolean>;
|
|
7986
7994
|
usageSources: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -8104,6 +8112,7 @@ export declare const ServerInfoStatusPayloadSchema: z.ZodPipe<z.ZodObject<{
|
|
|
8104
8112
|
agentRequestReceipts?: boolean | undefined;
|
|
8105
8113
|
workspaceRequestReceipts?: boolean | undefined;
|
|
8106
8114
|
creationLifecycle?: boolean | undefined;
|
|
8115
|
+
agentCreationFinishNotifications?: boolean | undefined;
|
|
8107
8116
|
hubAgentRpc?: boolean | undefined;
|
|
8108
8117
|
providersSnapshot?: boolean | undefined;
|
|
8109
8118
|
usageSources?: boolean | undefined;
|
|
@@ -8228,6 +8237,7 @@ export declare const ServerInfoStatusPayloadSchema: z.ZodPipe<z.ZodObject<{
|
|
|
8228
8237
|
agentRequestReceipts?: boolean | undefined;
|
|
8229
8238
|
workspaceRequestReceipts?: boolean | undefined;
|
|
8230
8239
|
creationLifecycle?: boolean | undefined;
|
|
8240
|
+
agentCreationFinishNotifications?: boolean | undefined;
|
|
8231
8241
|
hubAgentRpc?: boolean | undefined;
|
|
8232
8242
|
providersSnapshot?: boolean | undefined;
|
|
8233
8243
|
usageSources?: boolean | undefined;
|
|
@@ -39561,6 +39571,7 @@ export declare const WSSessionInboundSchema: z.ZodObject<{
|
|
|
39561
39571
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
39562
39572
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
39563
39573
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
39574
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
39564
39575
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
39565
39576
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
39566
39577
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -40647,6 +40658,7 @@ export declare const WSSessionInboundSchema: z.ZodObject<{
|
|
|
40647
40658
|
mimeType: z.ZodString;
|
|
40648
40659
|
}, z.core.$strip>>>;
|
|
40649
40660
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
40661
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
40650
40662
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
40651
40663
|
outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
40652
40664
|
autoArchive: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -40822,6 +40834,7 @@ export declare const WSSessionInboundSchema: z.ZodObject<{
|
|
|
40822
40834
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
40823
40835
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
40824
40836
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
40837
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
40825
40838
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
40826
40839
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
40827
40840
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -56273,6 +56286,7 @@ export declare const WSInboundMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
56273
56286
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
56274
56287
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
56275
56288
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
56289
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
56276
56290
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
56277
56291
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
56278
56292
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -57359,6 +57373,7 @@ export declare const WSInboundMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
57359
57373
|
mimeType: z.ZodString;
|
|
57360
57374
|
}, z.core.$strip>>>;
|
|
57361
57375
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
57376
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
57362
57377
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
57363
57378
|
outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
57364
57379
|
autoArchive: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -57534,6 +57549,7 @@ export declare const WSInboundMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
57534
57549
|
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
57535
57550
|
workspaceId: z.ZodOptional<z.ZodString>;
|
|
57536
57551
|
callerAgentId: z.ZodOptional<z.ZodString>;
|
|
57552
|
+
notifyOnFinish: z.ZodOptional<z.ZodBoolean>;
|
|
57537
57553
|
worktreeName: z.ZodOptional<z.ZodString>;
|
|
57538
57554
|
initialPrompt: z.ZodOptional<z.ZodString>;
|
|
57539
57555
|
clientMessageId: z.ZodOptional<z.ZodString>;
|
|
@@ -1559,6 +1559,7 @@ export const CreateAgentRequestMessageSchema = z.object({
|
|
|
1559
1559
|
// Optional caller context lets managed CLI invocations use the same daemon-owned
|
|
1560
1560
|
// workspace and parentage policy as agent-scoped MCP creation.
|
|
1561
1561
|
callerAgentId: z.string().optional(),
|
|
1562
|
+
notifyOnFinish: z.boolean().optional(),
|
|
1562
1563
|
worktreeName: z.string().optional(),
|
|
1563
1564
|
initialPrompt: z.string().optional(),
|
|
1564
1565
|
clientMessageId: z.string().optional(),
|
|
@@ -3310,6 +3311,7 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3310
3311
|
// COMPAT(workspaceRequestReceipts): added in v0.8.0; remove gate after 2027-03-07.
|
|
3311
3312
|
workspaceRequestReceipts: z.boolean().optional(),
|
|
3312
3313
|
creationLifecycle: z.boolean().optional(),
|
|
3314
|
+
agentCreationFinishNotifications: z.boolean().optional(),
|
|
3313
3315
|
// COMPAT(hubAgentRpc): added in v0.8.0; remove gate after 2027-03-05.
|
|
3314
3316
|
hubAgentRpc: z.boolean().optional(),
|
|
3315
3317
|
providersSnapshot: z.boolean().optional(),
|
|
@@ -26,6 +26,8 @@ export interface CreateAgentCommandDependencies {
|
|
|
26
26
|
export type EnsureWorkspaceForCreate = (cwd: string, firstAgentContext?: FirstAgentContext) => Promise<string>;
|
|
27
27
|
export interface CreateAgentFromSessionInput {
|
|
28
28
|
kind: "session";
|
|
29
|
+
callerAgentId?: string;
|
|
30
|
+
notifyOnFinish?: boolean;
|
|
29
31
|
onAgentReady?: (agent: ManagedAgent) => Promise<void>;
|
|
30
32
|
agentId?: string;
|
|
31
33
|
config: AgentSessionConfig;
|
|
@@ -46,21 +46,16 @@ export async function createAgentCommand(dependencies, input) {
|
|
|
46
46
|
input.onCreated?.({ agentId: snapshot.id, createdWorktree: resolved.createdWorktree ?? null });
|
|
47
47
|
}
|
|
48
48
|
if (resolved.prompt !== undefined) {
|
|
49
|
-
const sendResult = await sendInitialPrompt(
|
|
49
|
+
const sendResult = await sendInitialPrompt({
|
|
50
|
+
dependencies,
|
|
51
|
+
resolved,
|
|
52
|
+
snapshot,
|
|
53
|
+
callerAgentId: input.notifyOnFinish ? input.callerAgentId : undefined,
|
|
54
|
+
});
|
|
50
55
|
initialPromptStarted = sendResult.started;
|
|
51
56
|
liveSnapshot = sendResult.liveSnapshot;
|
|
52
57
|
initialPromptError = sendResult.error ?? null;
|
|
53
58
|
}
|
|
54
|
-
if (input.kind === "mcp" && input.notifyOnFinish && input.callerAgentId && initialPromptStarted) {
|
|
55
|
-
setupFinishNotification({
|
|
56
|
-
agentManager: dependencies.agentManager,
|
|
57
|
-
agentStorage: dependencies.agentStorage,
|
|
58
|
-
childAgentId: snapshot.id,
|
|
59
|
-
callerAgentId: input.callerAgentId,
|
|
60
|
-
requireParentOwnership: true,
|
|
61
|
-
logger: dependencies.logger,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
59
|
return {
|
|
65
60
|
snapshot,
|
|
66
61
|
liveSnapshot,
|
|
@@ -243,13 +238,13 @@ async function ensureWorkspaceForMcpCreate(dependencies, cwd, initialPrompt) {
|
|
|
243
238
|
}
|
|
244
239
|
return dependencies.ensureWorkspaceForCreate(cwd, { prompt: initialPrompt });
|
|
245
240
|
}
|
|
246
|
-
async function sendInitialPrompt(dependencies, resolved, snapshot) {
|
|
241
|
+
async function sendInitialPrompt({ dependencies, resolved, snapshot, callerAgentId, }) {
|
|
247
242
|
try {
|
|
248
243
|
const prompt = resolved.prompt;
|
|
249
244
|
if (prompt === undefined) {
|
|
250
245
|
return { started: false, liveSnapshot: snapshot };
|
|
251
246
|
}
|
|
252
|
-
const
|
|
247
|
+
const dispatch = startCreatedAgentInitialPrompt({
|
|
253
248
|
agentManager: dependencies.agentManager,
|
|
254
249
|
agentId: snapshot.id,
|
|
255
250
|
snapshot,
|
|
@@ -257,6 +252,18 @@ async function sendInitialPrompt(dependencies, resolved, snapshot) {
|
|
|
257
252
|
runOptions: resolved.runOptions,
|
|
258
253
|
logger: resolved.promptLogger ?? dependencies.logger,
|
|
259
254
|
});
|
|
255
|
+
if (callerAgentId) {
|
|
256
|
+
setupFinishNotification({
|
|
257
|
+
agentManager: dependencies.agentManager,
|
|
258
|
+
agentStorage: dependencies.agentStorage,
|
|
259
|
+
childAgentId: snapshot.id,
|
|
260
|
+
callerAgentId,
|
|
261
|
+
requireParentOwnership: true,
|
|
262
|
+
dispatch,
|
|
263
|
+
logger: dependencies.logger,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
const liveSnapshot = await dispatch;
|
|
260
267
|
return { started: true, liveSnapshot };
|
|
261
268
|
}
|
|
262
269
|
catch (error) {
|
|
@@ -74,7 +74,11 @@ export class TurnDiffStore {
|
|
|
74
74
|
return record ? record.turns.map(toSummary) : [];
|
|
75
75
|
}
|
|
76
76
|
async resolveRange(agentId, target) {
|
|
77
|
-
|
|
77
|
+
let record = target.kind === "turn" ? await this.read(agentId) : null;
|
|
78
|
+
const hasSavedTurn = target.kind === "turn" && record?.turns.some((turn) => turn.turnId === target.turnId);
|
|
79
|
+
// Atomic records let saved turns bypass later snapshots without exposing partial writes.
|
|
80
|
+
if (!hasSavedTurn)
|
|
81
|
+
record = await this.enqueue(agentId, () => this.read(agentId));
|
|
78
82
|
if (!record)
|
|
79
83
|
return null;
|
|
80
84
|
const { repoRoot } = record;
|
|
@@ -3373,6 +3373,8 @@ export class Session {
|
|
|
3373
3373
|
providerSnapshotManager: this.providerSnapshotManager,
|
|
3374
3374
|
}, {
|
|
3375
3375
|
kind: "session",
|
|
3376
|
+
callerAgentId: msg.callerAgentId,
|
|
3377
|
+
notifyOnFinish: msg.notifyOnFinish,
|
|
3376
3378
|
onAgentReady: async (agent) => {
|
|
3377
3379
|
createdAgentId = agent.id;
|
|
3378
3380
|
await onAgentReady?.(await this.buildAgentPayload(agent));
|
|
@@ -1302,6 +1302,7 @@ export class VoiceAssistantWebSocketServer {
|
|
|
1302
1302
|
agentRequestReceipts: true,
|
|
1303
1303
|
workspaceRequestReceipts: true,
|
|
1304
1304
|
creationLifecycle: true,
|
|
1305
|
+
agentCreationFinishNotifications: true,
|
|
1305
1306
|
hubAgentRpc: true,
|
|
1306
1307
|
// COMPAT(directorySync): added in v0.3.x, remove gate after 2027-02-12.
|
|
1307
1308
|
directorySync: true,
|