qlogicagent 2.10.49 → 2.11.1

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.
Files changed (44) hide show
  1. package/dist/cli.js +321 -362
  2. package/dist/index.js +321 -362
  3. package/dist/pet-contracts.js +1 -0
  4. package/dist/protocol.js +1 -1
  5. package/dist/types/cli/acp-commands.d.ts +32 -0
  6. package/dist/types/cli/acp-session-handlers.d.ts +36 -25
  7. package/dist/types/cli/acp-session-host.d.ts +24 -0
  8. package/dist/types/cli/handlers/memory-handler.d.ts +10 -1
  9. package/dist/types/cli/handlers/pet-handler.d.ts +5 -11
  10. package/dist/types/cli/media-runtime-facade.d.ts +9 -1
  11. package/dist/types/cli/memory-candidate-service.d.ts +10 -1
  12. package/dist/types/cli/pet-runtime.d.ts +28 -6
  13. package/dist/types/cli/provider-core-facade.d.ts +3 -0
  14. package/dist/types/pet-contracts.d.ts +1 -0
  15. package/dist/types/protocol/methods.d.ts +1 -38
  16. package/dist/types/protocol/wire/acp-protocol.d.ts +64 -162
  17. package/dist/types/protocol/wire/agent-events.d.ts +2 -2
  18. package/dist/types/protocol/wire/agent-methods.d.ts +1 -30
  19. package/dist/types/protocol/wire/agent-rpc.d.ts +0 -15
  20. package/dist/types/protocol/wire/chat-types.d.ts +3 -3
  21. package/dist/types/protocol/wire/gateway-rpc.d.ts +30 -0
  22. package/dist/types/protocol/wire/index.d.ts +3 -3
  23. package/dist/types/protocol/wire/notification-payloads.d.ts +39 -5
  24. package/dist/types/protocol/wire/pet-contracts.d.ts +75 -2
  25. package/dist/types/protocol/wire/thread-protocol.d.ts +0 -12
  26. package/dist/types/runtime/infra/acp-detector.d.ts +5 -0
  27. package/dist/types/runtime/infra/acp-host-handler.d.ts +23 -0
  28. package/dist/types/runtime/pet/index.d.ts +4 -4
  29. package/dist/types/runtime/pet/pet-file-loader.d.ts +4 -61
  30. package/dist/types/runtime/pet/pet-profile-service.d.ts +51 -10
  31. package/dist/types/runtime/pet/petdex-asset.d.ts +138 -0
  32. package/dist/types/runtime/pet/petdex-forge-service.d.ts +110 -0
  33. package/dist/types/runtime/ports/memory-provider.d.ts +35 -0
  34. package/dist/types/skills/memory/local-memory-provider.d.ts +25 -0
  35. package/dist/types/skills/memory/local-store.d.ts +48 -0
  36. package/dist/types/skills/memory/memory-attachment-store.d.ts +62 -0
  37. package/dist/types/skills/memory/memory-consolidation.d.ts +2 -0
  38. package/dist/types/skills/memory/memory-db-path.d.ts +6 -0
  39. package/dist/types/skills/memory/sqlite-memory-schema.d.ts +1 -1
  40. package/dist/types/skills/tools/petdex-create-tool.d.ts +61 -0
  41. package/dist/types/transport/acp-server.d.ts +26 -8
  42. package/package.json +11 -2
  43. package/dist/types/runtime/pet/pet-consistency.d.ts +0 -79
  44. package/dist/types/runtime/pet/pet-skeleton.d.ts +0 -70
@@ -3,10 +3,11 @@ export declare const ACP_METHODS: {
3
3
  readonly INITIALIZE: "initialize";
4
4
  readonly SESSION_NEW: "session/new";
5
5
  readonly SESSION_PROMPT: "session/prompt";
6
- readonly SESSION_END: "session/end";
6
+ readonly SESSION_CLOSE: "session/close";
7
7
  readonly SESSION_SET_CONFIG: "session/set_config_option";
8
8
  readonly SESSION_SET_MODEL: "session/set_model";
9
9
  readonly SESSION_SET_MODE: "session/set_mode";
10
+ readonly SESSION_LOAD: "session/load";
10
11
  readonly SESSION_CANCEL: "session/cancel";
11
12
  readonly SESSION_UPDATE: "session/update";
12
13
  readonly SESSION_REQUEST_PERMISSION: "session/request_permission";
@@ -38,25 +39,43 @@ export declare const ACP_EXTENDED_METHODS: {
38
39
  readonly TEAM_DELEGATE: "x/team.delegate";
39
40
  };
40
41
  export type AcpExtendedMethod = (typeof ACP_EXTENDED_METHODS)[keyof typeof ACP_EXTENDED_METHODS];
42
+ /** qlogicagent 专属扩展套件的协商开关(host 与 agent 双向声明)。存在即启用扩展。 */
43
+ export interface AcpQlogicagentCapability {
44
+ /** Extension protocol version, fixed at 1 this round. */
45
+ version: number;
46
+ /** x_* session/update extended events (x_session_info / x_relay / x_skill_instruction). */
47
+ events?: boolean;
48
+ /** x/* extended RPC methods (x/solo.* / x/product.* / x/team.* etc). */
49
+ methods?: boolean;
50
+ /** Multi-agent orchestration (solo / product / team). */
51
+ orchestration?: boolean;
52
+ /** Config options (agent side only). */
53
+ configOptions?: AcpConfigOptionDescriptor[];
54
+ }
55
+ /** Host (openclaw / AionUI) capabilities declared at initialize. */
41
56
  export interface AcpHostCapabilities {
42
- /** Host supports x_ extended sessionUpdate types */
43
- extendedEvents?: boolean;
44
- /** Host supports tool approval flow (session/request_permission) */
45
- toolApproval?: boolean;
46
- /** Host supports filesystem operations (fs/*) */
47
- filesystem?: boolean;
48
- /** Host supports x/ extended RPC methods */
49
- extendedMethods?: boolean;
57
+ /** Standard ACP (server does not consume this round; typed to match real hosts). */
58
+ fs?: {
59
+ readTextFile?: boolean;
60
+ writeTextFile?: boolean;
61
+ };
62
+ /** Standard ACP (same as above). */
63
+ terminal?: boolean;
64
+ /** Extension master switch. */
65
+ qlogicagent?: AcpQlogicagentCapability;
50
66
  }
67
+ /** Agent capabilities declared in the initialize response. */
51
68
  export interface AcpAgentCapabilities {
52
- /** Agent supports x_ extended sessionUpdate types */
53
- extendedEvents?: boolean;
54
- /** Agent supports x/ extended RPC methods */
55
- extendedMethods?: boolean;
56
- /** Agent supports multi-agent orchestration (solo/product/team) */
57
- orchestration?: boolean;
58
- /** Supported config options */
59
- configOptions?: AcpConfigOptionDescriptor[];
69
+ /** Standard (agent-process reads it; implemented in subproject 2). */
70
+ loadSession?: boolean;
71
+ /** Standard (used when reading third-party agents like copilot). */
72
+ promptCapabilities?: Record<string, unknown>;
73
+ /** Standard (same as above). */
74
+ mcpCapabilities?: Record<string, unknown>;
75
+ /** Standard (same as above). */
76
+ sessionCapabilities?: Record<string, unknown>;
77
+ /** Extension master switch. */
78
+ qlogicagent?: AcpQlogicagentCapability;
60
79
  }
61
80
  export interface AcpConfigOptionDescriptor {
62
81
  name: string;
@@ -112,8 +131,26 @@ export interface AcpSessionNewParams {
112
131
  /** Per-session context supplement (no standard ACP home). Inherited by every session/prompt. */
113
132
  _meta?: AcpSessionMeta;
114
133
  }
134
+ export interface AcpSessionLoadParams {
135
+ sessionId: string;
136
+ /** Working directory for the resumed session (standard ACP field). */
137
+ cwd?: string;
138
+ }
139
+ /** A selectable permission mode advertised to the host (standard ACP). */
140
+ export interface AcpMode {
141
+ id: string;
142
+ name: string;
143
+ description?: string;
144
+ }
145
+ /** Current mode + the full set the host may switch between (standard ACP). */
146
+ export interface AcpSessionModeState {
147
+ currentModeId: string;
148
+ availableModes: AcpMode[];
149
+ }
115
150
  export interface AcpSessionNewResult {
116
151
  sessionId: string;
152
+ /** Permission modes the host may switch between (standard ACP). */
153
+ modes?: AcpSessionModeState;
117
154
  }
118
155
  export interface AcpSessionPromptParams {
119
156
  sessionId: string;
@@ -122,27 +159,13 @@ export interface AcpSessionPromptParams {
122
159
  /** Per-turn context overrides (assistantId/permissions/reasoning/mcpServers/...), merged over session _meta. */
123
160
  _meta?: AcpSessionMeta;
124
161
  }
125
- export interface AcpTurnError {
126
- message: string;
127
- code?: string;
128
- recoverable?: boolean;
129
- }
130
162
  export interface AcpSessionPromptResult {
131
163
  /** Stop reason (required by ACP standard). */
132
164
  stopReason: AcpStopReason;
133
- /** Token usage for this turn */
165
+ /** Token usage for this turn. */
134
166
  usage?: AcpUsage;
135
- /** Final assistant content (internal, used for history tracking). */
136
- content?: string;
137
- /** Turn error surfaced in-band (turn.error notification is still emitted for streaming UI). */
138
- error?: AcpTurnError;
139
- /** Agent-resolved project id for this turn (authoritative; e.g. group-session routing). */
140
- projectId?: string;
141
- /** Resolved model/provider that ran the turn. */
142
- model?: string;
143
- provider?: string;
144
167
  }
145
- export interface AcpSessionEndParams {
168
+ export interface AcpSessionCloseParams {
146
169
  sessionId: string;
147
170
  }
148
171
  export interface AcpSessionCancelParams {
@@ -188,6 +211,7 @@ export interface AcpSessionUpdateNotification {
188
211
  };
189
212
  }
190
213
  export declare const ACP_SESSION_UPDATE_TYPES: {
214
+ readonly USER_MESSAGE_CHUNK: "user_message_chunk";
191
215
  readonly AGENT_MESSAGE_CHUNK: "agent_message_chunk";
192
216
  readonly AGENT_THOUGHT_CHUNK: "agent_thought_chunk";
193
217
  readonly TOOL_CALL: "tool_call";
@@ -197,29 +221,12 @@ export declare const ACP_SESSION_UPDATE_TYPES: {
197
221
  readonly CONFIG_OPTION_UPDATE: "config_option_update";
198
222
  readonly SESSION_INFO_UPDATE: "session_info_update";
199
223
  readonly AVAILABLE_COMMANDS_UPDATE: "available_commands_update";
224
+ readonly CURRENT_MODE_UPDATE: "current_mode_update";
200
225
  };
201
226
  export type AcpStandardSessionUpdateType = (typeof ACP_SESSION_UPDATE_TYPES)[keyof typeof ACP_SESSION_UPDATE_TYPES];
202
227
  export declare const ACP_EXTENDED_SESSION_UPDATE_TYPES: {
203
- readonly X_SUBAGENT_STARTED: "x_subagent_started";
204
- readonly X_SUBAGENT_DELTA: "x_subagent_delta";
205
- readonly X_SUBAGENT_ENDED: "x_subagent_ended";
206
- readonly X_MEDIA_RESULT: "x_media_result";
207
- readonly X_MEDIA_PROGRESS: "x_media_progress";
208
228
  readonly X_SKILL_INSTRUCTION: "x_skill_instruction";
209
- readonly X_RECOVERY: "x_recovery";
210
- readonly X_SIDECHAIN_STARTED: "x_sidechain_started";
211
- readonly X_SIDECHAIN_COMPLETED: "x_sidechain_completed";
212
- readonly X_SUGGESTIONS: "x_suggestions";
213
- readonly X_ASK_USER: "x_ask_user";
214
229
  readonly X_SESSION_INFO: "x_session_info";
215
- readonly X_MEMORY_UPDATED: "x_memory_updated";
216
- readonly X_TEAM_MEMBER_UPDATE: "x_team_member_update";
217
- readonly X_SOLO_STARTED: "x_solo_started";
218
- readonly X_SOLO_AGENT_FINISHED: "x_solo_agent_finished";
219
- readonly X_SOLO_SELECTED: "x_solo_selected";
220
- readonly X_PRODUCT_TASK_STARTED: "x_product_task_started";
221
- readonly X_PRODUCT_TASK_COMPLETED: "x_product_task_completed";
222
- readonly X_PRODUCT_CHECKPOINT: "x_product_checkpoint";
223
230
  /** Generic passthrough for turn-scoped events with no specific ACP mapping (lossless relay). */
224
231
  readonly X_RELAY: "x_relay";
225
232
  };
@@ -265,71 +272,10 @@ export interface AcpEndTurnPayload {
265
272
  stopReason: AcpStopReason;
266
273
  usage?: AcpUsage;
267
274
  }
268
- export interface AcpAvailableCommandsUpdatePayload {
269
- commands: Array<{
270
- name: string;
271
- description?: string;
272
- }>;
273
- }
274
- export interface AcpXSubagentStartedPayload {
275
- agentId: string;
276
- agentName: string;
277
- task?: string;
278
- }
279
- export interface AcpXSubagentDeltaPayload {
280
- agentId: string;
281
- text?: string;
282
- toolCall?: {
283
- callId: string;
284
- toolName: string;
285
- arguments: string;
286
- };
287
- toolResult?: {
288
- callId: string;
289
- result: string;
290
- status: "completed" | "failed";
291
- };
292
- }
293
- export interface AcpXSubagentEndedPayload {
294
- agentId: string;
295
- result?: string;
296
- usage?: AcpUsage;
297
- }
298
- export interface AcpXMediaResultPayload {
299
- mediaId: string;
300
- type: "image" | "video" | "audio";
301
- url: string;
302
- metadata?: Record<string, unknown>;
303
- }
304
- export interface AcpXMediaProgressPayload {
305
- mediaId: string;
306
- progress: number;
307
- stage?: string;
308
- }
309
275
  export interface AcpXSkillInstructionPayload {
310
276
  skillId: string;
311
277
  instruction: string;
312
278
  }
313
- export interface AcpXRecoveryPayload {
314
- errorType: string;
315
- message: string;
316
- action: "retry" | "skip" | "fallback";
317
- }
318
- export interface AcpXSidechainStartedPayload {
319
- chainId: string;
320
- purpose: string;
321
- }
322
- export interface AcpXSidechainCompletedPayload {
323
- chainId: string;
324
- result?: string;
325
- }
326
- export interface AcpXSuggestionsPayload {
327
- suggestions: string[];
328
- }
329
- export interface AcpXAskUserPayload {
330
- question: string;
331
- options?: string[];
332
- }
333
279
  export interface AcpXSessionInfoPayload {
334
280
  sessionId: string;
335
281
  projectId?: string;
@@ -337,65 +283,21 @@ export interface AcpXSessionInfoPayload {
337
283
  model?: string;
338
284
  metadata?: Record<string, unknown>;
339
285
  }
340
- export interface AcpXMemoryUpdatedPayload {
341
- memoryId: string;
342
- action: "created" | "updated" | "deleted";
343
- summary?: string;
344
- }
345
- export interface AcpXTeamMemberUpdatePayload {
346
- memberId: string;
347
- /** The original ACP session/update from the external agent */
348
- type: AcpSessionUpdateType;
349
- payload: Record<string, unknown>;
350
- }
351
- export interface AcpXSoloStartedPayload {
352
- evaluationId: string;
353
- agents: string[];
354
- task: string;
355
- }
356
- export interface AcpXSoloAgentFinishedPayload {
357
- evaluationId: string;
358
- agentId: string;
359
- result?: string;
360
- usage?: AcpUsage;
361
- }
362
- export interface AcpXSoloSelectedPayload {
363
- evaluationId: string;
364
- winnerId: string;
365
- reason?: string;
366
- }
367
- export interface AcpXProductTaskStartedPayload {
368
- workflowId: string;
369
- taskId: string;
370
- agentId: string;
371
- description?: string;
372
- }
373
- export interface AcpXProductTaskCompletedPayload {
374
- workflowId: string;
375
- taskId: string;
376
- agentId: string;
377
- result?: string;
378
- status: "completed" | "failed";
379
- }
380
- export interface AcpXProductCheckpointPayload {
381
- workflowId: string;
382
- checkpointId: string;
383
- completedTasks: string[];
384
- }
385
286
  export interface AcpPermissionRequestParams {
386
287
  sessionId: string;
387
288
  permissionId: string;
388
289
  toolCall: {
389
- callId: string;
390
- toolName: string;
391
- arguments: string;
290
+ toolCallId: string;
291
+ title: string;
292
+ rawInput: Record<string, unknown>;
392
293
  };
393
294
  message?: string;
394
295
  options: AcpPermissionOption[];
395
296
  }
396
297
  export interface AcpPermissionOption {
397
- id: string;
398
- label: string;
298
+ optionId: string;
299
+ name: string;
300
+ kind: "allow_once" | "allow_always" | "reject_once" | "reject_always";
399
301
  }
400
302
  export interface AcpPermissionRequestResult {
401
303
  optionId: string;
@@ -13,7 +13,7 @@
13
13
  * Turn-lifecycle events relayed to the Control UI WebSocket.
14
14
  * These are the "chat session" events that every UI client needs.
15
15
  */
16
- export declare const AGENT_WS_EVENT_NAMES: readonly ["turn.start", "turn.delta", "turn.end", "turn.error", "turn.recovery", "turn.tool_call", "turn.tool_result", "turn.tool_blocked", "turn.reasoning_delta", "turn.approval_request", "turn.skill_instruction", "turn.ask_user", "turn.media_result", "turn.media_progress", "turn.plan_update", "turn.suggestions", "turn.sidechain_started", "turn.subagent_delta", "turn.sidechain_completed", "turn.task_updated", "turn.todos_updated", "turn.exec_progress", "turn.usage_update", "team.member.notification", "session.info", "memory.updated", "skills.updated", "pet.soul_ready", "pet.reaction", "pet.growth", "pet.state", "pet.confirm", "pet.forged", "system.activity", "workflow.created", "workflow.updated", "workflow.deleted", "workflow.runStarted", "workflow.runCompleted", "workflow.runFailed"];
16
+ export declare const AGENT_WS_EVENT_NAMES: readonly ["turn.start", "turn.delta", "turn.end", "turn.error", "turn.recovery", "turn.tool_call", "turn.tool_result", "turn.tool_blocked", "turn.reasoning_delta", "turn.approval_request", "turn.skill_instruction", "turn.ask_user", "turn.media_result", "turn.media_progress", "turn.media_usage", "turn.plan_update", "turn.suggestions", "turn.sidechain_started", "turn.subagent_delta", "turn.sidechain_completed", "turn.task_updated", "turn.todos_updated", "turn.exec_progress", "turn.usage_update", "team.member.notification", "session.info", "memory.updated", "skills.updated", "pet.soul_ready", "pet.reaction", "pet.growth", "pet.state", "pet.confirm", "pet.asset.updated", "system.activity", "workflow.created", "workflow.updated", "workflow.deleted", "workflow.runStarted", "workflow.runCompleted", "workflow.runFailed"];
17
17
  /**
18
18
  * Agent Team events (Solo Mode, Product Mode, Plan lifecycle).
19
19
  * Relayed to the UI's team/orchestration panel.
@@ -23,7 +23,7 @@ export declare const AGENT_TEAM_WS_EVENT_NAMES: readonly ["solo.progress", "solo
23
23
  * All agent notifications that Gateway should relay to WS clients.
24
24
  * Union of session events + team events.
25
25
  */
26
- export declare const ALL_AGENT_WS_EVENT_NAMES: readonly ["turn.start", "turn.delta", "turn.end", "turn.error", "turn.recovery", "turn.tool_call", "turn.tool_result", "turn.tool_blocked", "turn.reasoning_delta", "turn.approval_request", "turn.skill_instruction", "turn.ask_user", "turn.media_result", "turn.media_progress", "turn.plan_update", "turn.suggestions", "turn.sidechain_started", "turn.subagent_delta", "turn.sidechain_completed", "turn.task_updated", "turn.todos_updated", "turn.exec_progress", "turn.usage_update", "team.member.notification", "session.info", "memory.updated", "skills.updated", "pet.soul_ready", "pet.reaction", "pet.growth", "pet.state", "pet.confirm", "pet.forged", "system.activity", "workflow.created", "workflow.updated", "workflow.deleted", "workflow.runStarted", "workflow.runCompleted", "workflow.runFailed", "solo.progress", "solo.agentDelta", "solo.agentUsage", "solo.agentDiff", "solo.evaluation", "product.taskStarted", "product.taskOutput", "product.taskCompleted", "product.taskFailed", "product.budgetUpdate", "product.checkpointed", "product.dagTopology", "plan.interrupted"];
26
+ export declare const ALL_AGENT_WS_EVENT_NAMES: readonly ["turn.start", "turn.delta", "turn.end", "turn.error", "turn.recovery", "turn.tool_call", "turn.tool_result", "turn.tool_blocked", "turn.reasoning_delta", "turn.approval_request", "turn.skill_instruction", "turn.ask_user", "turn.media_result", "turn.media_progress", "turn.media_usage", "turn.plan_update", "turn.suggestions", "turn.sidechain_started", "turn.subagent_delta", "turn.sidechain_completed", "turn.task_updated", "turn.todos_updated", "turn.exec_progress", "turn.usage_update", "team.member.notification", "session.info", "memory.updated", "skills.updated", "pet.soul_ready", "pet.reaction", "pet.growth", "pet.state", "pet.confirm", "pet.asset.updated", "system.activity", "workflow.created", "workflow.updated", "workflow.deleted", "workflow.runStarted", "workflow.runCompleted", "workflow.runFailed", "solo.progress", "solo.agentDelta", "solo.agentUsage", "solo.agentDiff", "solo.evaluation", "product.taskStarted", "product.taskOutput", "product.taskCompleted", "product.taskFailed", "product.budgetUpdate", "product.checkpointed", "product.dagTopology", "plan.interrupted"];
27
27
  /** Type-level event name for session events. */
28
28
  export type AgentWsEventName = (typeof AGENT_WS_EVENT_NAMES)[number];
29
29
  /** Type-level event name for team events. */
@@ -8,10 +8,9 @@
8
8
  * import type { AgentRpcMethodMap } from "qlogicagent/protocol";
9
9
  * async function call<M extends keyof AgentRpcMethodMap>(method: M, params: AgentRpcMethodMap[M]["params"]): Promise<AgentRpcMethodMap[M]["result"]> { ... }
10
10
  */
11
- import type { ChatMessage, LocalizedToolText, ToolCapabilityCategory, ToolDefinition } from "./chat-types.js";
11
+ import type { ChatMessage, LocalizedToolText, ToolCapabilityCategory } from "./chat-types.js";
12
12
  import type { GatewayRpcMethodMap } from "./gateway-rpc.js";
13
13
  import type { WireTokenUsage } from "./notification-payloads.js";
14
- import type { ToolApprovalResponseParams } from "./agent-rpc.js";
15
14
  export type AgentCategory = "sub-agent" | "teammate";
16
15
  export type AgentProtocol = "internal" | "acp";
17
16
  export type AgentStatus = "available" | "unavailable" | "handshake_failed" | "not_installed";
@@ -202,19 +201,6 @@ export interface AgentRpcMethodMap extends GatewayRpcMethodMap {
202
201
  }>;
203
202
  };
204
203
  };
205
- "thread.turn": {
206
- params: {
207
- turnId?: string;
208
- sessionId: string;
209
- messages?: ChatMessage[];
210
- tools?: ToolDefinition[];
211
- config?: Record<string, unknown>;
212
- };
213
- result: {
214
- accepted: boolean;
215
- turnId: string;
216
- };
217
- };
218
204
  "session.resume": {
219
205
  params: {
220
206
  sessionId: string;
@@ -436,21 +422,6 @@ export interface AgentRpcMethodMap extends GatewayRpcMethodMap {
436
422
  usage?: WireTokenUsage;
437
423
  };
438
424
  };
439
- "agent.abort": {
440
- params: {
441
- turnId?: string;
442
- reason?: string;
443
- };
444
- result: {
445
- aborted: boolean;
446
- };
447
- };
448
- "tool.approval.response": {
449
- params: ToolApprovalResponseParams;
450
- result: {
451
- received: boolean;
452
- };
453
- };
454
425
  "agents.scan": {
455
426
  params: {
456
427
  force?: boolean;
@@ -90,24 +90,9 @@ export interface ToolApprovalRequestParams {
90
90
  /** Suggested allow/ask/deny policy updates the user can apply with the decision. */
91
91
  suggestions?: string[];
92
92
  }
93
- /**
94
- * Host → Agent notification: host relays the user's approval decision.
95
- * Method name: `tool.approval.response`
96
- */
97
- export interface ToolApprovalResponseParams {
98
- /** Must match the `approvalId` from the request. */
99
- approvalId: string;
100
- /** User's decision. */
101
- decision: "allow" | "deny";
102
- /** Optional tool name for host display or audit context. */
103
- toolName?: string;
104
- /** Optional corrected tool input after user review. */
105
- updatedInput?: Record<string, unknown>;
106
- }
107
93
  /** Well-known method names for the approval protocol. */
108
94
  export declare const AGENT_RPC_APPROVAL_METHODS: {
109
95
  readonly REQUEST: "tool.approval.request";
110
- readonly RESPONSE: "tool.approval.response";
111
96
  };
112
97
  export declare function isAgentRpcRequest(msg: unknown): msg is AgentRpcRequest;
113
98
  export declare function isAgentRpcResponse(msg: unknown): msg is AgentRpcResponse;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Chat Wire Types — fundamental data types that cross the JSON-RPC boundary.
3
3
  *
4
- * These types appear in RPC method params/results (thread.turn, session.resume, etc.)
4
+ * These types appear in RPC method params/results (session/prompt, session.resume, etc.)
5
5
  * and are needed by every consumer that interacts with the agent.
6
6
  */
7
7
  import type { ToolRiskLevel } from "./web-capability.js";
@@ -24,7 +24,7 @@ export interface ToolCallMessage {
24
24
  /**
25
25
  * Chat message — the fundamental unit of conversation over JSON-RPC.
26
26
  *
27
- * Used in `thread.turn` params (user sends messages to agent)
27
+ * Used in `session/prompt` params (user sends messages to agent)
28
28
  * and `session.resume` result (agent returns conversation history).
29
29
  */
30
30
  export interface ChatMessage {
@@ -71,7 +71,7 @@ export interface LocalizedToolText {
71
71
  /**
72
72
  * Tool definition — wire format as sent over JSON-RPC.
73
73
  *
74
- * Used in `thread.turn` params (host provides available tools)
74
+ * Used in `session/prompt` params (host provides available tools)
75
75
  * and `tools.list` result (agent reports its tool inventory).
76
76
  */
77
77
  export interface ToolDefinition {
@@ -720,6 +720,36 @@ export interface GatewayRpcMethodMap {
720
720
  updated: number;
721
721
  };
722
722
  };
723
+ "memory.attachment.adopt": {
724
+ params: {
725
+ userId?: string;
726
+ tempUrl: string;
727
+ filename?: string;
728
+ mimeType?: string;
729
+ };
730
+ result: {
731
+ ok: boolean;
732
+ attachment?: {
733
+ id: string;
734
+ kind: string;
735
+ filename: string;
736
+ mimeType: string;
737
+ size: number;
738
+ url: string;
739
+ };
740
+ };
741
+ };
742
+ "memory.attachment.locate": {
743
+ params: {
744
+ id: string;
745
+ };
746
+ result: {
747
+ ok: boolean;
748
+ absPath?: string;
749
+ mimeType?: string;
750
+ filename?: string;
751
+ };
752
+ };
723
753
  }
724
754
  /**
725
755
  * Type-safe Agent RPC caller.
@@ -1,5 +1,5 @@
1
- export { PET_FORGE_STANDARD_STATES, type PetForgeStandardState, } from "./pet-contracts.js";
2
- export { AGENT_RPC_APPROVAL_METHODS, AGENT_RPC_ERROR_CODES, AGENT_RPC_PROTOCOL_VERSION, isAgentRpcNotification, isAgentRpcRequest, isAgentRpcResponse, parseAgentRpcMessage, type AgentHelloParams, type AgentHelloResult, type AgentRpcError, type AgentRpcErrorCode, type AgentRpcMeta, type AgentRpcChannel, type AgentRpcMessage, type AgentRpcNotification, type AgentRpcRequest, type AgentRpcResponse, type ToolApprovalRequestParams, type ToolApprovalResponseParams, } from "./agent-rpc.js";
1
+ export { PETDEX_ANIMATION_IDS, type PetdexAnimationId, } from "./pet-contracts.js";
2
+ export { AGENT_RPC_APPROVAL_METHODS, AGENT_RPC_ERROR_CODES, AGENT_RPC_PROTOCOL_VERSION, isAgentRpcNotification, isAgentRpcRequest, isAgentRpcResponse, parseAgentRpcMessage, type AgentHelloParams, type AgentHelloResult, type AgentRpcError, type AgentRpcErrorCode, type AgentRpcMeta, type AgentRpcChannel, type AgentRpcMessage, type AgentRpcNotification, type AgentRpcRequest, type AgentRpcResponse, type ToolApprovalRequestParams, } from "./agent-rpc.js";
3
3
  export { GatewayRpcContract, buildAgentRpcMeta, classifyGatewayRpcMethod, requireGatewayRpcMeta, requiresIdempotencyKey, type GatewayRpcClassification, type GatewayRpcMetrics, type GatewayRpcMutability, } from "./gateway-contract.js";
4
4
  export { GATEWAY_RPC_METHODS, type AgentCall, type AgentCallOptions, type GatewayRpcMethodMap, type ProjectInfo as RpcProjectInfo, type ProjectStatus as RpcProjectStatus, type ProjectType as RpcProjectType, } from "./gateway-rpc.js";
5
5
  export { type ChatMessage, type ChatMessageRole, type LocalizedToolText, type ThinkingBlock, type ToolCapabilityCategory, type ToolCallMessage, type ToolDefinition, } from "./chat-types.js";
@@ -7,7 +7,7 @@ export { type AgentCapabilities, type AgentCategory, type AgentConfig, type Agen
7
7
  export type * from "./acp-agent-management.js";
8
8
  export { AGENT_TEAM_WS_EVENT_NAMES, AGENT_WS_EVENT_NAMES, ALL_AGENT_WS_EVENT_NAMES, type AgentTeamWsEventName, type AgentWsEventName, type AllAgentWsEventName, } from "./agent-events.js";
9
9
  export { type AgentSource, type AgentsErrorNotification, type AgentsStatusNotification, type ArtifactType, type MediaResultType, type MemoryDecayCompletedNotification, type MemoryUpdatedNotification, type NotificationMethod, type NotificationMethodMap, type NotificationThreadItem, type PermissionRuleUpdatedNotification, type PlanInterruptedNotification, type PongNotification, type ProductBudgetUpdateNotification, type ProductBudgetWarningNotification, type ProductCheckpointedNotification, type ProductCompletedNotification, type ProductDagTopologyNotification, type ProductTaskCompletedNotification, type ProductTaskFailedNotification, type ProductTaskOutputDeltaNotification, type ProductTaskStartedNotification, type ProjectArchivedNotification, type ProjectCreatedNotification, type ProjectDeletedNotification, type ProjectRenamedNotification, type ProjectSwitchedNotification, type ProjectUnarchivedNotification, type SessionInfoNotification, type SoloAgentDeltaNotification, type SoloAgentDiffNotification, type SoloAgentUsageNotification, type SoloEvaluationNotification, type SoloProgressNotification, type TeamMemberNotification, type ToolApprovalRequestNotification, type TurnAnnotationsNotification, type TurnArtifactNotification, type TurnAskUserNotification, type TurnDeltaNotification, type TurnEndNotification, type TurnErrorNotification, type TurnExecProgressNotification, type TurnHeartbeatNotification, type TurnMediaPersistedNotification, type TurnMediaProgressNotification, type TurnMediaResultNotification, type TurnPlanUpdateNotification, type TurnReasoningDeltaNotification, type TurnRecoveryNotification, type TurnSidechainCompletedNotification, type TurnSidechainStartedNotification, type TurnSkillAcquisitionNeededNotification, type TurnSkillInstructionNotification, type TurnStartNotification, type TurnSubagentDeltaNotification, type TurnSuggestionsNotification, type TurnTaskUpdatedNotification, type TurnTodosUpdatedNotification, type TurnToolBlockedNotification, type TurnToolCallNotification, type TurnToolResultNotification, type TurnToolUseSummaryNotification, type TurnUsageUpdateNotification, type WireTokenUsage, type ProductPlanReadyNotification, type ProductPlanFailedNotification, type ProductPlanningDeltaNotification, type PetSoulReadyNotification, type PetReactionNotification, type PetGrowthNotification, type PetStateNotification, type PetConfirmNotification, type WorkflowDeletedNotification, type WorkflowRecordNotification, type WorkflowRunCompletedNotification, type WorkflowRunFailedNotification, type WorkflowRunStartedNotification, } from "./notification-payloads.js";
10
- export { ACP_EXTENDED_METHODS, ACP_EXTENDED_SESSION_UPDATE_TYPES, ACP_METHODS, ACP_PROTOCOL_VERSION, ACP_SESSION_UPDATE_TYPES, isAcpJsonRpcNotification, isAcpJsonRpcRequest, isAcpJsonRpcResponse, isExtendedSessionUpdateType, isStandardSessionUpdateType, parseAcpMessage, type AcpAgentCapabilities, type AcpAgentMessageChunkPayload, type AcpAgentThoughtChunkPayload, type AcpAvailableCommandsUpdatePayload, type AcpConfigOptionDescriptor, type AcpConfigOptionUpdatePayload, type AcpContentBlock, type AcpEndTurnPayload, type AcpExtendedMethod, type AcpExtendedSessionUpdateType, type AcpFsReadTextFileParams, type AcpFsReadTextFileResult, type AcpFsWriteTextFileParams, type AcpFsWriteTextFileResult, type AcpHostCapabilities, type AcpInitializeParams, type AcpInitializeResult, type AcpJsonRpcError, type AcpJsonRpcMessage, type AcpJsonRpcNotification, type AcpJsonRpcRequest, type AcpJsonRpcResponse, type AcpPermissionOption, type AcpPermissionRequestParams, type AcpPermissionRequestResult, type AcpPlanPayload, type AcpSessionCancelParams, type AcpSessionEndParams, type AcpSessionMeta, type AcpSessionNewParams, type AcpSessionNewResult, type AcpSessionPromptParams, type AcpSessionPromptResult, type AcpSessionSetConfigParams, type AcpSessionUpdateNotification, type AcpSessionUpdateType, type AcpStandardMethod, type AcpStandardSessionUpdateType, type AcpStopReason, type AcpToolCallPayload, type AcpToolCallUpdatePayload, type AcpTurnError, type AcpUsage, type AcpUsageUpdatePayload, type AcpXAskUserPayload, type AcpXMediaProgressPayload, type AcpXMediaResultPayload, type AcpXMemoryUpdatedPayload, type AcpXProductCheckpointPayload, type AcpXProductTaskCompletedPayload, type AcpXProductTaskStartedPayload, type AcpXRecoveryPayload, type AcpXSessionInfoPayload, type AcpXSidechainCompletedPayload, type AcpXSidechainStartedPayload, type AcpXSkillInstructionPayload, type AcpXSoloAgentFinishedPayload, type AcpXSoloSelectedPayload, type AcpXSoloStartedPayload, type AcpXSubagentDeltaPayload, type AcpXSubagentEndedPayload, type AcpXSubagentStartedPayload, type AcpXSuggestionsPayload, type AcpXTeamMemberUpdatePayload, } from "./acp-protocol.js";
10
+ export { ACP_EXTENDED_METHODS, ACP_EXTENDED_SESSION_UPDATE_TYPES, ACP_METHODS, ACP_PROTOCOL_VERSION, ACP_SESSION_UPDATE_TYPES, isAcpJsonRpcNotification, isAcpJsonRpcRequest, isAcpJsonRpcResponse, isExtendedSessionUpdateType, isStandardSessionUpdateType, parseAcpMessage, type AcpAgentCapabilities, type AcpAgentMessageChunkPayload, type AcpAgentThoughtChunkPayload, type AcpConfigOptionDescriptor, type AcpConfigOptionUpdatePayload, type AcpContentBlock, type AcpEndTurnPayload, type AcpExtendedMethod, type AcpExtendedSessionUpdateType, type AcpFsReadTextFileParams, type AcpFsReadTextFileResult, type AcpFsWriteTextFileParams, type AcpFsWriteTextFileResult, type AcpHostCapabilities, type AcpInitializeParams, type AcpInitializeResult, type AcpJsonRpcError, type AcpJsonRpcMessage, type AcpJsonRpcNotification, type AcpJsonRpcRequest, type AcpJsonRpcResponse, type AcpMode, type AcpPermissionOption, type AcpPermissionRequestParams, type AcpPermissionRequestResult, type AcpPlanPayload, type AcpSessionCancelParams, type AcpSessionCloseParams, type AcpSessionMeta, type AcpSessionLoadParams, type AcpSessionModeState, type AcpSessionNewParams, type AcpSessionNewResult, type AcpSessionPromptParams, type AcpSessionPromptResult, type AcpSessionSetConfigParams, type AcpSessionUpdateNotification, type AcpSessionUpdateType, type AcpStandardMethod, type AcpStandardSessionUpdateType, type AcpStopReason, type AcpToolCallPayload, type AcpToolCallUpdatePayload, type AcpUsage, type AcpUsageUpdatePayload, type AcpXSessionInfoPayload, type AcpXSkillInstructionPayload, } from "./acp-protocol.js";
11
11
  export { type ApprovalRequiredToolContract, type ModelSelectionReason, type PendingPromptContract, type RuntimeCapabilitySummaryContract, type RuntimeSessionContract, type SessionIdentityContract, } from "./session.js";
12
12
  export { type GatewayChannelExecutionEgressContract, type GatewayChannelExecutionEgressKind, type GatewayChannelExecutionIngressBindingContract, type GatewayChannelExecutionIngressSource, } from "./channel-ingress.js";
13
13
  export { CAPABILITY_MANIFEST_DIFF_SECTIONS, cloneCapabilityManifestSnapshot, createCapabilityManifestDiffPayload, deriveCapabilityToolNamespaces, deriveCapabilityWorkspaceIds, mergeCapabilityManifestSnapshot, type CapabilityManifestApprovalMode, type CapabilityManifestApprovalPolicyContract, type CapabilityManifestDiffSection, type CapabilityMcpManifestContract, type CapabilityManifestSnapshotContract, type HostCapabilitySnapshotContract, type CapabilityPluginManifestContract, type RuntimeCapabilityViewContract, type RuntimeToolEligibilityContract, type CapabilitySkillManifestContract, type CapabilityToolManifestContract, type CapabilityWorkspaceSummaryContract, type ToolEligibilityResolvedSource, type ToolEligibilityReasonCode, type ToolEligibilityStatus, } from "./capability-manifest.js";
@@ -189,6 +189,16 @@ export interface TurnMediaProgressNotification {
189
189
  status: string;
190
190
  provider?: string;
191
191
  }
192
+ /** Structured media provider usage for non-token billed image/video/audio calls. */
193
+ export interface TurnMediaUsageNotification {
194
+ usageId: string;
195
+ turnId: string;
196
+ mediaType: MediaResultType | string;
197
+ provider: string;
198
+ model: string;
199
+ billingUnit: string;
200
+ billingQuantity: number;
201
+ }
192
202
  /** Media files auto-downloaded to local storage. */
193
203
  export interface TurnMediaPersistedNotification {
194
204
  turnId: string;
@@ -628,10 +638,33 @@ export interface PetConfirmNotification {
628
638
  risk: ToolRiskLevel;
629
639
  timeoutMs?: number;
630
640
  }
631
- export interface PetForgedNotification {
632
- id: string;
633
- name: string;
634
- svgs: Record<string, string>;
641
+ export interface PetAssetUpdatedNotification {
642
+ asset: {
643
+ id: string;
644
+ assetKind: "petdex";
645
+ name: string;
646
+ description: string;
647
+ createdAt: string;
648
+ updatedAt: string;
649
+ atlas: {
650
+ format: "webp";
651
+ columns: 8;
652
+ rows: 9;
653
+ frameCount: 72;
654
+ cellWidth: 192;
655
+ cellHeight: 208;
656
+ width: 1536;
657
+ height: 1872;
658
+ sha256: string;
659
+ imageUrl?: string;
660
+ };
661
+ animations?: Record<string, {
662
+ frames: number[];
663
+ fps: number;
664
+ loop: boolean;
665
+ }>;
666
+ sourcePrompt?: string;
667
+ };
635
668
  }
636
669
  export interface SystemActivityNotification {
637
670
  category: "dream" | "cron" | "decay" | "system";
@@ -691,6 +724,7 @@ export interface NotificationMethodMap {
691
724
  "turn.annotations": TurnAnnotationsNotification;
692
725
  "turn.media_result": TurnMediaResultNotification;
693
726
  "turn.media_progress": TurnMediaProgressNotification;
727
+ "turn.media_usage": TurnMediaUsageNotification;
694
728
  "turn.media_persisted": TurnMediaPersistedNotification;
695
729
  "turn.task_updated": TurnTaskUpdatedNotification;
696
730
  "turn.todos_updated": TurnTodosUpdatedNotification;
@@ -744,7 +778,7 @@ export interface NotificationMethodMap {
744
778
  "pet.growth": PetGrowthNotification;
745
779
  "pet.state": PetStateNotification;
746
780
  "pet.confirm": PetConfirmNotification;
747
- "pet.forged": PetForgedNotification;
781
+ "pet.asset.updated": PetAssetUpdatedNotification;
748
782
  "system.activity": SystemActivityNotification;
749
783
  "workflow.created": WorkflowRecordNotification;
750
784
  "workflow.updated": WorkflowRecordNotification;
@@ -1,2 +1,75 @@
1
- export declare const PET_FORGE_STANDARD_STATES: readonly ["idle", "thinking", "working", "done", "happy", "error", "dragging", "attention", "poke-left", "poke-right", "notification", "random-look", "random-read", "yawning", "dozing", "sleeping", "waking", "sweeping", "juggling", "building", "eating"];
2
- export type PetForgeStandardState = typeof PET_FORGE_STANDARD_STATES[number];
1
+ export declare const PETDEX_ANIMATION_IDS: readonly ["idle", "thinking", "working", "done", "happy", "error", "attention", "dragging", "sleeping"];
2
+ export type PetdexAnimationId = typeof PETDEX_ANIMATION_IDS[number];
3
+ export declare const PETDEX_SCHEMA: "qlogic.petdex.asset.v1";
4
+ export declare const PETDEX_VALIDATION_SCHEMA: "qlogic.petdex.validation.v1";
5
+ export declare const PETDEX_ATLAS_CONTRACT: {
6
+ readonly format: "webp";
7
+ readonly columns: 8;
8
+ readonly rows: 9;
9
+ readonly frameCount: 72;
10
+ readonly cellWidth: 192;
11
+ readonly cellHeight: 208;
12
+ readonly width: 1536;
13
+ readonly height: 1872;
14
+ };
15
+ export interface PetdexAnimation {
16
+ frames: number[];
17
+ fps: number;
18
+ loop: boolean;
19
+ }
20
+ export type PetdexAnimationMap = Record<PetdexAnimationId, PetdexAnimation>;
21
+ export interface PetdexAtlasManifest {
22
+ image: "spritesheet.webp";
23
+ format: "webp";
24
+ columns: 8;
25
+ rows: 9;
26
+ frameCount: 72;
27
+ cellWidth: 192;
28
+ cellHeight: 208;
29
+ width: 1536;
30
+ height: 1872;
31
+ sha256: string;
32
+ }
33
+ export interface PetdexAssetManifest {
34
+ schema: typeof PETDEX_SCHEMA;
35
+ id: string;
36
+ name: string;
37
+ description: string;
38
+ createdAt: string;
39
+ updatedAt: string;
40
+ source: {
41
+ kind: "upload" | "forge";
42
+ prompt: string | null;
43
+ };
44
+ atlas: PetdexAtlasManifest;
45
+ animations: PetdexAnimationMap;
46
+ thumbnail: {
47
+ frame: number;
48
+ };
49
+ }
50
+ export interface PetdexAssetSummary {
51
+ id: string;
52
+ assetKind: "petdex";
53
+ name: string;
54
+ description: string;
55
+ createdAt: string;
56
+ updatedAt: string;
57
+ atlas: Omit<PetdexAtlasManifest, "image"> & {
58
+ imageUrl?: string;
59
+ };
60
+ sourcePrompt?: string;
61
+ }
62
+ export interface PetdexAssetValidation {
63
+ schema: typeof PETDEX_VALIDATION_SCHEMA;
64
+ assetId: string;
65
+ valid: boolean;
66
+ validatedAt: string;
67
+ errors: string[];
68
+ warnings: string[];
69
+ atlas: Omit<PetdexAtlasManifest, "image">;
70
+ animations: {
71
+ ids: PetdexAnimationId[];
72
+ minFrame: number;
73
+ maxFrame: number;
74
+ };
75
+ }