actoviq-agent-sdk 0.3.0 → 0.4.0

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 (204) hide show
  1. package/README-zh.md +37 -2
  2. package/README.md +37 -2
  3. package/bin/actoviq-tui.js +5 -0
  4. package/dist/src/cli/actoviq-react.js +93 -13
  5. package/dist/src/cli/actoviq-react.js.map +1 -1
  6. package/dist/src/cli/actoviq-tui.d.ts +3 -0
  7. package/dist/src/cli/actoviq-tui.d.ts.map +1 -0
  8. package/dist/src/cli/actoviq-tui.js +76 -0
  9. package/dist/src/cli/actoviq-tui.js.map +1 -0
  10. package/dist/src/config/actoviqSettingsStore.d.ts.map +1 -1
  11. package/dist/src/config/actoviqSettingsStore.js +8 -2
  12. package/dist/src/config/actoviqSettingsStore.js.map +1 -1
  13. package/dist/src/config/anthropicEnvMapping.d.ts +18 -0
  14. package/dist/src/config/anthropicEnvMapping.d.ts.map +1 -0
  15. package/dist/src/config/anthropicEnvMapping.js +49 -0
  16. package/dist/src/config/anthropicEnvMapping.js.map +1 -0
  17. package/dist/src/config/modelTiers.d.ts +12 -0
  18. package/dist/src/config/modelTiers.d.ts.map +1 -0
  19. package/dist/src/config/modelTiers.js +31 -0
  20. package/dist/src/config/modelTiers.js.map +1 -0
  21. package/dist/src/config/projectSessionDirectory.d.ts +8 -0
  22. package/dist/src/config/projectSessionDirectory.d.ts.map +1 -0
  23. package/dist/src/config/projectSessionDirectory.js +83 -0
  24. package/dist/src/config/projectSessionDirectory.js.map +1 -0
  25. package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -1
  26. package/dist/src/config/resolveRuntimeConfig.js +73 -21
  27. package/dist/src/config/resolveRuntimeConfig.js.map +1 -1
  28. package/dist/src/index.d.ts +7 -0
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +7 -0
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/mcp/connectionManager.d.ts.map +1 -1
  33. package/dist/src/mcp/connectionManager.js +10 -1
  34. package/dist/src/mcp/connectionManager.js.map +1 -1
  35. package/dist/src/memory/actoviqMemory.d.ts.map +1 -1
  36. package/dist/src/memory/actoviqMemory.js +10 -6
  37. package/dist/src/memory/actoviqMemory.js.map +1 -1
  38. package/dist/src/memory/actoviqTranscriptLogger.d.ts.map +1 -1
  39. package/dist/src/memory/actoviqTranscriptLogger.js +2 -2
  40. package/dist/src/memory/actoviqTranscriptLogger.js.map +1 -1
  41. package/dist/src/parity/actoviqBridgeEvents.d.ts.map +1 -1
  42. package/dist/src/parity/actoviqBridgeEvents.js +4 -2
  43. package/dist/src/parity/actoviqBridgeEvents.js.map +1 -1
  44. package/dist/src/parity/actoviqBridgeSdk.d.ts.map +1 -1
  45. package/dist/src/parity/actoviqBridgeSdk.js +9 -1
  46. package/dist/src/parity/actoviqBridgeSdk.js.map +1 -1
  47. package/dist/src/parity/actoviqCleanBridgeCompatSdk.d.ts +277 -0
  48. package/dist/src/parity/actoviqCleanBridgeCompatSdk.d.ts.map +1 -0
  49. package/dist/src/parity/actoviqCleanBridgeCompatSdk.js +1395 -0
  50. package/dist/src/parity/actoviqCleanBridgeCompatSdk.js.map +1 -0
  51. package/dist/src/parity/portableSessions.d.ts.map +1 -1
  52. package/dist/src/parity/portableSessions.js +6 -2
  53. package/dist/src/parity/portableSessions.js.map +1 -1
  54. package/dist/src/provider/client.d.ts +5 -0
  55. package/dist/src/provider/client.d.ts.map +1 -1
  56. package/dist/src/provider/client.js +82 -8
  57. package/dist/src/provider/client.js.map +1 -1
  58. package/dist/src/provider/openai-client.d.ts.map +1 -1
  59. package/dist/src/provider/openai-client.js +43 -4
  60. package/dist/src/provider/openai-client.js.map +1 -1
  61. package/dist/src/provider/openai-model-api.d.ts.map +1 -1
  62. package/dist/src/provider/openai-model-api.js +3 -0
  63. package/dist/src/provider/openai-model-api.js.map +1 -1
  64. package/dist/src/provider/openai-types.d.ts +1 -0
  65. package/dist/src/provider/openai-types.d.ts.map +1 -1
  66. package/dist/src/runtime/actoviqAgentDefinitions.d.ts +8 -0
  67. package/dist/src/runtime/actoviqAgentDefinitions.d.ts.map +1 -0
  68. package/dist/src/runtime/actoviqAgentDefinitions.js +165 -0
  69. package/dist/src/runtime/actoviqAgentDefinitions.js.map +1 -0
  70. package/dist/src/runtime/actoviqAgents.d.ts +26 -2
  71. package/dist/src/runtime/actoviqAgents.d.ts.map +1 -1
  72. package/dist/src/runtime/actoviqAgents.js +237 -26
  73. package/dist/src/runtime/actoviqAgents.js.map +1 -1
  74. package/dist/src/runtime/actoviqApiMicrocompact.d.ts +14 -0
  75. package/dist/src/runtime/actoviqApiMicrocompact.d.ts.map +1 -1
  76. package/dist/src/runtime/actoviqApiMicrocompact.js +102 -0
  77. package/dist/src/runtime/actoviqApiMicrocompact.js.map +1 -1
  78. package/dist/src/runtime/actoviqBackgroundTasks.d.ts +15 -1
  79. package/dist/src/runtime/actoviqBackgroundTasks.d.ts.map +1 -1
  80. package/dist/src/runtime/actoviqBackgroundTasks.js +72 -10
  81. package/dist/src/runtime/actoviqBackgroundTasks.js.map +1 -1
  82. package/dist/src/runtime/actoviqCompact.d.ts +59 -0
  83. package/dist/src/runtime/actoviqCompact.d.ts.map +1 -1
  84. package/dist/src/runtime/actoviqCompact.js +344 -15
  85. package/dist/src/runtime/actoviqCompact.js.map +1 -1
  86. package/dist/src/runtime/actoviqModelApi.d.ts.map +1 -1
  87. package/dist/src/runtime/actoviqModelApi.js +20 -4
  88. package/dist/src/runtime/actoviqModelApi.js.map +1 -1
  89. package/dist/src/runtime/actoviqPermissions.d.ts +5 -2
  90. package/dist/src/runtime/actoviqPermissions.d.ts.map +1 -1
  91. package/dist/src/runtime/actoviqPermissions.js +91 -202
  92. package/dist/src/runtime/actoviqPermissions.js.map +1 -1
  93. package/dist/src/runtime/actoviqSessionPermissions.d.ts +5 -0
  94. package/dist/src/runtime/actoviqSessionPermissions.d.ts.map +1 -0
  95. package/dist/src/runtime/actoviqSessionPermissions.js +44 -0
  96. package/dist/src/runtime/actoviqSessionPermissions.js.map +1 -0
  97. package/dist/src/runtime/agentClient.d.ts +37 -3
  98. package/dist/src/runtime/agentClient.d.ts.map +1 -1
  99. package/dist/src/runtime/agentClient.js +1112 -100
  100. package/dist/src/runtime/agentClient.js.map +1 -1
  101. package/dist/src/runtime/agentSession.d.ts +8 -5
  102. package/dist/src/runtime/agentSession.d.ts.map +1 -1
  103. package/dist/src/runtime/agentSession.js +11 -4
  104. package/dist/src/runtime/agentSession.js.map +1 -1
  105. package/dist/src/runtime/conversationEngine.d.ts +2 -0
  106. package/dist/src/runtime/conversationEngine.d.ts.map +1 -1
  107. package/dist/src/runtime/conversationEngine.js +575 -36
  108. package/dist/src/runtime/conversationEngine.js.map +1 -1
  109. package/dist/src/runtime/defaultActoviqAgents.d.ts +3 -0
  110. package/dist/src/runtime/defaultActoviqAgents.d.ts.map +1 -0
  111. package/dist/src/runtime/defaultActoviqAgents.js +85 -0
  112. package/dist/src/runtime/defaultActoviqAgents.js.map +1 -0
  113. package/dist/src/runtime/safetyChecks.d.ts.map +1 -1
  114. package/dist/src/runtime/safetyChecks.js +15 -9
  115. package/dist/src/runtime/safetyChecks.js.map +1 -1
  116. package/dist/src/runtime/sessionManager.d.ts.map +1 -1
  117. package/dist/src/runtime/sessionManager.js +10 -5
  118. package/dist/src/runtime/sessionManager.js.map +1 -1
  119. package/dist/src/runtime/tools.d.ts.map +1 -1
  120. package/dist/src/runtime/tools.js +1 -0
  121. package/dist/src/runtime/tools.js.map +1 -1
  122. package/dist/src/scheduling/cron.d.ts.map +1 -1
  123. package/dist/src/scheduling/cron.js +3 -1
  124. package/dist/src/scheduling/cron.js.map +1 -1
  125. package/dist/src/storage/backgroundTaskStore.d.ts.map +1 -1
  126. package/dist/src/storage/backgroundTaskStore.js +3 -2
  127. package/dist/src/storage/backgroundTaskStore.js.map +1 -1
  128. package/dist/src/storage/mailboxStore.d.ts.map +1 -1
  129. package/dist/src/storage/mailboxStore.js +3 -3
  130. package/dist/src/storage/mailboxStore.js.map +1 -1
  131. package/dist/src/storage/pathSafety.d.ts +4 -0
  132. package/dist/src/storage/pathSafety.d.ts.map +1 -0
  133. package/dist/src/storage/pathSafety.js +28 -0
  134. package/dist/src/storage/pathSafety.js.map +1 -0
  135. package/dist/src/storage/sessionStore.d.ts +2 -2
  136. package/dist/src/storage/sessionStore.d.ts.map +1 -1
  137. package/dist/src/storage/sessionStore.js +23 -8
  138. package/dist/src/storage/sessionStore.js.map +1 -1
  139. package/dist/src/storage/teammateStore.d.ts.map +1 -1
  140. package/dist/src/storage/teammateStore.js +3 -2
  141. package/dist/src/storage/teammateStore.js.map +1 -1
  142. package/dist/src/swarm/actoviqSwarm.d.ts.map +1 -1
  143. package/dist/src/swarm/actoviqSwarm.js +6 -6
  144. package/dist/src/swarm/actoviqSwarm.js.map +1 -1
  145. package/dist/src/tools/actoviqCoreTools.d.ts +7 -2
  146. package/dist/src/tools/actoviqCoreTools.d.ts.map +1 -1
  147. package/dist/src/tools/actoviqCoreTools.js +2 -2
  148. package/dist/src/tools/actoviqCoreTools.js.map +1 -1
  149. package/dist/src/tools/actoviqFileTools.d.ts.map +1 -1
  150. package/dist/src/tools/actoviqFileTools.js +16 -5
  151. package/dist/src/tools/actoviqFileTools.js.map +1 -1
  152. package/dist/src/tools/actoviqNotebookEdit.d.ts.map +1 -1
  153. package/dist/src/tools/actoviqNotebookEdit.js +121 -4
  154. package/dist/src/tools/actoviqNotebookEdit.js.map +1 -1
  155. package/dist/src/tools/actoviqShellTools.d.ts.map +1 -1
  156. package/dist/src/tools/actoviqShellTools.js +38 -9
  157. package/dist/src/tools/actoviqShellTools.js.map +1 -1
  158. package/dist/src/tools/actoviqWebTools.d.ts.map +1 -1
  159. package/dist/src/tools/actoviqWebTools.js +50 -18
  160. package/dist/src/tools/actoviqWebTools.js.map +1 -1
  161. package/dist/src/tools/bash/BashTool.d.ts.map +1 -1
  162. package/dist/src/tools/bash/BashTool.js +47 -14
  163. package/dist/src/tools/bash/BashTool.js.map +1 -1
  164. package/dist/src/tools/todo/TodoWriteTool.d.ts +14 -0
  165. package/dist/src/tools/todo/TodoWriteTool.d.ts.map +1 -1
  166. package/dist/src/tools/todo/TodoWriteTool.js +45 -2
  167. package/dist/src/tools/todo/TodoWriteTool.js.map +1 -1
  168. package/dist/src/tui/actoviqTui.d.ts +13 -0
  169. package/dist/src/tui/actoviqTui.d.ts.map +1 -0
  170. package/dist/src/tui/actoviqTui.js +1594 -0
  171. package/dist/src/tui/actoviqTui.js.map +1 -0
  172. package/dist/src/tui/ansi.d.ts +33 -0
  173. package/dist/src/tui/ansi.d.ts.map +1 -0
  174. package/dist/src/tui/ansi.js +127 -0
  175. package/dist/src/tui/ansi.js.map +1 -0
  176. package/dist/src/tui/editor.d.ts +56 -0
  177. package/dist/src/tui/editor.d.ts.map +1 -0
  178. package/dist/src/tui/editor.js +253 -0
  179. package/dist/src/tui/editor.js.map +1 -0
  180. package/dist/src/tui/pluginCatalog.d.ts +13 -0
  181. package/dist/src/tui/pluginCatalog.d.ts.map +1 -0
  182. package/dist/src/tui/pluginCatalog.js +78 -0
  183. package/dist/src/tui/pluginCatalog.js.map +1 -0
  184. package/dist/src/tui/screen.d.ts +28 -0
  185. package/dist/src/tui/screen.d.ts.map +1 -0
  186. package/dist/src/tui/screen.js +119 -0
  187. package/dist/src/tui/screen.js.map +1 -0
  188. package/dist/src/tui/selection.d.ts +9 -0
  189. package/dist/src/tui/selection.d.ts.map +1 -0
  190. package/dist/src/tui/selection.js +16 -0
  191. package/dist/src/tui/selection.js.map +1 -0
  192. package/dist/src/tui/transcript.d.ts +41 -0
  193. package/dist/src/tui/transcript.d.ts.map +1 -0
  194. package/dist/src/tui/transcript.js +147 -0
  195. package/dist/src/tui/transcript.js.map +1 -0
  196. package/dist/src/types.d.ts +233 -2
  197. package/dist/src/types.d.ts.map +1 -1
  198. package/dist/src/types.js.map +1 -1
  199. package/dist/src/workflow/workflowEngine.js +26 -3
  200. package/dist/src/workflow/workflowEngine.js.map +1 -1
  201. package/dist/src/workspace/actoviqWorkspace.d.ts.map +1 -1
  202. package/dist/src/workspace/actoviqWorkspace.js +25 -2
  203. package/dist/src/workspace/actoviqWorkspace.js.map +1 -1
  204. package/package.json +26 -1
@@ -24,8 +24,17 @@ export interface ToolExecutionContext {
24
24
  modelApi?: ModelApi;
25
25
  model?: string;
26
26
  provider?: string;
27
+ effort?: ActoviqEffort;
27
28
  }
28
29
  export type ActoviqPermissionMode = 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'auto';
30
+ export type ActoviqModelTier = 'min' | 'medium' | 'max';
31
+ export type ActoviqEffort = 'low' | 'medium' | 'high' | 'max';
32
+ export type ActoviqRunEffort = ActoviqEffort | 'auto';
33
+ export interface ActoviqModelTierConfig {
34
+ min?: string;
35
+ medium?: string;
36
+ max?: string;
37
+ }
29
38
  export type ActoviqPermissionBehavior = 'allow' | 'deny' | 'ask';
30
39
  export interface ActoviqPermissionRule {
31
40
  toolName: string;
@@ -33,6 +42,10 @@ export interface ActoviqPermissionRule {
33
42
  matcher?: string;
34
43
  source?: string;
35
44
  }
45
+ export interface ActoviqSessionPermissionState {
46
+ mode?: ActoviqPermissionMode;
47
+ permissions: ActoviqPermissionRule[];
48
+ }
36
49
  export interface ActoviqPermissionDecision {
37
50
  toolName: string;
38
51
  publicName: string;
@@ -211,6 +224,7 @@ export interface ModelRequest {
211
224
  context_management?: Record<string, unknown>;
212
225
  stop_sequences?: string[];
213
226
  extra_tool_schemas?: Record<string, unknown>[];
227
+ effort?: ActoviqEffort;
214
228
  signal?: AbortSignal;
215
229
  }
216
230
  export interface ModelStreamHandle extends AsyncIterable<MessageStreamEvent> {
@@ -237,6 +251,8 @@ export interface ResolvedToolAdapter {
237
251
  isDestructive?: (input?: unknown) => boolean;
238
252
  requiresUserInteraction?: () => boolean;
239
253
  isConcurrencySafe?: () => boolean;
254
+ /** Per-tool result size cap in chars before artifacting to disk. */
255
+ maxResultSizeChars?: number;
240
256
  checkPermissions?: (context: {
241
257
  mode: ActoviqPermissionMode;
242
258
  runId: string;
@@ -250,6 +266,8 @@ export interface ResolvedRuntimeConfig {
250
266
  authToken?: string;
251
267
  baseURL?: string;
252
268
  model: string;
269
+ modelTier?: ActoviqModelTier;
270
+ modelTiers: ActoviqModelTierConfig;
253
271
  maxTokens: number;
254
272
  temperature?: number;
255
273
  timeoutMs: number;
@@ -259,11 +277,17 @@ export interface ResolvedRuntimeConfig {
259
277
  clientName: string;
260
278
  clientVersion: string;
261
279
  systemPrompt?: string;
280
+ /** ReAct loop turn cap. Defaults to Infinity (no cap) like Claude Code's main agent. */
262
281
  maxToolIterations: number;
282
+ /** Model switched to after repeated overload/rate-limit failures. */
283
+ fallbackModel?: string;
284
+ /** Add a prompt-cache breakpoint to Anthropic requests. Defaults to true. */
285
+ promptCachingEnabled: boolean;
263
286
  userId?: string;
264
287
  metadata: Record<string, unknown>;
265
288
  compact: ActoviqCompactConfig;
266
289
  provider: 'anthropic' | 'openai';
290
+ effort?: ActoviqEffort;
267
291
  }
268
292
  export interface ActoviqSessionStartHookContext {
269
293
  runId: string;
@@ -338,21 +362,52 @@ export interface ActoviqAgentDefinition {
338
362
  description: string;
339
363
  systemPrompt?: string;
340
364
  model?: string;
365
+ effort?: ActoviqRunEffort;
366
+ permissionMode?: ActoviqPermissionMode;
367
+ maxToolIterations?: number;
368
+ maxTurns?: number;
341
369
  metadata?: Record<string, unknown>;
342
370
  hooks?: ActoviqHooks;
343
371
  tools?: AgentToolDefinition[];
372
+ allowedTools?: string[];
373
+ disallowedTools?: string[];
374
+ allowedAgents?: string[];
375
+ skills?: string[];
344
376
  mcpServers?: AgentMcpServerDefinition[];
377
+ requiredMcpServers?: string[];
345
378
  inheritDefaultTools?: boolean;
346
379
  inheritDefaultMcpServers?: boolean;
380
+ initialPrompt?: string;
381
+ memory?: 'user' | 'project' | 'local';
382
+ background?: boolean;
383
+ isolation?: 'worktree';
384
+ cwd?: string;
385
+ allowNestedAgents?: boolean;
386
+ source?: 'built-in' | 'user' | 'project' | 'custom';
387
+ sourcePath?: string;
347
388
  }
348
389
  export interface ActoviqAgentDefinitionSummary {
349
390
  name: string;
350
391
  description: string;
351
392
  model?: string;
393
+ effort?: ActoviqRunEffort;
394
+ permissionMode?: ActoviqPermissionMode;
395
+ maxToolIterations?: number;
396
+ maxTurns?: number;
352
397
  toolNames: string[];
398
+ allowedTools: string[];
399
+ disallowedTools: string[];
400
+ allowedAgents: string[];
401
+ skills: string[];
353
402
  mcpServerNames: string[];
403
+ requiredMcpServers: string[];
354
404
  inheritDefaultTools: boolean;
355
405
  inheritDefaultMcpServers: boolean;
406
+ background: boolean;
407
+ isolation?: 'worktree';
408
+ memory?: 'user' | 'project' | 'local';
409
+ source?: 'built-in' | 'user' | 'project' | 'custom';
410
+ sourcePath?: string;
356
411
  metadataKeys: string[];
357
412
  hasSystemPrompt: boolean;
358
413
  hasHooks: boolean;
@@ -492,6 +547,7 @@ export interface CreateAgentSdkOptions {
492
547
  apiKey?: string;
493
548
  authToken?: string;
494
549
  baseURL?: string;
550
+ /** A full model ID or one of the configured min/medium/max tiers. */
495
551
  model?: string;
496
552
  maxTokens?: number;
497
553
  temperature?: number;
@@ -502,12 +558,20 @@ export interface CreateAgentSdkOptions {
502
558
  clientName?: string;
503
559
  clientVersion?: string;
504
560
  systemPrompt?: string;
561
+ /** Optional ReAct loop turn cap. Unset means unlimited. */
505
562
  maxToolIterations?: number;
563
+ fallbackModel?: string;
564
+ promptCachingEnabled?: boolean;
506
565
  userId?: string;
507
566
  metadata?: Record<string, unknown>;
508
567
  tools?: AgentToolDefinition[];
509
568
  mcpServers?: AgentMcpServerDefinition[];
510
569
  agents?: ActoviqAgentDefinition[];
570
+ agentDirectories?: string[];
571
+ loadDefaultAgentDirectories?: boolean;
572
+ disableDefaultAgents?: boolean;
573
+ maxSubagentDepth?: number;
574
+ maxSubagentFanout?: number;
511
575
  skills?: ActoviqSkillDefinition[];
512
576
  skillDirectories?: string[];
513
577
  disableDefaultSkills?: boolean;
@@ -520,6 +584,7 @@ export interface CreateAgentSdkOptions {
520
584
  approver?: ActoviqToolApprover;
521
585
  computerUse?: boolean | CreateActoviqComputerUseOptions;
522
586
  provider?: 'anthropic' | 'openai';
587
+ effort?: ActoviqEffort;
523
588
  modelApi?: ModelApi;
524
589
  sessionManager?: SessionManagerConfig;
525
590
  }
@@ -534,8 +599,26 @@ export interface ActoviqCompactConfig {
534
599
  apiMicrocompactEnabled?: boolean;
535
600
  apiMicrocompactMaxInputTokens?: number;
536
601
  apiMicrocompactTargetInputTokens?: number;
602
+ apiMicrocompactMaxRequestBytes?: number;
537
603
  apiMicrocompactClearToolResults?: boolean;
538
604
  apiMicrocompactClearToolUses?: boolean;
605
+ toolResultArtifactMaxChars?: number;
606
+ /**
607
+ * Aggregate budget for all tool_result blocks produced in one iteration
608
+ * (one user message). Largest results are artifacted to disk until the
609
+ * batch fits. Mirrors Claude Code's per-message tool result budget.
610
+ */
611
+ toolResultsPerMessageMaxChars?: number;
612
+ /**
613
+ * In-loop auto-compact: summarize old conversation turns mid-run when the
614
+ * estimated input tokens approach the model context window. Mirrors
615
+ * Claude Code's per-iteration autocompact. Defaults to true.
616
+ */
617
+ loopAutoCompactEnabled?: boolean;
618
+ /** Model context window in tokens used to derive the in-loop compact threshold. */
619
+ contextWindowTokens?: number;
620
+ /** Explicit in-loop compact trigger in estimated tokens. Overrides the derived threshold. */
621
+ loopAutoCompactThresholdTokens?: number;
539
622
  }
540
623
  export type ActoviqWorkspaceKind = 'directory' | 'temp' | 'git-worktree';
541
624
  export interface ActoviqWorkspaceInfo {
@@ -577,6 +660,7 @@ export interface AgentRunOptions {
577
660
  toolChoice?: ToolChoice;
578
661
  userId?: string;
579
662
  metadata?: Record<string, unknown>;
663
+ effort?: ActoviqRunEffort;
580
664
  hooks?: ActoviqHooks;
581
665
  permissionMode?: ActoviqPermissionMode;
582
666
  permissions?: ActoviqPermissionRule[];
@@ -584,11 +668,22 @@ export interface AgentRunOptions {
584
668
  approver?: ActoviqToolApprover;
585
669
  canUseTool?: ActoviqCanUseTool;
586
670
  signal?: AbortSignal;
671
+ /**
672
+ * Mid-run steering: called between tool iterations to collect user messages
673
+ * queued while the agent was working. Drained texts are appended to the
674
+ * next tool-result user message so the model sees them on its next request.
675
+ */
676
+ drainQueuedInputs?: () => string[];
677
+ /** Override the runtime working directory for this run. */
678
+ workDir?: string;
587
679
  }
588
680
  export interface SessionCreateOptions {
681
+ id?: string;
589
682
  title?: string;
590
683
  systemPrompt?: string;
591
684
  model?: string;
685
+ permissionMode?: ActoviqPermissionMode;
686
+ permissions?: ActoviqPermissionRule[];
592
687
  tags?: string[];
593
688
  metadata?: Record<string, unknown>;
594
689
  initialMessages?: MessageParam[];
@@ -598,6 +693,17 @@ export interface SessionForkOptions {
598
693
  tags?: string[];
599
694
  metadata?: Record<string, unknown>;
600
695
  }
696
+ export interface SessionResumeOptions {
697
+ /** Resume into a new session while preserving the source transcript and runtime state. */
698
+ fork?: boolean;
699
+ title?: string;
700
+ tags?: string[];
701
+ metadata?: Record<string, unknown>;
702
+ /** A full model ID or configured min/medium/max tier. */
703
+ model?: string;
704
+ permissionMode?: ActoviqPermissionMode;
705
+ permissions?: ActoviqPermissionRule[];
706
+ }
601
707
  export interface AgentRequestSummary {
602
708
  iteration: number;
603
709
  messageId: string;
@@ -606,6 +712,16 @@ export interface AgentRequestSummary {
606
712
  usage?: Usage;
607
713
  text: string;
608
714
  createdAt: string;
715
+ requestTokenEstimate?: number;
716
+ requestByteLength?: number;
717
+ localMicrocompact?: {
718
+ enabled: boolean;
719
+ clearedToolResults: number;
720
+ tokenEstimateBefore: number;
721
+ tokenEstimateAfter: number;
722
+ requestByteLengthBefore?: number;
723
+ requestByteLengthAfter?: number;
724
+ };
609
725
  }
610
726
  export interface AgentToolCallEventPayload {
611
727
  id: string;
@@ -632,6 +748,8 @@ export interface AgentRunResult {
632
748
  messages: MessageParam[];
633
749
  surfacedMemories?: ActoviqSurfacedMemory[];
634
750
  stopReason: StopReason | null;
751
+ incompleteReason?: string;
752
+ maxToolIterationsExceeded?: boolean;
635
753
  hookStopReason?: string;
636
754
  usage?: Usage;
637
755
  requests: AgentRequestSummary[];
@@ -642,8 +760,20 @@ export interface AgentRunResult {
642
760
  delegatedAgents?: ActoviqDelegatedAgentRecord[];
643
761
  invokedSkills?: ActoviqInvokedSkillRecord[];
644
762
  reactiveCompact?: ActoviqSessionCompactResult;
763
+ /** Mid-run conversation compactions performed inside the tool loop. */
764
+ loopCompactions?: AgentLoopCompactionRecord[];
645
765
  permissionDecisions?: ActoviqPermissionDecision[];
646
766
  }
767
+ export interface AgentLoopCompactionRecord {
768
+ trigger: 'auto' | 'reactive';
769
+ iteration: number;
770
+ tokenEstimateBefore: number;
771
+ tokenEstimateAfter: number;
772
+ messagesSummarized: number;
773
+ preservedMessages: number;
774
+ clearedToolResults: number;
775
+ summary?: string;
776
+ }
647
777
  export interface ActoviqDreamConfig {
648
778
  minHours: number;
649
779
  minSessions: number;
@@ -703,37 +833,54 @@ export interface AgentSessionCompactOptions {
703
833
  export interface ActoviqSessionCompactResult {
704
834
  compacted: boolean;
705
835
  trigger: ActoviqCompactTrigger;
706
- reason: 'disabled' | 'threshold_not_met' | 'no_messages' | 'microcompact' | 'compacted' | 'circuit_breaker_open';
836
+ reason: 'disabled' | 'threshold_not_met' | 'no_messages' | 'microcompact' | 'compacted' | 'failed' | 'circuit_breaker_open';
707
837
  tokenEstimateBefore: number;
708
838
  tokenEstimateAfter?: number;
709
839
  summaryMessage?: string;
710
840
  messagesRemoved?: number;
711
841
  compactCount: number;
712
842
  microcompactCount: number;
843
+ consecutiveFailures?: number;
844
+ error?: string;
713
845
  state: ActoviqSessionMemoryRuntimeState;
714
846
  }
715
847
  export interface ActoviqTaskToolInput {
716
- description: string;
848
+ description?: string;
849
+ prompt?: string;
850
+ task?: string;
717
851
  subagent_type?: string;
852
+ agent?: string;
853
+ agent_type?: string;
854
+ model?: string;
718
855
  run_in_background?: boolean;
856
+ name?: string;
857
+ isolation?: 'worktree';
858
+ cwd?: string;
719
859
  }
720
860
  export interface ActoviqTaskToolSyncResult {
721
861
  status: 'completed';
722
862
  subagentType: string;
723
863
  runId: string;
724
864
  sessionId?: string;
865
+ agentId?: string;
725
866
  model: string;
726
867
  text: string;
727
868
  toolCallCount: number;
869
+ toolErrorCount: number;
870
+ worktreePath?: string;
871
+ worktreeBranch?: string;
728
872
  }
729
873
  export interface ActoviqTaskToolAsyncResult {
730
874
  status: 'async_launched';
731
875
  taskId: string;
732
876
  subagentType: string;
733
877
  sessionId?: string;
878
+ agentId?: string;
734
879
  outputFile: string;
735
880
  canReadOutputFile: boolean;
736
881
  description: string;
882
+ worktreePath?: string;
883
+ worktreeBranch?: string;
737
884
  }
738
885
  export type ActoviqTaskToolResult = ActoviqTaskToolSyncResult | ActoviqTaskToolAsyncResult;
739
886
  export interface ActoviqDelegatedAgentRecord {
@@ -741,6 +888,17 @@ export interface ActoviqDelegatedAgentRecord {
741
888
  count: number;
742
889
  lastInvokedAt: string;
743
890
  lastDescription?: string;
891
+ lastRunId?: string;
892
+ lastSessionId?: string;
893
+ lastStatus?: 'completed' | 'async_launched' | 'failed' | 'cancelled';
894
+ lastTaskId?: string;
895
+ lastTextSummary?: string;
896
+ runIds?: string[];
897
+ sessionIds?: string[];
898
+ taskIds?: string[];
899
+ totalRequestCount?: number;
900
+ totalToolCallCount?: number;
901
+ totalToolErrorCount?: number;
744
902
  }
745
903
  export interface ActoviqAgentContinuityState {
746
904
  currentAgent?: string;
@@ -760,11 +918,24 @@ export interface ActoviqBackgroundTaskRecord {
760
918
  completedAt?: string;
761
919
  parentRunId?: string;
762
920
  parentSessionId?: string;
921
+ agentName?: string;
763
922
  sessionId?: string;
764
923
  runId?: string;
765
924
  model?: string;
766
925
  text?: string;
926
+ partialText?: string;
767
927
  toolCallCount?: number;
928
+ toolErrorCount?: number;
929
+ requestCount?: number;
930
+ currentIteration?: number;
931
+ currentToolName?: string;
932
+ progressSummary?: string;
933
+ queuedMessageCount?: number;
934
+ resumedFromTaskId?: string;
935
+ notificationDeliveredAt?: string;
936
+ worktreePath?: string;
937
+ worktreeBranch?: string;
938
+ retainedWorktree?: boolean;
768
939
  error?: string;
769
940
  }
770
941
  export interface ActoviqMailboxMessage {
@@ -867,6 +1038,9 @@ export type AgentEvent = {
867
1038
  type: 'request.started';
868
1039
  runId: string;
869
1040
  iteration: number;
1041
+ requestTokenEstimate?: number;
1042
+ requestByteLength?: number;
1043
+ localMicrocompact?: AgentRequestSummary['localMicrocompact'];
870
1044
  timestamp: string;
871
1045
  } | {
872
1046
  type: 'response.text.delta';
@@ -919,6 +1093,34 @@ export type AgentEvent = {
919
1093
  trigger: ActoviqCompactTrigger;
920
1094
  result: ActoviqSessionCompactResult;
921
1095
  timestamp: string;
1096
+ } | {
1097
+ type: 'conversation.compacted';
1098
+ runId: string;
1099
+ iteration: number;
1100
+ /** 'auto' = proactive threshold compact; 'reactive' = provider rejected the request as too long. */
1101
+ trigger?: 'auto' | 'reactive';
1102
+ tokenEstimateBefore: number;
1103
+ tokenEstimateAfter: number;
1104
+ messagesSummarized: number;
1105
+ preservedMessages: number;
1106
+ clearedToolResults: number;
1107
+ timestamp: string;
1108
+ } | {
1109
+ type: 'model.fallback';
1110
+ runId: string;
1111
+ iteration: number;
1112
+ fromModel: string;
1113
+ toModel: string;
1114
+ reason: string;
1115
+ timestamp: string;
1116
+ } | {
1117
+ type: 'request.interrupted';
1118
+ runId: string;
1119
+ iteration: number;
1120
+ retry: number;
1121
+ maxRetries: number;
1122
+ reason: string;
1123
+ timestamp: string;
922
1124
  } | {
923
1125
  type: 'response.completed';
924
1126
  runId: string;
@@ -1191,6 +1393,9 @@ export interface ActoviqCompactState extends ActoviqMemoryState {
1191
1393
  latestBoundary?: ActoviqTranscriptBoundary;
1192
1394
  compactCount: number;
1193
1395
  microcompactCount: number;
1396
+ consecutiveCompactFailures?: number;
1397
+ lastCompactFailureAt?: string;
1398
+ lastCompactError?: string;
1194
1399
  hasCompacted: boolean;
1195
1400
  pendingPostCompaction?: boolean;
1196
1401
  lastSummarizedMessageUuid?: string;
@@ -1543,6 +1748,32 @@ export interface ActoviqContextUsage {
1543
1748
  export interface ActoviqBridgeCapabilityLookupOptions extends Omit<ActoviqBridgeRunOptions, 'resume' | 'sessionId'> {
1544
1749
  includeContext?: boolean;
1545
1750
  }
1751
+ export type ActoviqCleanBridgeParityStatus = 'exact' | 'mapped' | 'simulated' | 'unsupported';
1752
+ export interface ActoviqCleanBridgeParityMatrixEntry {
1753
+ option: keyof ActoviqBridgeRunOptions | keyof CreateActoviqBridgeSdkOptions;
1754
+ status: ActoviqCleanBridgeParityStatus;
1755
+ cleanTarget?: string;
1756
+ notes: string;
1757
+ }
1758
+ export interface ActoviqCleanBridgeUnsupportedOption {
1759
+ option: string;
1760
+ value: unknown;
1761
+ reason: string;
1762
+ }
1763
+ export interface ActoviqCleanBridgeCompatibilityReport {
1764
+ mapped: Array<{
1765
+ option: string;
1766
+ cleanTarget: string;
1767
+ status: Exclude<ActoviqCleanBridgeParityStatus, 'unsupported'>;
1768
+ note?: string;
1769
+ }>;
1770
+ unsupported: ActoviqCleanBridgeUnsupportedOption[];
1771
+ }
1772
+ export type ActoviqCleanBridgeUnsupportedOptionPolicy = 'metadata' | 'warn' | 'throw';
1773
+ export interface CreateActoviqCleanBridgeSdkOptions extends CreateAgentSdkOptions {
1774
+ bridgeDefaults?: CreateActoviqBridgeSdkOptions;
1775
+ unsupportedOptionPolicy?: ActoviqCleanBridgeUnsupportedOptionPolicy;
1776
+ }
1546
1777
  export type ActoviqBridgeToolProvider = 'runtime' | 'server' | 'mcp' | 'unknown';
1547
1778
  export interface ActoviqBridgeToolRequest {
1548
1779
  id?: string;