From a574429a7bd24351d3e1fb1b470998bb1ae7ba2f Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sun, 21 Dec 2025 17:15:29 +0000 Subject: [PATCH] feat: add parentAgentId field to server types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add parentAgentId field to enable agent parent/child hierarchy: - ManagedAgentBase in agent-manager.ts - AgentSessionConfig in agent-sdk-types.ts - AgentSnapshotPayloadSchema in messages.ts - toAgentPayload() in agent-projections.ts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- packages/server/src/server/agent/agent-manager.ts | 1 + packages/server/src/server/agent/agent-projections.ts | 1 + packages/server/src/server/agent/agent-sdk-types.ts | 1 + packages/server/src/server/messages.ts | 1 + plan.md | 3 ++- 5 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/server/src/server/agent/agent-manager.ts b/packages/server/src/server/agent/agent-manager.ts index f1c973ee1..608e8abdf 100644 --- a/packages/server/src/server/agent/agent-manager.ts +++ b/packages/server/src/server/agent/agent-manager.ts @@ -94,6 +94,7 @@ type ManagedAgentBase = { lastUsage?: AgentUsage; lastError?: string; attention: AttentionState; + parentAgentId?: string; }; type ManagedAgentWithSession = ManagedAgentBase & { diff --git a/packages/server/src/server/agent/agent-projections.ts b/packages/server/src/server/agent/agent-projections.ts index b6f20195d..ca3d5eaa7 100644 --- a/packages/server/src/server/agent/agent-projections.ts +++ b/packages/server/src/server/agent/agent-projections.ts @@ -80,6 +80,7 @@ export function toAgentPayload( pendingPermissions: sanitizePendingPermissions(agent.pendingPermissions), persistence: sanitizePersistenceHandle(agent.persistence), title: options?.title ?? null, + parentAgentId: agent.parentAgentId, }; const usage = sanitizeOptionalJsonValue(agent.lastUsage); diff --git a/packages/server/src/server/agent/agent-sdk-types.ts b/packages/server/src/server/agent/agent-sdk-types.ts index fa38e5f70..205b8f607 100644 --- a/packages/server/src/server/agent/agent-sdk-types.ts +++ b/packages/server/src/server/agent/agent-sdk-types.ts @@ -161,6 +161,7 @@ export type AgentSessionConfig = { claude?: Partial; }; mcpServers?: Record; + parentAgentId?: string; }; export interface AgentSession { diff --git a/packages/server/src/server/messages.ts b/packages/server/src/server/messages.ts index 627c9febd..12f9f91a7 100644 --- a/packages/server/src/server/messages.ts +++ b/packages/server/src/server/messages.ts @@ -245,6 +245,7 @@ export const AgentSnapshotPayloadSchema = z.object({ requiresAttention: z.boolean().optional(), attentionReason: z.enum(["finished", "error", "permission"]).nullable().optional(), attentionTimestamp: z.string().nullable().optional(), + parentAgentId: z.string().optional(), }); export type AgentSnapshotPayload = z.infer; diff --git a/plan.md b/plan.md index b40969168..5fe488ab3 100644 --- a/plan.md +++ b/plan.md @@ -292,12 +292,13 @@ Files requiring modification: --- -- [ ] **Implement**: Add parentAgentId field to server types. +- [x] **Implement**: Add parentAgentId field to server types. - Add `parentAgentId?: string` to `ManagedAgentBase` in `agent-manager.ts:77` - Add `parentAgentId?: string` to `AgentSessionConfig` in `agent-sdk-types.ts:148` - Update `toAgentPayload()` in `agent-projections.ts` to include `parentAgentId` - Run typecheck after changes. + - **Done (2025-12-21 19:45)**: Added `parentAgentId?: string` to `ManagedAgentBase` in `agent-manager.ts:97`, `AgentSessionConfig` in `agent-sdk-types.ts:164`, and `AgentSnapshotPayloadSchema` in `messages.ts:248`. Updated `toAgentPayload()` in `agent-projections.ts:83` to include `parentAgentId` in the payload. Typecheck passes. - [ ] **Implement**: Add parentAgentId to MCP create_agent tool.