@crewx/sdk 0.9.0-rc.16 → 0.9.0-rc.160

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 (304) 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/app/app.d.ts +148 -0
  14. package/dist/app/backend-env.d.ts +3 -0
  15. package/dist/app/content-media-types.d.ts +2 -0
  16. package/dist/app/context.d.ts +2 -0
  17. package/dist/app/entry.d.ts +7 -0
  18. package/dist/app/frame.d.ts +55 -0
  19. package/dist/app/index.d.ts +10 -0
  20. package/dist/app/index.js +10 -0
  21. package/dist/app/protocol.d.ts +9 -0
  22. package/dist/app/runtime.d.ts +21 -0
  23. package/dist/app/tool-mode.d.ts +3 -0
  24. package/dist/boxing/box.types.d.ts +4 -0
  25. package/dist/config/canonicalize-agent-options.d.ts +18 -0
  26. package/dist/config/default-agent-models.d.ts +11 -0
  27. package/dist/config/global-settings.d.ts +33 -0
  28. package/dist/config/migrate-grok-mode.d.ts +6 -0
  29. package/dist/config/model-compat.d.ts +31 -0
  30. package/dist/config/models.generated.d.ts +37 -0
  31. package/dist/config/models.remote.d.ts +1 -0
  32. package/dist/config/overdrive.d.ts +7 -0
  33. package/dist/config/pricing.d.ts +6 -3
  34. package/dist/config/pricing.generated.d.ts +4 -0
  35. package/dist/config/pricing.types.d.ts +4 -0
  36. package/dist/config/timeout.config.d.ts +4 -0
  37. package/dist/config/wi-boards.d.ts +19 -0
  38. package/dist/context-budget/continuity.d.ts +63 -0
  39. package/dist/context-budget/index.d.ts +142 -0
  40. package/dist/conversation/index.d.ts +1 -1
  41. package/dist/conversation/sqlite-provider.d.ts +6 -3
  42. package/dist/conversation/to-template-messages.d.ts +9 -0
  43. package/dist/conversation/types.d.ts +58 -1
  44. package/dist/desktop/command-runner.d.ts +4 -0
  45. package/dist/desktop/default-adapters.d.ts +4 -0
  46. package/dist/desktop/global-install.d.ts +19 -0
  47. package/dist/desktop/index.d.ts +3 -0
  48. package/dist/desktop/index.js +3 -0
  49. package/dist/desktop/install.d.ts +5 -0
  50. package/dist/desktop/lnk.d.ts +22 -0
  51. package/dist/desktop/manifest.d.ts +21 -0
  52. package/dist/desktop/types.d.ts +67 -0
  53. package/dist/desktop/version.d.ts +1 -0
  54. package/dist/desktop/windows-paths.d.ts +21 -0
  55. package/dist/desktop/wrapper.d.ts +18 -0
  56. package/dist/esm/account/index.js +2 -0
  57. package/dist/esm/app/index.js +10 -0
  58. package/dist/esm/desktop/index.js +3 -0
  59. package/dist/esm/index.js +1126 -224
  60. package/dist/esm/node/index.js +2 -0
  61. package/dist/esm/plugins/index.js +496 -214
  62. package/dist/esm/process/index.js +1 -0
  63. package/dist/esm/publish/index.js +2 -0
  64. package/dist/esm/repository/index.js +608 -211
  65. package/dist/esm/skills/index.js +2 -0
  66. package/dist/esm/testing/index.js +1 -1
  67. package/dist/events/types.d.ts +16 -0
  68. package/dist/facade/Crewx.d.ts +61 -5
  69. package/dist/facade/task-ticket.d.ts +14 -0
  70. package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
  71. package/dist/highlight/thread-highlighter.d.ts +326 -0
  72. package/dist/index.browser.d.ts +19 -1
  73. package/dist/index.browser.js +6 -2
  74. package/dist/index.d.ts +131 -17
  75. package/dist/index.js +1128 -226
  76. package/dist/internal/console-decoder.d.ts +38 -0
  77. package/dist/internal/windows-spawn.d.ts +10 -0
  78. package/dist/layout/types.d.ts +18 -1
  79. package/dist/lifecycle/process-lease.d.ts +80 -0
  80. package/dist/lifecycle/process-owner.d.ts +20 -0
  81. package/dist/lifecycle/task-heartbeat.d.ts +41 -0
  82. package/dist/lifecycle/task-stop.d.ts +82 -0
  83. package/dist/lifecycle/update-admission.d.ts +45 -0
  84. package/dist/local-server/base-url.d.ts +18 -0
  85. package/dist/local-server/index.d.ts +8 -0
  86. package/dist/local-server/opencode.d.ts +8 -0
  87. package/dist/local-server/probe.d.ts +3 -0
  88. package/dist/local-server/runtime.d.ts +26 -0
  89. package/dist/local-server/types.d.ts +43 -0
  90. package/dist/mcp-app/agent-access.d.ts +26 -0
  91. package/dist/mcp-app/app-handoff.d.ts +109 -0
  92. package/dist/mcp-app/apps-context.d.ts +32 -0
  93. package/dist/mcp-app/bundle-provenance.d.ts +3 -0
  94. package/dist/mcp-app/candidate-registration.d.ts +4 -0
  95. package/dist/mcp-app/card-handler.d.ts +7 -0
  96. package/dist/mcp-app/catalog.d.ts +7 -0
  97. package/dist/mcp-app/content-channel.d.ts +86 -0
  98. package/dist/mcp-app/content-declarations.d.ts +31 -0
  99. package/dist/mcp-app/dev-checks.d.ts +29 -0
  100. package/dist/mcp-app/diagnostic-reason.d.ts +3 -0
  101. package/dist/mcp-app/discovery.d.ts +161 -0
  102. package/dist/mcp-app/errors.d.ts +7 -0
  103. package/dist/mcp-app/index.d.ts +37 -0
  104. package/dist/mcp-app/installed-app-ref.d.ts +25 -0
  105. package/dist/mcp-app/model-context.d.ts +29 -0
  106. package/dist/mcp-app/node-app-discovery-fs.d.ts +23 -0
  107. package/dist/mcp-app/product-bundle-assets.d.ts +27 -0
  108. package/dist/mcp-app/product-bundle-loader.d.ts +53 -0
  109. package/dist/mcp-app/projection.d.ts +14 -0
  110. package/dist/mcp-app/prompt-cards.d.ts +28 -0
  111. package/dist/mcp-app/registry.d.ts +28 -0
  112. package/dist/mcp-app/skill-backend.d.ts +132 -0
  113. package/dist/mcp-app/state-set.d.ts +9 -0
  114. package/dist/mcp-app/types.d.ts +488 -0
  115. package/dist/mcp-app/workspace-app-assets.d.ts +42 -0
  116. package/dist/mcp-app/workspace-app-scan-cache.d.ts +27 -0
  117. package/dist/mcp-app/workspace-snapshot.d.ts +72 -0
  118. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  119. package/dist/migrations/0012_blue_turbo.sql +23 -0
  120. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  121. package/dist/migrations/0014_organic_mongu.sql +73 -0
  122. package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
  123. package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
  124. package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
  125. package/dist/migrations/0018_bored_jackal.sql +33 -0
  126. package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
  127. package/dist/migrations/0020_useful_iron_lad.sql +55 -0
  128. package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
  129. package/dist/migrations/0022_wandering_bucky.sql +1 -0
  130. package/dist/migrations/0023_red_payback.sql +1 -0
  131. package/dist/migrations/0024_storage_metadata.sql +262 -0
  132. package/dist/migrations/0025_task_heartbeat.sql +8 -0
  133. package/dist/migrations/0025_thread_app_instance_ledger.sql +2 -0
  134. package/dist/migrations/0026_mcp_action_source.sql +47 -0
  135. package/dist/migrations/0027_task_stop_scope_cleanup.sql +5 -0
  136. package/dist/migrations/0027_ui_instance_active_unique.sql +2 -0
  137. package/dist/migrations/0029_nice_rhino.sql +1 -0
  138. package/dist/migrations/0031_petite_arclight.sql +6 -0
  139. package/dist/migrations/0032_ui_instance_opened_by.sql +1 -0
  140. package/dist/migrations/0033_thread_creator_boundary_guard.sql +38 -0
  141. package/dist/migrations/0034_keen_fallen_one.sql +36 -0
  142. package/dist/migrations/0035_request_log_daily.sql +11 -0
  143. package/dist/migrations/0036_ui_definition_archive.sql +8 -0
  144. package/dist/migrations/0037_ui_instance_agent_open_request.sql +1 -0
  145. package/dist/migrations/0038_task_rating.sql +3 -0
  146. package/dist/migrations/0039_aspiring_purifiers.sql +9 -0
  147. package/dist/migrations/0040_task_provider_inputs.sql +53 -0
  148. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  149. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  150. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  151. package/dist/migrations/meta/0014_snapshot.json +1975 -0
  152. package/dist/migrations/meta/0015_snapshot.json +2315 -0
  153. package/dist/migrations/meta/0016_snapshot.json +2419 -0
  154. package/dist/migrations/meta/0017_snapshot.json +2419 -0
  155. package/dist/migrations/meta/0018_snapshot.json +2570 -0
  156. package/dist/migrations/meta/0020_snapshot.json +2895 -0
  157. package/dist/migrations/meta/0021_snapshot.json +3031 -0
  158. package/dist/migrations/meta/0022_snapshot.json +3039 -0
  159. package/dist/migrations/meta/0023_snapshot.json +3047 -0
  160. package/dist/migrations/meta/0029_snapshot.json +3206 -0
  161. package/dist/migrations/meta/0031_snapshot.json +3251 -0
  162. package/dist/migrations/meta/0034_snapshot.json +3473 -0
  163. package/dist/migrations/meta/0035_snapshot.json +3547 -0
  164. package/dist/migrations/meta/0036_snapshot.json +3591 -0
  165. package/dist/migrations/meta/0037_snapshot.json +3598 -0
  166. package/dist/migrations/meta/0038_snapshot.json +3626 -0
  167. package/dist/migrations/meta/0039_snapshot.json +3684 -0
  168. package/dist/migrations/meta/0040_snapshot.json +3759 -0
  169. package/dist/migrations/meta/_journal.json +210 -0
  170. package/dist/node/index.d.ts +1 -0
  171. package/dist/node/index.js +2 -0
  172. package/dist/paths.d.ts +1 -0
  173. package/dist/plugin/types.d.ts +1 -0
  174. package/dist/plugins/index.d.ts +1 -1
  175. package/dist/plugins/index.js +496 -214
  176. package/dist/plugins/sqlite-tracing.d.ts +46 -0
  177. package/dist/process/index.d.ts +2 -0
  178. package/dist/process/index.js +1 -0
  179. package/dist/process/process-control.d.ts +41 -0
  180. package/dist/prompt/tag-names.d.ts +22 -0
  181. package/dist/provider/acp/connection.d.ts +6 -0
  182. package/dist/provider/acp/meta.d.ts +11 -0
  183. package/dist/provider/bridge.d.ts +7 -1
  184. package/dist/provider/classify-task-error.d.ts +2 -0
  185. package/dist/provider/cli/adapter.types.d.ts +14 -2
  186. package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
  187. package/dist/provider/cli/adapters/cli-knob.util.d.ts +7 -0
  188. package/dist/provider/cli/adapters/codex-item.d.ts +1 -0
  189. package/dist/provider/cli/adapters/event-timestamp.util.d.ts +1 -0
  190. package/dist/provider/cli/adapters/grok.d.ts +2 -0
  191. package/dist/provider/cli/adapters/index.d.ts +5 -0
  192. package/dist/provider/cli/index.d.ts +3 -2
  193. package/dist/provider/cli/meta.d.ts +5 -0
  194. package/dist/provider/cli/protocol-envelope.d.ts +3 -0
  195. package/dist/provider/errors.d.ts +5 -1
  196. package/dist/provider/idle-watchdog.d.ts +19 -0
  197. package/dist/provider/models.d.ts +17 -12
  198. package/dist/provider/order.d.ts +1 -1
  199. package/dist/provider/parse-usage.d.ts +6 -0
  200. package/dist/provider/provider-selection.d.ts +8 -0
  201. package/dist/provider/redact-technical-message.d.ts +1 -0
  202. package/dist/provider/task-error.types.d.ts +17 -0
  203. package/dist/publish/constants.d.ts +6 -0
  204. package/dist/publish/errors.d.ts +7 -0
  205. package/dist/publish/index.d.ts +50 -0
  206. package/dist/publish/index.js +2 -0
  207. package/dist/publish/manifest.d.ts +47 -0
  208. package/dist/publish/marketplace-api.constants.d.ts +1 -0
  209. package/dist/publish/pack.d.ts +6 -0
  210. package/dist/publish/scan.d.ts +10 -0
  211. package/dist/publish/secrets.d.ts +6 -0
  212. package/dist/publish/upload.d.ts +19 -0
  213. package/dist/remote/execution-profile.d.ts +9 -0
  214. package/dist/remote/index.d.ts +1 -0
  215. package/dist/remote/types.d.ts +28 -0
  216. package/dist/repository/agent-send-history.repository.d.ts +23 -0
  217. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  218. package/dist/repository/base-sqlite-repository.d.ts +1 -0
  219. package/dist/repository/common-code.repository.d.ts +45 -0
  220. package/dist/repository/db.d.ts +12 -1
  221. package/dist/repository/index.d.ts +49 -6
  222. package/dist/repository/index.js +608 -211
  223. package/dist/repository/logs-db.d.ts +12 -0
  224. package/dist/repository/notification.repository.d.ts +58 -0
  225. package/dist/repository/project.repository.d.ts +90 -0
  226. package/dist/repository/request-log-mover.d.ts +70 -0
  227. package/dist/repository/request-log.repository.d.ts +7 -3
  228. package/dist/repository/storage-metadata.repository.d.ts +64 -0
  229. package/dist/repository/task-log-migration.d.ts +74 -0
  230. package/dist/repository/task-log.repository.d.ts +44 -0
  231. package/dist/repository/task-status.d.ts +21 -0
  232. package/dist/repository/task.repository.d.ts +300 -7
  233. package/dist/repository/thread-history.repository.d.ts +193 -0
  234. package/dist/repository/thread-origin-verdict.d.ts +27 -0
  235. package/dist/repository/thread-title.types.d.ts +29 -0
  236. package/dist/repository/thread.repository.d.ts +118 -7
  237. package/dist/repository/usage-backfill.d.ts +62 -0
  238. package/dist/repository/usage-from-logs.d.ts +21 -0
  239. package/dist/repository/workspace.repository.d.ts +3 -0
  240. package/dist/schema/agent-send-history.d.ts +85 -0
  241. package/dist/schema/agent-suggestions.d.ts +199 -0
  242. package/dist/schema/common-codes.d.ts +216 -0
  243. package/dist/schema/index.d.ts +15 -0
  244. package/dist/schema/notifications.d.ts +303 -0
  245. package/dist/schema/projects.d.ts +610 -0
  246. package/dist/schema/request-log-daily.d.ts +151 -0
  247. package/dist/schema/storage-metadata.d.ts +181 -0
  248. package/dist/schema/task-log-events.d.ts +119 -0
  249. package/dist/schema/task-provider-inputs.d.ts +100 -0
  250. package/dist/schema/tasks.d.ts +1058 -1
  251. package/dist/schema/thread-creator-unverified.d.ts +45 -0
  252. package/dist/schema/thread-history.d.ts +734 -0
  253. package/dist/schema/threads.d.ts +59 -0
  254. package/dist/schema/ui-action-receipts.d.ts +358 -0
  255. package/dist/schema/ui-definition-archive.d.ts +63 -0
  256. package/dist/schema/ui-instance-repins.d.ts +222 -0
  257. package/dist/schema/ui-instances.d.ts +324 -0
  258. package/dist/schema/workspaces.d.ts +17 -0
  259. package/dist/skills/index.d.ts +15 -0
  260. package/dist/skills/index.js +2 -0
  261. package/dist/skills/types.d.ts +18 -0
  262. package/dist/task-log/anchor-child-tasks.d.ts +7 -0
  263. package/dist/task-log/delegation-trailer.d.ts +34 -0
  264. package/dist/template/engine.d.ts +2 -2
  265. package/dist/template/helpers/exec.browser.d.ts +4 -3
  266. package/dist/template/helpers/exec.d.ts +4 -3
  267. package/dist/template/helpers/format-conversation.d.ts +1 -0
  268. package/dist/template/types.d.ts +20 -0
  269. package/dist/testing/index.js +1 -1
  270. package/dist/types/index.d.ts +1578 -3
  271. package/dist/types/task-log.types.d.ts +3 -0
  272. package/dist/ui-card/index.d.ts +2 -0
  273. package/dist/ui-card/legacy-card-parser.d.ts +11 -0
  274. package/dist/ui-instance/definition.d.ts +6 -0
  275. package/dist/ui-instance/errors.d.ts +18 -0
  276. package/dist/ui-instance/index.d.ts +11 -0
  277. package/dist/ui-instance/json.d.ts +19 -0
  278. package/dist/ui-instance/lineage.d.ts +24 -0
  279. package/dist/ui-instance/runtime.d.ts +19 -0
  280. package/dist/ui-instance/store.d.ts +213 -0
  281. package/dist/ui-instance/types.d.ts +329 -0
  282. package/dist/ui-plugin/app-manifest.d.ts +64 -0
  283. package/dist/ui-plugin/csp.d.ts +28 -0
  284. package/dist/ui-plugin/index.d.ts +6 -0
  285. package/dist/ui-plugin/limits.d.ts +27 -0
  286. package/dist/ui-plugin/manifest.d.ts +3 -0
  287. package/dist/ui-plugin/types.d.ts +203 -0
  288. package/dist/ui-plugin/validator.d.ts +18 -0
  289. package/dist/utils/crewx-executable.d.ts +76 -0
  290. package/dist/utils/crewx-home.d.ts +1 -0
  291. package/dist/utils/env-defaults.d.ts +3 -0
  292. package/dist/utils/id.d.ts +1 -1
  293. package/dist/utils/local-identity.d.ts +2 -0
  294. package/dist/utils/runner-env.d.ts +3 -0
  295. package/dist/utils/timestamp.d.ts +1 -0
  296. package/dist/utils/workspace.d.ts +1 -0
  297. package/dist/wi/create.d.ts +48 -0
  298. package/dist/wi/select.d.ts +20 -0
  299. package/package.json +57 -3
  300. package/templates/agents/default.yaml +303 -128
  301. package/templates/documents/crewx-manual.md +138 -138
  302. package/templates/documents/crewx-quick-guide.md +8 -7
  303. package/templates/workflows/wi-default-flow.yaml +65 -0
  304. package/templates/workflows/wi-plan-flow.yaml +140 -0
@@ -1,8 +1,85 @@
1
1
  import { BaseSqliteRepository } from './base-sqlite-repository.js';
2
+ import { RepositoryError } from './errors.js';
2
3
  import { threads } from '../schema/index.js';
3
- import type { TaskRow } from './task.repository.js';
4
+ import { type TaskStatus } from './task-status.js';
5
+ import type { ThreadOriginRow } from './thread-origin-verdict.js';
6
+ import type { TaskRow, TaskListRow } from './task.repository.js';
7
+ export type { ThreadOriginRow } from './thread-origin-verdict.js';
4
8
  export type ThreadRow = typeof threads.$inferSelect;
5
9
  export type NewThread = typeof threads.$inferInsert;
10
+ export type ThreadActorKind = NonNullable<NewThread['created_by_kind']>;
11
+ export interface ThreadCreationOptions {
12
+ createdByKind?: ThreadActorKind | null;
13
+ createdById?: string | null;
14
+ createdByTaskId?: string | null;
15
+ }
16
+ export interface CreateAppLaunchThreadInput {
17
+ threadId: string;
18
+ workspaceId: string;
19
+ platform: string;
20
+ title: string;
21
+ appId: string;
22
+ createdById: string | null;
23
+ initialAgentId?: string;
24
+ }
25
+ export type CreateAppLaunchThreadResult = {
26
+ status: 'created';
27
+ thread: ThreadRow;
28
+ } | {
29
+ status: 'existing';
30
+ thread: ThreadRow;
31
+ } | {
32
+ status: 'conflict';
33
+ };
34
+ export interface TaskDescendantSummary {
35
+ total: number;
36
+ running: number;
37
+ pending: number;
38
+ paused: number;
39
+ success: number;
40
+ failed: number;
41
+ stopped: number;
42
+ runnerLost: number;
43
+ checkedAt: string;
44
+ }
45
+ export interface RespondedAgent {
46
+ agentId: string;
47
+ lastRepliedAt: string;
48
+ }
49
+ export interface TaskDescendantRow {
50
+ task: TaskRow;
51
+ parentTaskId: string;
52
+ parentAgentId: string | null;
53
+ depth: number;
54
+ }
55
+ export interface TaskDescendantListOptions {
56
+ states?: readonly TaskStatus[];
57
+ limit?: number;
58
+ cursor?: string | null;
59
+ maxDepth?: number;
60
+ }
61
+ export interface TaskDescendantList {
62
+ rows: TaskDescendantRow[];
63
+ summary: TaskDescendantSummary;
64
+ nextCursor: string | null;
65
+ traversalTruncated: boolean;
66
+ }
67
+ export type ThreadOriginFilter = 'direct' | 'delegated' | 'all';
68
+ type ThreadOriginScope = Exclude<ThreadOriginFilter, 'all'>;
69
+ export interface ThreadTitleMetadataPatch {
70
+ priority?: string | null;
71
+ state?: string | null;
72
+ }
73
+ export interface ThreadTitleMetadataPatchResult {
74
+ threadId: string;
75
+ priority: string | null;
76
+ state: string | null;
77
+ }
78
+ export type ThreadTitleMetadataPatchErrorReason = 'THREAD_TITLE_PATCH_EMPTY' | 'THREAD_TITLE_PATCH_INVALID';
79
+ export declare class ThreadTitleMetadataPatchError extends RepositoryError {
80
+ readonly reason: ThreadTitleMetadataPatchErrorReason;
81
+ constructor(reason: ThreadTitleMetadataPatchErrorReason, message?: string);
82
+ }
6
83
  export declare class ThreadRepository extends BaseSqliteRepository {
7
84
  private readonly dbPath?;
8
85
  constructor(opts?: {
@@ -11,10 +88,22 @@ export declare class ThreadRepository extends BaseSqliteRepository {
11
88
  });
12
89
  resolveDbPath(): string;
13
90
  private openHandle;
14
- private validateWorkspaceId;
15
91
  private topLevelTaskPredicateSql;
16
- findAllThreads(workspaceId?: string): ThreadRow[];
92
+ private workflowAnchorPredicateSql;
93
+ private descendantTraversalSql;
94
+ private descendantSkippedSql;
95
+ private findAllThreadsQuery;
96
+ private findThreadIdsQuery;
97
+ private readThreadIds;
98
+ private findThreadSortKeysQuery;
99
+ private readThreadSortKeys;
100
+ private readThreadRowsByIds;
101
+ private readThreadRows;
102
+ findAllThreads(workspaceId?: string, createdByKind?: ThreadActorKind): ThreadRow[];
103
+ explainFindAllThreadsPlan(workspaceId?: string, createdByKind?: ThreadActorKind): string[];
104
+ findThreadsByIdsOrTitles(ids: string[], workspaceId?: string): ThreadRow[];
17
105
  findThreadById(threadId: string, workspaceId?: string): ThreadRow | undefined;
106
+ createAppLaunchThread(input: CreateAppLaunchThreadInput): CreateAppLaunchThreadResult;
18
107
  threadExists(threadId: string, workspaceId?: string): boolean;
19
108
  aggregateTaskStats(threadId: string, workspaceId?: string): {
20
109
  taskCount: number;
@@ -23,24 +112,45 @@ export declare class ThreadRepository extends BaseSqliteRepository {
23
112
  cachedInputTokens: number;
24
113
  costUsd: number;
25
114
  agentIds: string[];
115
+ delegated: {
116
+ taskCount: number;
117
+ inputTokens: number;
118
+ outputTokens: number;
119
+ cachedInputTokens: number;
120
+ costUsd: number;
121
+ };
26
122
  };
27
- findTopLevelTasks(threadId: string, workspaceId?: string, limit?: number): TaskRow[];
123
+ getDescendantSummaryByTaskId(threadId: string, workspaceId?: string): Record<string, TaskDescendantSummary>;
124
+ listDescendantsByTaskId(taskId: string, workspaceId: string, options?: TaskDescendantListOptions): TaskDescendantList | undefined;
125
+ findTopLevelTasks(threadId: string, workspaceId?: string, limit?: number, ownAgentId?: string): TaskRow[];
28
126
  findAllTasks(threadId: string, workspaceId?: string): TaskRow[];
127
+ findRespondedAgents(threadId: string, workspaceId?: string): RespondedAgent[];
29
128
  findTaskById(threadId: string, taskId: string, workspaceId?: string): {
30
129
  task: TaskRow;
31
130
  children: TaskRow[];
32
131
  } | undefined;
33
132
  private batchFetchTasksQuery;
34
- batchFetchTasks(threadIds: string[], workspaceId?: string): Map<string, TaskRow[]>;
133
+ batchFetchTasks(threadIds: string[], workspaceId?: string): Map<string, TaskListRow[]>;
134
+ private findThreadOriginsQuery;
135
+ private findCreatorPointersQuery;
136
+ private findTaskOriginLineageQuery;
137
+ findThreadOrigins(threadIds: string[], workspaceId?: string): Map<string, ThreadOriginRow>;
138
+ findThreadsByOrigin(origin: ThreadOriginScope, workspaceId?: string): ThreadRow[];
139
+ findRecentDirectThreads(workspaceId: string, limit?: number): {
140
+ threads: ThreadRow[];
141
+ originsByThread: Map<string, ThreadOriginRow>;
142
+ };
35
143
  explainBatchFetchTasksPlan(threadIds: string[], workspaceId?: string): string[];
144
+ explainFindThreadOriginsPlan(threadIds: string[], workspaceId?: string): string[];
145
+ explainFindThreadsByOriginPlan(origin: ThreadOriginScope, workspaceId?: string): string[];
36
146
  updateThreadTitle(threadId: string, title: string, workspaceId?: string): void;
37
147
  upsertThread(threadId: string, opts: {
38
148
  platform: string;
39
149
  workspaceId?: string;
40
150
  title?: string;
41
151
  titleLocked?: boolean;
42
- }): void;
43
- ensureThread(threadId: string, platform: string, workspaceId?: string): void;
152
+ } & ThreadCreationOptions): void;
153
+ ensureThread(threadId: string, platform: string, workspaceId?: string, creator?: ThreadCreationOptions): void;
44
154
  saveUserMessage(threadId: string, text: string, opts?: {
45
155
  platform?: string;
46
156
  model?: string;
@@ -58,6 +168,7 @@ export declare class ThreadRepository extends BaseSqliteRepository {
58
168
  title?: string;
59
169
  titleLocked?: boolean;
60
170
  }): void;
171
+ patchThreadTitleMetadata(threadId: string, patch: ThreadTitleMetadataPatch, workspaceId?: string): ThreadTitleMetadataPatchResult | ThreadTitleMetadataPatchError | null;
61
172
  togglePin(threadId: string, workspaceId?: string): {
62
173
  pinned: boolean;
63
174
  } | null;
@@ -0,0 +1,62 @@
1
+ export type UsageBackfillMode = 'dry-run' | 'apply' | 'verify' | 'restore';
2
+ export declare const USAGE_BACKFILL_TERMINAL_STATUSES: readonly ["success", "failed", "completed"];
3
+ export declare const USAGE_BACKFILL_MAX_LATE_USAGE_AGE_MS: number;
4
+ export declare const USAGE_BACKFILL_UNDO_SCHEMA_VERSION = 1;
5
+ export declare const USAGE_BACKFILL_SNAPSHOT_ROW_BYTES = 2048;
6
+ export declare const USAGE_BACKFILL_MIN_FREE_SPACE_RESERVE_BYTES: number;
7
+ export type UsageAccountingReason = 'pre-instrumentation' | 'provider-no-usage' | 'suppressed-by-adapter' | 'not-captured';
8
+ export interface UsageBackfillOptions {
9
+ mode: UsageBackfillMode;
10
+ dbPath?: string;
11
+ backupPath?: string;
12
+ restorePath?: string;
13
+ now?: Date | string | number;
14
+ }
15
+ export interface UsageBackfillProviderStats {
16
+ candidates: number;
17
+ recovered: number;
18
+ unavailable: number;
19
+ deferred: number;
20
+ }
21
+ export interface UsageBackfillFailure {
22
+ taskId: string;
23
+ reason: string;
24
+ }
25
+ export interface UsageBackfillReport {
26
+ mode: UsageBackfillMode;
27
+ ok: boolean;
28
+ dbPath: string;
29
+ scannedTasks: number;
30
+ terminalTasks: number;
31
+ rawTargetTasks: number;
32
+ candidateTasks: number;
33
+ recoveredTasks: number;
34
+ unavailableTasks: number;
35
+ deferredTasks: number;
36
+ changedTasks: number;
37
+ wouldChangeTasks: number;
38
+ accountingTasks: number;
39
+ remainingTargetTasks: number;
40
+ providerDistribution: Record<string, UsageBackfillProviderStats>;
41
+ reasonCounts: Record<UsageAccountingReason, number>;
42
+ estimatedFreeSpaceBytes: number;
43
+ requiredFreeSpaceBytes: number;
44
+ availableFreeSpaceBytes: number;
45
+ minimumFreeSpaceReserveBytes: number;
46
+ freeSpaceGatePassed: boolean;
47
+ backupPath?: string;
48
+ snapshotPath?: string;
49
+ backupMethod?: 'row-undo-snapshot';
50
+ restored: number;
51
+ skippedConflict: number;
52
+ conflictSamples: UsageBackfillConflict[];
53
+ blockedReason?: string;
54
+ failures: UsageBackfillFailure[];
55
+ warnings: string[];
56
+ }
57
+ export interface UsageBackfillConflict {
58
+ taskId: string;
59
+ fields: string[];
60
+ }
61
+ export declare function classifyUsageAccountingReason(provider: string | undefined): UsageAccountingReason;
62
+ export declare function runUsageBackfill(options: UsageBackfillOptions): Promise<UsageBackfillReport>;
@@ -0,0 +1,21 @@
1
+ import type { CliProviderAdapter } from '../provider/cli/adapter.types.js';
2
+ import type { TaskLogRepositoryContract } from './task-log.repository.js';
3
+ export interface RecoveredTaskUsage {
4
+ inputTokens: number;
5
+ outputTokens: number;
6
+ cachedInputTokens: number;
7
+ costUsd: number;
8
+ model: string | null;
9
+ }
10
+ export interface TaskLogUsageRecovery {
11
+ stdout: string;
12
+ adapter: CliProviderAdapter;
13
+ usage?: RecoveredTaskUsage;
14
+ }
15
+ export interface RecoverUsageFromTaskLogsOptions {
16
+ taskLogRepository: Pick<TaskLogRepositoryContract, 'readLogs'>;
17
+ taskId: string;
18
+ provider?: string | null;
19
+ model?: string | null;
20
+ }
21
+ export declare function recoverUsageFromTaskLogs(options: RecoverUsageFromTaskLogsOptions): TaskLogUsageRecovery | undefined;
@@ -48,6 +48,9 @@ export declare class WorkspaceRepository extends BaseSqliteRepository {
48
48
  total: number;
49
49
  };
50
50
  findById(id: string): ProjectRow | undefined;
51
+ toggleStar(id: string): {
52
+ starred: boolean;
53
+ } | null;
51
54
  findAgentsByProject(id: string): string[];
52
55
  findThreadsByProject(id: string, params: {
53
56
  limit: number;
@@ -0,0 +1,85 @@
1
+ export declare const agent_send_history: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "agent_send_history";
3
+ schema: undefined;
4
+ columns: {
5
+ workspace_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "workspace_id";
7
+ tableName: "agent_send_history";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: false;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ length: number | undefined;
23
+ }>;
24
+ actor_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
+ name: "actor_id";
26
+ tableName: "agent_send_history";
27
+ dataType: "string";
28
+ columnType: "SQLiteText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {
41
+ length: number | undefined;
42
+ }>;
43
+ agent_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
+ name: "agent_id";
45
+ tableName: "agent_send_history";
46
+ dataType: "string";
47
+ columnType: "SQLiteText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: true;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {
60
+ length: number | undefined;
61
+ }>;
62
+ last_accepted_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
63
+ name: "last_accepted_at";
64
+ tableName: "agent_send_history";
65
+ dataType: "string";
66
+ columnType: "SQLiteText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: true;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {
79
+ length: number | undefined;
80
+ }>;
81
+ };
82
+ dialect: "sqlite";
83
+ }>;
84
+ export type AgentSendHistory = typeof agent_send_history.$inferSelect;
85
+ export type NewAgentSendHistory = typeof agent_send_history.$inferInsert;
@@ -0,0 +1,199 @@
1
+ export declare const agent_suggestions: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "agent_suggestions";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "id";
7
+ tableName: "agent_suggestions";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ length: number | undefined;
23
+ }>;
24
+ workspace_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
+ name: "workspace_id";
26
+ tableName: "agent_suggestions";
27
+ dataType: "string";
28
+ columnType: "SQLiteText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {
41
+ length: number | undefined;
42
+ }>;
43
+ agent_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
+ name: "agent_id";
45
+ tableName: "agent_suggestions";
46
+ dataType: "string";
47
+ columnType: "SQLiteText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: true;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {
60
+ length: number | undefined;
61
+ }>;
62
+ task_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
63
+ name: "task_id";
64
+ tableName: "agent_suggestions";
65
+ dataType: "string";
66
+ columnType: "SQLiteText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: false;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {
79
+ length: number | undefined;
80
+ }>;
81
+ type: import("drizzle-orm/sqlite-core").SQLiteColumn<{
82
+ name: "type";
83
+ tableName: "agent_suggestions";
84
+ dataType: "string";
85
+ columnType: "SQLiteText";
86
+ data: string;
87
+ driverParam: string;
88
+ notNull: true;
89
+ hasDefault: false;
90
+ isPrimaryKey: false;
91
+ isAutoincrement: false;
92
+ hasRuntimeDefault: false;
93
+ enumValues: [string, ...string[]];
94
+ baseColumn: never;
95
+ identity: undefined;
96
+ generated: undefined;
97
+ }, {}, {
98
+ length: number | undefined;
99
+ }>;
100
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
101
+ name: "status";
102
+ tableName: "agent_suggestions";
103
+ dataType: "string";
104
+ columnType: "SQLiteText";
105
+ data: string;
106
+ driverParam: string;
107
+ notNull: true;
108
+ hasDefault: true;
109
+ isPrimaryKey: false;
110
+ isAutoincrement: false;
111
+ hasRuntimeDefault: false;
112
+ enumValues: [string, ...string[]];
113
+ baseColumn: never;
114
+ identity: undefined;
115
+ generated: undefined;
116
+ }, {}, {
117
+ length: number | undefined;
118
+ }>;
119
+ payload: import("drizzle-orm/sqlite-core").SQLiteColumn<{
120
+ name: "payload";
121
+ tableName: "agent_suggestions";
122
+ dataType: "string";
123
+ columnType: "SQLiteText";
124
+ data: string;
125
+ driverParam: string;
126
+ notNull: true;
127
+ hasDefault: false;
128
+ isPrimaryKey: false;
129
+ isAutoincrement: false;
130
+ hasRuntimeDefault: false;
131
+ enumValues: [string, ...string[]];
132
+ baseColumn: never;
133
+ identity: undefined;
134
+ generated: undefined;
135
+ }, {}, {
136
+ length: number | undefined;
137
+ }>;
138
+ applied_commit_sha: import("drizzle-orm/sqlite-core").SQLiteColumn<{
139
+ name: "applied_commit_sha";
140
+ tableName: "agent_suggestions";
141
+ dataType: "string";
142
+ columnType: "SQLiteText";
143
+ data: string;
144
+ driverParam: string;
145
+ notNull: false;
146
+ hasDefault: false;
147
+ isPrimaryKey: false;
148
+ isAutoincrement: false;
149
+ hasRuntimeDefault: false;
150
+ enumValues: [string, ...string[]];
151
+ baseColumn: never;
152
+ identity: undefined;
153
+ generated: undefined;
154
+ }, {}, {
155
+ length: number | undefined;
156
+ }>;
157
+ created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
158
+ name: "created_at";
159
+ tableName: "agent_suggestions";
160
+ dataType: "string";
161
+ columnType: "SQLiteText";
162
+ data: string;
163
+ driverParam: string;
164
+ notNull: true;
165
+ hasDefault: false;
166
+ isPrimaryKey: false;
167
+ isAutoincrement: false;
168
+ hasRuntimeDefault: false;
169
+ enumValues: [string, ...string[]];
170
+ baseColumn: never;
171
+ identity: undefined;
172
+ generated: undefined;
173
+ }, {}, {
174
+ length: number | undefined;
175
+ }>;
176
+ updated_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
177
+ name: "updated_at";
178
+ tableName: "agent_suggestions";
179
+ dataType: "string";
180
+ columnType: "SQLiteText";
181
+ data: string;
182
+ driverParam: string;
183
+ notNull: true;
184
+ hasDefault: false;
185
+ isPrimaryKey: false;
186
+ isAutoincrement: false;
187
+ hasRuntimeDefault: false;
188
+ enumValues: [string, ...string[]];
189
+ baseColumn: never;
190
+ identity: undefined;
191
+ generated: undefined;
192
+ }, {}, {
193
+ length: number | undefined;
194
+ }>;
195
+ };
196
+ dialect: "sqlite";
197
+ }>;
198
+ export type AgentSuggestion = typeof agent_suggestions.$inferSelect;
199
+ export type NewAgentSuggestion = typeof agent_suggestions.$inferInsert;