@crewx/sdk 0.9.0-rc.17 → 0.9.0-rc.170

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 (343) hide show
  1. package/README.md +1 -1
  2. package/dist/account/auth-client.d.ts +61 -0
  3. package/dist/account/auth-json-v2.d.ts +1 -0
  4. package/dist/account/auth-json.d.ts +30 -0
  5. package/dist/account/config.d.ts +37 -0
  6. package/dist/account/env-bootstrap.d.ts +11 -0
  7. package/dist/account/errors.d.ts +24 -0
  8. package/dist/account/index.d.ts +12 -0
  9. package/dist/account/index.js +2 -0
  10. package/dist/account/session-manager.d.ts +47 -0
  11. package/dist/activity-log/builder.d.ts +59 -6
  12. package/dist/agent/agent-list-view.d.ts +19 -0
  13. package/dist/agent-interceptor/chain.d.ts +25 -0
  14. package/dist/agent-interceptor/index.d.ts +6 -0
  15. package/dist/agent-interceptor/model-runner.d.ts +19 -0
  16. package/dist/agent-interceptor/program-runner.d.ts +13 -0
  17. package/dist/agent-interceptor/protocol.d.ts +68 -0
  18. package/dist/agent-interceptor/run-stop.d.ts +3 -0
  19. package/dist/agent-interceptor/schema.d.ts +267 -0
  20. package/dist/agent-interceptor/types.d.ts +88 -0
  21. package/dist/app/app.d.ts +167 -0
  22. package/dist/app/backend-env.d.ts +3 -0
  23. package/dist/app/content-media-types.d.ts +2 -0
  24. package/dist/app/context.d.ts +2 -0
  25. package/dist/app/entry.d.ts +9 -0
  26. package/dist/app/frame.d.ts +55 -0
  27. package/dist/app/index.d.ts +18 -0
  28. package/dist/app/index.js +12 -0
  29. package/dist/app/job-bridge.child.d.ts +1 -0
  30. package/dist/app/job-bridge.d.ts +67 -0
  31. package/dist/app/job-bridge.drain.child.d.ts +1 -0
  32. package/dist/app/job-bridge.example.d.ts +11 -0
  33. package/dist/app/job-contract.d.ts +40 -0
  34. package/dist/app/job-wire.d.ts +149 -0
  35. package/dist/app/protocol.d.ts +9 -0
  36. package/dist/app/runtime.d.ts +23 -0
  37. package/dist/app/schedule-contract.d.ts +59 -0
  38. package/dist/app/tool-mode.d.ts +3 -0
  39. package/dist/app-artifact-policy/check.d.ts +2 -0
  40. package/dist/app-artifact-policy/contract.d.ts +54 -0
  41. package/dist/app-artifact-policy/helper.d.ts +15 -0
  42. package/dist/app-artifact-policy/index.d.ts +3 -0
  43. package/dist/app-artifact-policy/index.js +18 -0
  44. package/dist/app-artifact-policy/paths.d.ts +24 -0
  45. package/dist/app-artifact-policy/scan.d.ts +47 -0
  46. package/dist/boxing/box.types.d.ts +4 -0
  47. package/dist/config/canonicalize-agent-options.d.ts +18 -0
  48. package/dist/config/default-agent-models.d.ts +11 -0
  49. package/dist/config/global-settings.d.ts +33 -0
  50. package/dist/config/migrate-grok-mode.d.ts +6 -0
  51. package/dist/config/model-compat.d.ts +31 -0
  52. package/dist/config/models.generated.d.ts +37 -0
  53. package/dist/config/models.remote.d.ts +1 -0
  54. package/dist/config/overdrive.d.ts +7 -0
  55. package/dist/config/pricing.d.ts +6 -3
  56. package/dist/config/pricing.generated.d.ts +4 -0
  57. package/dist/config/pricing.types.d.ts +4 -0
  58. package/dist/config/timeout.config.d.ts +4 -0
  59. package/dist/config/wi-boards.d.ts +19 -0
  60. package/dist/context-budget/continuity.d.ts +63 -0
  61. package/dist/context-budget/index.d.ts +142 -0
  62. package/dist/conversation/index.d.ts +1 -1
  63. package/dist/conversation/sqlite-provider.d.ts +6 -3
  64. package/dist/conversation/to-template-messages.d.ts +9 -0
  65. package/dist/conversation/types.d.ts +58 -1
  66. package/dist/desktop/command-runner.d.ts +4 -0
  67. package/dist/desktop/default-adapters.d.ts +4 -0
  68. package/dist/desktop/global-install.d.ts +19 -0
  69. package/dist/desktop/index.d.ts +3 -0
  70. package/dist/desktop/index.js +3 -0
  71. package/dist/desktop/install.d.ts +5 -0
  72. package/dist/desktop/lnk.d.ts +22 -0
  73. package/dist/desktop/manifest.d.ts +21 -0
  74. package/dist/desktop/types.d.ts +67 -0
  75. package/dist/desktop/version.d.ts +1 -0
  76. package/dist/desktop/windows-paths.d.ts +21 -0
  77. package/dist/desktop/wrapper.d.ts +18 -0
  78. package/dist/esm/account/index.js +2 -0
  79. package/dist/esm/app/index.js +12 -0
  80. package/dist/esm/app-artifact-policy/index.js +18 -0
  81. package/dist/esm/desktop/index.js +3 -0
  82. package/dist/esm/index.js +1175 -224
  83. package/dist/esm/node/index.js +2 -0
  84. package/dist/esm/plugins/index.js +527 -214
  85. package/dist/esm/process/index.js +1 -0
  86. package/dist/esm/publish/index.js +2 -0
  87. package/dist/esm/repository/index.js +648 -211
  88. package/dist/esm/skills/index.js +2 -0
  89. package/dist/esm/testing/index.js +1 -1
  90. package/dist/events/types.d.ts +28 -0
  91. package/dist/facade/Crewx.d.ts +70 -5
  92. package/dist/facade/task-ticket.d.ts +14 -0
  93. package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
  94. package/dist/highlight/thread-highlighter.d.ts +326 -0
  95. package/dist/index.browser.d.ts +25 -1
  96. package/dist/index.browser.js +6 -2
  97. package/dist/index.d.ts +157 -17
  98. package/dist/index.js +1175 -224
  99. package/dist/internal/console-decoder.d.ts +38 -0
  100. package/dist/internal/windows-spawn.d.ts +10 -0
  101. package/dist/layout/types.d.ts +18 -1
  102. package/dist/lifecycle/process-lease.d.ts +80 -0
  103. package/dist/lifecycle/process-owner.d.ts +20 -0
  104. package/dist/lifecycle/task-heartbeat.d.ts +41 -0
  105. package/dist/lifecycle/task-stop.d.ts +82 -0
  106. package/dist/lifecycle/update-admission.d.ts +45 -0
  107. package/dist/local-server/base-url.d.ts +18 -0
  108. package/dist/local-server/index.d.ts +8 -0
  109. package/dist/local-server/opencode.d.ts +8 -0
  110. package/dist/local-server/probe.d.ts +3 -0
  111. package/dist/local-server/runtime.d.ts +26 -0
  112. package/dist/local-server/types.d.ts +43 -0
  113. package/dist/mcp-app/agent-access.d.ts +26 -0
  114. package/dist/mcp-app/app-handoff.d.ts +109 -0
  115. package/dist/mcp-app/app-icon-read.d.ts +7 -0
  116. package/dist/mcp-app/app-job-bridge.d.ts +30 -0
  117. package/dist/mcp-app/app-job-bridge.example.d.ts +36 -0
  118. package/dist/mcp-app/app-job.d.ts +168 -0
  119. package/dist/mcp-app/app-schedule.d.ts +85 -0
  120. package/dist/mcp-app/apps-context.d.ts +32 -0
  121. package/dist/mcp-app/bundle-provenance.d.ts +3 -0
  122. package/dist/mcp-app/candidate-registration.d.ts +4 -0
  123. package/dist/mcp-app/card-handler.d.ts +7 -0
  124. package/dist/mcp-app/catalog.d.ts +7 -0
  125. package/dist/mcp-app/content-channel.d.ts +86 -0
  126. package/dist/mcp-app/content-declarations.d.ts +31 -0
  127. package/dist/mcp-app/dev-checks.d.ts +31 -0
  128. package/dist/mcp-app/diagnostic-reason.d.ts +3 -0
  129. package/dist/mcp-app/discovery.d.ts +164 -0
  130. package/dist/mcp-app/errors.d.ts +7 -0
  131. package/dist/mcp-app/index.d.ts +45 -0
  132. package/dist/mcp-app/installed-app-ref.d.ts +25 -0
  133. package/dist/mcp-app/model-context.d.ts +29 -0
  134. package/dist/mcp-app/node-app-discovery-fs.d.ts +23 -0
  135. package/dist/mcp-app/product-bundle-assets.d.ts +27 -0
  136. package/dist/mcp-app/product-bundle-loader.d.ts +53 -0
  137. package/dist/mcp-app/projection.d.ts +14 -0
  138. package/dist/mcp-app/prompt-cards.d.ts +28 -0
  139. package/dist/mcp-app/registry.d.ts +28 -0
  140. package/dist/mcp-app/skill-backend.d.ts +141 -0
  141. package/dist/mcp-app/state-set.d.ts +9 -0
  142. package/dist/mcp-app/types.d.ts +488 -0
  143. package/dist/mcp-app/workspace-app-assets.d.ts +42 -0
  144. package/dist/mcp-app/workspace-app-scan-cache.d.ts +27 -0
  145. package/dist/mcp-app/workspace-snapshot.d.ts +75 -0
  146. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  147. package/dist/migrations/0012_blue_turbo.sql +23 -0
  148. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  149. package/dist/migrations/0014_organic_mongu.sql +73 -0
  150. package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
  151. package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
  152. package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
  153. package/dist/migrations/0018_bored_jackal.sql +33 -0
  154. package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
  155. package/dist/migrations/0020_useful_iron_lad.sql +55 -0
  156. package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
  157. package/dist/migrations/0022_wandering_bucky.sql +1 -0
  158. package/dist/migrations/0023_red_payback.sql +1 -0
  159. package/dist/migrations/0024_storage_metadata.sql +262 -0
  160. package/dist/migrations/0025_task_heartbeat.sql +8 -0
  161. package/dist/migrations/0025_thread_app_instance_ledger.sql +2 -0
  162. package/dist/migrations/0026_mcp_action_source.sql +47 -0
  163. package/dist/migrations/0027_task_stop_scope_cleanup.sql +5 -0
  164. package/dist/migrations/0027_ui_instance_active_unique.sql +2 -0
  165. package/dist/migrations/0029_nice_rhino.sql +1 -0
  166. package/dist/migrations/0031_petite_arclight.sql +6 -0
  167. package/dist/migrations/0032_ui_instance_opened_by.sql +1 -0
  168. package/dist/migrations/0033_thread_creator_boundary_guard.sql +38 -0
  169. package/dist/migrations/0034_keen_fallen_one.sql +36 -0
  170. package/dist/migrations/0035_request_log_daily.sql +11 -0
  171. package/dist/migrations/0036_ui_definition_archive.sql +8 -0
  172. package/dist/migrations/0037_ui_instance_agent_open_request.sql +1 -0
  173. package/dist/migrations/0038_task_rating.sql +3 -0
  174. package/dist/migrations/0039_aspiring_purifiers.sql +9 -0
  175. package/dist/migrations/0040_task_provider_inputs.sql +53 -0
  176. package/dist/migrations/0041_tranquil_vivisector.sql +54 -0
  177. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  178. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  179. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  180. package/dist/migrations/meta/0014_snapshot.json +1975 -0
  181. package/dist/migrations/meta/0015_snapshot.json +2315 -0
  182. package/dist/migrations/meta/0016_snapshot.json +2419 -0
  183. package/dist/migrations/meta/0017_snapshot.json +2419 -0
  184. package/dist/migrations/meta/0018_snapshot.json +2570 -0
  185. package/dist/migrations/meta/0020_snapshot.json +2895 -0
  186. package/dist/migrations/meta/0021_snapshot.json +3031 -0
  187. package/dist/migrations/meta/0022_snapshot.json +3039 -0
  188. package/dist/migrations/meta/0023_snapshot.json +3047 -0
  189. package/dist/migrations/meta/0029_snapshot.json +3206 -0
  190. package/dist/migrations/meta/0031_snapshot.json +3251 -0
  191. package/dist/migrations/meta/0034_snapshot.json +3473 -0
  192. package/dist/migrations/meta/0035_snapshot.json +3547 -0
  193. package/dist/migrations/meta/0036_snapshot.json +3591 -0
  194. package/dist/migrations/meta/0037_snapshot.json +3598 -0
  195. package/dist/migrations/meta/0038_snapshot.json +3626 -0
  196. package/dist/migrations/meta/0039_snapshot.json +3684 -0
  197. package/dist/migrations/meta/0040_snapshot.json +3759 -0
  198. package/dist/migrations/meta/0041_snapshot.json +4156 -0
  199. package/dist/migrations/meta/_journal.json +217 -0
  200. package/dist/node/index.d.ts +1 -0
  201. package/dist/node/index.js +2 -0
  202. package/dist/paths.d.ts +1 -0
  203. package/dist/plugin/types.d.ts +1 -0
  204. package/dist/plugins/index.d.ts +1 -1
  205. package/dist/plugins/index.js +527 -214
  206. package/dist/plugins/sqlite-tracing.d.ts +46 -0
  207. package/dist/process/index.d.ts +2 -0
  208. package/dist/process/index.js +1 -0
  209. package/dist/process/process-control.d.ts +60 -0
  210. package/dist/prompt/tag-names.d.ts +22 -0
  211. package/dist/provider/acp/connection.d.ts +6 -0
  212. package/dist/provider/acp/meta.d.ts +11 -0
  213. package/dist/provider/bridge.d.ts +12 -2
  214. package/dist/provider/classify-task-error.d.ts +2 -0
  215. package/dist/provider/claude-agent-env.d.ts +1 -0
  216. package/dist/provider/cli/adapter.types.d.ts +23 -2
  217. package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
  218. package/dist/provider/cli/adapters/cli-knob.util.d.ts +7 -0
  219. package/dist/provider/cli/adapters/codex-item.d.ts +1 -0
  220. package/dist/provider/cli/adapters/event-timestamp.util.d.ts +1 -0
  221. package/dist/provider/cli/adapters/grok.d.ts +2 -0
  222. package/dist/provider/cli/adapters/index.d.ts +5 -0
  223. package/dist/provider/cli/index.d.ts +3 -2
  224. package/dist/provider/cli/meta.d.ts +5 -0
  225. package/dist/provider/cli/protocol-envelope.d.ts +3 -0
  226. package/dist/provider/errors.d.ts +5 -1
  227. package/dist/provider/idle-watchdog.d.ts +19 -0
  228. package/dist/provider/models.d.ts +17 -12
  229. package/dist/provider/order.d.ts +1 -1
  230. package/dist/provider/parse-usage.d.ts +6 -0
  231. package/dist/provider/provider-selection.d.ts +8 -0
  232. package/dist/provider/redact-technical-message.d.ts +1 -0
  233. package/dist/provider/task-error.types.d.ts +17 -0
  234. package/dist/provider-account/accounts.d.ts +15 -0
  235. package/dist/provider-account/index.d.ts +5 -0
  236. package/dist/provider-account/registry.d.ts +30 -0
  237. package/dist/provider-account/types.d.ts +40 -0
  238. package/dist/publish/constants.d.ts +6 -0
  239. package/dist/publish/errors.d.ts +7 -0
  240. package/dist/publish/index.d.ts +55 -0
  241. package/dist/publish/index.js +2 -0
  242. package/dist/publish/manifest.d.ts +47 -0
  243. package/dist/publish/marketplace-api.constants.d.ts +1 -0
  244. package/dist/publish/pack.d.ts +6 -0
  245. package/dist/publish/scan.d.ts +10 -0
  246. package/dist/publish/secrets.d.ts +6 -0
  247. package/dist/publish/upload.d.ts +19 -0
  248. package/dist/remote/execution-profile.d.ts +9 -0
  249. package/dist/remote/index.d.ts +1 -0
  250. package/dist/remote/types.d.ts +28 -0
  251. package/dist/repository/agent-send-history.repository.d.ts +23 -0
  252. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  253. package/dist/repository/base-sqlite-repository.d.ts +1 -0
  254. package/dist/repository/common-code.repository.d.ts +45 -0
  255. package/dist/repository/db.d.ts +12 -1
  256. package/dist/repository/index.d.ts +53 -6
  257. package/dist/repository/index.js +648 -211
  258. package/dist/repository/logs-db.d.ts +12 -0
  259. package/dist/repository/notification.repository.d.ts +58 -0
  260. package/dist/repository/project.repository.d.ts +90 -0
  261. package/dist/repository/public-task-answer.d.ts +24 -0
  262. package/dist/repository/request-log-mover.d.ts +70 -0
  263. package/dist/repository/request-log.repository.d.ts +7 -3
  264. package/dist/repository/sidebar-tab.repository.d.ts +86 -0
  265. package/dist/repository/storage-metadata.repository.d.ts +64 -0
  266. package/dist/repository/task-log-migration.d.ts +74 -0
  267. package/dist/repository/task-log.repository.d.ts +44 -0
  268. package/dist/repository/task-status.d.ts +21 -0
  269. package/dist/repository/task.repository.d.ts +307 -8
  270. package/dist/repository/thread-history.repository.d.ts +193 -0
  271. package/dist/repository/thread-origin-verdict.d.ts +27 -0
  272. package/dist/repository/thread-title.types.d.ts +29 -0
  273. package/dist/repository/thread.repository.d.ts +134 -5
  274. package/dist/repository/usage-backfill.d.ts +62 -0
  275. package/dist/repository/usage-from-logs.d.ts +21 -0
  276. package/dist/repository/workspace.repository.d.ts +3 -0
  277. package/dist/schema/agent-send-history.d.ts +85 -0
  278. package/dist/schema/agent-suggestions.d.ts +199 -0
  279. package/dist/schema/common-codes.d.ts +216 -0
  280. package/dist/schema/index.d.ts +16 -0
  281. package/dist/schema/notifications.d.ts +303 -0
  282. package/dist/schema/projects.d.ts +610 -0
  283. package/dist/schema/request-log-daily.d.ts +151 -0
  284. package/dist/schema/sidebar-tabs.d.ts +466 -0
  285. package/dist/schema/storage-metadata.d.ts +181 -0
  286. package/dist/schema/task-log-events.d.ts +119 -0
  287. package/dist/schema/task-provider-inputs.d.ts +100 -0
  288. package/dist/schema/tasks.d.ts +1058 -1
  289. package/dist/schema/thread-creator-unverified.d.ts +45 -0
  290. package/dist/schema/thread-history.d.ts +734 -0
  291. package/dist/schema/threads.d.ts +59 -0
  292. package/dist/schema/ui-action-receipts.d.ts +358 -0
  293. package/dist/schema/ui-definition-archive.d.ts +63 -0
  294. package/dist/schema/ui-instance-repins.d.ts +222 -0
  295. package/dist/schema/ui-instances.d.ts +324 -0
  296. package/dist/schema/workspaces.d.ts +17 -0
  297. package/dist/skills/index.d.ts +15 -0
  298. package/dist/skills/index.js +2 -0
  299. package/dist/skills/types.d.ts +18 -0
  300. package/dist/task-log/anchor-child-tasks.d.ts +7 -0
  301. package/dist/task-log/delegation-trailer.d.ts +34 -0
  302. package/dist/template/engine.d.ts +2 -2
  303. package/dist/template/helpers/exec.browser.d.ts +4 -3
  304. package/dist/template/helpers/exec.d.ts +4 -3
  305. package/dist/template/helpers/format-conversation.d.ts +1 -0
  306. package/dist/template/types.d.ts +20 -0
  307. package/dist/testing/index.js +1 -1
  308. package/dist/types/index.d.ts +1611 -3
  309. package/dist/types/task-log.types.d.ts +6 -1
  310. package/dist/ui-card/index.d.ts +2 -0
  311. package/dist/ui-card/legacy-card-parser.d.ts +11 -0
  312. package/dist/ui-instance/definition.d.ts +6 -0
  313. package/dist/ui-instance/errors.d.ts +18 -0
  314. package/dist/ui-instance/index.d.ts +11 -0
  315. package/dist/ui-instance/json.d.ts +19 -0
  316. package/dist/ui-instance/lineage.d.ts +24 -0
  317. package/dist/ui-instance/runtime.d.ts +19 -0
  318. package/dist/ui-instance/store.d.ts +213 -0
  319. package/dist/ui-instance/types.d.ts +343 -0
  320. package/dist/ui-plugin/app-icon.d.ts +50 -0
  321. package/dist/ui-plugin/app-manifest.d.ts +64 -0
  322. package/dist/ui-plugin/csp.d.ts +28 -0
  323. package/dist/ui-plugin/index.d.ts +8 -0
  324. package/dist/ui-plugin/limits.d.ts +27 -0
  325. package/dist/ui-plugin/manifest.d.ts +3 -0
  326. package/dist/ui-plugin/types.d.ts +207 -0
  327. package/dist/ui-plugin/validator.d.ts +18 -0
  328. package/dist/utils/crewx-executable.d.ts +76 -0
  329. package/dist/utils/crewx-home.d.ts +1 -0
  330. package/dist/utils/env-defaults.d.ts +3 -0
  331. package/dist/utils/id.d.ts +1 -1
  332. package/dist/utils/local-identity.d.ts +2 -0
  333. package/dist/utils/runner-env.d.ts +3 -0
  334. package/dist/utils/timestamp.d.ts +1 -0
  335. package/dist/utils/workspace.d.ts +1 -0
  336. package/dist/wi/create.d.ts +48 -0
  337. package/dist/wi/select.d.ts +20 -0
  338. package/package.json +63 -3
  339. package/templates/agents/default.yaml +303 -128
  340. package/templates/documents/crewx-manual.md +138 -138
  341. package/templates/documents/crewx-quick-guide.md +8 -7
  342. package/templates/workflows/wi-default-flow.yaml +65 -0
  343. package/templates/workflows/wi-plan-flow.yaml +140 -0
@@ -1,15 +1,61 @@
1
1
  import { CrewxPlugin } from '../plugin';
2
2
  import type { Crewx } from '../facade/Crewx';
3
+ export interface SqliteTracingMetrics {
4
+ flushCount: number;
5
+ flushedEntries: number;
6
+ maxQueueEntries: number;
7
+ maxQueueBytes: number;
8
+ appendFailureCount: number;
9
+ appendFailureEntries: number;
10
+ appendFailureBytes: number;
11
+ appendFailureByCode: Record<string, number>;
12
+ appendFailureByCause: Record<string, number>;
13
+ pendingQueueEntries: number;
14
+ pendingQueueBytes: number;
15
+ }
16
+ export interface SqliteTracingRunnerIdentity {
17
+ detachedRunner: boolean;
18
+ assignedTaskId?: string;
19
+ }
20
+ export interface OwnedTaskRun {
21
+ taskId: string;
22
+ runEpoch: number;
23
+ workspaceId: string | null;
24
+ ownership: 'runner' | 'caller';
25
+ }
3
26
  export interface SqliteTracingPluginOptions {
4
27
  dbRoot?: string;
5
28
  version?: string;
29
+ runnerIdentity?: SqliteTracingRunnerIdentity;
30
+ inheritWorktreeOwner?: boolean;
6
31
  }
7
32
  export declare class SqliteTracingPlugin extends CrewxPlugin {
8
33
  readonly name = "sqlite-tracing";
9
34
  private unsubs;
10
35
  private readonly dbPath;
11
36
  private readonly version;
37
+ private readonly inheritWorktreeOwner;
38
+ private readonly runnerIdentity;
39
+ private taskRepo?;
40
+ private readonly heartbeatTaskIds;
41
+ private readonly ownedTaskRuns;
42
+ private readonly ignoredDetachedTaskIds;
43
+ private readonly queues;
44
+ private metrics;
12
45
  constructor(opts?: SqliteTracingPluginOptions);
13
46
  attach(crewx: Crewx): void;
14
47
  detach(_crewx: Crewx): void;
48
+ listOwnedRunningTasks(): OwnedTaskRun[];
49
+ stopOwnedRunningTasksForHostShutdown(): Promise<void>;
50
+ getMetrics(): SqliteTracingMetrics;
51
+ private resolveTaskId;
52
+ private recordOwnedTaskRun;
53
+ private removeOwnedTaskRun;
54
+ private enqueueLog;
55
+ private recoverPartialResult;
56
+ private handleStopRequested;
57
+ private flushTaskLogs;
58
+ private flushAllTaskLogs;
59
+ private clearAllTimers;
60
+ private recordAppendFailure;
15
61
  }
@@ -0,0 +1,2 @@
1
+ export { checkProcessOwnership, checkProcessOwnershipAsync, OWNED_GROUP_KILL_CONFIRM_MS, probeProcessLiveness, terminateOwnedProcessGroup, terminateProcessTree, UNIX_PROCESS_POLL_INTERVAL_MS, UNIX_SIGKILL_CONFIRM_MS, UNIX_SIGTERM_GRACE_MS, } from './process-control.js';
2
+ export type { OwnedProcessGroupErrorKind, OwnedProcessGroupSignal, OwnedProcessGroupStatus, OwnedProcessGroupTerminationResult, ProcessCommandLineResult, ProcessCommandResult, ProcessCommandRunner, ProcessCommandRunnerAsync, ProcessControlOptions, ProcessLiveness, ProcessOwnership, ProcessTerminationResult, ProcessTerminationStatus, TerminateOwnedProcessGroupOptions, } from './process-control.js';
@@ -0,0 +1 @@
1
+ 'use strict';var child_process=require('child_process');var C=3e3;var y=2e3,G=25,k=100;function R(e){return e instanceof Error?e:e===void 0?void 0:new Error(String(e))}function O(e){return typeof e=="object"&&e!==null&&"code"in e?String(e.code):void 0}function g(e){return Number.isSafeInteger(e)&&e>0}function K(e,t){try{let r=child_process.spawnSync(e,t,{encoding:"utf8",timeout:C,windowsHide:!0});return {status:r.status,stdout:typeof r.stdout=="string"?r.stdout:"",stderr:typeof r.stderr=="string"?r.stderr:"",error:r.error}}catch(r){return {status:null,stdout:"",stderr:"",error:R(r)}}}function F(e,t){return new Promise(r=>{let n;try{n=child_process.spawn(e,t,{windowsHide:!0});}catch(c){r({status:null,stdout:"",stderr:"",error:R(c)});return}let o="",s="",u=false,i,l=setTimeout(()=>{try{n.kill();}catch{}i({status:null,stdout:o,stderr:s,error:new Error(`Command timed out after ${C}ms`)});},C);i=c=>{u||(u=true,clearTimeout(l),r(c));},n.stdout?.setEncoding("utf8"),n.stderr?.setEncoding("utf8"),n.stdout?.on("data",c=>{o+=String(c);}),n.stderr?.on("data",c=>{s+=String(c);}),n.once("error",c=>{i({status:null,stdout:o,stderr:s,error:c});}),n.once("close",c=>{i({status:c,stdout:o,stderr:s});});})}async function T(e,t,r){return r.runCommandAsync?r.runCommandAsync(e,t):r.runCommand?r.runCommand(e,t):F(e,t)}function b(e){return new Promise(t=>{setTimeout(t,Math.max(0,e));})}function L(){return new Promise(e=>{setImmediate(e);})}function w(e,t=process.kill){try{return t(e,0),"alive"}catch(r){return O(r)==="ESRCH"?"not_found":O(r)==="EPERM"?"alive":"unknown"}}function D(e,t){if(!g(e))return {status:"unknown"};let r=t.platform??process.platform,n=t.runCommand??K,o=r==="win32"?"powershell.exe":"ps",s=r==="win32"?["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-Command",`$p = Get-CimInstance -ClassName Win32_Process -Filter 'ProcessId = ${e}' -ErrorAction Stop; if ($null -ne $p) { [Console]::Write([string]$p.CommandLine) }`]:["-p",String(e),"-o","command="],u;try{u=n(o,s);}catch{return {status:"unknown"}}if(u.error||u.status!==0)return {status:"unknown"};let i=u.stdout.trim();return i?{status:"found",commandLine:i}:{status:"not_found"}}function W(e,t){let r=w(-e,t),n=w(e,t);return r==="alive"||n==="alive"?"alive":r==="unknown"||n==="unknown"?"unknown":"not_found"}async function N(e,t,r,n){let o=Math.max(0,r),s=Math.max(1,n.pollIntervalMs??G),u=Date.now()+o,i,l=o===0,c=n.sleep?Promise.resolve().then(()=>n.sleep(o)).then(()=>{},()=>{}):new Promise(a=>{i=setTimeout(a,o);});c.then(()=>{l=true;});try{for(await L();;){let a=W(e,t);if(a==="not_found")return a;let m=u-Date.now();if(l||m<=0)return a;await Promise.race([c,b(Math.min(s,m))]);}}finally{i!==void 0&&clearTimeout(i);}}async function h(e,t,r,n,o){let s=await N(e,t,o.hardConfirmMs??k,{...o,sleep:void 0});return s==="not_found"?r?{status:"not_found",pid:e,method:n}:{status:"terminated",pid:e,method:n}:s==="alive"?{status:"failed",pid:e,method:n,error:"Process is still running after termination attempt"}:{status:"failed",pid:e,method:n,error:"Unable to verify process termination"}}function $(e,t,r={}){let n=D(e,r);if(n.status!=="found")return n.status;let o=r.platform??process.platform,s=o==="win32"?n.commandLine.toLowerCase():n.commandLine;return t.filter(i=>i.trim().length>0).some(i=>{let l=o==="win32"?i.toLowerCase():i;return s.includes(l)})?"owned":"not_owned"}async function H(e,t,r={}){if(!g(e))return "unknown";let n=r.platform??process.platform,o=n==="win32"?"powershell.exe":"ps",s=n==="win32"?["-NoLogo","-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-Command",`$p = Get-CimInstance -ClassName Win32_Process -Filter 'ProcessId = ${e}' -ErrorAction Stop; if ($null -ne $p) { [Console]::Write([string]$p.CommandLine) }`]:["-p",String(e),"-o","command="],u;try{u=await T(o,s,r);}catch{return "unknown"}if(u.error||u.status!==0)return "unknown";let i=u.stdout.trim();if(!i)return "not_found";let l=n==="win32"?i.toLowerCase():i;return t.filter(a=>a.trim().length>0).some(a=>{let m=n==="win32"?a.toLowerCase():a;return l.includes(m)})?"owned":"not_owned"}async function X(e,t={}){let r=t.platform??process.platform,n=r==="win32"?"taskkill":"process-group",o=f=>({status:"failed",pid:e,method:n,error:f});if(!g(e))return o("Invalid process ID");let s=t.kill??process.kill,u=w(e,s);if(u==="not_found")return {status:"not_found",pid:e,method:n};if(u!=="alive")return o("Unable to determine whether the process is alive");if(r==="win32"){let f;try{f=await T("taskkill",["/PID",String(e),"/T","/F"],t);}catch(P){f={status:null,stdout:"",stderr:"",error:R(P)};}let p=w(e,s);return p==="not_found"?f.status===0&&!f.error?{status:"terminated",pid:e,method:n}:{status:"not_found",pid:e,method:n}:o(p==="alive"?"Process is still running after termination attempt":"Unable to verify process termination")}let i,l=t.signal??"SIGKILL";try{s(-e,l);}catch(f){i=f;}if(l==="SIGKILL")return h(e,s,i,n,t);if(await N(e,s,t.graceMs??y,t)==="not_found")return i?{status:"not_found",pid:e,method:n}:{status:"terminated",pid:e,method:n};let a;try{s(-e,"SIGKILL");}catch(f){a=f;}let m=await h(e,s,a,n,t);return m.status==="terminated"?m:m.status==="not_found"?i?m:{status:"terminated",pid:e,method:n}:o(m.error??"Process termination failed")}var v=1e3,B=["SIGTERM","SIGINT","SIGHUP","SIGKILL"],J=6e4,V=100,j=3e4,q=1e3;function S(e,t,r){return Number.isFinite(e)&&e>=t&&e<=r}function z(e){return Number.isSafeInteger(e)&&e>1&&e!==process.pid}function M(e,t){try{return t(-e,0),"alive"}catch(r){let n=O(r);return n==="ESRCH"?"not_found":n==="EPERM"?"denied":"unknown"}}function E(e,t,r){try{return r(-e,t),"sent"}catch(n){let o=O(n);return o==="ESRCH"?"empty":o==="EPERM"?"denied":"failed"}}function _(){return performance.now()}async function I(e,t,r,n){let o=_()+r;for(;;){await L();let s=M(e,t);if(s==="not_found")return s;let u=o-_();if(u<=0)return s;await b(Math.min(n,u));}}async function Q(e,t,r,n){for(;;){await L();let o=M(e,t);if(o==="not_found"||o==="alive")return o;let s=r-_();if(s<=0)return o;await b(Math.min(n,s));}}function d(e,t,r,n){return {status:t,groupId:e,...r?{lastSignal:r}:{},...n?{errorKind:n}:{}}}async function Y(e,t={}){let r=t.signal??"SIGTERM",n=t.graceMs??y,o=t.hardConfirmMs??v,s=t.pollIntervalMs??G;if(!z(e))return d(e,"failed",void 0,"invalid_group_id");if(!B.includes(r)||!S(n,0,J)||!S(o,V,j)||!S(s,1,q))return d(e,"failed",void 0,"invalid_option");if((t.platform??process.platform)==="win32")return d(e,"unsupported",void 0,"unsupported_platform");let i=t.kill??process.kill,l=M(e,i);if(l==="not_found")return d(e,"exited");let c=n;if(l==="denied"&&r!=="SIGKILL"&&n>0){let p=_()+n,P=await Q(e,i,p,s);if(P==="not_found")return d(e,"exited");if(P!=="alive")return d(e,"failed",void 0,P==="denied"?"probe_denied":"probe_failed");c=Math.max(0,p-_());}else if(l!=="alive")return d(e,"failed",void 0,l==="denied"?"probe_denied":"probe_failed");let a;if(r!=="SIGKILL"){let p=E(e,r,i);if(p==="empty")return d(e,"exited");if(p!=="sent")return d(e,"failed",void 0,p==="denied"?"signal_denied":"signal_failed");a=r;let P=await I(e,i,c,s);if(P==="not_found")return d(e,"exited",a);if(P!=="alive")return d(e,"failed",a,P==="denied"?"probe_denied":"probe_failed")}let m=E(e,"SIGKILL",i);if(m==="empty")return d(e,"exited",a);if(m!=="sent")return d(e,"failed",a,m==="denied"?"signal_denied":"signal_failed");a="SIGKILL";let f=await I(e,i,o,s);return f==="not_found"?d(e,"exited",a):f==="alive"?d(e,"failed",a,"still_running"):d(e,"failed",a,f==="denied"?"probe_denied":"probe_failed")}exports.OWNED_GROUP_KILL_CONFIRM_MS=v;exports.UNIX_PROCESS_POLL_INTERVAL_MS=G;exports.UNIX_SIGKILL_CONFIRM_MS=k;exports.UNIX_SIGTERM_GRACE_MS=y;exports.checkProcessOwnership=$;exports.checkProcessOwnershipAsync=H;exports.probeProcessLiveness=w;exports.terminateOwnedProcessGroup=Y;exports.terminateProcessTree=X;
@@ -0,0 +1,60 @@
1
+ export type ProcessLiveness = 'alive' | 'not_found' | 'unknown';
2
+ export type ProcessOwnership = 'owned' | 'not_owned' | 'not_found' | 'unknown';
3
+ export type ProcessTerminationStatus = 'terminated' | 'not_found' | 'failed';
4
+ export interface ProcessCommandResult {
5
+ status: number | null;
6
+ stdout: string;
7
+ stderr: string;
8
+ error?: Error;
9
+ }
10
+ export type ProcessCommandRunner = (command: string, args: string[]) => ProcessCommandResult;
11
+ export type ProcessCommandRunnerAsync = (command: string, args: string[]) => Promise<ProcessCommandResult>;
12
+ export interface ProcessControlOptions {
13
+ platform?: NodeJS.Platform;
14
+ kill?: typeof process.kill;
15
+ runCommand?: ProcessCommandRunner;
16
+ runCommandAsync?: ProcessCommandRunnerAsync;
17
+ sleep?: (ms: number) => void | PromiseLike<void>;
18
+ graceMs?: number;
19
+ pollIntervalMs?: number;
20
+ hardConfirmMs?: number;
21
+ }
22
+ export interface ProcessCommandLineResult {
23
+ status: 'found' | 'not_found' | 'unknown';
24
+ commandLine?: string;
25
+ }
26
+ export interface ProcessTerminationResult {
27
+ status: ProcessTerminationStatus;
28
+ pid: number;
29
+ method: 'taskkill' | 'process-group';
30
+ error?: string;
31
+ }
32
+ export declare const POSIX_COOPERATIVE_STOP_SIGNAL: NodeJS.Signals;
33
+ export declare const UNIX_SIGTERM_GRACE_MS = 2000;
34
+ export declare const UNIX_PROCESS_POLL_INTERVAL_MS = 25;
35
+ export declare const UNIX_SIGKILL_CONFIRM_MS = 100;
36
+ export declare function probeProcessLiveness(pid: number, kill?: typeof process.kill): ProcessLiveness;
37
+ export declare function checkProcessOwnership(pid: number, markers: readonly string[], options?: ProcessControlOptions): ProcessOwnership;
38
+ export declare function checkProcessOwnershipAsync(pid: number, markers: readonly string[], options?: ProcessControlOptions): Promise<ProcessOwnership>;
39
+ export declare function terminateProcessTree(pid: number, options?: ProcessControlOptions & {
40
+ signal?: NodeJS.Signals;
41
+ }): Promise<ProcessTerminationResult>;
42
+ export declare const OWNED_GROUP_KILL_CONFIRM_MS = 1000;
43
+ export type OwnedProcessGroupSignal = 'SIGTERM' | 'SIGINT' | 'SIGHUP' | 'SIGKILL';
44
+ export type OwnedProcessGroupStatus = 'exited' | 'failed' | 'unsupported';
45
+ export type OwnedProcessGroupErrorKind = 'invalid_group_id' | 'invalid_option' | 'unsupported_platform' | 'probe_denied' | 'probe_failed' | 'signal_denied' | 'signal_failed' | 'still_running';
46
+ export interface OwnedProcessGroupTerminationResult {
47
+ status: OwnedProcessGroupStatus;
48
+ groupId: number;
49
+ lastSignal?: OwnedProcessGroupSignal;
50
+ errorKind?: OwnedProcessGroupErrorKind;
51
+ }
52
+ export interface TerminateOwnedProcessGroupOptions {
53
+ signal?: OwnedProcessGroupSignal;
54
+ graceMs?: number;
55
+ hardConfirmMs?: number;
56
+ pollIntervalMs?: number;
57
+ platform?: NodeJS.Platform;
58
+ kill?: typeof process.kill;
59
+ }
60
+ export declare function terminateOwnedProcessGroup(groupId: number, options?: TerminateOwnedProcessGroupOptions): Promise<OwnedProcessGroupTerminationResult>;
@@ -0,0 +1,22 @@
1
+ export declare const PROMPT_TAGS: {
2
+ readonly crewxSystemPrompt: "crewx_system_prompt";
3
+ readonly systemPrompt: "system_prompt";
4
+ readonly threadContext: "crewx_thread_context";
5
+ readonly threadState: "thread_state";
6
+ readonly apps: "apps";
7
+ readonly appsGuidance: "apps_guidance";
8
+ readonly availableApps: "available_apps";
9
+ readonly crewxUiState: "crewx_ui_state";
10
+ readonly highlights: "highlights";
11
+ readonly highlight: "highlight";
12
+ readonly omittedTurns: "omitted_turns";
13
+ readonly messages: "messages";
14
+ readonly message: "message";
15
+ readonly userQuery: "user_query";
16
+ readonly execOutput: "exec_output";
17
+ };
18
+ export declare const LEGACY_PROMPT_TAGS: {
19
+ readonly conversationHistory: "conversation_history";
20
+ readonly semanticContinuity: "semantic_continuity";
21
+ readonly execOutput: "exec-output";
22
+ };
@@ -6,6 +6,7 @@ export interface AcpConnectionOptions {
6
6
  env?: Record<string, string>;
7
7
  cwd?: string;
8
8
  timeoutMs?: number;
9
+ idleMs?: number;
9
10
  onStderr?: (line: string) => void;
10
11
  onPid?: (pid: number) => void;
11
12
  configOptions?: Record<string, string>;
@@ -17,7 +18,12 @@ export declare class AcpConnection {
17
18
  private disposed;
18
19
  private stderrBuffer;
19
20
  private collectedStderr;
21
+ private stderrDecoder;
22
+ private stderrDecodeChain;
20
23
  private pendingUpdateCallback;
24
+ private idleWatchdog;
25
+ private idleReject;
26
+ private idlePromise;
21
27
  private authMethods;
22
28
  private _initResponse;
23
29
  get initResponse(): InitializeResponse | null;
@@ -1,3 +1,7 @@
1
+ import type { ProviderDefaultProfile } from '../models.js';
2
+ import type { ProviderOptionSpec } from '../models.js';
3
+ import type { ModelTier } from '../../config/models.generated.js';
4
+ import type { ModelApiPricing } from '../../config/pricing.types.js';
1
5
  import type { InitializeResponse, NewSessionResponse } from './types.js';
2
6
  export interface AcpProviderMetaResult {
3
7
  id: string;
@@ -11,11 +15,18 @@ export interface AcpProviderMetaResult {
11
15
  models: Array<{
12
16
  id: string;
13
17
  name?: string;
18
+ description?: string;
19
+ contextWindowTokens?: number;
20
+ tier?: ModelTier;
21
+ recommended?: boolean;
22
+ apiPricing?: ModelApiPricing;
14
23
  }>;
15
24
  modelOverrides?: Record<string, {
16
25
  effort?: string[];
17
26
  defaultEffort?: string;
18
27
  }>;
28
+ providerOptions?: ProviderOptionSpec[];
29
+ defaults?: ProviderDefaultProfile;
19
30
  capabilities: Record<string, boolean>;
20
31
  }
21
32
  declare function extractProviderMeta(adapterId: string, displayName: string | undefined, initResponse: InitializeResponse, sessionResponse: NewSessionResponse): AcpProviderMetaResult;
@@ -1,14 +1,18 @@
1
- import type { CliProviderAdapter } from './cli/adapter.types.js';
1
+ import type { CliProviderAdapter, ProviderRateLimitWindows } from './cli/adapter.types.js';
2
2
  export declare function parseStreamJsonOutput(raw: string): string;
3
3
  export declare function parseResultEventUsage(raw: string): ProviderUsage | null;
4
- export { ProviderError, IdleTimeoutError, TotalTimeoutError, type ProviderErrorCode, type ProviderErrorKind, type ProviderErrorOptions, } from './errors.js';
4
+ export { ProviderError, IdleTimeoutError, TotalTimeoutError, type ProviderErrorCode, type ProviderErrorKind, type ProviderErrorOptions, ResumeTimeoutError, } from './errors.js';
5
5
  export declare function shouldFallbackToGhCopilot(providerId: string, err: unknown, platform?: NodeJS.Platform): boolean;
6
6
  export declare const KILL_GRACE_MS = 2000;
7
7
  export interface RunCliProcessOptions {
8
8
  timeoutMs?: number;
9
+ idleMs?: number;
10
+ resumeSessionId?: string;
9
11
  env?: Record<string, string>;
12
+ unsetEnv?: readonly string[];
10
13
  cwd?: string;
11
14
  onOutput?: (line: string, level: 'stdout' | 'stderr') => void;
15
+ onRateLimitObserved?: (windows: ProviderRateLimitWindows) => void;
12
16
  onPid?: (pid: number) => void;
13
17
  onExitCode?: (code: number) => void;
14
18
  onUsage?: (usage: ProviderUsage) => void;
@@ -54,10 +58,13 @@ export interface ProviderQueryOptions {
54
58
  model?: string;
55
59
  effort?: string;
56
60
  mode?: string;
61
+ providerOptions?: Record<string, unknown>;
57
62
  context?: string;
58
63
  systemPrompt?: string;
59
64
  additionalArgs?: string[];
60
65
  resumeSessionId?: string;
66
+ providerSessionId?: string;
67
+ onProviderSessionId?: (id: string) => void;
61
68
  onOutput?: (line: string, level: 'stdout' | 'stderr') => void;
62
69
  onPid?: (pid: number) => void;
63
70
  onCommand?: (command: string) => void;
@@ -66,8 +73,11 @@ export interface ProviderQueryOptions {
66
73
  onModel?: (model: string) => void;
67
74
  onTaskLog?: (entries: import('../types/task-log.types').TaskLogEntry[]) => void;
68
75
  env?: Record<string, string>;
76
+ unsetEnv?: readonly string[];
77
+ onRateLimitObserved?: (windows: ProviderRateLimitWindows) => void;
69
78
  cwd?: string;
70
79
  timeoutMs?: number;
80
+ idleMs?: number;
71
81
  configOptions?: Record<string, string>;
72
82
  tools?: import('../facade/Crewx').ToolDefinition[];
73
83
  maxSteps?: number;
@@ -0,0 +1,2 @@
1
+ import type { TaskErrorProjection } from './task-error.types.js';
2
+ export declare function classifyTaskError(input: unknown): TaskErrorProjection;
@@ -0,0 +1 @@
1
+ export declare const CLAUDE_AGENT_ENV: Readonly<Record<string, string>>;
@@ -1,18 +1,29 @@
1
1
  import type { ProviderQueryOptions, ProviderUsage } from '../bridge.js';
2
2
  import type { TaskLogEntry } from '../../types/task-log.types.js';
3
+ import type { ModelTier } from '../../config/models.generated.js';
3
4
  import { ProviderError } from '../errors.js';
5
+ export interface ParseEventContext {
6
+ readonly rowIndex: number;
7
+ readonly state: Map<string, unknown>;
8
+ }
4
9
  export interface CliProviderAdapter {
5
10
  readonly command: string;
11
+ createSessionId?(): string;
6
12
  readonly meta?: {
7
13
  displayName?: string;
8
14
  models?: Array<{
9
15
  id: string;
10
16
  name?: string;
17
+ description?: string;
18
+ contextWindowTokens?: number;
19
+ tier?: ModelTier;
11
20
  }>;
12
21
  defaultTimeoutMs?: {
13
22
  query?: number;
14
23
  execute?: number;
15
24
  };
25
+ defaultIdleMs?: number;
26
+ defaultResumeTimeoutMs?: number;
16
27
  capabilities?: {
17
28
  resume?: boolean;
18
29
  image?: boolean;
@@ -27,14 +38,24 @@ export interface CliProviderAdapter {
27
38
  env?: Record<string, string>;
28
39
  };
29
40
  extractText(stdout: string): string;
41
+ extractPartialText?(stdout: string): string | undefined;
30
42
  extractFailure?(line: string): Error | null;
31
- interpretExit?(code: number, stderr: string): Error | null;
43
+ interpretExit?(code: number, stderr: string, stdout?: string): Error | null;
32
44
  parseResultMeta?(stdout: string): {
33
45
  usage?: ProviderUsage | null;
34
46
  model?: string | null;
35
47
  };
36
- parseEvent?(line: string, timestamp?: string): TaskLogEntry[];
48
+ parseEvent?(line: string, timestamp?: string, context?: ParseEventContext): TaskLogEntry[];
37
49
  suppressOutputLine?(line: string): boolean;
50
+ observeRateLimit?(line: string): ProviderRateLimitWindows | undefined;
51
+ }
52
+ export interface ProviderRateLimitWindow {
53
+ utilization: number;
54
+ resetsAt: number;
55
+ }
56
+ export interface ProviderRateLimitWindows {
57
+ five_hour?: ProviderRateLimitWindow;
58
+ seven_day?: ProviderRateLimitWindow;
38
59
  }
39
60
  export declare class RateLimitError extends ProviderError {
40
61
  readonly name = "RateLimitError";
@@ -1,3 +1,3 @@
1
1
  import type { TaskLogEntry } from '../../../types/task-log.types';
2
2
  export declare function isAgentCallCommand(command: string): boolean;
3
- export declare function parseAgentCall(timestamp: string, command: string): TaskLogEntry;
3
+ export declare function parseAgentCall(timestamp: string, command: string, toolUseId?: string): TaskLogEntry;
@@ -6,3 +6,10 @@ export declare function codexModeArgs(mode?: string): string[];
6
6
  export declare function codexResumeModeArgs(mode?: string): string[];
7
7
  export declare function codexEffortArgs(effort?: string): string[];
8
8
  export declare function claudeModeArgs(mode?: string): string[];
9
+ export declare function claudeEffortArgs(effort?: string): string[];
10
+ export declare function grokModeArgs(mode?: string): string[];
11
+ export declare function grokAlwaysApproveArgs(alwaysApprove?: unknown): string[];
12
+ export declare function grokSandboxArgs(sandbox?: unknown, onWarning?: (message: string) => void): string[];
13
+ export declare function grokEffortArgs(effort?: string): string[];
14
+ export declare function antigravityModeArgs(mode?: string): string[];
15
+ export declare function antigravityEffortArgs(effort?: string): string[];
@@ -0,0 +1 @@
1
+ export declare function isCodexDisplaySkippedStart(value: unknown): boolean;
@@ -0,0 +1 @@
1
+ export declare function resolveEventTimestamp(parsed: unknown, fallbackTs: string): string;
@@ -0,0 +1,2 @@
1
+ import type { CliProviderAdapter } from '../adapter.types.js';
2
+ export declare const grokAdapter: CliProviderAdapter;
@@ -5,6 +5,11 @@ export { copilotAdapter } from './copilot.js';
5
5
  export { codexAdapter } from './codex.js';
6
6
  export { opencodeAdapter } from './opencode.js';
7
7
  export { antigravityAdapter } from './antigravity.js';
8
+ export { grokAdapter } from './grok.js';
8
9
  export { isAgentCallCommand, parseAgentCall } from './agent-call.util.js';
9
10
  export declare const BUILTIN_ADAPTERS: Record<string, CliProviderAdapter>;
10
11
  export declare function parseStdoutEvent(timestamp: string, message: string, providerId?: string): TaskLogEntry[];
12
+ export interface LogParseSession {
13
+ parse(timestamp: string, message: string, rowIndex: number): TaskLogEntry[];
14
+ }
15
+ export declare function createLogParseSession(providerId?: string): LogParseSession;
@@ -1,3 +1,4 @@
1
- export { BUILTIN_ADAPTERS, parseStdoutEvent, claudeAdapter, copilotAdapter, codexAdapter, opencodeAdapter, antigravityAdapter, isAgentCallCommand, parseAgentCall, } from './adapters/index.js';
2
- export type { CliProviderAdapter } from './adapter.types.js';
1
+ export { BUILTIN_ADAPTERS, parseStdoutEvent, createLogParseSession, claudeAdapter, copilotAdapter, codexAdapter, opencodeAdapter, antigravityAdapter, grokAdapter, isAgentCallCommand, parseAgentCall, } from './adapters/index.js';
2
+ export type { CliProviderAdapter, ParseEventContext } from './adapter.types.js';
3
3
  export { RateLimitError } from './adapter.types.js';
4
+ export type { LogParseSession } from './adapters/index.js';
@@ -1,4 +1,5 @@
1
1
  import type { AcpProviderMetaResult } from '../acp/meta.js';
2
+ import type { ModelTier } from '../../config/models.generated.js';
2
3
  import type { CliProviderAdapter } from './adapter.types.js';
3
4
  export declare function queryOpencodeModels(): Promise<Array<{
4
5
  id: string;
@@ -6,6 +7,10 @@ export declare function queryOpencodeModels(): Promise<Array<{
6
7
  export declare function cliAdapterMetaToProviderMeta(key: string, adapter: CliProviderAdapter, overrideModels?: Array<{
7
8
  id: string;
8
9
  name?: string;
10
+ description?: string;
11
+ contextWindowTokens?: number;
12
+ tier?: ModelTier;
13
+ recommended?: boolean;
9
14
  }>): AcpProviderMetaResult | null;
10
15
  export declare function queryAllCliProviderMetas(options?: {
11
16
  includeOpencodeRuntimeModels?: boolean;
@@ -0,0 +1,3 @@
1
+ export declare function shouldSkipRawStdoutJsonFallback(message: string, providerId?: string): boolean;
2
+ export declare function isProtocolOnlyText(text: string, providerId?: string): boolean;
3
+ export declare function isMetadataOnlyProtocolLine(message: string, providerId: string): boolean;
@@ -1,5 +1,5 @@
1
1
  export type ProviderErrorKind = 'transient' | 'permanent' | 'config';
2
- export type ProviderErrorCode = 'QUOTA_EXHAUSTED' | 'RATE_LIMITED' | 'EMPTY_OUTPUT' | 'AUTH_REQUIRED' | 'MODEL_UNAVAILABLE' | 'TIMEOUT_IDLE' | 'TIMEOUT_TOTAL' | 'PROVIDER_NOT_FOUND' | 'INVALID_PROVIDER_FORMAT' | 'PROVIDER_CRASHED' | 'UNKNOWN';
2
+ export type ProviderErrorCode = 'QUOTA_EXHAUSTED' | 'RATE_LIMITED' | 'EMPTY_OUTPUT' | 'AUTH_REQUIRED' | 'MODEL_UNAVAILABLE' | 'TIMEOUT_IDLE' | 'TIMEOUT_TOTAL' | 'TIMEOUT_RESUME' | 'PROVIDER_NOT_FOUND' | 'INVALID_PROVIDER_FORMAT' | 'PROVIDER_CRASHED' | 'UNKNOWN';
3
3
  export interface ProviderErrorOptions {
4
4
  code?: ProviderErrorCode;
5
5
  kind?: ProviderErrorKind;
@@ -10,6 +10,7 @@ export declare class ProviderError extends Error {
10
10
  readonly code: ProviderErrorCode;
11
11
  readonly kind?: ProviderErrorKind;
12
12
  readonly retryAfterMs?: number;
13
+ stdout?: string;
13
14
  constructor(message: string, providerStr: string, options?: ProviderErrorOptions);
14
15
  }
15
16
  export declare class IdleTimeoutError extends ProviderError {
@@ -18,3 +19,6 @@ export declare class IdleTimeoutError extends ProviderError {
18
19
  export declare class TotalTimeoutError extends ProviderError {
19
20
  constructor(message: string, providerStr: string);
20
21
  }
22
+ export declare class ResumeTimeoutError extends ProviderError {
23
+ constructor(message: string, providerStr: string);
24
+ }
@@ -0,0 +1,19 @@
1
+ export interface IdleWatchdogOptions {
2
+ timeoutMs: number;
3
+ onIdle: () => void;
4
+ now?: () => number;
5
+ }
6
+ export declare class IdleWatchdog {
7
+ private readonly timeoutMs;
8
+ private readonly onIdleCb;
9
+ private readonly now;
10
+ private timer;
11
+ private lastActivity;
12
+ private settled;
13
+ constructor(options: IdleWatchdogOptions);
14
+ start(): void;
15
+ refresh(): void;
16
+ stop(): void;
17
+ private scheduleCheck;
18
+ private fireIdle;
19
+ }
@@ -1,9 +1,22 @@
1
- import { type ModelCatalogEntry, type ProviderCatalogEntry, type ProviderModeEntry, type ProviderModelOverride } from '../config/models.generated.js';
2
- export type { ModelCatalogEntry, ProviderCatalogEntry, ProviderModeEntry, ProviderModelOverride, } from '../config/models.generated.js';
1
+ import { type ModelCatalogEntry, type ModelTier, type ProviderCatalogEntry, type ProviderDefaultProfile, type ProviderModeEntry, type ProviderModelOverride } from '../config/models.generated.js';
2
+ import type { ModelApiPricing } from '../config/pricing.types.js';
3
+ export type { ModelTier, ModelCatalogEntry, ProviderCatalogEntry, ProviderDefaultProfile, ProviderDefaults, ProviderModeEntry, ProviderOptionSpec, ProviderModelOverride, } from '../config/models.generated.js';
4
+ export type ModelMergeEntry = {
5
+ id: string;
6
+ name?: string;
7
+ description?: string;
8
+ contextWindowTokens?: number;
9
+ tier?: ModelTier;
10
+ recommended?: boolean;
11
+ apiPricing?: ModelApiPricing;
12
+ };
3
13
  export declare function setModelsOverride(providers: Record<string, ProviderCatalogEntry | ModelCatalogEntry[]>): void;
4
14
  export declare function clearModelsOverride(): void;
15
+ export declare function setModelsDefaultsOverride(providers: Record<string, ProviderDefaultProfile>): void;
16
+ export declare function clearModelsDefaultsOverride(): void;
5
17
  export declare function getProviderModels(provider: string): ModelCatalogEntry[];
6
18
  export declare function getProviderCatalog(provider: string): ProviderCatalogEntry;
19
+ export declare function getProviderDefaultProfile(provider: string): ProviderDefaultProfile | undefined;
7
20
  export declare function getProviderModes(provider: string): ProviderModeEntry[];
8
21
  export declare function getProviderEffort(provider: string, model?: string): string[];
9
22
  export declare function getProviderModelOverrides(provider: string): Record<string, ProviderModelOverride>;
@@ -11,13 +24,5 @@ export declare function getClaudeModels(): ModelCatalogEntry[];
11
24
  export declare function getCodexModels(): ModelCatalogEntry[];
12
25
  export declare function getCopilotModels(): ModelCatalogEntry[];
13
26
  export declare function getAntigravityModels(): ModelCatalogEntry[];
14
- export declare function mergeModels(a: Array<{
15
- id: string;
16
- name?: string;
17
- }>, b: Array<{
18
- id: string;
19
- name?: string;
20
- }>): Array<{
21
- id: string;
22
- name?: string;
23
- }>;
27
+ export declare function mergeModels(a: ModelMergeEntry[], b: ModelMergeEntry[]): ModelMergeEntry[];
28
+ export declare function withApiPricing(models: ModelMergeEntry[]): ModelMergeEntry[];
@@ -1,4 +1,4 @@
1
- export declare const PROVIDER_ORDER: readonly ["codex", "claude", "opencode", "antigravity", "copilot"];
1
+ export declare const PROVIDER_ORDER: readonly ["codex", "claude", "grok", "opencode", "antigravity", "copilot"];
2
2
  export declare function providerRank(id: string): number;
3
3
  export declare function compareProviders(a: string, b: string): number;
4
4
  export declare function normalizeProviderId(provider?: string): string;
@@ -3,4 +3,10 @@ export interface ParsedUsage {
3
3
  outputTokens: number;
4
4
  cachedInputTokens: number;
5
5
  }
6
+ export interface ClaudePartialUsage {
7
+ inputTokens: number;
8
+ cachedInputTokens: number;
9
+ model?: string;
10
+ }
11
+ export declare function parseClaudePartialUsage(stdout: string): ClaudePartialUsage | undefined;
6
12
  export declare function parseUsage(stdout: string): ParsedUsage | undefined;
@@ -0,0 +1,8 @@
1
+ import type { CliProviderAdapter } from './cli/adapter.types.js';
2
+ export declare function lookupCliAdapter(providerStr: string): CliProviderAdapter | undefined;
3
+ export type ProviderAvailabilityDeps = {
4
+ lookupAdapter?: (providerStr: string) => CliProviderAdapter | undefined;
5
+ env?: NodeJS.ProcessEnv;
6
+ };
7
+ export declare function isProviderAvailable(providerStr: string, deps?: ProviderAvailabilityDeps): boolean;
8
+ export declare function selectAvailableProvider(providers: string | string[], deps?: ProviderAvailabilityDeps): string;
@@ -0,0 +1 @@
1
+ export declare function redactTechnicalMessage(value: unknown): string | undefined;
@@ -0,0 +1,17 @@
1
+ export type TaskErrorCode = 'USAGE_LIMITED' | 'CONTEXT_WINDOW_EXCEEDED' | 'INPUT_TOO_LARGE' | 'MODEL_NOT_SUPPORTED' | 'MODEL_AT_CAPACITY' | 'AUTH_REQUIRED' | 'CLI_NOT_AVAILABLE' | 'CLI_UPDATE_REQUIRED' | 'AGENT_NOT_FOUND' | 'PERMISSION_OR_TRUST' | 'TIMEOUT_OR_STUCK' | 'NETWORK_OR_PROVIDER_TRANSIENT' | 'PROVIDER_CONFIGURATION' | 'AGENT_MODE_RESTRICTED' | 'PROCESS_FAILED';
2
+ export interface TaskErrorMeta {
3
+ resetAt?: string | number;
4
+ model?: string;
5
+ cliName?: string;
6
+ envKey?: string;
7
+ upstreamType?: string;
8
+ upstreamCode?: string | number;
9
+ mode?: string;
10
+ referenceId?: string;
11
+ technicalMessage?: string;
12
+ }
13
+ export interface TaskErrorProjection {
14
+ errorCode: TaskErrorCode | null;
15
+ errorProvider: string | null;
16
+ errorMeta?: TaskErrorMeta;
17
+ }
@@ -0,0 +1,15 @@
1
+ import { type AddedAiAccount, type AiAccountEnvPlan, type AiAccountInvocation, type AiAccountProvider, type AiAccountSummary, type ResolvedAiAccount, type ResolveAiAccountInput } from './types';
2
+ export declare function aiAccountEnvPlan(provider: AiAccountProvider, namedDir?: string): AiAccountEnvPlan;
3
+ export declare function applyAiAccountEnv(base: NodeJS.ProcessEnv, plan: AiAccountEnvPlan): NodeJS.ProcessEnv;
4
+ export declare function listAiAccounts(provider: string): AiAccountSummary[];
5
+ export declare function addAiAccount(provider: string, label: string): AddedAiAccount;
6
+ export declare function removeAiAccount(id: string): {
7
+ id: string;
8
+ label: string;
9
+ provider: AiAccountProvider;
10
+ removedAt: string;
11
+ };
12
+ export declare function setActiveAiAccount(provider: string, id: string): void;
13
+ export declare function getLoginInvocation(id: string, provider?: string): AiAccountInvocation;
14
+ export declare function getStatusInvocation(id: string, provider?: string): AiAccountInvocation;
15
+ export declare function resolveAiAccountForRun(input: ResolveAiAccountInput): ResolvedAiAccount | undefined;
@@ -0,0 +1,5 @@
1
+ export { addAiAccount, applyAiAccountEnv, aiAccountEnvPlan, getLoginInvocation, getStatusInvocation, listAiAccounts, removeAiAccount, resolveAiAccountForRun, setActiveAiAccount, } from './accounts';
2
+ export { defaultAiAccountDir, loadProviderAccountsRegistry, providerAccountsRegistryPath, providerAccountsRoot, } from './registry';
3
+ export type { ProviderAccountsRegistry, RemovedAiAccount, StoredAiAccount, } from './registry';
4
+ export { AI_ACCOUNT_PROVIDERS, AiAccountError, CLAUDE_ACCOUNT_STRIPPED_ENV, DEFAULT_AI_ACCOUNT_ID, } from './types';
5
+ export type { AddedAiAccount, AiAccountEnvPlan, AiAccountErrorCode, AiAccountInvocation, AiAccountProvider, AiAccountSummary, ResolveAiAccountInput, ResolvedAiAccount, } from './types';
@@ -0,0 +1,30 @@
1
+ import { type AiAccountProvider } from './types';
2
+ export interface StoredAiAccount {
3
+ id: string;
4
+ label: string;
5
+ dir: string;
6
+ createdAt: string;
7
+ }
8
+ export interface RemovedAiAccount {
9
+ id: string;
10
+ label: string;
11
+ provider: AiAccountProvider;
12
+ removedAt: string;
13
+ }
14
+ export interface ProviderAccountSlot {
15
+ active: string;
16
+ accounts: StoredAiAccount[];
17
+ }
18
+ export interface ProviderAccountsRegistry {
19
+ version: 1;
20
+ providers: Record<AiAccountProvider, ProviderAccountSlot>;
21
+ removed: RemovedAiAccount[];
22
+ }
23
+ export declare function providerAccountsRegistryPath(): string;
24
+ export declare function providerAccountsRoot(): string;
25
+ export declare function defaultAiAccountDir(provider: AiAccountProvider): string;
26
+ export declare function isAiAccountProvider(value: string): value is AiAccountProvider;
27
+ export declare function emptyProviderAccountsRegistry(): ProviderAccountsRegistry;
28
+ export declare function loadProviderAccountsRegistry(): ProviderAccountsRegistry;
29
+ export declare function saveProviderAccountsRegistry(registry: ProviderAccountsRegistry): void;
30
+ export declare function allocatedAiAccountIds(registry: ProviderAccountsRegistry): Set<string>;
@@ -0,0 +1,40 @@
1
+ export declare const AI_ACCOUNT_PROVIDERS: readonly ["cli/claude", "cli/codex"];
2
+ export type AiAccountProvider = (typeof AI_ACCOUNT_PROVIDERS)[number];
3
+ export declare const DEFAULT_AI_ACCOUNT_ID = "default";
4
+ export declare const CLAUDE_ACCOUNT_STRIPPED_ENV: readonly ["ANTHROPIC_API_KEY", "ANTHROPIC_AUTH_TOKEN", "CLAUDE_CODE_OAUTH_TOKEN"];
5
+ export type AiAccountErrorCode = 'ACCOUNT_LABEL_INVALID' | 'ACCOUNT_PROVIDER_INVALID' | 'ACCOUNT_PROVIDER_UNSUPPORTED' | 'ACCOUNT_NOT_FOUND' | 'ACCOUNT_UNKNOWN' | 'ACCOUNT_DEFAULT_PROTECTED' | 'ACCOUNT_ACTIVE_PROTECTED' | 'ACCOUNT_RESUME_REMOVED' | 'ACCOUNT_REGISTRY_INVALID';
6
+ export declare class AiAccountError extends Error {
7
+ readonly code: AiAccountErrorCode;
8
+ constructor(code: AiAccountErrorCode, message: string);
9
+ }
10
+ export interface AiAccountSummary {
11
+ id: string;
12
+ label: string;
13
+ provider: AiAccountProvider;
14
+ dir: string;
15
+ builtIn: boolean;
16
+ active: boolean;
17
+ createdAt?: string;
18
+ }
19
+ export interface AddedAiAccount {
20
+ id: string;
21
+ dir: string;
22
+ }
23
+ export interface AiAccountEnvPlan {
24
+ env: Record<string, string>;
25
+ unsetEnv: string[];
26
+ }
27
+ export interface AiAccountInvocation extends AiAccountEnvPlan {
28
+ command: string;
29
+ argv: string[];
30
+ }
31
+ export interface ResolvedAiAccount extends AiAccountEnvPlan {
32
+ id: string;
33
+ label: string;
34
+ fallback?: 'removed';
35
+ }
36
+ export interface ResolveAiAccountInput {
37
+ provider: string;
38
+ agentField?: string;
39
+ pinnedId?: string;
40
+ }