actoviq-agent-sdk 0.2.0 → 0.3.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 (222) hide show
  1. package/README-zh.md +19 -3
  2. package/README.md +19 -3
  3. package/bin/actoviq-interactive-agent.js +5 -0
  4. package/bin/actoviq-link-runtime.js +74 -0
  5. package/bin/actoviq-react.js +5 -0
  6. package/dist/src/cli/actoviq-react.d.ts +3 -0
  7. package/dist/src/cli/actoviq-react.d.ts.map +1 -0
  8. package/dist/src/cli/actoviq-react.js +286 -0
  9. package/dist/src/cli/actoviq-react.js.map +1 -0
  10. package/dist/src/cli/bridge-interactive-agent.d.ts +2 -0
  11. package/dist/src/cli/bridge-interactive-agent.d.ts.map +1 -0
  12. package/dist/src/cli/bridge-interactive-agent.js +147 -0
  13. package/dist/src/cli/bridge-interactive-agent.js.map +1 -0
  14. package/dist/src/config/anthropicEnvMapping.d.ts +18 -0
  15. package/dist/src/config/anthropicEnvMapping.d.ts.map +1 -0
  16. package/dist/src/config/anthropicEnvMapping.js +40 -0
  17. package/dist/src/config/anthropicEnvMapping.js.map +1 -0
  18. package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -1
  19. package/dist/src/config/resolveRuntimeConfig.js +44 -23
  20. package/dist/src/config/resolveRuntimeConfig.js.map +1 -1
  21. package/dist/src/errors.d.ts +9 -0
  22. package/dist/src/errors.d.ts.map +1 -1
  23. package/dist/src/errors.js +9 -0
  24. package/dist/src/errors.js.map +1 -1
  25. package/dist/src/index.d.ts +23 -1
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +21 -1
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/memory/actoviqMemory.d.ts.map +1 -1
  30. package/dist/src/memory/actoviqMemory.js +10 -6
  31. package/dist/src/memory/actoviqMemory.js.map +1 -1
  32. package/dist/src/memory/actoviqTranscriptLogger.d.ts.map +1 -1
  33. package/dist/src/memory/actoviqTranscriptLogger.js +2 -2
  34. package/dist/src/memory/actoviqTranscriptLogger.js.map +1 -1
  35. package/dist/src/parity/actoviqBridgeEvents.d.ts +7 -0
  36. package/dist/src/parity/actoviqBridgeEvents.d.ts.map +1 -0
  37. package/dist/src/parity/actoviqBridgeEvents.js +135 -0
  38. package/dist/src/parity/actoviqBridgeEvents.js.map +1 -0
  39. package/dist/src/parity/actoviqBridgeSdk.d.ts +179 -0
  40. package/dist/src/parity/actoviqBridgeSdk.d.ts.map +1 -0
  41. package/dist/src/parity/actoviqBridgeSdk.js +1275 -0
  42. package/dist/src/parity/actoviqBridgeSdk.js.map +1 -0
  43. package/dist/src/parity/actoviqCleanBridgeCompatSdk.d.ts +277 -0
  44. package/dist/src/parity/actoviqCleanBridgeCompatSdk.d.ts.map +1 -0
  45. package/dist/src/parity/actoviqCleanBridgeCompatSdk.js +1391 -0
  46. package/dist/src/parity/actoviqCleanBridgeCompatSdk.js.map +1 -0
  47. package/dist/src/parity/actoviqTranscripts.d.ts +44 -0
  48. package/dist/src/parity/actoviqTranscripts.d.ts.map +1 -0
  49. package/dist/src/parity/actoviqTranscripts.js +282 -0
  50. package/dist/src/parity/actoviqTranscripts.js.map +1 -0
  51. package/dist/src/parity/portableSessions.d.ts +35 -0
  52. package/dist/src/parity/portableSessions.d.ts.map +1 -0
  53. package/dist/src/parity/portableSessions.js +237 -0
  54. package/dist/src/parity/portableSessions.js.map +1 -0
  55. package/dist/src/prompts/systemPrompt.d.ts +15 -0
  56. package/dist/src/prompts/systemPrompt.d.ts.map +1 -0
  57. package/dist/src/prompts/systemPrompt.js +73 -0
  58. package/dist/src/prompts/systemPrompt.js.map +1 -0
  59. package/dist/src/provider/client.d.ts +4 -0
  60. package/dist/src/provider/client.d.ts.map +1 -1
  61. package/dist/src/provider/client.js +82 -10
  62. package/dist/src/provider/client.js.map +1 -1
  63. package/dist/src/provider/json-parse.d.ts +7 -0
  64. package/dist/src/provider/json-parse.d.ts.map +1 -0
  65. package/dist/src/provider/json-parse.js +69 -0
  66. package/dist/src/provider/json-parse.js.map +1 -0
  67. package/dist/src/provider/openai-client.d.ts.map +1 -1
  68. package/dist/src/provider/openai-client.js +45 -5
  69. package/dist/src/provider/openai-client.js.map +1 -1
  70. package/dist/src/provider/openai-model-api.d.ts.map +1 -1
  71. package/dist/src/provider/openai-model-api.js +2 -7
  72. package/dist/src/provider/openai-model-api.js.map +1 -1
  73. package/dist/src/runtime/actoviqAgents.d.ts +6 -0
  74. package/dist/src/runtime/actoviqAgents.d.ts.map +1 -1
  75. package/dist/src/runtime/actoviqAgents.js +110 -14
  76. package/dist/src/runtime/actoviqAgents.js.map +1 -1
  77. package/dist/src/runtime/actoviqApiMicrocompact.d.ts +14 -0
  78. package/dist/src/runtime/actoviqApiMicrocompact.d.ts.map +1 -1
  79. package/dist/src/runtime/actoviqApiMicrocompact.js +111 -16
  80. package/dist/src/runtime/actoviqApiMicrocompact.js.map +1 -1
  81. package/dist/src/runtime/actoviqBackgroundTasks.d.ts +1 -0
  82. package/dist/src/runtime/actoviqBackgroundTasks.d.ts.map +1 -1
  83. package/dist/src/runtime/actoviqBackgroundTasks.js +1 -0
  84. package/dist/src/runtime/actoviqBackgroundTasks.js.map +1 -1
  85. package/dist/src/runtime/actoviqCompact.d.ts +43 -0
  86. package/dist/src/runtime/actoviqCompact.d.ts.map +1 -1
  87. package/dist/src/runtime/actoviqCompact.js +290 -8
  88. package/dist/src/runtime/actoviqCompact.js.map +1 -1
  89. package/dist/src/runtime/actoviqPermissions.d.ts.map +1 -1
  90. package/dist/src/runtime/actoviqPermissions.js +121 -55
  91. package/dist/src/runtime/actoviqPermissions.js.map +1 -1
  92. package/dist/src/runtime/agentClient.d.ts +11 -0
  93. package/dist/src/runtime/agentClient.d.ts.map +1 -1
  94. package/dist/src/runtime/agentClient.js +332 -6
  95. package/dist/src/runtime/agentClient.js.map +1 -1
  96. package/dist/src/runtime/conversationEngine.d.ts.map +1 -1
  97. package/dist/src/runtime/conversationEngine.js +585 -33
  98. package/dist/src/runtime/conversationEngine.js.map +1 -1
  99. package/dist/src/runtime/defaultActoviqAgents.d.ts +3 -0
  100. package/dist/src/runtime/defaultActoviqAgents.d.ts.map +1 -0
  101. package/dist/src/runtime/defaultActoviqAgents.js +44 -0
  102. package/dist/src/runtime/defaultActoviqAgents.js.map +1 -0
  103. package/dist/src/runtime/denialTracking.d.ts +10 -0
  104. package/dist/src/runtime/denialTracking.d.ts.map +1 -0
  105. package/dist/src/runtime/denialTracking.js +27 -0
  106. package/dist/src/runtime/denialTracking.js.map +1 -0
  107. package/dist/src/runtime/safetyChecks.d.ts +12 -0
  108. package/dist/src/runtime/safetyChecks.d.ts.map +1 -0
  109. package/dist/src/runtime/safetyChecks.js +68 -0
  110. package/dist/src/runtime/safetyChecks.js.map +1 -0
  111. package/dist/src/runtime/sessionManager.d.ts.map +1 -1
  112. package/dist/src/runtime/sessionManager.js +10 -5
  113. package/dist/src/runtime/sessionManager.js.map +1 -1
  114. package/dist/src/runtime/tools.d.ts.map +1 -1
  115. package/dist/src/runtime/tools.js +62 -3
  116. package/dist/src/runtime/tools.js.map +1 -1
  117. package/dist/src/scheduling/cron.d.ts +14 -0
  118. package/dist/src/scheduling/cron.d.ts.map +1 -0
  119. package/dist/src/scheduling/cron.js +159 -0
  120. package/dist/src/scheduling/cron.js.map +1 -0
  121. package/dist/src/scheduling/index.d.ts +3 -0
  122. package/dist/src/scheduling/index.d.ts.map +1 -0
  123. package/dist/src/scheduling/index.js +3 -0
  124. package/dist/src/scheduling/index.js.map +1 -0
  125. package/dist/src/scheduling/scheduler.d.ts +32 -0
  126. package/dist/src/scheduling/scheduler.d.ts.map +1 -0
  127. package/dist/src/scheduling/scheduler.js +196 -0
  128. package/dist/src/scheduling/scheduler.js.map +1 -0
  129. package/dist/src/storage/backgroundTaskStore.d.ts.map +1 -1
  130. package/dist/src/storage/backgroundTaskStore.js +3 -2
  131. package/dist/src/storage/backgroundTaskStore.js.map +1 -1
  132. package/dist/src/storage/mailboxStore.d.ts.map +1 -1
  133. package/dist/src/storage/mailboxStore.js +3 -3
  134. package/dist/src/storage/mailboxStore.js.map +1 -1
  135. package/dist/src/storage/pathSafety.d.ts +4 -0
  136. package/dist/src/storage/pathSafety.d.ts.map +1 -0
  137. package/dist/src/storage/pathSafety.js +28 -0
  138. package/dist/src/storage/pathSafety.js.map +1 -0
  139. package/dist/src/storage/sessionStore.d.ts +2 -2
  140. package/dist/src/storage/sessionStore.d.ts.map +1 -1
  141. package/dist/src/storage/sessionStore.js +23 -8
  142. package/dist/src/storage/sessionStore.js.map +1 -1
  143. package/dist/src/storage/teammateStore.d.ts.map +1 -1
  144. package/dist/src/storage/teammateStore.js +3 -2
  145. package/dist/src/storage/teammateStore.js.map +1 -1
  146. package/dist/src/tools/actoviqCoreTools.d.ts +28 -0
  147. package/dist/src/tools/actoviqCoreTools.d.ts.map +1 -0
  148. package/dist/src/tools/actoviqCoreTools.js +32 -0
  149. package/dist/src/tools/actoviqCoreTools.js.map +1 -0
  150. package/dist/src/tools/actoviqFileTools.d.ts.map +1 -1
  151. package/dist/src/tools/actoviqFileTools.js +349 -373
  152. package/dist/src/tools/actoviqFileTools.js.map +1 -1
  153. package/dist/src/tools/actoviqMiscTools.d.ts +11 -0
  154. package/dist/src/tools/actoviqMiscTools.d.ts.map +1 -0
  155. package/dist/src/tools/actoviqMiscTools.js +89 -0
  156. package/dist/src/tools/actoviqMiscTools.js.map +1 -0
  157. package/dist/src/tools/actoviqNotebookEdit.d.ts +4 -0
  158. package/dist/src/tools/actoviqNotebookEdit.d.ts.map +1 -0
  159. package/dist/src/tools/actoviqNotebookEdit.js +140 -0
  160. package/dist/src/tools/actoviqNotebookEdit.js.map +1 -0
  161. package/dist/src/tools/actoviqShellTools.d.ts +5 -0
  162. package/dist/src/tools/actoviqShellTools.d.ts.map +1 -0
  163. package/dist/src/tools/actoviqShellTools.js +64 -0
  164. package/dist/src/tools/actoviqShellTools.js.map +1 -0
  165. package/dist/src/tools/actoviqTaskTools.d.ts +12 -0
  166. package/dist/src/tools/actoviqTaskTools.d.ts.map +1 -0
  167. package/dist/src/tools/actoviqTaskTools.js +108 -0
  168. package/dist/src/tools/actoviqTaskTools.js.map +1 -0
  169. package/dist/src/tools/actoviqWebTools.d.ts +15 -0
  170. package/dist/src/tools/actoviqWebTools.d.ts.map +1 -0
  171. package/dist/src/tools/actoviqWebTools.js +427 -0
  172. package/dist/src/tools/actoviqWebTools.js.map +1 -0
  173. package/dist/src/tools/askUserQuestion/AskUserQuestionTool.d.ts +6 -0
  174. package/dist/src/tools/askUserQuestion/AskUserQuestionTool.d.ts.map +1 -0
  175. package/dist/src/tools/askUserQuestion/AskUserQuestionTool.js +43 -0
  176. package/dist/src/tools/askUserQuestion/AskUserQuestionTool.js.map +1 -0
  177. package/dist/src/tools/bash/BashTool.d.ts +14 -0
  178. package/dist/src/tools/bash/BashTool.d.ts.map +1 -0
  179. package/dist/src/tools/bash/BashTool.js +60 -0
  180. package/dist/src/tools/bash/BashTool.js.map +1 -0
  181. package/dist/src/tools/bash/prompt.d.ts +3 -0
  182. package/dist/src/tools/bash/prompt.d.ts.map +1 -0
  183. package/dist/src/tools/bash/prompt.js +63 -0
  184. package/dist/src/tools/bash/prompt.js.map +1 -0
  185. package/dist/src/tools/prompts/fileEditPrompt.d.ts +3 -0
  186. package/dist/src/tools/prompts/fileEditPrompt.d.ts.map +1 -0
  187. package/dist/src/tools/prompts/fileEditPrompt.js +14 -0
  188. package/dist/src/tools/prompts/fileEditPrompt.js.map +1 -0
  189. package/dist/src/tools/prompts/fileReadPrompt.d.ts +3 -0
  190. package/dist/src/tools/prompts/fileReadPrompt.d.ts.map +1 -0
  191. package/dist/src/tools/prompts/fileReadPrompt.js +18 -0
  192. package/dist/src/tools/prompts/fileReadPrompt.js.map +1 -0
  193. package/dist/src/tools/prompts/fileSearchPrompt.d.ts +2 -0
  194. package/dist/src/tools/prompts/fileSearchPrompt.d.ts.map +1 -0
  195. package/dist/src/tools/prompts/fileSearchPrompt.js +21 -0
  196. package/dist/src/tools/prompts/fileSearchPrompt.js.map +1 -0
  197. package/dist/src/tools/prompts/fileWritePrompt.d.ts +3 -0
  198. package/dist/src/tools/prompts/fileWritePrompt.d.ts.map +1 -0
  199. package/dist/src/tools/prompts/fileWritePrompt.js +13 -0
  200. package/dist/src/tools/prompts/fileWritePrompt.js.map +1 -0
  201. package/dist/src/tools/prompts/webFetchPrompt.d.ts +3 -0
  202. package/dist/src/tools/prompts/webFetchPrompt.d.ts.map +1 -0
  203. package/dist/src/tools/prompts/webFetchPrompt.js +13 -0
  204. package/dist/src/tools/prompts/webFetchPrompt.js.map +1 -0
  205. package/dist/src/tools/prompts/webSearchPrompt.d.ts +3 -0
  206. package/dist/src/tools/prompts/webSearchPrompt.d.ts.map +1 -0
  207. package/dist/src/tools/prompts/webSearchPrompt.js +17 -0
  208. package/dist/src/tools/prompts/webSearchPrompt.js.map +1 -0
  209. package/dist/src/tools/todo/TodoWriteTool.d.ts +20 -0
  210. package/dist/src/tools/todo/TodoWriteTool.d.ts.map +1 -0
  211. package/dist/src/tools/todo/TodoWriteTool.js +105 -0
  212. package/dist/src/tools/todo/TodoWriteTool.js.map +1 -0
  213. package/dist/src/types.d.ts +425 -3
  214. package/dist/src/types.d.ts.map +1 -1
  215. package/dist/src/types.js.map +1 -1
  216. package/dist/src/workflow/workflowEngine.js +26 -3
  217. package/dist/src/workflow/workflowEngine.js.map +1 -1
  218. package/dist/src/workspace/actoviqWorkspace.d.ts.map +1 -1
  219. package/dist/src/workspace/actoviqWorkspace.js +25 -2
  220. package/dist/src/workspace/actoviqWorkspace.js.map +1 -1
  221. package/package.json +59 -11
  222. package/vendor/actoviq-runtime/cli.js +54 -0
@@ -21,6 +21,9 @@ export interface ToolExecutionContext {
21
21
  classifier?: ActoviqToolClassifier;
22
22
  approver?: ActoviqToolApprover;
23
23
  hooks?: ActoviqHooks;
24
+ modelApi?: ModelApi;
25
+ model?: string;
26
+ provider?: string;
24
27
  }
25
28
  export type ActoviqPermissionMode = 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'auto';
26
29
  export type ActoviqPermissionBehavior = 'allow' | 'deny' | 'ask';
@@ -81,6 +84,27 @@ export type ActoviqCanUseToolResult = {
81
84
  reason?: string;
82
85
  } | void;
83
86
  export type ActoviqCanUseTool = (context: ActoviqCanUseToolContext) => Promise<ActoviqCanUseToolResult> | ActoviqCanUseToolResult;
87
+ export interface ToolProgressData {
88
+ type: string;
89
+ [key: string]: unknown;
90
+ }
91
+ export interface ToolProgress<P extends ToolProgressData = ToolProgressData> {
92
+ toolUseID: string;
93
+ data: P;
94
+ }
95
+ export type ToolCallProgress<P extends ToolProgressData = ToolProgressData> = (progress: ToolProgress<P>) => void;
96
+ export type ValidationResult = {
97
+ result: true;
98
+ } | {
99
+ result: false;
100
+ message: string;
101
+ errorCode?: number;
102
+ };
103
+ export interface ToolPromptOptions {
104
+ tools: string[];
105
+ workDir: string;
106
+ permissionMode?: ActoviqPermissionMode;
107
+ }
84
108
  export interface CreateToolOptions<Input = any, Output = any> {
85
109
  name: string;
86
110
  description: string;
@@ -98,6 +122,26 @@ export interface CreateToolOptions<Input = any, Output = any> {
98
122
  runId: string;
99
123
  sessionId?: string;
100
124
  }) => Promise<'allow' | 'deny' | 'ask' | void> | 'allow' | 'deny' | 'ask' | void;
125
+ /** Alternative names for backwards compatibility when a tool is renamed. */
126
+ aliases?: string[];
127
+ /** Human-readable display name shown in the UI. Defaults to name. */
128
+ userFacingName?: (input?: Input) => string;
129
+ /** One-line capability phrase (3-10 words) for tool search keyword matching. */
130
+ searchHint?: string;
131
+ /** Behavior when a new user message arrives during tool execution. Defaults to 'block'. */
132
+ interruptBehavior?: 'cancel' | 'block';
133
+ /** Whether the non-verbose rendering is truncated (gates expand affordance). */
134
+ isResultTruncated?: (output: Output) => boolean;
135
+ /** Maximum size in characters before result is persisted to disk. Defaults to 50000. */
136
+ maxResultSizeChars?: number;
137
+ /** Whether two inputs are equivalent (for dedup). */
138
+ inputsEquivalent?: (a: Input, b: Input) => boolean;
139
+ /** Pre-flight validation — determines if the tool is allowed to run with this input. */
140
+ validateInput?: (input: Input, context: ToolExecutionContext) => Promise<ValidationResult> | ValidationResult;
141
+ /** Compact summary for the tool invocation in collapsed views. */
142
+ getToolUseSummary?: (input: Input) => string;
143
+ /** System prompt text teaching the model how to use this tool. */
144
+ prompt?: (options: ToolPromptOptions) => Promise<string> | string;
101
145
  }
102
146
  export interface AgentToolDefinition<Input = any, Output = any> {
103
147
  kind: 'local';
@@ -107,7 +151,7 @@ export interface AgentToolDefinition<Input = any, Output = any> {
107
151
  outputSchema?: z.ZodType<Output>;
108
152
  inputJsonSchema: Record<string, unknown>;
109
153
  serialize?: (output: Output) => string | ToolResultBlockParam['content'];
110
- execute: (input: Input, context: ToolExecutionContext) => Promise<Output> | Output;
154
+ execute: (input: Input, context: ToolExecutionContext, onProgress?: ToolCallProgress) => Promise<Output> | Output;
111
155
  strict?: boolean;
112
156
  examples?: Array<Record<string, unknown>>;
113
157
  isReadOnly?: (input?: Input) => boolean;
@@ -119,6 +163,16 @@ export interface AgentToolDefinition<Input = any, Output = any> {
119
163
  runId: string;
120
164
  sessionId?: string;
121
165
  }) => Promise<'allow' | 'deny' | 'ask' | void> | 'allow' | 'deny' | 'ask' | void;
166
+ aliases?: string[];
167
+ userFacingName?: (input?: Input) => string;
168
+ searchHint?: string;
169
+ interruptBehavior?: 'cancel' | 'block';
170
+ isResultTruncated?: (output: Output) => boolean;
171
+ maxResultSizeChars?: number;
172
+ inputsEquivalent?: (a: Input, b: Input) => boolean;
173
+ validateInput?: (input: Input, context: ToolExecutionContext) => Promise<ValidationResult> | ValidationResult;
174
+ getToolUseSummary?: (input: Input) => string;
175
+ prompt?: (options: ToolPromptOptions) => Promise<string> | string;
122
176
  }
123
177
  export interface LocalMcpServerDefinition {
124
178
  kind: 'local';
@@ -156,6 +210,7 @@ export interface ModelRequest {
156
210
  metadata?: Metadata;
157
211
  context_management?: Record<string, unknown>;
158
212
  stop_sequences?: string[];
213
+ extra_tool_schemas?: Record<string, unknown>[];
159
214
  signal?: AbortSignal;
160
215
  }
161
216
  export interface ModelStreamHandle extends AsyncIterable<MessageStreamEvent> {
@@ -177,11 +232,13 @@ export interface ResolvedToolAdapter {
177
232
  provider: 'local' | 'mcp';
178
233
  mcpServerName?: string;
179
234
  providerTool: ProviderTool;
180
- execute: (input: unknown, context: ToolExecutionContext) => Promise<ResolvedToolExecutionResult>;
235
+ execute: (input: unknown, context: ToolExecutionContext, onProgress?: ToolCallProgress) => Promise<ResolvedToolExecutionResult>;
181
236
  isReadOnly?: (input?: unknown) => boolean;
182
237
  isDestructive?: (input?: unknown) => boolean;
183
238
  requiresUserInteraction?: () => boolean;
184
239
  isConcurrencySafe?: () => boolean;
240
+ /** Per-tool result size cap in chars before artifacting to disk. */
241
+ maxResultSizeChars?: number;
185
242
  checkPermissions?: (context: {
186
243
  mode: ActoviqPermissionMode;
187
244
  runId: string;
@@ -204,7 +261,12 @@ export interface ResolvedRuntimeConfig {
204
261
  clientName: string;
205
262
  clientVersion: string;
206
263
  systemPrompt?: string;
264
+ /** ReAct loop turn cap. Defaults to Infinity (no cap) like Claude Code's main agent. */
207
265
  maxToolIterations: number;
266
+ /** Model switched to after repeated overload/rate-limit failures. */
267
+ fallbackModel?: string;
268
+ /** Add a prompt-cache breakpoint to Anthropic requests. Defaults to true. */
269
+ promptCachingEnabled: boolean;
208
270
  userId?: string;
209
271
  metadata: Record<string, unknown>;
210
272
  compact: ActoviqCompactConfig;
@@ -283,6 +345,7 @@ export interface ActoviqAgentDefinition {
283
345
  description: string;
284
346
  systemPrompt?: string;
285
347
  model?: string;
348
+ maxToolIterations?: number;
286
349
  metadata?: Record<string, unknown>;
287
350
  hooks?: ActoviqHooks;
288
351
  tools?: AgentToolDefinition[];
@@ -294,6 +357,7 @@ export interface ActoviqAgentDefinitionSummary {
294
357
  name: string;
295
358
  description: string;
296
359
  model?: string;
360
+ maxToolIterations?: number;
297
361
  toolNames: string[];
298
362
  mcpServerNames: string[];
299
363
  inheritDefaultTools: boolean;
@@ -447,12 +511,16 @@ export interface CreateAgentSdkOptions {
447
511
  clientName?: string;
448
512
  clientVersion?: string;
449
513
  systemPrompt?: string;
514
+ /** Optional ReAct loop turn cap. Unset means unlimited. */
450
515
  maxToolIterations?: number;
516
+ fallbackModel?: string;
517
+ promptCachingEnabled?: boolean;
451
518
  userId?: string;
452
519
  metadata?: Record<string, unknown>;
453
520
  tools?: AgentToolDefinition[];
454
521
  mcpServers?: AgentMcpServerDefinition[];
455
522
  agents?: ActoviqAgentDefinition[];
523
+ disableDefaultAgents?: boolean;
456
524
  skills?: ActoviqSkillDefinition[];
457
525
  skillDirectories?: string[];
458
526
  disableDefaultSkills?: boolean;
@@ -479,8 +547,26 @@ export interface ActoviqCompactConfig {
479
547
  apiMicrocompactEnabled?: boolean;
480
548
  apiMicrocompactMaxInputTokens?: number;
481
549
  apiMicrocompactTargetInputTokens?: number;
550
+ apiMicrocompactMaxRequestBytes?: number;
482
551
  apiMicrocompactClearToolResults?: boolean;
483
552
  apiMicrocompactClearToolUses?: boolean;
553
+ toolResultArtifactMaxChars?: number;
554
+ /**
555
+ * Aggregate budget for all tool_result blocks produced in one iteration
556
+ * (one user message). Largest results are artifacted to disk until the
557
+ * batch fits. Mirrors Claude Code's per-message tool result budget.
558
+ */
559
+ toolResultsPerMessageMaxChars?: number;
560
+ /**
561
+ * In-loop auto-compact: summarize old conversation turns mid-run when the
562
+ * estimated input tokens approach the model context window. Mirrors
563
+ * Claude Code's per-iteration autocompact. Defaults to true.
564
+ */
565
+ loopAutoCompactEnabled?: boolean;
566
+ /** Model context window in tokens used to derive the in-loop compact threshold. */
567
+ contextWindowTokens?: number;
568
+ /** Explicit in-loop compact trigger in estimated tokens. Overrides the derived threshold. */
569
+ loopAutoCompactThresholdTokens?: number;
484
570
  }
485
571
  export type ActoviqWorkspaceKind = 'directory' | 'temp' | 'git-worktree';
486
572
  export interface ActoviqWorkspaceInfo {
@@ -531,6 +617,7 @@ export interface AgentRunOptions {
531
617
  signal?: AbortSignal;
532
618
  }
533
619
  export interface SessionCreateOptions {
620
+ id?: string;
534
621
  title?: string;
535
622
  systemPrompt?: string;
536
623
  model?: string;
@@ -551,6 +638,16 @@ export interface AgentRequestSummary {
551
638
  usage?: Usage;
552
639
  text: string;
553
640
  createdAt: string;
641
+ requestTokenEstimate?: number;
642
+ requestByteLength?: number;
643
+ localMicrocompact?: {
644
+ enabled: boolean;
645
+ clearedToolResults: number;
646
+ tokenEstimateBefore: number;
647
+ tokenEstimateAfter: number;
648
+ requestByteLengthBefore?: number;
649
+ requestByteLengthAfter?: number;
650
+ };
554
651
  }
555
652
  export interface AgentToolCallEventPayload {
556
653
  id: string;
@@ -577,6 +674,8 @@ export interface AgentRunResult {
577
674
  messages: MessageParam[];
578
675
  surfacedMemories?: ActoviqSurfacedMemory[];
579
676
  stopReason: StopReason | null;
677
+ incompleteReason?: string;
678
+ maxToolIterationsExceeded?: boolean;
580
679
  hookStopReason?: string;
581
680
  usage?: Usage;
582
681
  requests: AgentRequestSummary[];
@@ -658,8 +757,12 @@ export interface ActoviqSessionCompactResult {
658
757
  state: ActoviqSessionMemoryRuntimeState;
659
758
  }
660
759
  export interface ActoviqTaskToolInput {
661
- description: string;
760
+ description?: string;
761
+ prompt?: string;
762
+ task?: string;
662
763
  subagent_type?: string;
764
+ agent?: string;
765
+ agent_type?: string;
663
766
  run_in_background?: boolean;
664
767
  }
665
768
  export interface ActoviqTaskToolSyncResult {
@@ -670,6 +773,7 @@ export interface ActoviqTaskToolSyncResult {
670
773
  model: string;
671
774
  text: string;
672
775
  toolCallCount: number;
776
+ toolErrorCount: number;
673
777
  }
674
778
  export interface ActoviqTaskToolAsyncResult {
675
779
  status: 'async_launched';
@@ -686,6 +790,16 @@ export interface ActoviqDelegatedAgentRecord {
686
790
  count: number;
687
791
  lastInvokedAt: string;
688
792
  lastDescription?: string;
793
+ lastRunId?: string;
794
+ lastSessionId?: string;
795
+ lastStatus?: 'completed' | 'async_launched';
796
+ lastTaskId?: string;
797
+ lastTextSummary?: string;
798
+ runIds?: string[];
799
+ sessionIds?: string[];
800
+ taskIds?: string[];
801
+ totalToolCallCount?: number;
802
+ totalToolErrorCount?: number;
689
803
  }
690
804
  export interface ActoviqAgentContinuityState {
691
805
  currentAgent?: string;
@@ -710,6 +824,7 @@ export interface ActoviqBackgroundTaskRecord {
710
824
  model?: string;
711
825
  text?: string;
712
826
  toolCallCount?: number;
827
+ toolErrorCount?: number;
713
828
  error?: string;
714
829
  }
715
830
  export interface ActoviqMailboxMessage {
@@ -812,6 +927,9 @@ export type AgentEvent = {
812
927
  type: 'request.started';
813
928
  runId: string;
814
929
  iteration: number;
930
+ requestTokenEstimate?: number;
931
+ requestByteLength?: number;
932
+ localMicrocompact?: AgentRequestSummary['localMicrocompact'];
815
933
  timestamp: string;
816
934
  } | {
817
935
  type: 'response.text.delta';
@@ -850,6 +968,13 @@ export type AgentEvent = {
850
968
  iteration: number;
851
969
  result: AgentToolCallRecord;
852
970
  timestamp: string;
971
+ } | {
972
+ type: 'tool.progress';
973
+ runId: string;
974
+ iteration: number;
975
+ toolUseId: string;
976
+ data: ToolProgressData;
977
+ timestamp: string;
853
978
  } | {
854
979
  type: 'session.compacted';
855
980
  runId: string;
@@ -857,6 +982,32 @@ export type AgentEvent = {
857
982
  trigger: ActoviqCompactTrigger;
858
983
  result: ActoviqSessionCompactResult;
859
984
  timestamp: string;
985
+ } | {
986
+ type: 'conversation.compacted';
987
+ runId: string;
988
+ iteration: number;
989
+ tokenEstimateBefore: number;
990
+ tokenEstimateAfter: number;
991
+ messagesSummarized: number;
992
+ preservedMessages: number;
993
+ clearedToolResults: number;
994
+ timestamp: string;
995
+ } | {
996
+ type: 'model.fallback';
997
+ runId: string;
998
+ iteration: number;
999
+ fromModel: string;
1000
+ toModel: string;
1001
+ reason: string;
1002
+ timestamp: string;
1003
+ } | {
1004
+ type: 'request.interrupted';
1005
+ runId: string;
1006
+ iteration: number;
1007
+ retry: number;
1008
+ maxRetries: number;
1009
+ reason: string;
1010
+ timestamp: string;
860
1011
  } | {
861
1012
  type: 'response.completed';
862
1013
  runId: string;
@@ -1265,4 +1416,275 @@ export interface HatchActoviqBuddyOptions extends ActoviqBuddyOptions {
1265
1416
  export interface ActoviqBuddyPromptContextOptions extends ActoviqBuddyOptions {
1266
1417
  announcedNames?: string[];
1267
1418
  }
1419
+ export interface CronSchedule {
1420
+ /** 5-field cron expression: "minute hour dayOfMonth month dayOfWeek" */
1421
+ cron: string;
1422
+ /** IANA timezone (e.g. "Asia/Shanghai"). Omit for local timezone. */
1423
+ timezone?: string;
1424
+ }
1425
+ export interface ScheduledTaskDefinition<TOutput = unknown> {
1426
+ id: string;
1427
+ schedule: CronSchedule;
1428
+ task: (context: ScheduledTaskContext) => Promise<TOutput> | TOutput;
1429
+ description?: string;
1430
+ enabled?: boolean;
1431
+ maxRetries?: number;
1432
+ retryDelayMs?: number;
1433
+ timeoutMs?: number;
1434
+ }
1435
+ export interface ScheduledTaskContext {
1436
+ taskId: string;
1437
+ scheduledAt: string;
1438
+ invocationCount: number;
1439
+ previousResult?: unknown;
1440
+ }
1441
+ export interface ScheduledTaskRecord {
1442
+ id: string;
1443
+ schedule: string;
1444
+ description?: string;
1445
+ enabled: boolean;
1446
+ lastRunAt?: string;
1447
+ lastResult?: 'success' | 'failure' | 'timeout';
1448
+ lastError?: string;
1449
+ nextRunAt: string;
1450
+ invocationCount: number;
1451
+ createdAt: string;
1452
+ }
1453
+ export interface ScheduledTaskStore {
1454
+ save(task: ScheduledTaskRecord): Promise<void>;
1455
+ load(id: string): Promise<ScheduledTaskRecord | undefined>;
1456
+ list(): Promise<ScheduledTaskRecord[]>;
1457
+ delete(id: string): Promise<void>;
1458
+ }
1459
+ export interface TaskSchedulerOptions {
1460
+ tickIntervalMs?: number;
1461
+ store?: ScheduledTaskStore;
1462
+ defaultTimeoutMs?: number;
1463
+ defaultMaxRetries?: number;
1464
+ defaultRetryDelayMs?: number;
1465
+ }
1466
+ export type ActoviqBridgePermissionMode = 'acceptEdits' | 'bypassPermissions' | 'default' | 'dontAsk' | 'plan';
1467
+ export type ActoviqBridgeToolsOption = 'default' | 'none' | string[];
1468
+ export interface ActoviqBridgeJsonEvent extends Record<string, unknown> {
1469
+ type: string;
1470
+ subtype?: string;
1471
+ session_id?: string;
1472
+ uuid?: string;
1473
+ }
1474
+ export interface CreateActoviqBridgeSdkOptions {
1475
+ executable?: string;
1476
+ cliPath?: string;
1477
+ homeDir?: string;
1478
+ workDir?: string;
1479
+ model?: string;
1480
+ fallbackModel?: string;
1481
+ effort?: 'low' | 'medium' | 'high' | 'max';
1482
+ systemPrompt?: string;
1483
+ appendSystemPrompt?: string;
1484
+ permissionMode?: ActoviqBridgePermissionMode;
1485
+ dangerouslySkipPermissions?: boolean;
1486
+ maxTurns?: number;
1487
+ maxBudgetUsd?: number;
1488
+ agent?: string;
1489
+ agents?: Record<string, unknown>;
1490
+ tools?: ActoviqBridgeToolsOption;
1491
+ allowedTools?: string[];
1492
+ disallowedTools?: string[];
1493
+ addDirs?: string[];
1494
+ mcpConfigs?: Array<string | Record<string, unknown>>;
1495
+ strictMcpConfig?: boolean;
1496
+ settings?: string | Record<string, unknown>;
1497
+ settingSources?: string;
1498
+ jsonSchema?: string | Record<string, unknown>;
1499
+ files?: string[];
1500
+ bare?: boolean;
1501
+ disableSlashCommands?: boolean;
1502
+ includePartialMessages?: boolean;
1503
+ includeHookEvents?: boolean;
1504
+ verbose?: boolean;
1505
+ pluginDirs?: string[];
1506
+ env?: Record<string, string>;
1507
+ cliArgs?: string[];
1508
+ }
1509
+ export interface ActoviqBridgeRunOptions extends CreateActoviqBridgeSdkOptions {
1510
+ sessionId?: string;
1511
+ resume?: string | true;
1512
+ continueMostRecent?: boolean;
1513
+ forkSession?: boolean;
1514
+ name?: string;
1515
+ signal?: AbortSignal;
1516
+ }
1517
+ export interface ActoviqBridgeSessionCreateOptions extends Omit<ActoviqBridgeRunOptions, 'continueMostRecent' | 'forkSession' | 'name' | 'resume' | 'sessionId' | 'signal'> {
1518
+ sessionId?: string;
1519
+ title?: string;
1520
+ }
1521
+ export type ActoviqBridgeAgentRunOptions = Omit<ActoviqBridgeRunOptions, 'agent'>;
1522
+ export type ActoviqBridgeAgentSessionOptions = Omit<ActoviqBridgeSessionCreateOptions, 'agent'>;
1523
+ export type ActoviqBridgeSkillRunOptions = Omit<ActoviqBridgeRunOptions, 'resume' | 'sessionId'>;
1524
+ export interface ActoviqBridgeRunResult {
1525
+ text: string;
1526
+ sessionId: string;
1527
+ isError: boolean;
1528
+ subtype?: string;
1529
+ stopReason?: string;
1530
+ durationMs?: number;
1531
+ totalCostUsd?: number;
1532
+ numTurns?: number;
1533
+ exitCode: number | null;
1534
+ stderr: string;
1535
+ initEvent?: ActoviqBridgeJsonEvent;
1536
+ resultEvent: ActoviqBridgeJsonEvent;
1537
+ assistantMessages: ActoviqBridgeJsonEvent[];
1538
+ events: ActoviqBridgeJsonEvent[];
1539
+ }
1540
+ export interface ActoviqRuntimeMcpServer {
1541
+ name: string;
1542
+ status?: string;
1543
+ }
1544
+ export interface ActoviqRuntimePluginInfo {
1545
+ name: string;
1546
+ path?: string;
1547
+ source?: string;
1548
+ }
1549
+ export interface ActoviqRuntimeInfo {
1550
+ sessionId: string;
1551
+ cwd?: string;
1552
+ model?: string;
1553
+ permissionMode?: string;
1554
+ tools: string[];
1555
+ mcpServers: ActoviqRuntimeMcpServer[];
1556
+ slashCommands: string[];
1557
+ agents: string[];
1558
+ skills: string[];
1559
+ plugins: ActoviqRuntimePluginInfo[];
1560
+ rawInitEvent: ActoviqBridgeJsonEvent;
1561
+ }
1562
+ export interface ActoviqAgentSummary {
1563
+ name: string;
1564
+ sourceGroup: string;
1565
+ active: boolean;
1566
+ rawLine: string;
1567
+ model?: string;
1568
+ memory?: string;
1569
+ shadowedBy?: string;
1570
+ }
1571
+ export interface ActoviqAgentMetadata extends ActoviqAgentSummary {
1572
+ contextSource?: string;
1573
+ tokens?: string;
1574
+ }
1575
+ export interface ActoviqToolMetadata {
1576
+ name: string;
1577
+ kind: 'builtin' | 'mcp';
1578
+ server?: string;
1579
+ tokens?: string;
1580
+ }
1581
+ export interface ActoviqSkillMetadata {
1582
+ name: string;
1583
+ slashCommand: string;
1584
+ source?: string;
1585
+ tokens?: string;
1586
+ }
1587
+ export interface ActoviqSlashCommandMetadata {
1588
+ name: string;
1589
+ kind: 'builtin' | 'skill';
1590
+ skillName?: string;
1591
+ }
1592
+ export interface ActoviqRuntimeCatalog {
1593
+ runtime: ActoviqRuntimeInfo;
1594
+ agents: ActoviqAgentMetadata[];
1595
+ tools: ActoviqToolMetadata[];
1596
+ skills: ActoviqSkillMetadata[];
1597
+ slashCommands: ActoviqSlashCommandMetadata[];
1598
+ context?: ActoviqContextUsage;
1599
+ }
1600
+ export interface ActoviqContextCategory {
1601
+ name: string;
1602
+ tokens: string;
1603
+ percentage: string;
1604
+ }
1605
+ export interface ActoviqContextSkillUsage {
1606
+ name: string;
1607
+ source?: string;
1608
+ tokens: string;
1609
+ }
1610
+ export interface ActoviqContextAgentUsage {
1611
+ agentType: string;
1612
+ source?: string;
1613
+ tokens: string;
1614
+ }
1615
+ export interface ActoviqContextMcpToolUsage {
1616
+ tool: string;
1617
+ server: string;
1618
+ tokens: string;
1619
+ }
1620
+ export interface ActoviqContextUsage {
1621
+ markdown: string;
1622
+ model?: string;
1623
+ tokensUsed?: string;
1624
+ tokenLimit?: string;
1625
+ percentage?: number;
1626
+ categories: ActoviqContextCategory[];
1627
+ skills: ActoviqContextSkillUsage[];
1628
+ agents: ActoviqContextAgentUsage[];
1629
+ mcpTools: ActoviqContextMcpToolUsage[];
1630
+ rawResult: ActoviqBridgeRunResult;
1631
+ }
1632
+ export interface ActoviqBridgeCapabilityLookupOptions extends Omit<ActoviqBridgeRunOptions, 'resume' | 'sessionId'> {
1633
+ includeContext?: boolean;
1634
+ }
1635
+ export type ActoviqCleanBridgeParityStatus = 'exact' | 'mapped' | 'simulated' | 'unsupported';
1636
+ export interface ActoviqCleanBridgeParityMatrixEntry {
1637
+ option: keyof ActoviqBridgeRunOptions | keyof CreateActoviqBridgeSdkOptions;
1638
+ status: ActoviqCleanBridgeParityStatus;
1639
+ cleanTarget?: string;
1640
+ notes: string;
1641
+ }
1642
+ export interface ActoviqCleanBridgeUnsupportedOption {
1643
+ option: string;
1644
+ value: unknown;
1645
+ reason: string;
1646
+ }
1647
+ export interface ActoviqCleanBridgeCompatibilityReport {
1648
+ mapped: Array<{
1649
+ option: string;
1650
+ cleanTarget: string;
1651
+ status: Exclude<ActoviqCleanBridgeParityStatus, 'unsupported'>;
1652
+ note?: string;
1653
+ }>;
1654
+ unsupported: ActoviqCleanBridgeUnsupportedOption[];
1655
+ }
1656
+ export type ActoviqCleanBridgeUnsupportedOptionPolicy = 'metadata' | 'warn' | 'throw';
1657
+ export interface CreateActoviqCleanBridgeSdkOptions extends CreateAgentSdkOptions {
1658
+ bridgeDefaults?: CreateActoviqBridgeSdkOptions;
1659
+ unsupportedOptionPolicy?: ActoviqCleanBridgeUnsupportedOptionPolicy;
1660
+ }
1661
+ export type ActoviqBridgeToolProvider = 'runtime' | 'server' | 'mcp' | 'unknown';
1662
+ export interface ActoviqBridgeToolRequest {
1663
+ id?: string;
1664
+ name: string;
1665
+ provider: ActoviqBridgeToolProvider;
1666
+ blockType: string;
1667
+ input?: unknown;
1668
+ }
1669
+ export interface ActoviqBridgeToolResultSummary {
1670
+ toolUseId: string;
1671
+ isError: boolean;
1672
+ blockType: string;
1673
+ content?: unknown;
1674
+ }
1675
+ export interface ActoviqBridgeTaskInvocation {
1676
+ id?: string;
1677
+ name: string;
1678
+ provider: ActoviqBridgeToolProvider;
1679
+ description?: string;
1680
+ prompt?: string;
1681
+ subagentType?: string;
1682
+ input: Record<string, unknown>;
1683
+ }
1684
+ export interface ActoviqBridgeEventAnalysis {
1685
+ textDeltas: string[];
1686
+ toolRequests: ActoviqBridgeToolRequest[];
1687
+ toolResults: ActoviqBridgeToolResultSummary[];
1688
+ taskInvocations: ActoviqBridgeTaskInvocation[];
1689
+ }
1268
1690
  //# sourceMappingURL=types.d.ts.map