actoviq-agent-sdk 0.4.6 → 0.4.7

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 (637) hide show
  1. package/CHANGELOG.md +203 -0
  2. package/README-zh.md +54 -19
  3. package/README.md +53 -19
  4. package/SECURITY.md +26 -0
  5. package/assets/actoviq-icon.ico +0 -0
  6. package/bin/actoviq-gui.js +28 -3
  7. package/dist/src/buddy/actoviqBuddy.d.ts.map +1 -1
  8. package/dist/src/buddy/actoviqBuddy.js +3 -4
  9. package/dist/src/buddy/actoviqBuddy.js.map +1 -1
  10. package/dist/src/cli/actoviq-react.js +495 -60
  11. package/dist/src/cli/actoviq-react.js.map +1 -1
  12. package/dist/src/compat/diagnostics.d.ts +18 -0
  13. package/dist/src/compat/diagnostics.d.ts.map +1 -0
  14. package/dist/src/compat/diagnostics.js +47 -0
  15. package/dist/src/compat/diagnostics.js.map +1 -0
  16. package/dist/src/compat/index.d.ts +8 -0
  17. package/dist/src/compat/index.d.ts.map +1 -0
  18. package/dist/src/compat/index.js +6 -0
  19. package/dist/src/compat/index.js.map +1 -0
  20. package/dist/src/config/actoviqHome.d.ts +32 -0
  21. package/dist/src/config/actoviqHome.d.ts.map +1 -0
  22. package/dist/src/config/actoviqHome.js +228 -0
  23. package/dist/src/config/actoviqHome.js.map +1 -0
  24. package/dist/src/config/actoviqSettingsStore.d.ts.map +1 -1
  25. package/dist/src/config/actoviqSettingsStore.js +6 -6
  26. package/dist/src/config/actoviqSettingsStore.js.map +1 -1
  27. package/dist/src/config/agentProfiles.d.ts +77 -0
  28. package/dist/src/config/agentProfiles.d.ts.map +1 -0
  29. package/dist/src/config/agentProfiles.js +319 -0
  30. package/dist/src/config/agentProfiles.js.map +1 -0
  31. package/dist/src/config/loadDefaultActoviqSettings.d.ts.map +1 -1
  32. package/dist/src/config/loadDefaultActoviqSettings.js +2 -3
  33. package/dist/src/config/loadDefaultActoviqSettings.js.map +1 -1
  34. package/dist/src/config/projectSessionDirectory.d.ts.map +1 -1
  35. package/dist/src/config/projectSessionDirectory.js +3 -2
  36. package/dist/src/config/projectSessionDirectory.js.map +1 -1
  37. package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -1
  38. package/dist/src/config/resolveRuntimeConfig.js +13 -2
  39. package/dist/src/config/resolveRuntimeConfig.js.map +1 -1
  40. package/dist/src/core/agent-spec.d.ts +74 -0
  41. package/dist/src/core/agent-spec.d.ts.map +1 -0
  42. package/dist/src/core/agent-spec.js +2 -0
  43. package/dist/src/core/agent-spec.js.map +1 -0
  44. package/dist/src/core/errors.d.ts +42 -0
  45. package/dist/src/core/errors.d.ts.map +1 -0
  46. package/dist/src/core/errors.js +53 -0
  47. package/dist/src/core/errors.js.map +1 -0
  48. package/dist/src/core/index.d.ts +11 -0
  49. package/dist/src/core/index.d.ts.map +1 -0
  50. package/dist/src/core/index.js +4 -0
  51. package/dist/src/core/index.js.map +1 -0
  52. package/dist/src/core/items.d.ts +161 -0
  53. package/dist/src/core/items.d.ts.map +1 -0
  54. package/dist/src/core/items.js +2 -0
  55. package/dist/src/core/items.js.map +1 -0
  56. package/dist/src/core/json.d.ts +20 -0
  57. package/dist/src/core/json.d.ts.map +1 -0
  58. package/dist/src/core/json.js +80 -0
  59. package/dist/src/core/json.js.map +1 -0
  60. package/dist/src/core/model-ref.d.ts +6 -0
  61. package/dist/src/core/model-ref.d.ts.map +1 -0
  62. package/dist/src/core/model-ref.js +2 -0
  63. package/dist/src/core/model-ref.js.map +1 -0
  64. package/dist/src/core/run.d.ts +35 -0
  65. package/dist/src/core/run.d.ts.map +1 -0
  66. package/dist/src/core/run.js +2 -0
  67. package/dist/src/core/run.js.map +1 -0
  68. package/dist/src/core/usage.d.ts +32 -0
  69. package/dist/src/core/usage.d.ts.map +1 -0
  70. package/dist/src/core/usage.js +111 -0
  71. package/dist/src/core/usage.js.map +1 -0
  72. package/dist/src/errors.d.ts +19 -0
  73. package/dist/src/errors.d.ts.map +1 -1
  74. package/dist/src/errors.js +27 -0
  75. package/dist/src/errors.js.map +1 -1
  76. package/dist/src/events/index.d.ts +4 -0
  77. package/dist/src/events/index.d.ts.map +1 -0
  78. package/dist/src/events/index.js +4 -0
  79. package/dist/src/events/index.js.map +1 -0
  80. package/dist/src/events/openTelemetry.d.ts +51 -0
  81. package/dist/src/events/openTelemetry.d.ts.map +1 -0
  82. package/dist/src/events/openTelemetry.js +116 -0
  83. package/dist/src/events/openTelemetry.js.map +1 -0
  84. package/dist/src/events/processors.d.ts +14 -0
  85. package/dist/src/events/processors.d.ts.map +1 -0
  86. package/dist/src/events/processors.js +60 -0
  87. package/dist/src/events/processors.js.map +1 -0
  88. package/dist/src/events/runEvents.d.ts +66 -0
  89. package/dist/src/events/runEvents.d.ts.map +1 -0
  90. package/dist/src/events/runEvents.js +143 -0
  91. package/dist/src/events/runEvents.js.map +1 -0
  92. package/dist/src/gui/actoviqGui.d.ts +15 -0
  93. package/dist/src/gui/actoviqGui.d.ts.map +1 -1
  94. package/dist/src/gui/actoviqGui.js +18034 -1919
  95. package/dist/src/gui/actoviqGui.js.map +1 -1
  96. package/dist/src/gui/contextRailStore.d.ts +47 -0
  97. package/dist/src/gui/contextRailStore.d.ts.map +1 -0
  98. package/dist/src/gui/contextRailStore.js +163 -0
  99. package/dist/src/gui/contextRailStore.js.map +1 -0
  100. package/dist/src/gui/electronMain.js +32 -16
  101. package/dist/src/gui/electronMain.js.map +1 -1
  102. package/dist/src/gui/guiAssets.d.ts +6 -0
  103. package/dist/src/gui/guiAssets.d.ts.map +1 -0
  104. package/dist/src/gui/guiAssets.js +48 -0
  105. package/dist/src/gui/guiAssets.js.map +1 -0
  106. package/dist/src/gui/guiSyntaxHighlight.d.ts +11 -0
  107. package/dist/src/gui/guiSyntaxHighlight.d.ts.map +1 -0
  108. package/dist/src/gui/guiSyntaxHighlight.js +348 -0
  109. package/dist/src/gui/guiSyntaxHighlight.js.map +1 -0
  110. package/dist/src/gui/projectMeta.d.ts +15 -0
  111. package/dist/src/gui/projectMeta.d.ts.map +1 -0
  112. package/dist/src/gui/projectMeta.js +61 -0
  113. package/dist/src/gui/projectMeta.js.map +1 -0
  114. package/dist/src/gui/projectWorkbench.d.ts +73 -0
  115. package/dist/src/gui/projectWorkbench.d.ts.map +1 -0
  116. package/dist/src/gui/projectWorkbench.js +307 -0
  117. package/dist/src/gui/projectWorkbench.js.map +1 -0
  118. package/dist/src/gui/terminalManager.d.ts +33 -0
  119. package/dist/src/gui/terminalManager.d.ts.map +1 -0
  120. package/dist/src/gui/terminalManager.js +206 -0
  121. package/dist/src/gui/terminalManager.js.map +1 -0
  122. package/dist/src/gui/transcript/clientBundle.d.ts +6 -0
  123. package/dist/src/gui/transcript/clientBundle.d.ts.map +1 -0
  124. package/dist/src/gui/transcript/clientBundle.js +978 -0
  125. package/dist/src/gui/transcript/clientBundle.js.map +1 -0
  126. package/dist/src/gui/transcript/index.d.ts +9 -0
  127. package/dist/src/gui/transcript/index.d.ts.map +1 -0
  128. package/dist/src/gui/transcript/index.js +6 -0
  129. package/dist/src/gui/transcript/index.js.map +1 -0
  130. package/dist/src/gui/transcript/parts.d.ts +81 -0
  131. package/dist/src/gui/transcript/parts.d.ts.map +1 -0
  132. package/dist/src/gui/transcript/parts.js +476 -0
  133. package/dist/src/gui/transcript/parts.js.map +1 -0
  134. package/dist/src/gui/transcript/registry.d.ts +8 -0
  135. package/dist/src/gui/transcript/registry.d.ts.map +1 -0
  136. package/dist/src/gui/transcript/registry.js +32 -0
  137. package/dist/src/gui/transcript/registry.js.map +1 -0
  138. package/dist/src/gui/transcript/scroll.d.ts +9 -0
  139. package/dist/src/gui/transcript/scroll.d.ts.map +1 -0
  140. package/dist/src/gui/transcript/scroll.js +13 -0
  141. package/dist/src/gui/transcript/scroll.js.map +1 -0
  142. package/dist/src/gui/transcript/styles.d.ts +3 -0
  143. package/dist/src/gui/transcript/styles.d.ts.map +1 -0
  144. package/dist/src/gui/transcript/styles.js +172 -0
  145. package/dist/src/gui/transcript/styles.js.map +1 -0
  146. package/dist/src/gui/workspaceNote.d.ts +4 -0
  147. package/dist/src/gui/workspaceNote.d.ts.map +1 -0
  148. package/dist/src/gui/workspaceNote.js +21 -0
  149. package/dist/src/gui/workspaceNote.js.map +1 -0
  150. package/dist/src/gui/workspaceRegistry.d.ts +11 -0
  151. package/dist/src/gui/workspaceRegistry.d.ts.map +1 -0
  152. package/dist/src/gui/workspaceRegistry.js +114 -0
  153. package/dist/src/gui/workspaceRegistry.js.map +1 -0
  154. package/dist/src/hooks/userHooks.d.ts +29 -8
  155. package/dist/src/hooks/userHooks.d.ts.map +1 -1
  156. package/dist/src/hooks/userHooks.js +106 -34
  157. package/dist/src/hooks/userHooks.js.map +1 -1
  158. package/dist/src/index.d.ts +24 -6
  159. package/dist/src/index.d.ts.map +1 -1
  160. package/dist/src/index.js +18 -6
  161. package/dist/src/index.js.map +1 -1
  162. package/dist/src/issues/durableIssueCoordinator.d.ts +57 -0
  163. package/dist/src/issues/durableIssueCoordinator.d.ts.map +1 -0
  164. package/dist/src/issues/durableIssueCoordinator.js +128 -0
  165. package/dist/src/issues/durableIssueCoordinator.js.map +1 -0
  166. package/dist/src/issues/issueExecution.d.ts +34 -0
  167. package/dist/src/issues/issueExecution.d.ts.map +1 -0
  168. package/dist/src/issues/issueExecution.js +190 -0
  169. package/dist/src/issues/issueExecution.js.map +1 -0
  170. package/dist/src/issues/issueStore.d.ts +95 -0
  171. package/dist/src/issues/issueStore.d.ts.map +1 -0
  172. package/dist/src/issues/issueStore.js +373 -0
  173. package/dist/src/issues/issueStore.js.map +1 -0
  174. package/dist/src/manager/projectManager.d.ts +103 -0
  175. package/dist/src/manager/projectManager.d.ts.map +1 -0
  176. package/dist/src/manager/projectManager.js +547 -0
  177. package/dist/src/manager/projectManager.js.map +1 -0
  178. package/dist/src/mcp/connectionManager.d.ts +22 -2
  179. package/dist/src/mcp/connectionManager.d.ts.map +1 -1
  180. package/dist/src/mcp/connectionManager.js +153 -41
  181. package/dist/src/mcp/connectionManager.js.map +1 -1
  182. package/dist/src/mcp/mcpServerConfig.d.ts.map +1 -1
  183. package/dist/src/mcp/mcpServerConfig.js +7 -7
  184. package/dist/src/mcp/mcpServerConfig.js.map +1 -1
  185. package/dist/src/memory/actoviqMemory.js +6 -6
  186. package/dist/src/memory/actoviqMemory.js.map +1 -1
  187. package/dist/src/memory/sessionHistory.js +2 -2
  188. package/dist/src/memory/sessionHistory.js.map +1 -1
  189. package/dist/src/node/index.d.ts +5 -0
  190. package/dist/src/node/index.d.ts.map +1 -0
  191. package/dist/src/node/index.js +5 -0
  192. package/dist/src/node/index.js.map +1 -0
  193. package/dist/src/node/sqliteCheckpointAdapter.d.ts +20 -0
  194. package/dist/src/node/sqliteCheckpointAdapter.d.ts.map +1 -0
  195. package/dist/src/node/sqliteCheckpointAdapter.js +163 -0
  196. package/dist/src/node/sqliteCheckpointAdapter.js.map +1 -0
  197. package/dist/src/node/sqliteDurableChildStore.d.ts +21 -0
  198. package/dist/src/node/sqliteDurableChildStore.d.ts.map +1 -0
  199. package/dist/src/node/sqliteDurableChildStore.js +124 -0
  200. package/dist/src/node/sqliteDurableChildStore.js.map +1 -0
  201. package/dist/src/node/sqliteSessionAdapter.d.ts +28 -0
  202. package/dist/src/node/sqliteSessionAdapter.d.ts.map +1 -0
  203. package/dist/src/node/sqliteSessionAdapter.js +99 -0
  204. package/dist/src/node/sqliteSessionAdapter.js.map +1 -0
  205. package/dist/src/orchestration/agentTool.d.ts +50 -0
  206. package/dist/src/orchestration/agentTool.d.ts.map +1 -0
  207. package/dist/src/orchestration/agentTool.js +132 -0
  208. package/dist/src/orchestration/agentTool.js.map +1 -0
  209. package/dist/src/orchestration/background.d.ts +102 -0
  210. package/dist/src/orchestration/background.d.ts.map +1 -0
  211. package/dist/src/orchestration/background.js +310 -0
  212. package/dist/src/orchestration/background.js.map +1 -0
  213. package/dist/src/orchestration/childRunner.d.ts +12 -0
  214. package/dist/src/orchestration/childRunner.d.ts.map +1 -0
  215. package/dist/src/orchestration/childRunner.js +179 -0
  216. package/dist/src/orchestration/childRunner.js.map +1 -0
  217. package/dist/src/orchestration/contracts.d.ts +169 -0
  218. package/dist/src/orchestration/contracts.d.ts.map +1 -0
  219. package/dist/src/orchestration/contracts.js +11 -0
  220. package/dist/src/orchestration/contracts.js.map +1 -0
  221. package/dist/src/orchestration/handoff.d.ts +32 -0
  222. package/dist/src/orchestration/handoff.d.ts.map +1 -0
  223. package/dist/src/orchestration/handoff.js +60 -0
  224. package/dist/src/orchestration/handoff.js.map +1 -0
  225. package/dist/src/orchestration/index.d.ts +9 -0
  226. package/dist/src/orchestration/index.d.ts.map +1 -0
  227. package/dist/src/orchestration/index.js +9 -0
  228. package/dist/src/orchestration/index.js.map +1 -0
  229. package/dist/src/orchestration/presets.d.ts +51 -0
  230. package/dist/src/orchestration/presets.d.ts.map +1 -0
  231. package/dist/src/orchestration/presets.js +78 -0
  232. package/dist/src/orchestration/presets.js.map +1 -0
  233. package/dist/src/orchestration/scope.d.ts +69 -0
  234. package/dist/src/orchestration/scope.d.ts.map +1 -0
  235. package/dist/src/orchestration/scope.js +371 -0
  236. package/dist/src/orchestration/scope.js.map +1 -0
  237. package/dist/src/orchestration/workflowGraph.d.ts +73 -0
  238. package/dist/src/orchestration/workflowGraph.d.ts.map +1 -0
  239. package/dist/src/orchestration/workflowGraph.js +255 -0
  240. package/dist/src/orchestration/workflowGraph.js.map +1 -0
  241. package/dist/src/parity/actoviqCleanBridgeCompatSdk.d.ts.map +1 -1
  242. package/dist/src/parity/actoviqCleanBridgeCompatSdk.js +101 -48
  243. package/dist/src/parity/actoviqCleanBridgeCompatSdk.js.map +1 -1
  244. package/dist/src/parity/bridgeConfigs.d.ts +2 -2
  245. package/dist/src/parity/bridgeConfigs.d.ts.map +1 -1
  246. package/dist/src/parity/bridgeConfigs.js +78 -39
  247. package/dist/src/parity/bridgeConfigs.js.map +1 -1
  248. package/dist/src/parity/bridgeProviders.d.ts +9 -6
  249. package/dist/src/parity/bridgeProviders.d.ts.map +1 -1
  250. package/dist/src/parity/bridgeProviders.js +140 -26
  251. package/dist/src/parity/bridgeProviders.js.map +1 -1
  252. package/dist/src/parity/portableSessions.js +2 -2
  253. package/dist/src/parity/portableSessions.js.map +1 -1
  254. package/dist/src/profiles/index.d.ts +15 -0
  255. package/dist/src/profiles/index.d.ts.map +1 -0
  256. package/dist/src/profiles/index.js +618 -0
  257. package/dist/src/profiles/index.js.map +1 -0
  258. package/dist/src/profiles/types.d.ts +102 -0
  259. package/dist/src/profiles/types.d.ts.map +1 -0
  260. package/dist/src/profiles/types.js +9 -0
  261. package/dist/src/profiles/types.js.map +1 -0
  262. package/dist/src/provider/client.d.ts +1 -1
  263. package/dist/src/provider/client.d.ts.map +1 -1
  264. package/dist/src/provider/openai-model-api.js +1 -1
  265. package/dist/src/provider/openai-model-api.js.map +1 -1
  266. package/dist/src/providers-v2/adapter-base.d.ts +35 -0
  267. package/dist/src/providers-v2/adapter-base.d.ts.map +1 -0
  268. package/dist/src/providers-v2/adapter-base.js +115 -0
  269. package/dist/src/providers-v2/adapter-base.js.map +1 -0
  270. package/dist/src/providers-v2/anthropic.d.ts +15 -0
  271. package/dist/src/providers-v2/anthropic.d.ts.map +1 -0
  272. package/dist/src/providers-v2/anthropic.js +414 -0
  273. package/dist/src/providers-v2/anthropic.js.map +1 -0
  274. package/dist/src/providers-v2/capabilities.d.ts +33 -0
  275. package/dist/src/providers-v2/capabilities.d.ts.map +1 -0
  276. package/dist/src/providers-v2/capabilities.js +218 -0
  277. package/dist/src/providers-v2/capabilities.js.map +1 -0
  278. package/dist/src/providers-v2/index.d.ts +12 -0
  279. package/dist/src/providers-v2/index.d.ts.map +1 -0
  280. package/dist/src/providers-v2/index.js +8 -0
  281. package/dist/src/providers-v2/index.js.map +1 -0
  282. package/dist/src/providers-v2/legacy.d.ts +26 -0
  283. package/dist/src/providers-v2/legacy.d.ts.map +1 -0
  284. package/dist/src/providers-v2/legacy.js +543 -0
  285. package/dist/src/providers-v2/legacy.js.map +1 -0
  286. package/dist/src/providers-v2/mapping.d.ts +34 -0
  287. package/dist/src/providers-v2/mapping.d.ts.map +1 -0
  288. package/dist/src/providers-v2/mapping.js +194 -0
  289. package/dist/src/providers-v2/mapping.js.map +1 -0
  290. package/dist/src/providers-v2/openai-chat.d.ts +16 -0
  291. package/dist/src/providers-v2/openai-chat.d.ts.map +1 -0
  292. package/dist/src/providers-v2/openai-chat.js +318 -0
  293. package/dist/src/providers-v2/openai-chat.js.map +1 -0
  294. package/dist/src/providers-v2/openai-responses.d.ts +15 -0
  295. package/dist/src/providers-v2/openai-responses.d.ts.map +1 -0
  296. package/dist/src/providers-v2/openai-responses.js +356 -0
  297. package/dist/src/providers-v2/openai-responses.js.map +1 -0
  298. package/dist/src/providers-v2/registry.d.ts +39 -0
  299. package/dist/src/providers-v2/registry.d.ts.map +1 -0
  300. package/dist/src/providers-v2/registry.js +101 -0
  301. package/dist/src/providers-v2/registry.js.map +1 -0
  302. package/dist/src/providers-v2/stream.d.ts +14 -0
  303. package/dist/src/providers-v2/stream.d.ts.map +1 -0
  304. package/dist/src/providers-v2/stream.js +115 -0
  305. package/dist/src/providers-v2/stream.js.map +1 -0
  306. package/dist/src/providers-v2/transport.d.ts +36 -0
  307. package/dist/src/providers-v2/transport.d.ts.map +1 -0
  308. package/dist/src/providers-v2/transport.js +337 -0
  309. package/dist/src/providers-v2/transport.js.map +1 -0
  310. package/dist/src/providers-v2/types.d.ts +162 -0
  311. package/dist/src/providers-v2/types.d.ts.map +1 -0
  312. package/dist/src/providers-v2/types.js +8 -0
  313. package/dist/src/providers-v2/types.js.map +1 -0
  314. package/dist/src/router/modelRouter.d.ts.map +1 -1
  315. package/dist/src/router/modelRouter.js +2 -3
  316. package/dist/src/router/modelRouter.js.map +1 -1
  317. package/dist/src/runtime/actoviqAgents.d.ts +5 -0
  318. package/dist/src/runtime/actoviqAgents.d.ts.map +1 -1
  319. package/dist/src/runtime/actoviqAgents.js +22 -4
  320. package/dist/src/runtime/actoviqAgents.js.map +1 -1
  321. package/dist/src/runtime/actoviqBackgroundTasks.d.ts +2 -1
  322. package/dist/src/runtime/actoviqBackgroundTasks.d.ts.map +1 -1
  323. package/dist/src/runtime/actoviqBackgroundTasks.js +4 -2
  324. package/dist/src/runtime/actoviqBackgroundTasks.js.map +1 -1
  325. package/dist/src/runtime/actoviqCompact.d.ts +15 -0
  326. package/dist/src/runtime/actoviqCompact.d.ts.map +1 -1
  327. package/dist/src/runtime/actoviqCompact.js +36 -10
  328. package/dist/src/runtime/actoviqCompact.js.map +1 -1
  329. package/dist/src/runtime/actoviqModelApi.d.ts.map +1 -1
  330. package/dist/src/runtime/actoviqModelApi.js +16 -2
  331. package/dist/src/runtime/actoviqModelApi.js.map +1 -1
  332. package/dist/src/runtime/actoviqPermissions.js +5 -1
  333. package/dist/src/runtime/actoviqPermissions.js.map +1 -1
  334. package/dist/src/runtime/agentClient.d.ts +3 -0
  335. package/dist/src/runtime/agentClient.d.ts.map +1 -1
  336. package/dist/src/runtime/agentClient.js +127 -45
  337. package/dist/src/runtime/agentClient.js.map +1 -1
  338. package/dist/src/runtime/agentRuntimeDiscovery.d.ts +75 -0
  339. package/dist/src/runtime/agentRuntimeDiscovery.d.ts.map +1 -0
  340. package/dist/src/runtime/agentRuntimeDiscovery.js +311 -0
  341. package/dist/src/runtime/agentRuntimeDiscovery.js.map +1 -0
  342. package/dist/src/runtime/agentSession.d.ts +18 -0
  343. package/dist/src/runtime/agentSession.d.ts.map +1 -1
  344. package/dist/src/runtime/agentSession.js +36 -0
  345. package/dist/src/runtime/agentSession.js.map +1 -1
  346. package/dist/src/runtime/asyncQueue.d.ts +99 -8
  347. package/dist/src/runtime/asyncQueue.d.ts.map +1 -1
  348. package/dist/src/runtime/asyncQueue.js +437 -37
  349. package/dist/src/runtime/asyncQueue.js.map +1 -1
  350. package/dist/src/runtime/conversationEngine.d.ts +7 -0
  351. package/dist/src/runtime/conversationEngine.d.ts.map +1 -1
  352. package/dist/src/runtime/conversationEngine.js +278 -18
  353. package/dist/src/runtime/conversationEngine.js.map +1 -1
  354. package/dist/src/runtime/deadline.d.ts +13 -0
  355. package/dist/src/runtime/deadline.d.ts.map +1 -0
  356. package/dist/src/runtime/deadline.js +67 -0
  357. package/dist/src/runtime/deadline.js.map +1 -0
  358. package/dist/src/runtime/messageUtils.d.ts +5 -0
  359. package/dist/src/runtime/messageUtils.d.ts.map +1 -1
  360. package/dist/src/runtime/messageUtils.js +17 -0
  361. package/dist/src/runtime/messageUtils.js.map +1 -1
  362. package/dist/src/runtime/sessionTurnCoordinator.d.ts +12 -0
  363. package/dist/src/runtime/sessionTurnCoordinator.d.ts.map +1 -0
  364. package/dist/src/runtime/sessionTurnCoordinator.js +23 -0
  365. package/dist/src/runtime/sessionTurnCoordinator.js.map +1 -0
  366. package/dist/src/runtime/tools.d.ts.map +1 -1
  367. package/dist/src/runtime/tools.js +1 -0
  368. package/dist/src/runtime/tools.js.map +1 -1
  369. package/dist/src/runtime-v2/agentRuntime.d.ts +136 -0
  370. package/dist/src/runtime-v2/agentRuntime.d.ts.map +1 -0
  371. package/dist/src/runtime-v2/agentRuntime.js +1341 -0
  372. package/dist/src/runtime-v2/agentRuntime.js.map +1 -0
  373. package/dist/src/runtime-v2/index.d.ts +6 -0
  374. package/dist/src/runtime-v2/index.d.ts.map +1 -0
  375. package/dist/src/runtime-v2/index.js +6 -0
  376. package/dist/src/runtime-v2/index.js.map +1 -0
  377. package/dist/src/runtime-v2/middleware/index.d.ts +5 -0
  378. package/dist/src/runtime-v2/middleware/index.d.ts.map +1 -0
  379. package/dist/src/runtime-v2/middleware/index.js +4 -0
  380. package/dist/src/runtime-v2/middleware/index.js.map +1 -0
  381. package/dist/src/runtime-v2/middleware/pipeline.d.ts +56 -0
  382. package/dist/src/runtime-v2/middleware/pipeline.d.ts.map +1 -0
  383. package/dist/src/runtime-v2/middleware/pipeline.js +242 -0
  384. package/dist/src/runtime-v2/middleware/pipeline.js.map +1 -0
  385. package/dist/src/runtime-v2/middleware/registry.d.ts +17 -0
  386. package/dist/src/runtime-v2/middleware/registry.d.ts.map +1 -0
  387. package/dist/src/runtime-v2/middleware/registry.js +46 -0
  388. package/dist/src/runtime-v2/middleware/registry.js.map +1 -0
  389. package/dist/src/runtime-v2/middleware/stages.d.ts +25 -0
  390. package/dist/src/runtime-v2/middleware/stages.d.ts.map +1 -0
  391. package/dist/src/runtime-v2/middleware/stages.js +48 -0
  392. package/dist/src/runtime-v2/middleware/stages.js.map +1 -0
  393. package/dist/src/runtime-v2/middleware/types.d.ts +51 -0
  394. package/dist/src/runtime-v2/middleware/types.d.ts.map +1 -0
  395. package/dist/src/runtime-v2/middleware/types.js +2 -0
  396. package/dist/src/runtime-v2/middleware/types.js.map +1 -0
  397. package/dist/src/runtime-v2/services.d.ts +33 -0
  398. package/dist/src/runtime-v2/services.d.ts.map +1 -0
  399. package/dist/src/runtime-v2/services.js +92 -0
  400. package/dist/src/runtime-v2/services.js.map +1 -0
  401. package/dist/src/runtime-v2/state.d.ts +71 -0
  402. package/dist/src/runtime-v2/state.d.ts.map +1 -0
  403. package/dist/src/runtime-v2/state.js +2 -0
  404. package/dist/src/runtime-v2/state.js.map +1 -0
  405. package/dist/src/runtime-v2/tools.d.ts +124 -0
  406. package/dist/src/runtime-v2/tools.d.ts.map +1 -0
  407. package/dist/src/runtime-v2/tools.js +185 -0
  408. package/dist/src/runtime-v2/tools.js.map +1 -0
  409. package/dist/src/scheduling/durableAgentScheduler.d.ts +46 -0
  410. package/dist/src/scheduling/durableAgentScheduler.d.ts.map +1 -0
  411. package/dist/src/scheduling/durableAgentScheduler.js +97 -0
  412. package/dist/src/scheduling/durableAgentScheduler.js.map +1 -0
  413. package/dist/src/scheduling/index.d.ts +3 -0
  414. package/dist/src/scheduling/index.d.ts.map +1 -1
  415. package/dist/src/scheduling/index.js +2 -0
  416. package/dist/src/scheduling/index.js.map +1 -1
  417. package/dist/src/scheduling/taskPersistence.d.ts +9 -0
  418. package/dist/src/scheduling/taskPersistence.d.ts.map +1 -0
  419. package/dist/src/scheduling/taskPersistence.js +238 -0
  420. package/dist/src/scheduling/taskPersistence.js.map +1 -0
  421. package/dist/src/storage/atomicJsonWrite.d.ts +13 -0
  422. package/dist/src/storage/atomicJsonWrite.d.ts.map +1 -0
  423. package/dist/src/storage/atomicJsonWrite.js +40 -0
  424. package/dist/src/storage/atomicJsonWrite.js.map +1 -0
  425. package/dist/src/storage/backgroundTaskStore.d.ts.map +1 -1
  426. package/dist/src/storage/backgroundTaskStore.js +2 -6
  427. package/dist/src/storage/backgroundTaskStore.js.map +1 -1
  428. package/dist/src/storage/mailboxStore.d.ts.map +1 -1
  429. package/dist/src/storage/mailboxStore.js +2 -6
  430. package/dist/src/storage/mailboxStore.js.map +1 -1
  431. package/dist/src/storage/sessionStore.d.ts +3 -0
  432. package/dist/src/storage/sessionStore.d.ts.map +1 -1
  433. package/dist/src/storage/sessionStore.js +169 -10
  434. package/dist/src/storage/sessionStore.js.map +1 -1
  435. package/dist/src/storage/teammateStore.d.ts.map +1 -1
  436. package/dist/src/storage/teammateStore.js +2 -6
  437. package/dist/src/storage/teammateStore.js.map +1 -1
  438. package/dist/src/storage-v2/contracts.d.ts +36 -0
  439. package/dist/src/storage-v2/contracts.d.ts.map +1 -0
  440. package/dist/src/storage-v2/contracts.js +2 -0
  441. package/dist/src/storage-v2/contracts.js.map +1 -0
  442. package/dist/src/storage-v2/errors.d.ts +21 -0
  443. package/dist/src/storage-v2/errors.d.ts.map +1 -0
  444. package/dist/src/storage-v2/errors.js +44 -0
  445. package/dist/src/storage-v2/errors.js.map +1 -0
  446. package/dist/src/storage-v2/index.d.ts +8 -0
  447. package/dist/src/storage-v2/index.d.ts.map +1 -0
  448. package/dist/src/storage-v2/index.js +8 -0
  449. package/dist/src/storage-v2/index.js.map +1 -0
  450. package/dist/src/storage-v2/legacyJsonV1Items.d.ts +10 -0
  451. package/dist/src/storage-v2/legacyJsonV1Items.d.ts.map +1 -0
  452. package/dist/src/storage-v2/legacyJsonV1Items.js +153 -0
  453. package/dist/src/storage-v2/legacyJsonV1Items.js.map +1 -0
  454. package/dist/src/storage-v2/migration.d.ts +32 -0
  455. package/dist/src/storage-v2/migration.d.ts.map +1 -0
  456. package/dist/src/storage-v2/migration.js +242 -0
  457. package/dist/src/storage-v2/migration.js.map +1 -0
  458. package/dist/src/storage-v2/sqliteDriver.d.ts +24 -0
  459. package/dist/src/storage-v2/sqliteDriver.d.ts.map +1 -0
  460. package/dist/src/storage-v2/sqliteDriver.js +90 -0
  461. package/dist/src/storage-v2/sqliteDriver.js.map +1 -0
  462. package/dist/src/storage-v2/sqliteStorage.d.ts +55 -0
  463. package/dist/src/storage-v2/sqliteStorage.d.ts.map +1 -0
  464. package/dist/src/storage-v2/sqliteStorage.js +905 -0
  465. package/dist/src/storage-v2/sqliteStorage.js.map +1 -0
  466. package/dist/src/storage-v2/types.d.ts +198 -0
  467. package/dist/src/storage-v2/types.d.ts.map +1 -0
  468. package/dist/src/storage-v2/types.js +2 -0
  469. package/dist/src/storage-v2/types.js.map +1 -0
  470. package/dist/src/surfaces/index.d.ts +8 -0
  471. package/dist/src/surfaces/index.d.ts.map +1 -0
  472. package/dist/src/surfaces/index.js +8 -0
  473. package/dist/src/surfaces/index.js.map +1 -0
  474. package/dist/src/surfaces/internal.d.ts +17 -0
  475. package/dist/src/surfaces/internal.d.ts.map +1 -0
  476. package/dist/src/surfaces/internal.js +116 -0
  477. package/dist/src/surfaces/internal.js.map +1 -0
  478. package/dist/src/surfaces/legacyEventAdapter.d.ts +38 -0
  479. package/dist/src/surfaces/legacyEventAdapter.d.ts.map +1 -0
  480. package/dist/src/surfaces/legacyEventAdapter.js +373 -0
  481. package/dist/src/surfaces/legacyEventAdapter.js.map +1 -0
  482. package/dist/src/surfaces/legacySurfacePipeline.d.ts +18 -0
  483. package/dist/src/surfaces/legacySurfacePipeline.d.ts.map +1 -0
  484. package/dist/src/surfaces/legacySurfacePipeline.js +25 -0
  485. package/dist/src/surfaces/legacySurfacePipeline.js.map +1 -0
  486. package/dist/src/surfaces/redaction.d.ts +12 -0
  487. package/dist/src/surfaces/redaction.d.ts.map +1 -0
  488. package/dist/src/surfaces/redaction.js +111 -0
  489. package/dist/src/surfaces/redaction.js.map +1 -0
  490. package/dist/src/surfaces/runEventLegacyCompat.d.ts +26 -0
  491. package/dist/src/surfaces/runEventLegacyCompat.d.ts.map +1 -0
  492. package/dist/src/surfaces/runEventLegacyCompat.js +339 -0
  493. package/dist/src/surfaces/runEventLegacyCompat.js.map +1 -0
  494. package/dist/src/surfaces/runEventProjector.d.ts +44 -0
  495. package/dist/src/surfaces/runEventProjector.d.ts.map +1 -0
  496. package/dist/src/surfaces/runEventProjector.js +404 -0
  497. package/dist/src/surfaces/runEventProjector.js.map +1 -0
  498. package/dist/src/surfaces/runtimeBridgeAdapter.d.ts +30 -0
  499. package/dist/src/surfaces/runtimeBridgeAdapter.d.ts.map +1 -0
  500. package/dist/src/surfaces/runtimeBridgeAdapter.js +38 -0
  501. package/dist/src/surfaces/runtimeBridgeAdapter.js.map +1 -0
  502. package/dist/src/surfaces/types.d.ts +38 -0
  503. package/dist/src/surfaces/types.d.ts.map +1 -0
  504. package/dist/src/surfaces/types.js +2 -0
  505. package/dist/src/surfaces/types.js.map +1 -0
  506. package/dist/src/team/agentPool.d.ts +2 -0
  507. package/dist/src/team/agentPool.d.ts.map +1 -1
  508. package/dist/src/team/agentPool.js +3 -1
  509. package/dist/src/team/agentPool.js.map +1 -1
  510. package/dist/src/team/modelTeam.d.ts +25 -19
  511. package/dist/src/team/modelTeam.d.ts.map +1 -1
  512. package/dist/src/team/modelTeam.js +293 -294
  513. package/dist/src/team/modelTeam.js.map +1 -1
  514. package/dist/src/team/pricing.d.ts.map +1 -1
  515. package/dist/src/team/pricing.js +2 -1
  516. package/dist/src/team/pricing.js.map +1 -1
  517. package/dist/src/team/teamDefinitions.d.ts +28 -1
  518. package/dist/src/team/teamDefinitions.d.ts.map +1 -1
  519. package/dist/src/team/teamDefinitions.js +204 -8
  520. package/dist/src/team/teamDefinitions.js.map +1 -1
  521. package/dist/src/team/teamGraph.d.ts +191 -0
  522. package/dist/src/team/teamGraph.d.ts.map +1 -0
  523. package/dist/src/team/teamGraph.js +616 -0
  524. package/dist/src/team/teamGraph.js.map +1 -0
  525. package/dist/src/team/teamGraphLayout.d.ts +44 -0
  526. package/dist/src/team/teamGraphLayout.d.ts.map +1 -0
  527. package/dist/src/team/teamGraphLayout.js +120 -0
  528. package/dist/src/team/teamGraphLayout.js.map +1 -0
  529. package/dist/src/team/teamGraphScaffold.d.ts +76 -0
  530. package/dist/src/team/teamGraphScaffold.d.ts.map +1 -0
  531. package/dist/src/team/teamGraphScaffold.js +409 -0
  532. package/dist/src/team/teamGraphScaffold.js.map +1 -0
  533. package/dist/src/team/teamGraphV3.d.ts +28 -0
  534. package/dist/src/team/teamGraphV3.d.ts.map +1 -0
  535. package/dist/src/team/teamGraphV3.js +640 -0
  536. package/dist/src/team/teamGraphV3.js.map +1 -0
  537. package/dist/src/team/teamPreferences.d.ts +11 -0
  538. package/dist/src/team/teamPreferences.d.ts.map +1 -0
  539. package/dist/src/team/teamPreferences.js +48 -0
  540. package/dist/src/team/teamPreferences.js.map +1 -0
  541. package/dist/src/team/teamPrompts.d.ts +16 -0
  542. package/dist/src/team/teamPrompts.d.ts.map +1 -0
  543. package/dist/src/team/teamPrompts.js +44 -0
  544. package/dist/src/team/teamPrompts.js.map +1 -0
  545. package/dist/src/team/teamRunView.d.ts +78 -0
  546. package/dist/src/team/teamRunView.d.ts.map +1 -0
  547. package/dist/src/team/teamRunView.js +205 -0
  548. package/dist/src/team/teamRunView.js.map +1 -0
  549. package/dist/src/team/teamRuntime.d.ts +19 -2
  550. package/dist/src/team/teamRuntime.d.ts.map +1 -1
  551. package/dist/src/team/teamRuntime.js +13 -7
  552. package/dist/src/team/teamRuntime.js.map +1 -1
  553. package/dist/src/tools/actoviqCoreTools.d.ts +2 -1
  554. package/dist/src/tools/actoviqCoreTools.d.ts.map +1 -1
  555. package/dist/src/tools/actoviqCoreTools.js +4 -1
  556. package/dist/src/tools/actoviqCoreTools.js.map +1 -1
  557. package/dist/src/tools/actoviqShellTools.d.ts.map +1 -1
  558. package/dist/src/tools/actoviqShellTools.js +10 -0
  559. package/dist/src/tools/actoviqShellTools.js.map +1 -1
  560. package/dist/src/tools/askUserQuestion/AskUserQuestionTool.d.ts.map +1 -1
  561. package/dist/src/tools/askUserQuestion/AskUserQuestionTool.js +2 -0
  562. package/dist/src/tools/askUserQuestion/AskUserQuestionTool.js.map +1 -1
  563. package/dist/src/tools/bash/BashTool.d.ts +33 -2
  564. package/dist/src/tools/bash/BashTool.d.ts.map +1 -1
  565. package/dist/src/tools/bash/BashTool.js +140 -2
  566. package/dist/src/tools/bash/BashTool.js.map +1 -1
  567. package/dist/src/tools/bash/prompt.d.ts +1 -1
  568. package/dist/src/tools/bash/prompt.d.ts.map +1 -1
  569. package/dist/src/tools/bash/prompt.js +1 -0
  570. package/dist/src/tools/bash/prompt.js.map +1 -1
  571. package/dist/src/tools/planMode/PlanModeTools.js +2 -2
  572. package/dist/src/tools/planMode/PlanModeTools.js.map +1 -1
  573. package/dist/src/tools/todo/TodoWriteTool.d.ts +1 -1
  574. package/dist/src/tui/actoviqTui.d.ts.map +1 -1
  575. package/dist/src/tui/actoviqTui.js +522 -97
  576. package/dist/src/tui/actoviqTui.js.map +1 -1
  577. package/dist/src/tui/pluginCatalog.d.ts.map +1 -1
  578. package/dist/src/tui/pluginCatalog.js +3 -1
  579. package/dist/src/tui/pluginCatalog.js.map +1 -1
  580. package/dist/src/types.d.ts +355 -23
  581. package/dist/src/types.d.ts.map +1 -1
  582. package/dist/src/types.js.map +1 -1
  583. package/dist/src/ui/commandSurface.d.ts.map +1 -1
  584. package/dist/src/ui/commandSurface.js +23 -3
  585. package/dist/src/ui/commandSurface.js.map +1 -1
  586. package/dist/src/workflow/workflowPersistence.d.ts.map +1 -1
  587. package/dist/src/workflow/workflowPersistence.js +2 -1
  588. package/dist/src/workflow/workflowPersistence.js.map +1 -1
  589. package/dist/src/workflow/workflowScriptRuntime.d.ts +4 -0
  590. package/dist/src/workflow/workflowScriptRuntime.d.ts.map +1 -1
  591. package/dist/src/workflow/workflowScriptRuntime.js +69 -18
  592. package/dist/src/workflow/workflowScriptRuntime.js.map +1 -1
  593. package/dist/src/workflow-v2/boundary.d.ts +2 -0
  594. package/dist/src/workflow-v2/boundary.d.ts.map +1 -0
  595. package/dist/src/workflow-v2/boundary.js +45 -0
  596. package/dist/src/workflow-v2/boundary.js.map +1 -0
  597. package/dist/src/workflow-v2/capabilities.d.ts +5 -0
  598. package/dist/src/workflow-v2/capabilities.d.ts.map +1 -0
  599. package/dist/src/workflow-v2/capabilities.js +32 -0
  600. package/dist/src/workflow-v2/capabilities.js.map +1 -0
  601. package/dist/src/workflow-v2/errors.d.ts +43 -0
  602. package/dist/src/workflow-v2/errors.d.ts.map +1 -0
  603. package/dist/src/workflow-v2/errors.js +84 -0
  604. package/dist/src/workflow-v2/errors.js.map +1 -0
  605. package/dist/src/workflow-v2/index.d.ts +9 -0
  606. package/dist/src/workflow-v2/index.d.ts.map +1 -0
  607. package/dist/src/workflow-v2/index.js +6 -0
  608. package/dist/src/workflow-v2/index.js.map +1 -0
  609. package/dist/src/workflow-v2/json.d.ts +5 -0
  610. package/dist/src/workflow-v2/json.d.ts.map +1 -0
  611. package/dist/src/workflow-v2/json.js +40 -0
  612. package/dist/src/workflow-v2/json.js.map +1 -0
  613. package/dist/src/workflow-v2/limits.d.ts +15 -0
  614. package/dist/src/workflow-v2/limits.d.ts.map +1 -0
  615. package/dist/src/workflow-v2/limits.js +37 -0
  616. package/dist/src/workflow-v2/limits.js.map +1 -0
  617. package/dist/src/workflow-v2/localIsolatedProcessExecutor.d.ts +25 -0
  618. package/dist/src/workflow-v2/localIsolatedProcessExecutor.d.ts.map +1 -0
  619. package/dist/src/workflow-v2/localIsolatedProcessExecutor.js +423 -0
  620. package/dist/src/workflow-v2/localIsolatedProcessExecutor.js.map +1 -0
  621. package/dist/src/workflow-v2/localProcessChild.d.ts +2 -0
  622. package/dist/src/workflow-v2/localProcessChild.d.ts.map +1 -0
  623. package/dist/src/workflow-v2/localProcessChild.js +305 -0
  624. package/dist/src/workflow-v2/localProcessChild.js.map +1 -0
  625. package/dist/src/workflow-v2/router.d.ts +10 -0
  626. package/dist/src/workflow-v2/router.d.ts.map +1 -0
  627. package/dist/src/workflow-v2/router.js +28 -0
  628. package/dist/src/workflow-v2/router.js.map +1 -0
  629. package/dist/src/workflow-v2/trustedCompatibilityExecutor.d.ts +17 -0
  630. package/dist/src/workflow-v2/trustedCompatibilityExecutor.d.ts.map +1 -0
  631. package/dist/src/workflow-v2/trustedCompatibilityExecutor.js +159 -0
  632. package/dist/src/workflow-v2/trustedCompatibilityExecutor.js.map +1 -0
  633. package/dist/src/workflow-v2/types.d.ts +67 -0
  634. package/dist/src/workflow-v2/types.d.ts.map +1 -0
  635. package/dist/src/workflow-v2/types.js +2 -0
  636. package/dist/src/workflow-v2/types.js.map +1 -0
  637. package/package.json +96 -10
package/CHANGELOG.md ADDED
@@ -0,0 +1,203 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog, with automated updates from GitHub Releases.
6
+
7
+ ## v0.4.7 - 2026-07-12
8
+
9
+ ### GUI
10
+
11
+ - Hide incomplete Settings panels (**Profile**, **Browser**, **Computer control**, dedicated **Worktrees**) from the sidebar; markup and handlers remain in the codebase for a later release.
12
+ - Hide the main **Agent** region nav entry (team graph UI) the same way — code retained, not deleted.
13
+ - Settings sidebar notes which surfaces are still under development in this release.
14
+
15
+ ### Still under development (not product-ready in 0.4.7)
16
+
17
+ - Main **Agent** / team-graph region UI
18
+ - Settings: **Profile**, **Browser**, **Computer control**, dedicated **Worktrees** tab
19
+ - Keyboard shortcut remapping (reference list only)
20
+ - Full 1.0 runtime/package surface (tracked as unreleased below)
21
+
22
+ ### Notes
23
+
24
+ - This release stays on the **0.4.x** line. **1.0.0 is not published yet.**
25
+
26
+ ## Unreleased — v1.0.0 (not published)
27
+
28
+ > Draft notes for a future 1.0.0. Do not treat this section as shipped.
29
+
30
+ ### Stable SDK contracts
31
+
32
+ ### Stable SDK contracts
33
+
34
+ - Added responsibility-based public subpaths: `/core`, `/providers`, `/runtime`, `/events`, `/surfaces`, `/orchestration`, `/workflow`, `/profiles`, `/node`, and `/compat`.
35
+ - Added provider-neutral canonical items, immutable `AgentSpec`, structured output, guardrails, aggregate usage, and versioned run errors.
36
+ - Added `ModelProvider`, capability preflight, registry/transport contracts, and OpenAI Responses, OpenAI Chat compatibility, and Anthropic adapters.
37
+ - Added `AgentRuntime`, fixed-stage middleware, lazy `RuntimeServices`, bounded streaming, unified cancellation/deadlines, tool policy, interruption, checkpoint, and resume contracts.
38
+ - Reserved model/tool terminals now fail closed when middleware omits `next()`; model rewrites are post-validated, while ToolRunner parses once, freezes the validated result, and rejects wrapper replacement so capability/policy/schema invariants cannot be bypassed.
39
+ - Added a fair, abort-aware top-level runtime concurrency gate; acceptance now covers 100 same-session turns and 1000 independent sessions without exceeding the configured provider concurrency.
40
+ - GUI issue dispatch now persists a durable child/checkpoint before executing the legacy session adapter, with SQLite query/resume across coordinator restart and no second SDK/runtime instance.
41
+
42
+ ### Durable state and orchestration
43
+
44
+ - Added tenant-scoped SQLite session, checkpoint, memory, artifact, and durable child stores with CAS and append-only item journals.
45
+ - Added backup-first JSON v1 migration with canonical message conversion, migration ledger/idempotency, transaction rollback, legacy run filtering, and runtime cutover coverage.
46
+ - Added agent-as-tool, handoff, durable background spawn, run-tree cancellation, inherited budget/policy/workspace/trace scope, workflow graph/reducer, and team/router/reviewer/swarm presets.
47
+ - Explicit handoff now invokes the source runtime's `beforeHandoff` stage before child execution and ownership transfer; model-produced handoff items are not implicitly dispatched.
48
+ - Split trusted compatibility workflow execution from fail-closed untrusted process/sandbox execution.
49
+
50
+ ### Agent profiles and product surfaces
51
+
52
+ - Added chat, coding, research, workflow, supervisor, and background profiles sharing one runtime contract.
53
+ - Added versioned `RunEvent` processing, redaction, trace propagation, OpenTelemetry-compatible export, and shared CLI/TUI/GUI/Bridge semantics.
54
+ - Added `AgentRuntimeBridgeAdapter`, a thin Bridge projection over an existing runtime that owns no duplicate provider or service container.
55
+ - Retained the 0.x root API and `createAgentSdk` as the 1.x compatibility façade, with provider adapters and local opt-in migration diagnostics.
56
+
57
+ ### Reliability, security, and release gates
58
+
59
+ - Fixed same-session concurrency, bounded queue cancellation, side-effect retry safety, MCP configuration identity/catalog caching, team permission inheritance, work directory persistence, and usage aggregation.
60
+ - Windows provider detection no longer executes `.cmd`/`.bat` shims for best-effort version display, preventing descendant leaks when the host denies process-tree termination; availability remains detectable and version is reported as unknown.
61
+ - Added Node.js 22.13+/24 support policy, exact minimum-version CI gates, `SECURITY.md`, threat/failure policy, ten ADRs, migration/cutover/rollback guidance, and a 1.0 migration guide. The 22.13 floor reflects when `node:sqlite` became available without a host process flag.
62
+ - Added runtime performance benchmarks, public API snapshots, package subpath clean-import verification, package dry-run, SDK layer coverage gates, and Node/OS CI matrices.
63
+
64
+ ### Compatibility notes
65
+
66
+ - Node.js 18/20 and Node.js 22.0–22.4 are no longer supported.
67
+ - Unknown legacy provider blocks remain durable for audit but are not replayed into a different provider's active transcript.
68
+ - Local process workflow isolation is not an adversarial multi-tenant sandbox.
69
+
70
+ ## v0.4.0 - 2026-06-15
71
+
72
+ ### Features
73
+
74
+ - **Subagent infrastructure**: `Agent`/`Task` tool with Task compatibility alias, persistent sessions, and `SendMessage` continuation
75
+ - **Background agents**: automatic completion notifications, progress tracking, cancellation, and lifecycle reconciliation
76
+ - **Markdown agent definitions**: user-level (`~/.actoviq/agents/`) and project-level (`.actoviq/agents/`) `.md` files with tool/skill/permission/MCP/effort controls
77
+ - **Worktree isolation**: `isolation: "worktree"` for parallel agents editing overlapping files; dirty worktrees retained, clean ones auto-removed
78
+ - **Nested delegation controls**: configurable depth limit (`maxSubagentDepth`), fanout limit (`maxSubagentFanout`), and per-definition allowed agents
79
+ - **Built-in agent definitions**: Explore, Plan, and general-purpose agents with Claude Code-compatible profiles
80
+ - **Windows Bash tool**: now uses Git Bash for POSIX commands on Windows
81
+ - **TUI**: full-screen terminal UI (`actoviq-tui`) with session management, permission mode switching, and provider configuration
82
+ - **Model tiers**: `min`/`medium`/`max` tier resolution with `ACTVIQ_DEFAULT_{TIER}_MODEL` env vars
83
+ - **Enhanced Agent tool prompt**: Claude Code-level subagent guidance (foreground/background, parallel delegation, "never delegate understanding")
84
+
85
+ ### Bug Fixes
86
+
87
+ - `close()` now tolerates individual cleanup failures instead of bailing on first error
88
+ - `isGitWorkspaceDirty`: added 10s timeout, returns false on error to prevent worktree leaks
89
+ - Background task `cancel()`: re-reads store after abort to prevent TOCTOU race with terminal state
90
+ - `forwardStreamResult`: captures both pump and result errors instead of silently losing one
91
+ - Agent definition loader: logs a warning for malformed `.md` files instead of silently skipping them
92
+ - `encodeActoviqProjectPath` test made platform-aware (was hardcoded to Windows paths)
93
+
94
+ ### Benchmark
95
+
96
+ - New cases: `workflow-agent-continuation` (SendMessage + background), `workflow-multi-module-parallel` (3-way parallel subagents)
97
+ - Complex suite: 10/10 all three runtimes pass (Clean 0.993, Bridge 0.992, Official 0.960)
98
+ - Long suite: 4/5 Clean and Bridge, 5/5 Official (`release-train-reconciliation` remains systemic weak point)
99
+ - Multi-module-parallel: Clean 1.000 (3 parallel background subagents), Bridge 0.996, Official 0.953
100
+
101
+ ### TUI Branding
102
+
103
+ - Display name changed from `Actoviq TUI` to `Hadamard Agent` (3 visible strings; all internal names, env vars, and config paths unchanged)
104
+
105
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.3.1...v0.4.0
106
+
107
+ ## v0.3.1 - 2026-06-11
108
+
109
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.3.0...v0.3.1
110
+
111
+ ## v0.3.0 - 2026-05-11
112
+
113
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/commits/v0.3.0
114
+
115
+ ## v0.2.0 - 2026-05-08
116
+
117
+ ### Breaking Changes
118
+
119
+ - **`WorkflowBuilder.step()`** signature changed from 5 params `(id, name, description, prompt, opts?)` to 4 params `(id, description, prompt, opts?)`. The `name` field is removed — `description` now serves as the display name.
120
+ - **`WorkflowStepDefinition`** removed `name` field. Use `description` for human-readable display names.
121
+
122
+ ### Features
123
+
124
+ - **Workflow orchestration engine** with DAG execution, topological sort, and parallel step execution
125
+ - **Builder DSL** (`sdk.workflow.define(...).step(...).run()`) and **JSON API** dual design paths
126
+ - **Agent-orchestrated workflows**: Agent designs and executes workflow JSON via a `run_workflow` custom tool
127
+ - **Tool registry pattern** (`sdk.getTool(name)`) enabling JSON-defined workflows to reference tools by name
128
+ - **Step mode**: `'react'` (default, full tool loop) or `'single'` (no tool use, `tool_choice: none`)
129
+ - **Variable interpolation** in step prompts: `$steps.<id>.text`, `$steps.<id>.toolCalls`, `$PARAM_NAME`
130
+ - **`parallel()`** and **`race()`** primitives for concurrent task execution
131
+ - **`SessionManager`** with idle timeout, auto-prune, stats, and lifecycle management
132
+ - **Session checkpoints**: `saveCheckpoint()`, `restoreCheckpoint()`, `listCheckpoints()`, `deleteCheckpoint()`
133
+ - **OpenAI protocol compatibility**: new `provider: 'openai'` option in `createAgentSdk()`. Use OpenAI, DeepSeek, or any OpenAI-compatible API with the same SDK surface. Automatic Anthropic ↔ OpenAI format translation.
134
+ - **Alignment with Claude Code architecture**: tool self-declaration (isReadOnly/isDestructive/checkPermissions), canUseTool callback, compaction layered defense + circuit breaker, post-compaction context restoration, stop hooks system
135
+ - Session lifecycle management: idle timeout, prune by age/status, close idle
136
+
137
+ ### Docs
138
+
139
+ - Added agent-orchestrated workflow section (1.2) to EN and ZH tutorial docs
140
+ - Documented OpenAI protocol configuration in setup/quickstart (EN + ZH)
141
+
142
+ ### Examples
143
+
144
+ - Added `workflow-annotated.ts` — annotated walkthrough of every API parameter
145
+ - Added `workflow-agent-orchestration.ts` — Agent autonomously designs and executes workflows
146
+ - Added `actoviq-platform.ts` — consolidated workspaces + swarm + session memory + dream
147
+ - Removed 8 redundant examples (buddy, computer-use, dream, memory, session-memory, skills, swarm, workspaces)
148
+ - 12 focused examples remaining
149
+
150
+ ### Fixes
151
+
152
+ - 18 bugs across provider layer, runtime, and workflow engine
153
+ - Missing public API exports (trackRecentFile, resolveActoviqStopHooks, etc.)
154
+
155
+ ### Internal
156
+
157
+ - Fixed regex for hyphenated step IDs in variable interpolation (`\w+` → `[\w-]+`)
158
+ - Defensive `?.` checks on optional `dependsOn` and `steps` fields across workflow engine
159
+ - `getTool()` public method on `ActoviqAgentClient` for tool registry lookup
160
+
161
+ ## v0.1.12 - 2026-05-06
162
+
163
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.11...v0.1.12
164
+
165
+ ## v0.1.11 - 2026-04-04
166
+
167
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.9...v0.1.11
168
+
169
+ ## v0.1.10 - 2026-04-03
170
+
171
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.9...v0.1.10
172
+
173
+ ## v0.1.9 - 2026-04-03
174
+
175
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.8...v0.1.9
176
+
177
+ ## v0.1.8 - 2026-04-03
178
+
179
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.7...v0.1.8
180
+
181
+ ## v0.1.7 - 2026-04-02
182
+
183
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.6...v0.1.7
184
+
185
+ ## v0.1.6 - 2026-04-02
186
+
187
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.5...v0.1.6
188
+
189
+ ## v0.1.5 - 2026-04-02
190
+
191
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.4...v0.1.5
192
+
193
+ ## v0.1.4 - 2026-04-02
194
+
195
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.3...v0.1.4
196
+
197
+ ## v0.1.3 - 2026-04-01
198
+
199
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.2...v0.1.3
200
+
201
+ ## v0.1.2 - 2026-04-01
202
+
203
+ **Full Changelog**: https://github.com/DeconBear/actoviq-agent-sdk/compare/v0.1.1...v0.1.2
package/README-zh.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  文档站地址:https://deconbear.github.io/actoviq-agent-sdk/
11
11
 
12
- **Actoviq** 是一个 agent team 平台 —— 一个 TypeScript 框架,用于将多个 AI agent、运行时和提供商组合成协作的多 agent 系统。它起源于可编程 agent SDK,但现在的目标是解决 **多 agent、多运行时状态管理** **model team 协作**:协调多个专用模型、跨提供商路由、以及使用共享上下文编排 agent 集群。
12
+ **Actoviq**(`0.4.x`)是 TypeScript agent SDK agent-team 平台,含 TUI、GUI、Bridge 与多 agent 协作。未来的 **1.0** 线将稳定 package subpath 契约;该表面**尚未发布**。GUI 仍隐藏部分开发中面板(详见 `CHANGELOG.md` 0.4.7)。
13
13
 
14
14
  受 Claude Code、Codex、Deepagents 等项目启发。Actoviq 保持独立,拥有自己的公开 API 与文档。
15
15
 
@@ -21,9 +21,9 @@
21
21
 
22
22
  ## 亮点
23
23
 
24
- - **Model Team** — `panel-analysis`(并行调查 + 收敛)和 `reviewer`(只报告可验证问题的审计者)。集中化运行时(`src/team/teamRuntime.ts`),每个成员有稳定身份,流式 `TeamEvent`,每成员独立 provider 配置,全局 AgentPool。
24
+ - **Model Team** — `panel-analysis`(并行调查 + 收敛)和 `reviewer`(只报告可验证问题的审计者)。runtime-owned 成员池、流式 `TeamEvent`、成员 provider 配置,以及继承的权限/重试边界。
25
25
  - **Model Router / Leader-Dispatch** — 每轮由 leader 分派到最佳 specialist(任意模型/提供商),执行者自身也可召集 team。Profile 位于 `~/.actoviq/routers/`。
26
- - **Dynamic Workflows** — JS 脚本多 agent 编排:`agent()`/`parallel()`/`pipeline()` 原语,沙箱运行时,Schema 强制。
26
+ - **Dynamic Workflows** — 显式信任等级的 JS 编排:trusted 兼容执行、隔离 local-process,或由 host 提供的远程/container 强 sandbox;local process 不宣传为对抗性多租户沙箱。
27
27
  - **Bridge(命名连接配置)** — 进程内运行时切换:预配置 `anthropic`/`openai` 后端,命名 + apiKey + baseURL + model,命名切换,多轮上下文保留。`/bridge config` 单页编辑器;`/bridge` 列出已保存配置;`/cost` 中按配置展示用量。
28
28
  - **桌面 GUI (`actoviq-gui`)** — Electron 聊天 UI:流式 transcript、对话历史、命令面板、设置、每工具权限提示。安全增强。
29
29
  - **TUI (`actoviq-tui`)** — 终端 UI,25+ 斜杠命令,Claude Code 风格 UX:`/team`、`/bridge`、`/plan`、`/hooks`、`/mcp`、`/review`、`/context`、`/cost`、`/doctor` 等。实时状态旋转器、滚动 transcript、todo 面板、项目/用户级权限对话框、子命令自动补全。
@@ -32,6 +32,16 @@
32
32
  - **TavilySearch** — AI 优化网络搜索,纯 TypeScript。
33
33
  - **Standard Benchmark** — 自包含框架,DeepSeek judge,HTML dashboard,4-agent 对比。
34
34
 
35
+ ## 1.0 SDK 架构
36
+
37
+ - `core`:不可变 `AgentSpec`、canonical items、structured output、guardrail、usage 与 run error。
38
+ - `providers`:统一 `ModelProvider` contract,以及 capability-checked OpenAI Responses、OpenAI Chat-compatible、Anthropic adapter。
39
+ - `runtime`:单一 `AgentRuntime`、lazy `RuntimeServices`、固定阶段 middleware、tool/policy、有界 stream、checkpoint、interruption/resume。
40
+ - `node`:tenant-scoped SQLite session/checkpoint/memory/artifact store 与 backup-first JSON v1 migration。
41
+ - `events` / `surfaces`:版本化、可 trace 的 `RunEvent`,以及统一 CLI/TUI/GUI/Bridge 语义和 redaction。
42
+ - `orchestration` / `workflow` / `profiles`:agent-as-tool、handoff、durable spawn、graph/preset、workflow trust 与六类 profile。
43
+ - `compat`:0.x root façade 与迁移 adapter,在整个 1.x 保留。
44
+
35
45
  ## 路线图 — 迈向 agent team
36
46
 
37
47
  - **Swarm 协作** — 基于邮箱的 agent 间通信、任务队列、共享知识图谱。
@@ -41,6 +51,9 @@
41
51
 
42
52
  ## 安装
43
53
 
54
+ 要求 Node.js 22.13+ 或 Node.js 24。Node 22.5–22.12 的 `node:sqlite` 仍要求宿主进程 flag,
55
+ 因此不属于默认 Runtime 支持范围。
56
+
44
57
  ```bash
45
58
  npm install actoviq-agent-sdk zod
46
59
  ```
@@ -53,36 +66,41 @@ npm install actoviq-agent-sdk zod
53
66
 
54
67
  也可以使用 `loadJsonConfigFile(...)` 预加载自定义 JSON 文件。
55
68
 
56
- ## 快速开始
69
+ ## 快速开始(1.0 runtime)
57
70
 
58
71
  ```ts
59
- import { createAgentSdk, loadDefaultActoviqSettings } from 'actoviq-agent-sdk';
60
-
61
- await loadDefaultActoviqSettings();
62
-
63
- // 默认 Anthropic 协议
64
- const sdk = await createAgentSdk();
65
-
66
- // 或使用 OpenAI / OpenAI 兼容 API
67
- const sdk = await createAgentSdk({
68
- provider: 'openai',
69
- baseURL: 'https://api.deepseek.com',
70
- model: 'deepseek-chat',
72
+ import type { AgentSpec } from 'actoviq-agent-sdk/core';
73
+ import { ModelRegistry, OpenAIResponsesProvider } from 'actoviq-agent-sdk/providers';
74
+ import { AgentRuntime } from 'actoviq-agent-sdk/runtime';
75
+
76
+ const runtime = new AgentRuntime({
77
+ models: new ModelRegistry([
78
+ new OpenAIResponsesProvider({ apiKey: process.env.OPENAI_API_KEY }),
79
+ ]),
71
80
  });
81
+ const agent: AgentSpec = {
82
+ id: 'concise-chat',
83
+ name: 'Concise chat',
84
+ instructions: '请用一句话回答。',
85
+ model: 'openai-responses:gpt-4.1-mini',
86
+ };
72
87
 
73
88
  try {
74
- const result = await sdk.run('简要介绍一下你自己。');
75
- console.log(result.text);
89
+ const result = await runtime.run(agent, '什么是 CAS?');
90
+ console.log(result.output, result.usage.totalTokens);
76
91
  } finally {
77
- await sdk.close();
92
+ await runtime.close();
78
93
  }
79
94
  ```
80
95
 
96
+ 0.x 应用可继续从 package root 或 `/compat` 导入 `createAgentSdk`。新应用应使用上述职责 subpath;迁移步骤见 [1.0 迁移指南](./docs/zh/09-sdk-v2-migration-guide.md)。
97
+
81
98
  运行仓库示例:
82
99
 
83
100
  ```bash
84
101
  npm run example:actoviq-quickstart
85
102
  npm run example:actoviq-agent-helpers
103
+ npm run example:profiles
86
104
  ```
87
105
 
88
106
  ## CLI REPL
@@ -116,6 +134,13 @@ npx actoviq-tui [工作目录] [选项]
116
134
  npx actoviq-gui [工作目录] [选项]
117
135
  ```
118
136
 
137
+ - Project 详情提供 `Document` / `Issues` 双 Tab。Issue 支持优先级、标签、验收标准、评论,以及受守卫保护的 `backlog → todo → in_progress → in_review/blocked → done` 生命周期。
138
+ - Settings → Models & routing 可创建 Agent Profile,将 bridge config 与模型绑定。`/issues start <id> [agent-profile]` 会先让 Project Manager 生成任务书,再创建关联会话;执行 agent 通过 `IssueReport` 汇报待审或阻塞状态。
139
+ - Issue 与会话可双向跳转。Issue 默认保存在 `<data-root>/projects/<workspace-key>/issues.json`,也可切换到受保护的工作区文件 `.actoviq/issues.json`。
140
+ - Settings → General 可将完整数据根目录迁移到空目录:复制并校验数据、写入 bootstrap 指针、重建 SDK/session store,并保留旧目录供手动清理。
141
+
142
+ 数据根目录解析优先级为:显式 SDK `homeDir` → `ACTOVIQ_HOME` → `~/.actoviq/data-root.json` → `~/.actoviq`。
143
+
119
144
  ## 开发者笔记
120
145
 
121
146
  - **启动 CLI/GUI 前构建:** `npm run build`(clean + `tsc`)。仅类型检查用 `npm run typecheck`;运行测试套件用 `npm test -- --run`。
@@ -133,6 +158,16 @@ npx actoviq-gui [工作目录] [选项]
133
158
  - [examples/actoviq-quickstart.ts](./examples/actoviq-quickstart.ts)
134
159
  - [examples/actoviq-workflow.ts](./examples/actoviq-workflow.ts)
135
160
  - [examples/actoviq-agent-helpers.ts](./examples/actoviq-agent-helpers.ts)
161
+ - [examples/profiles/all-profiles.ts](./examples/profiles/all-profiles.ts)
162
+
163
+ 架构与运维文档:
164
+
165
+ - [架构审计与实施规划](./docs/zh/08-sdk-architecture-audit-and-optimization-plan.md)
166
+ - [1.0 迁移指南](./docs/zh/09-sdk-v2-migration-guide.md)
167
+ - [支持、安全、SemVer 与 failure model](./docs/zh/10-support-security-semver-and-failure-model.md)
168
+ - [JSON v1 → SQLite 迁移 Runbook](./docs/zh/11-json-v1-to-sqlite-migration-runbook.md)
169
+ - [1.0 实施与端到端验收报告](./docs/zh/12-sdk-1.0-implementation-and-verification-report.md)
170
+ - [安全报告政策](./SECURITY.md)
136
171
 
137
172
  ## 参与贡献
138
173
 
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  Documentation site: https://deconbear.github.io/actoviq-agent-sdk/
11
11
 
12
- **Actoviq** is an agent team platform — a TypeScript framework for composing multiple AI agents, runtimes, and providers into collaborative multi-agent systems. It grew out of a programmable agent SDK but now targets the **multi-agent, multi-runtime state management** and **model team collaboration** space: coordinating specialized models, routing turns across providers, and orchestrating agent swarms with shared context.
12
+ **Actoviq** (`0.4.x`) is a TypeScript agent SDK and agent-team platform with TUI, GUI, Bridge, and multi-agent collaboration. A future **1.0** line will stabilize package subpath contracts; that surface is **not published yet**. The GUI still hides some under-development panels (see `CHANGELOG.md` for 0.4.7).
13
13
 
14
14
  Inspired by Claude Code, Codex, Deepagents, and the broader agent ecosystem. Actoviq remains independent with its own public surface and documentation.
15
15
 
@@ -21,9 +21,9 @@ Inspired by Claude Code, Codex, Deepagents, and the broader agent ecosystem. Act
21
21
 
22
22
  ## Highlights
23
23
 
24
- - **Model Team** — `panel-analysis` (parallel investigation + convergence) and `reviewer` (verifiable-issues-only auditor). Centralized runtime (`src/team/teamRuntime.ts`) per stable member identity, streamed `TeamEvent`s, per-member provider config, `$ENV_VAR` apiKey resolution, global AgentPool.
24
+ - **Model Team** — `panel-analysis` (parallel investigation + convergence) and `reviewer` (verifiable-issues-only auditor). Runtime-owned member pooling, streamed `TeamEvent`s, per-member provider config, and inherited permission/retry boundaries.
25
25
  - **Model Router / Leader-Dispatch** — a leader classifies each turn and dispatches it to the best specialist route (any model/provider), runs normally, and the executor may itself convene a team. Profiles in `~/.actoviq/routers/`.
26
- - **Dynamic Workflows** — JS script-based multi-agent orchestration: `agent()`/`parallel()`/`pipeline()` primitives, sandboxed runtime, schema enforcement.
26
+ - **Dynamic Workflows** — JS script-based orchestration with explicit trust levels: trusted compatibility execution, isolated local-process execution, or a host-supplied remote/container sandbox for adversarial inputs.
27
27
  - **Bridge (named connection configs)** — in-process runtime switching: pre-configure `anthropic`/`openai` backends with name + apiKey + baseURL + model, switch by name mid-session, multi-turn context survives (same session). `/bridge config` single-page editor; `/bridge` lists saved configs; per-config usage tracking in `/cost`.
28
28
  - **Desktop GUI (`actoviq-gui`)** — Electron chat UI: streamed transcript, conversation history, command palette, settings, per-tool permission prompts. Security-hardened.
29
29
  - **TUI (`actoviq-tui`)** — Terminal UI with 25+ slash commands, Claude Code-style UX: `/team`, `/bridge`, `/plan`, `/hooks`, `/mcp`, `/review`, `/context`, `/cost`, `/doctor`, and more. Live status spinner, scrollback transcript, todo panel, permission dialogs with project/user scope, sub-command autocomplete.
@@ -32,6 +32,16 @@ Inspired by Claude Code, Codex, Deepagents, and the broader agent ecosystem. Act
32
32
  - **TavilySearch** — AI-optimized web search, pure TypeScript.
33
33
  - **Standard Benchmark** — Self-contained framework with DeepSeek judge, HTML dashboard, 4-agent comparison.
34
34
 
35
+ ## 1.0 SDK architecture
36
+
37
+ - `core`: immutable `AgentSpec`, canonical input/output items, structured output, guardrails, usage, and run errors.
38
+ - `providers`: capability-checked OpenAI Responses, OpenAI Chat-compatible, and Anthropic adapters behind one `ModelProvider` contract.
39
+ - `runtime`: one `AgentRuntime`, lazy `RuntimeServices`, fixed-stage middleware, tools/policy, bounded streams, checkpoints, interruption, and resume.
40
+ - `node`: tenant-scoped SQLite session/checkpoint/memory/artifact stores and backup-first JSON v1 migration.
41
+ - `events` and `surfaces`: versioned traceable `RunEvent`s plus shared CLI/TUI/GUI/Bridge semantics and redaction.
42
+ - `orchestration`, `workflow`, and `profiles`: agent-as-tool, handoff, durable spawn, graphs/presets, explicit workflow trust, and six composable agent profiles.
43
+ - `compat`: the 0.x root façade and migration adapters, retained throughout the 1.x line.
44
+
35
45
  ## Roadmap — toward agent teams
36
46
 
37
47
  - **Swarm coordination** — mailbox-based inter-agent communication, task queues, shared knowledge graph.
@@ -41,6 +51,10 @@ Inspired by Claude Code, Codex, Deepagents, and the broader agent ecosystem. Act
41
51
 
42
52
  ## Install
43
53
 
54
+ Node.js 22.13+ or Node.js 24 is required. Node 22.5–22.12 exposes
55
+ `node:sqlite` only behind a process flag and is therefore outside the default
56
+ runtime support contract.
57
+
44
58
  ```bash
45
59
  npm install actoviq-agent-sdk zod
46
60
  ```
@@ -53,36 +67,41 @@ For local examples, place your config at:
53
67
 
54
68
  You can also preload a custom JSON file with `loadJsonConfigFile(...)`.
55
69
 
56
- ## Quick Start
70
+ ## Quick Start (1.0 runtime)
57
71
 
58
72
  ```ts
59
- import { createAgentSdk, loadDefaultActoviqSettings } from 'actoviq-agent-sdk';
60
-
61
- await loadDefaultActoviqSettings();
62
-
63
- // Default: Anthropic protocol
64
- const sdk = await createAgentSdk();
65
-
66
- // Or use OpenAI / OpenAI-compatible APIs (DeepSeek, vLLM, etc.)
67
- const sdk = await createAgentSdk({
68
- provider: 'openai',
69
- baseURL: 'https://api.deepseek.com',
70
- model: 'deepseek-chat',
73
+ import type { AgentSpec } from 'actoviq-agent-sdk/core';
74
+ import { ModelRegistry, OpenAIResponsesProvider } from 'actoviq-agent-sdk/providers';
75
+ import { AgentRuntime } from 'actoviq-agent-sdk/runtime';
76
+
77
+ const runtime = new AgentRuntime({
78
+ models: new ModelRegistry([
79
+ new OpenAIResponsesProvider({ apiKey: process.env.OPENAI_API_KEY }),
80
+ ]),
71
81
  });
82
+ const agent: AgentSpec = {
83
+ id: 'concise-chat',
84
+ name: 'Concise chat',
85
+ instructions: 'Answer in one short sentence.',
86
+ model: 'openai-responses:gpt-4.1-mini',
87
+ };
72
88
 
73
89
  try {
74
- const result = await sdk.run('Introduce yourself in one short sentence.');
75
- console.log(result.text);
90
+ const result = await runtime.run(agent, 'What is compare-and-swap?');
91
+ console.log(result.output, result.usage.totalTokens);
76
92
  } finally {
77
- await sdk.close();
93
+ await runtime.close();
78
94
  }
79
95
  ```
80
96
 
97
+ Existing 0.x applications may keep importing `createAgentSdk` from the package root or `/compat`. See the [1.0 migration guide](./docs/zh/09-sdk-v2-migration-guide.md); new applications should use the responsibility subpaths above.
98
+
81
99
  Run the repository examples with:
82
100
 
83
101
  ```bash
84
102
  npm run example:actoviq-quickstart
85
103
  npm run example:actoviq-agent-helpers
104
+ npm run example:profiles
86
105
  ```
87
106
 
88
107
  ## CLI REPL
@@ -161,9 +180,14 @@ It opens an Electron window backed by a localhost-only HTTP server. Features:
161
180
  - **Conversation history on resume** — opening or switching a chat replays its stored messages
162
181
  - **Command palette + slash commands**, settings (provider / model / keys / appearance), workspace switching, and empty-chat cleanup
163
182
  - **Per-tool permission prompts** (queued so concurrent requests don't collide) and a token-usage readout
183
+ - **Project Documents + Issues** — each Project detail page has `Document` and `Issues` tabs. Issues use the guarded `backlog → todo → in_progress → in_review/blocked → done` lifecycle, support priorities, labels, acceptance criteria, comments, and links back to their worker sessions.
184
+ - **Agent Profiles for issue dispatch** — Settings → Models & routing can bind a named profile to a saved bridge config and model. `/issues start <id> [agent-profile]` asks the Project Manager for a worker brief, starts a linked session without changing the globally active runtime, and requires the worker to report through `IssueReport`.
185
+ - **Movable data root** — Settings → General can copy the complete Actoviq data root to an empty directory, validate it, write the bootstrap pointer, rebuild the SDK/session store, and retain the previous directory for manual cleanup.
164
186
 
165
187
  **Security model:** the internal API is reachable only from loopback (Host + Origin allowlist, which defeats DNS-rebinding / CSRF) and requires a per-process token; the page ships a strict Content-Security-Policy. Electron runs with `sandbox`, `contextIsolation`, and no `nodeIntegration`.
166
188
 
189
+ Actoviq resolves its data root in this order: an explicit SDK `homeDir`, `ACTOVIQ_HOME`, `~/.actoviq/data-root.json`, then `~/.actoviq`. Project issues default to `<data-root>/projects/<workspace-key>/issues.json`; a project can instead use the protected workspace file `.actoviq/issues.json`.
190
+
167
191
  > `electron` and `bun` are **optional** dependencies — installed only if you use the GUI / bridge runtime. The core SDK does not require them.
168
192
  >
169
193
  > **Bridge env overrides:** `ACTOVIQ_CLAUDE_PATH`, `ACTOVIQ_PI_PATH`, … (one per provider) to point the bridge at a specific runtime binary when it's not on `PATH`. See `docs/en/05-bridge-runtime.md`.
@@ -187,6 +211,16 @@ Start with these examples:
187
211
  - [examples/actoviq-quickstart.ts](./examples/actoviq-quickstart.ts)
188
212
  - [examples/actoviq-workflow.ts](./examples/actoviq-workflow.ts)
189
213
  - [examples/actoviq-agent-helpers.ts](./examples/actoviq-agent-helpers.ts)
214
+ - [examples/profiles/all-profiles.ts](./examples/profiles/all-profiles.ts)
215
+
216
+ Architecture and operations:
217
+
218
+ - [Architecture audit and implementation plan](./docs/zh/08-sdk-architecture-audit-and-optimization-plan.md)
219
+ - [1.0 migration guide](./docs/zh/09-sdk-v2-migration-guide.md)
220
+ - [Support, security, SemVer, and failure model](./docs/zh/10-support-security-semver-and-failure-model.md)
221
+ - [JSON v1 to SQLite migration runbook](./docs/zh/11-json-v1-to-sqlite-migration-runbook.md)
222
+ - [1.0 implementation and verification report](./docs/zh/12-sdk-1.0-implementation-and-verification-report.md)
223
+ - [Security policy](./SECURITY.md)
190
224
 
191
225
  ## Contributing
192
226
 
package/SECURITY.md ADDED
@@ -0,0 +1,26 @@
1
+ # Security Policy
2
+
3
+ ## Supported versions
4
+
5
+ Security fixes are provided for the latest Actoviq Agent SDK 1.x minor release. The legacy root compatibility façade remains supported throughout 1.x. Node.js 22.5+ and Node.js 24 are the supported runtime lines.
6
+
7
+ ## Reporting a vulnerability
8
+
9
+ Do not open a public issue for a suspected vulnerability. Use the repository's [private vulnerability reporting form](https://github.com/DeconBear/actoviq-agent-sdk/security/advisories/new). Include:
10
+
11
+ - affected version/commit, Node version, and operating system;
12
+ - the smallest reproducible scenario and required configuration;
13
+ - security boundary crossed and likely impact;
14
+ - whether credentials, tenant data, workspace files, or side effects are involved;
15
+ - any known workaround or evidence that exploitation is active.
16
+
17
+ Avoid including real credentials or private user data. If private reporting is unavailable, open a public issue containing no exploit details and ask a maintainer to establish a private channel.
18
+
19
+ The maintainers will acknowledge receipt, validate severity, coordinate remediation and disclosure, and publish an advisory when appropriate. Response targets and the full threat/failure policy are documented in [docs/zh/10-support-security-semver-and-failure-model.md](docs/zh/10-support-security-semver-and-failure-model.md).
20
+
21
+ ## Security boundaries
22
+
23
+ - `LocalIsolatedProcessWorkflowExecutor` reduces ambient access but is not an adversarial multi-tenant sandbox. Use a container or remote sandbox executor for untrusted workloads.
24
+ - A timeout or transport error does not prove that a remote side effect did not occur. Reconcile `started` or `unknown` operations before retrying.
25
+ - Provider raw responses and legacy unknown blocks may contain sensitive data. They are opt-in or retained for audit and are not replayed across providers by default.
26
+ - Hosts remain responsible for provider credentials, exporter retention, tool permission policy, tenant identity, and workspace authorization.
Binary file
@@ -1,15 +1,40 @@
1
1
  #!/usr/bin/env node
2
- import { spawn } from 'node:child_process';
2
+ import { existsSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ import { spawn, spawnSync } from 'node:child_process';
3
5
  import { createRequire } from 'node:module';
4
6
  import { fileURLToPath } from 'node:url';
5
7
 
6
8
  const require = createRequire(import.meta.url);
7
- const electron = require('electron');
9
+ const rootDir = fileURLToPath(new URL('..', import.meta.url));
8
10
  const main = fileURLToPath(new URL('../dist/src/gui/electronMain.js', import.meta.url));
11
+ const prepareLauncher = fileURLToPath(new URL('../scripts/prepare-gui-launcher.mjs', import.meta.url));
12
+
13
+ function resolveElectronExecutable() {
14
+ const electronExe = require('electron');
15
+ if (process.platform === 'win32') {
16
+ const brandedLauncher = join(dirname(electronExe), 'Actoviq.exe');
17
+ if (!existsSync(brandedLauncher)) {
18
+ const prep = spawnSync(process.execPath, [prepareLauncher], { stdio: 'inherit' });
19
+ if (prep.status !== 0) {
20
+ process.stderr.write(
21
+ 'Actoviq: branded launcher unavailable; taskbar may show the Electron icon.\n',
22
+ );
23
+ }
24
+ }
25
+ if (existsSync(brandedLauncher)) return brandedLauncher;
26
+ }
27
+ return electronExe;
28
+ }
29
+
30
+ const electron = resolveElectronExecutable();
9
31
 
10
32
  const child = spawn(electron, [main, ...process.argv.slice(2)], {
11
33
  stdio: 'inherit',
12
- env: process.env,
34
+ env: {
35
+ ...process.env,
36
+ ACTOVIQ_GUI_ROOT: rootDir,
37
+ },
13
38
  windowsHide: false,
14
39
  });
15
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"actoviqBuddy.d.ts","sourceRoot":"","sources":["../../../src/buddy/actoviqBuddy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,qBAAqB,EAGrB,2BAA2B,EAC3B,mBAAmB,EACnB,yBAAyB,EACzB,gCAAgC,EAEhC,oBAAoB,EACpB,gBAAgB,EAEhB,iBAAiB,EAGjB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAmPrB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEjE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,GAAE,mBAAwB;IAEzD,KAAK,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAUpE,GAAG,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAIlF,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiBxE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAU7F,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInE,MAAM,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI/D,GAAG,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAcjF,gBAAgB,CACpB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAsB3C,kBAAkB,CACtB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAI7C,YAAY,CAChB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG/B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,GAAG,eAAe,CAExF"}
1
+ {"version":3,"file":"actoviqBuddy.d.ts","sourceRoot":"","sources":["../../../src/buddy/actoviqBuddy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,qBAAqB,EAGrB,2BAA2B,EAC3B,mBAAmB,EACnB,yBAAyB,EACzB,gCAAgC,EAEhC,oBAAoB,EACpB,gBAAgB,EAEhB,iBAAiB,EAGjB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAkPrB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEjE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,GAAE,mBAAwB;IAEzD,KAAK,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAUpE,GAAG,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAIlF,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiBxE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAU7F,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInE,MAAM,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI/D,GAAG,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAcjF,gBAAgB,CACpB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAsB3C,kBAAkB,CACtB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAI7C,YAAY,CAChB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAG/B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,GAAG,eAAe,CAExF"}
@@ -1,7 +1,7 @@
1
- import os from 'node:os';
2
1
  import path from 'node:path';
3
2
  import { mkdir, readFile, writeFile } from 'node:fs/promises';
4
3
  import { getLoadedJsonConfig, loadJsonConfigFile } from '../config/loadJsonConfigFile.js';
4
+ import { resolveActoviqHome } from '../config/actoviqHome.js';
5
5
  import { ConfigurationError } from '../errors.js';
6
6
  import { isRecord } from '../runtime/helpers.js';
7
7
  import { ACTOVIQ_BUDDY_EYES, ACTOVIQ_BUDDY_HATS, ACTOVIQ_BUDDY_RARITIES, ACTOVIQ_BUDDY_SPECIES, ACTOVIQ_BUDDY_STAT_NAMES, } from '../types.js';
@@ -97,7 +97,7 @@ function rollFromSeed(seed) {
97
97
  };
98
98
  }
99
99
  function defaultBuddySettingsPath(homeDir) {
100
- return path.join(homeDir, '.actoviq', 'settings.json');
100
+ return path.join(resolveActoviqHome(homeDir), 'settings.json');
101
101
  }
102
102
  function parseStoredBuddy(value) {
103
103
  if (!isRecord(value)) {
@@ -159,8 +159,7 @@ async function persistRawSettings(filePath, next) {
159
159
  }
160
160
  async function resolveBuddyContext(options = {}) {
161
161
  const loaded = getLoadedJsonConfig();
162
- const homeDir = options.homeDir ?? os.homedir();
163
- const configPath = options.configPath ?? loaded?.path ?? defaultBuddySettingsPath(homeDir);
162
+ const configPath = options.configPath ?? loaded?.path ?? defaultBuddySettingsPath(options.homeDir);
164
163
  const raw = loaded?.path === configPath && loaded.raw && isRecord(loaded.raw)
165
164
  ? structuredClone(loaded.raw)
166
165
  : await readRawSettings(configPath);