@crewx/sdk 0.9.0-rc.2 → 0.9.0-rc.200

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 (423) 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-files/args.d.ts +12 -0
  22. package/dist/app/app-files/errors.d.ts +6 -0
  23. package/dist/app/app-files/index.d.ts +35 -0
  24. package/dist/app/app-files/lock.d.ts +26 -0
  25. package/dist/app/app-files/root.d.ts +22 -0
  26. package/dist/app/app-files/store.d.ts +48 -0
  27. package/dist/app/app-files/write.child.d.ts +1 -0
  28. package/dist/app/app.d.ts +168 -0
  29. package/dist/app/backend-env.d.ts +3 -0
  30. package/dist/app/content-media-types.d.ts +2 -0
  31. package/dist/app/context.d.ts +2 -0
  32. package/dist/app/entry.d.ts +9 -0
  33. package/dist/app/frame.d.ts +55 -0
  34. package/dist/app/index.d.ts +20 -0
  35. package/dist/app/index.js +13 -0
  36. package/dist/app/job-bridge.child.d.ts +1 -0
  37. package/dist/app/job-bridge.d.ts +67 -0
  38. package/dist/app/job-bridge.drain.child.d.ts +1 -0
  39. package/dist/app/job-bridge.example.d.ts +11 -0
  40. package/dist/app/job-contract.d.ts +40 -0
  41. package/dist/app/job-wire.d.ts +149 -0
  42. package/dist/app/protocol.d.ts +9 -0
  43. package/dist/app/runtime.d.ts +23 -0
  44. package/dist/app/schedule-contract.d.ts +59 -0
  45. package/dist/app/tool-mode.d.ts +3 -0
  46. package/dist/app-artifact-policy/check.d.ts +2 -0
  47. package/dist/app-artifact-policy/contract.d.ts +54 -0
  48. package/dist/app-artifact-policy/helper.d.ts +15 -0
  49. package/dist/app-artifact-policy/index.d.ts +3 -0
  50. package/dist/app-artifact-policy/index.js +18 -0
  51. package/dist/app-artifact-policy/paths.d.ts +24 -0
  52. package/dist/app-artifact-policy/scan.d.ts +47 -0
  53. package/dist/app-ui/index.d.ts +95 -0
  54. package/dist/app-ui/index.js +1 -0
  55. package/dist/attachment-receive/index.d.ts +76 -0
  56. package/dist/attachment-receive/index.js +2 -0
  57. package/dist/boxing/box.types.d.ts +4 -0
  58. package/dist/config/canonicalize-agent-options.d.ts +18 -0
  59. package/dist/config/default-agent-models.d.ts +11 -0
  60. package/dist/config/global-settings.d.ts +33 -0
  61. package/dist/config/migrate-grok-mode.d.ts +6 -0
  62. package/dist/config/model-compat.d.ts +31 -0
  63. package/dist/config/models.generated.d.ts +60 -0
  64. package/dist/config/models.remote.d.ts +5 -0
  65. package/dist/config/overdrive.d.ts +31 -0
  66. package/dist/config/pricing.d.ts +11 -8
  67. package/dist/config/pricing.generated.d.ts +6 -0
  68. package/dist/config/pricing.remote.d.ts +4 -0
  69. package/dist/config/pricing.types.d.ts +9 -0
  70. package/dist/config/timeout.config.d.ts +4 -0
  71. package/dist/config/wi-boards.d.ts +19 -0
  72. package/dist/context/GoalLoader.d.ts +6 -0
  73. package/dist/context-budget/continuity.d.ts +64 -0
  74. package/dist/context-budget/fixed-slot-shrink.d.ts +97 -0
  75. package/dist/context-budget/index.d.ts +168 -0
  76. package/dist/conversation/index.d.ts +1 -1
  77. package/dist/conversation/sqlite-provider.d.ts +6 -3
  78. package/dist/conversation/to-template-messages.d.ts +9 -0
  79. package/dist/conversation/types.d.ts +86 -1
  80. package/dist/desktop/command-runner.d.ts +4 -0
  81. package/dist/desktop/default-adapters.d.ts +4 -0
  82. package/dist/desktop/global-install.d.ts +19 -0
  83. package/dist/desktop/index.d.ts +3 -0
  84. package/dist/desktop/index.js +3 -0
  85. package/dist/desktop/install.d.ts +5 -0
  86. package/dist/desktop/lnk.d.ts +22 -0
  87. package/dist/desktop/manifest.d.ts +21 -0
  88. package/dist/desktop/types.d.ts +67 -0
  89. package/dist/desktop/version.d.ts +1 -0
  90. package/dist/desktop/windows-paths.d.ts +21 -0
  91. package/dist/desktop/wrapper.d.ts +18 -0
  92. package/dist/esm/account/index.js +2 -0
  93. package/dist/esm/app/index.js +13 -0
  94. package/dist/esm/app-artifact-policy/index.js +18 -0
  95. package/dist/esm/attachment-receive/index.js +2 -0
  96. package/dist/esm/desktop/index.js +3 -0
  97. package/dist/esm/history-snapshot/index.js +16 -0
  98. package/dist/esm/index.js +1368 -188
  99. package/dist/esm/node/index.js +2 -0
  100. package/dist/esm/plugins/index.js +550 -185
  101. package/dist/esm/process/index.js +1 -0
  102. package/dist/esm/publish/index.js +2 -0
  103. package/dist/esm/repository/index.js +808 -176
  104. package/dist/esm/skills/index.js +2 -0
  105. package/dist/esm/testing/index.js +1 -1
  106. package/dist/events/types.d.ts +44 -0
  107. package/dist/facade/Crewx.d.ts +82 -5
  108. package/dist/facade/task-ticket.d.ts +14 -0
  109. package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
  110. package/dist/highlight/thread-highlighter.d.ts +326 -0
  111. package/dist/history-snapshot/index.d.ts +82 -0
  112. package/dist/history-snapshot/index.js +16 -0
  113. package/dist/index.browser.d.ts +27 -2
  114. package/dist/index.browser.js +6 -2
  115. package/dist/index.d.ts +174 -20
  116. package/dist/index.js +1368 -188
  117. package/dist/internal/console-decoder.d.ts +38 -0
  118. package/dist/internal/windows-spawn.d.ts +10 -0
  119. package/dist/layout/types.d.ts +18 -1
  120. package/dist/lifecycle/process-lease.d.ts +80 -0
  121. package/dist/lifecycle/process-owner.d.ts +20 -0
  122. package/dist/lifecycle/task-heartbeat.d.ts +41 -0
  123. package/dist/lifecycle/task-stop.d.ts +112 -0
  124. package/dist/lifecycle/update-admission.d.ts +45 -0
  125. package/dist/local-server/base-url.d.ts +18 -0
  126. package/dist/local-server/index.d.ts +8 -0
  127. package/dist/local-server/opencode.d.ts +8 -0
  128. package/dist/local-server/probe.d.ts +3 -0
  129. package/dist/local-server/runtime.d.ts +26 -0
  130. package/dist/local-server/types.d.ts +43 -0
  131. package/dist/mcp-app/agent-access.d.ts +33 -0
  132. package/dist/mcp-app/app-handoff.d.ts +109 -0
  133. package/dist/mcp-app/app-icon-read.d.ts +7 -0
  134. package/dist/mcp-app/app-job-bridge.d.ts +30 -0
  135. package/dist/mcp-app/app-job-bridge.example.d.ts +36 -0
  136. package/dist/mcp-app/app-job.d.ts +168 -0
  137. package/dist/mcp-app/app-schedule.d.ts +85 -0
  138. package/dist/mcp-app/apps-context.d.ts +32 -0
  139. package/dist/mcp-app/bundle-provenance.d.ts +3 -0
  140. package/dist/mcp-app/candidate-registration.d.ts +4 -0
  141. package/dist/mcp-app/card-handler.d.ts +7 -0
  142. package/dist/mcp-app/catalog.d.ts +7 -0
  143. package/dist/mcp-app/content-channel.d.ts +86 -0
  144. package/dist/mcp-app/content-declarations.d.ts +31 -0
  145. package/dist/mcp-app/dev-checks.d.ts +31 -0
  146. package/dist/mcp-app/diagnostic-reason.d.ts +3 -0
  147. package/dist/mcp-app/discovery.d.ts +164 -0
  148. package/dist/mcp-app/errors.d.ts +7 -0
  149. package/dist/mcp-app/index.d.ts +46 -0
  150. package/dist/mcp-app/installed-app-ref.d.ts +25 -0
  151. package/dist/mcp-app/model-context.d.ts +29 -0
  152. package/dist/mcp-app/node-app-discovery-fs.d.ts +23 -0
  153. package/dist/mcp-app/product-bundle-assets.d.ts +27 -0
  154. package/dist/mcp-app/product-bundle-loader.d.ts +53 -0
  155. package/dist/mcp-app/projection.d.ts +14 -0
  156. package/dist/mcp-app/prompt-cards.d.ts +28 -0
  157. package/dist/mcp-app/registry.d.ts +28 -0
  158. package/dist/mcp-app/skill-backend.d.ts +141 -0
  159. package/dist/mcp-app/state-set.d.ts +9 -0
  160. package/dist/mcp-app/types.d.ts +501 -0
  161. package/dist/mcp-app/view-call.d.ts +7 -0
  162. package/dist/mcp-app/workspace-app-assets.d.ts +42 -0
  163. package/dist/mcp-app/workspace-app-scan-cache.d.ts +27 -0
  164. package/dist/mcp-app/workspace-snapshot.d.ts +81 -0
  165. package/dist/migrations/0008_careful_black_bird.sql +17 -0
  166. package/dist/migrations/0009_hot_dark_phoenix.sql +1 -0
  167. package/dist/migrations/0010_analyze_stats.sql +6 -0
  168. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  169. package/dist/migrations/0012_blue_turbo.sql +23 -0
  170. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  171. package/dist/migrations/0014_organic_mongu.sql +73 -0
  172. package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
  173. package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
  174. package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
  175. package/dist/migrations/0018_bored_jackal.sql +33 -0
  176. package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
  177. package/dist/migrations/0020_useful_iron_lad.sql +55 -0
  178. package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
  179. package/dist/migrations/0022_wandering_bucky.sql +1 -0
  180. package/dist/migrations/0023_red_payback.sql +1 -0
  181. package/dist/migrations/0024_storage_metadata.sql +262 -0
  182. package/dist/migrations/0025_task_heartbeat.sql +8 -0
  183. package/dist/migrations/0025_thread_app_instance_ledger.sql +2 -0
  184. package/dist/migrations/0026_mcp_action_source.sql +47 -0
  185. package/dist/migrations/0027_task_stop_scope_cleanup.sql +5 -0
  186. package/dist/migrations/0027_ui_instance_active_unique.sql +2 -0
  187. package/dist/migrations/0029_nice_rhino.sql +1 -0
  188. package/dist/migrations/0031_petite_arclight.sql +6 -0
  189. package/dist/migrations/0032_ui_instance_opened_by.sql +1 -0
  190. package/dist/migrations/0033_thread_creator_boundary_guard.sql +38 -0
  191. package/dist/migrations/0034_keen_fallen_one.sql +36 -0
  192. package/dist/migrations/0035_request_log_daily.sql +11 -0
  193. package/dist/migrations/0036_ui_definition_archive.sql +8 -0
  194. package/dist/migrations/0037_ui_instance_agent_open_request.sql +1 -0
  195. package/dist/migrations/0038_task_rating.sql +3 -0
  196. package/dist/migrations/0039_aspiring_purifiers.sql +9 -0
  197. package/dist/migrations/0040_task_provider_inputs.sql +53 -0
  198. package/dist/migrations/0041_tranquil_vivisector.sql +54 -0
  199. package/dist/migrations/0042_breezy_blue_shield.sql +31 -0
  200. package/dist/migrations/0043_nervous_darkstar.sql +1 -0
  201. package/dist/migrations/0044_military_galactus.sql +8 -0
  202. package/dist/migrations/0045_task_pid_started_at.sql +1 -0
  203. package/dist/migrations/0046_acoustic_karnak.sql +49 -0
  204. package/dist/migrations/0047_doc_sync_connect_requests.sql +18 -0
  205. package/dist/migrations/0048_smart_gertrude_yorkes.sql +47 -0
  206. package/dist/migrations/meta/0008_snapshot.json +1327 -0
  207. package/dist/migrations/meta/0009_snapshot.json +1335 -0
  208. package/dist/migrations/meta/0010_snapshot.json +1335 -0
  209. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  210. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  211. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  212. package/dist/migrations/meta/0014_snapshot.json +1975 -0
  213. package/dist/migrations/meta/0015_snapshot.json +2315 -0
  214. package/dist/migrations/meta/0016_snapshot.json +2419 -0
  215. package/dist/migrations/meta/0017_snapshot.json +2419 -0
  216. package/dist/migrations/meta/0018_snapshot.json +2570 -0
  217. package/dist/migrations/meta/0020_snapshot.json +2895 -0
  218. package/dist/migrations/meta/0021_snapshot.json +3031 -0
  219. package/dist/migrations/meta/0022_snapshot.json +3039 -0
  220. package/dist/migrations/meta/0023_snapshot.json +3047 -0
  221. package/dist/migrations/meta/0029_snapshot.json +3206 -0
  222. package/dist/migrations/meta/0031_snapshot.json +3251 -0
  223. package/dist/migrations/meta/0034_snapshot.json +3473 -0
  224. package/dist/migrations/meta/0035_snapshot.json +3547 -0
  225. package/dist/migrations/meta/0036_snapshot.json +3591 -0
  226. package/dist/migrations/meta/0037_snapshot.json +3598 -0
  227. package/dist/migrations/meta/0038_snapshot.json +3626 -0
  228. package/dist/migrations/meta/0039_snapshot.json +3684 -0
  229. package/dist/migrations/meta/0040_snapshot.json +3759 -0
  230. package/dist/migrations/meta/0041_snapshot.json +4156 -0
  231. package/dist/migrations/meta/0042_snapshot.json +4383 -0
  232. package/dist/migrations/meta/0043_snapshot.json +4390 -0
  233. package/dist/migrations/meta/0044_snapshot.json +4435 -0
  234. package/dist/migrations/meta/0045_snapshot.json +4442 -0
  235. package/dist/migrations/meta/0046_snapshot.json +4733 -0
  236. package/dist/migrations/meta/0047_snapshot.json +4832 -0
  237. package/dist/migrations/meta/0048_snapshot.json +5128 -0
  238. package/dist/migrations/meta/_journal.json +287 -0
  239. package/dist/node/index.d.ts +1 -0
  240. package/dist/node/index.js +2 -0
  241. package/dist/paths.d.ts +1 -0
  242. package/dist/plugin/types.d.ts +1 -0
  243. package/dist/plugins/index.d.ts +1 -1
  244. package/dist/plugins/index.js +550 -185
  245. package/dist/plugins/sqlite-tracing.d.ts +46 -0
  246. package/dist/process/index.d.ts +2 -0
  247. package/dist/process/index.js +1 -0
  248. package/dist/process/process-control.d.ts +74 -0
  249. package/dist/prompt/tag-names.d.ts +22 -0
  250. package/dist/provider/acp/adapter.d.ts +37 -2
  251. package/dist/provider/acp/adapters/antigravity-account.d.ts +4 -0
  252. package/dist/provider/acp/adapters/claude.d.ts +0 -4
  253. package/dist/provider/acp/completion-observer.d.ts +24 -0
  254. package/dist/provider/acp/connection.d.ts +69 -3
  255. package/dist/provider/acp/index.d.ts +3 -3
  256. package/dist/provider/acp/meta.d.ts +15 -0
  257. package/dist/provider/acp/register.d.ts +1 -0
  258. package/dist/provider/acp/runtime.d.ts +1 -0
  259. package/dist/provider/acp/types.d.ts +31 -4
  260. package/dist/provider/bridge.browser.d.ts +3 -0
  261. package/dist/provider/bridge.d.ts +36 -4
  262. package/dist/provider/classify-task-error.d.ts +2 -0
  263. package/dist/provider/claude-agent-env.d.ts +1 -0
  264. package/dist/provider/cli/adapter.types.d.ts +26 -2
  265. package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
  266. package/dist/provider/cli/adapters/antigravity-stream.d.ts +27 -0
  267. package/dist/provider/cli/adapters/antigravity.d.ts +1 -0
  268. package/dist/provider/cli/adapters/claude.d.ts +0 -1
  269. package/dist/provider/cli/adapters/cli-knob.util.d.ts +8 -0
  270. package/dist/provider/cli/adapters/codex-item.d.ts +1 -0
  271. package/dist/provider/cli/adapters/event-timestamp.util.d.ts +1 -0
  272. package/dist/provider/cli/adapters/grok.d.ts +2 -0
  273. package/dist/provider/cli/adapters/index.d.ts +5 -0
  274. package/dist/provider/cli/index.d.ts +3 -2
  275. package/dist/provider/cli/meta.d.ts +15 -2
  276. package/dist/provider/cli/protocol-envelope.d.ts +3 -0
  277. package/dist/provider/errors.d.ts +5 -1
  278. package/dist/provider/idle-watchdog.d.ts +19 -0
  279. package/dist/provider/models.d.ts +28 -0
  280. package/dist/provider/order.d.ts +2 -1
  281. package/dist/provider/parse-usage.d.ts +6 -0
  282. package/dist/provider/provider-selection.d.ts +8 -0
  283. package/dist/provider/redact-technical-message.d.ts +1 -0
  284. package/dist/provider/task-error.types.d.ts +17 -0
  285. package/dist/provider-account/accounts.d.ts +15 -0
  286. package/dist/provider-account/antigravity-acp/auth.d.ts +29 -0
  287. package/dist/provider-account/antigravity-acp/browser.d.ts +4 -0
  288. package/dist/provider-account/antigravity-acp/install.d.ts +42 -0
  289. package/dist/provider-account/antigravity-acp/lease.d.ts +23 -0
  290. package/dist/provider-account/antigravity-acp/lifecycle.d.ts +76 -0
  291. package/dist/provider-account/antigravity-acp/manifest.d.ts +76 -0
  292. package/dist/provider-account/antigravity-acp/profile.d.ts +4 -0
  293. package/dist/provider-account/capabilities.d.ts +6 -0
  294. package/dist/provider-account/index.d.ts +13 -0
  295. package/dist/provider-account/registry.d.ts +30 -0
  296. package/dist/provider-account/types.d.ts +47 -0
  297. package/dist/publish/constants.d.ts +6 -0
  298. package/dist/publish/errors.d.ts +7 -0
  299. package/dist/publish/index.d.ts +55 -0
  300. package/dist/publish/index.js +2 -0
  301. package/dist/publish/manifest.d.ts +47 -0
  302. package/dist/publish/marketplace-api.constants.d.ts +1 -0
  303. package/dist/publish/pack.d.ts +6 -0
  304. package/dist/publish/scan.d.ts +10 -0
  305. package/dist/publish/secrets.d.ts +6 -0
  306. package/dist/publish/upload.d.ts +19 -0
  307. package/dist/remote/execution-profile.d.ts +9 -0
  308. package/dist/remote/index.d.ts +1 -0
  309. package/dist/remote/types.d.ts +28 -0
  310. package/dist/repository/agent-send-history.repository.d.ts +23 -0
  311. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  312. package/dist/repository/base-sqlite-repository.d.ts +1 -0
  313. package/dist/repository/common-code.repository.d.ts +45 -0
  314. package/dist/repository/db.d.ts +13 -1
  315. package/dist/repository/index.d.ts +64 -6
  316. package/dist/repository/index.js +808 -176
  317. package/dist/repository/logs-db.d.ts +12 -0
  318. package/dist/repository/notification.repository.d.ts +58 -0
  319. package/dist/repository/project.repository.d.ts +90 -0
  320. package/dist/repository/public-task-answer.d.ts +24 -0
  321. package/dist/repository/request-log-mover.d.ts +70 -0
  322. package/dist/repository/request-log.repository.d.ts +7 -3
  323. package/dist/repository/run-columns.d.ts +10 -0
  324. package/dist/repository/run-history.repository.d.ts +112 -0
  325. package/dist/repository/schedule-run.repository.d.ts +103 -0
  326. package/dist/repository/sidebar-tab.repository.d.ts +86 -0
  327. package/dist/repository/storage-metadata.repository.d.ts +64 -0
  328. package/dist/repository/task-log-migration.d.ts +74 -0
  329. package/dist/repository/task-log.repository.d.ts +47 -0
  330. package/dist/repository/task-status.d.ts +21 -0
  331. package/dist/repository/task.repository.d.ts +354 -7
  332. package/dist/repository/thread-history.repository.d.ts +193 -0
  333. package/dist/repository/thread-origin-verdict.d.ts +27 -0
  334. package/dist/repository/thread-title.types.d.ts +29 -0
  335. package/dist/repository/thread.repository.d.ts +149 -7
  336. package/dist/repository/usage-backfill.d.ts +62 -0
  337. package/dist/repository/usage-from-logs.d.ts +22 -0
  338. package/dist/repository/usage-report.repository.d.ts +27 -0
  339. package/dist/repository/workflow-anchor-kinds.d.ts +4 -0
  340. package/dist/repository/workspace.repository.d.ts +3 -0
  341. package/dist/route/decide.d.ts +54 -0
  342. package/dist/route/eligibility.d.ts +11 -0
  343. package/dist/route/errors.d.ts +11 -0
  344. package/dist/route/index.d.ts +14 -0
  345. package/dist/route/runner.d.ts +15 -0
  346. package/dist/route/sqlite-store.d.ts +17 -0
  347. package/dist/route/store.d.ts +45 -0
  348. package/dist/route/strategies.d.ts +4 -0
  349. package/dist/route/types.d.ts +212 -0
  350. package/dist/schema/agent-send-history.d.ts +85 -0
  351. package/dist/schema/agent-suggestions.d.ts +199 -0
  352. package/dist/schema/common-codes.d.ts +216 -0
  353. package/dist/schema/doc-sync-connect-requests.d.ts +140 -0
  354. package/dist/schema/doc-sync-links.d.ts +481 -0
  355. package/dist/schema/index.d.ts +22 -0
  356. package/dist/schema/model-routes.d.ts +581 -0
  357. package/dist/schema/notifications.d.ts +303 -0
  358. package/dist/schema/projects.d.ts +610 -0
  359. package/dist/schema/request-log-daily.d.ts +151 -0
  360. package/dist/schema/run-column-backfill.d.ts +81 -0
  361. package/dist/schema/schedule-runs.d.ts +451 -0
  362. package/dist/schema/sidebar-tabs.d.ts +466 -0
  363. package/dist/schema/storage-metadata.d.ts +181 -0
  364. package/dist/schema/task-log-events.d.ts +119 -0
  365. package/dist/schema/task-provider-inputs.d.ts +100 -0
  366. package/dist/schema/tasks.d.ts +1172 -1
  367. package/dist/schema/thread-creator-unverified.d.ts +45 -0
  368. package/dist/schema/thread-history.d.ts +734 -0
  369. package/dist/schema/threads.d.ts +59 -0
  370. package/dist/schema/ui-action-receipts.d.ts +358 -0
  371. package/dist/schema/ui-definition-archive.d.ts +63 -0
  372. package/dist/schema/ui-instance-repins.d.ts +222 -0
  373. package/dist/schema/ui-instances.d.ts +324 -0
  374. package/dist/schema/usage-reports.d.ts +252 -0
  375. package/dist/schema/workspaces.d.ts +17 -0
  376. package/dist/skills/index.d.ts +15 -0
  377. package/dist/skills/index.js +2 -0
  378. package/dist/skills/types.d.ts +18 -0
  379. package/dist/task-log/anchor-child-tasks.d.ts +7 -0
  380. package/dist/task-log/delegation-trailer.d.ts +34 -0
  381. package/dist/template/engine.d.ts +2 -2
  382. package/dist/template/helpers/exec.browser.d.ts +4 -3
  383. package/dist/template/helpers/exec.d.ts +4 -3
  384. package/dist/template/helpers/format-conversation.d.ts +1 -0
  385. package/dist/template/types.d.ts +20 -0
  386. package/dist/testing/index.d.ts +2 -0
  387. package/dist/testing/index.js +1 -1
  388. package/dist/types/index.d.ts +3496 -89
  389. package/dist/types/task-log.types.d.ts +6 -1
  390. package/dist/ui-card/index.d.ts +2 -0
  391. package/dist/ui-card/legacy-card-parser.d.ts +11 -0
  392. package/dist/ui-instance/definition.d.ts +6 -0
  393. package/dist/ui-instance/errors.d.ts +18 -0
  394. package/dist/ui-instance/index.d.ts +11 -0
  395. package/dist/ui-instance/json.d.ts +19 -0
  396. package/dist/ui-instance/lineage.d.ts +24 -0
  397. package/dist/ui-instance/runtime.d.ts +19 -0
  398. package/dist/ui-instance/store.d.ts +216 -0
  399. package/dist/ui-instance/types.d.ts +384 -0
  400. package/dist/ui-plugin/app-icon.d.ts +50 -0
  401. package/dist/ui-plugin/app-manifest.d.ts +64 -0
  402. package/dist/ui-plugin/csp.d.ts +28 -0
  403. package/dist/ui-plugin/index.d.ts +8 -0
  404. package/dist/ui-plugin/limits.d.ts +27 -0
  405. package/dist/ui-plugin/manifest.d.ts +3 -0
  406. package/dist/ui-plugin/types.d.ts +220 -0
  407. package/dist/ui-plugin/validator.d.ts +18 -0
  408. package/dist/utils/crewx-executable.d.ts +76 -0
  409. package/dist/utils/crewx-home.d.ts +1 -0
  410. package/dist/utils/env-defaults.d.ts +3 -0
  411. package/dist/utils/id.d.ts +1 -1
  412. package/dist/utils/local-identity.d.ts +2 -0
  413. package/dist/utils/runner-env.d.ts +3 -0
  414. package/dist/utils/timestamp.d.ts +1 -0
  415. package/dist/utils/workspace.d.ts +1 -0
  416. package/dist/wi/create.d.ts +48 -0
  417. package/dist/wi/select.d.ts +20 -0
  418. package/package.json +84 -3
  419. package/templates/agents/default.yaml +311 -128
  420. package/templates/documents/crewx-manual.md +138 -138
  421. package/templates/documents/crewx-quick-guide.md +8 -7
  422. package/templates/workflows/wi-default-flow.yaml +65 -0
  423. package/templates/workflows/wi-plan-flow.yaml +140 -0
@@ -0,0 +1,16 @@
1
+ import {createHash,randomBytes}from'crypto';import {realpathSync,promises,constants}from'fs';import {join,isAbsolute,resolve}from'path';var B=class extends Error{code;constructor(e){super(e),this.name="HistorySnapshotError",this.code=e;}},Z=8e3,q=1e3,N=64*1024*1024,K=1024*1024,It=512,Rt=1440*60*1e3,wt=/^hs1-([0-9a-f]{64})$/,at=448,b=384,At=20,$t=20,Ut=12,jt=8,vt=6e3,Gt=1024,Vt=64,Xt=16,_t=/^(?:env(?:ironment)?|authorization|auth(?:entication)?[_-]?(?:token|key)|token|access[_-]?token|refresh[_-]?token|api[_-]?key|password|passwd|secret|credentials?|execution[_-]?(?:auth(?:entication)?[_-]?)?(?:key|token)|system[_-]?prompt)$/i,Yt=new Map,zt=new Map,Jt=new Map,M;function Te(t){(!t||!Array.isArray(t.messages)||!t.activityByTask||typeof t.activityByTask[Symbol.iterator]!="function"||!Array.isArray(t.highlights))&&s("IO_ERROR"),(!Number.isSafeInteger(t.runEpoch)||t.runEpoch<0||!Number.isSafeInteger(t.preparedAtMs)||t.preparedAtMs<0)&&s("IO_ERROR");let e=Ot(t.scope),n=t.preparedAtMs+Rt;Number.isSafeInteger(n)||s("IO_ERROR");let r=[],i=new Map,o=0;for(let a of t.messages){(!a||typeof a.text!="string"||typeof a.isAssistant!="boolean")&&s("IO_ERROR"),(!a.isAssistant||o===0)&&(o+=1);let c=me(a);c&&i.set(c,o),r.push({ordinal:r.length+1,kind:"message",taskId:c??null,turn:o,body:I(a.text),metadata:Ee(a.metadata),details:St({id:a.id,isAssistant:a.isAssistant,taskId:a.taskId,timestamp:a.timestamp,activity_log:a.activity_log,files:a.files,appCard:a.appCard})});}for(let[a,c]of t.activityByTask)(typeof a!="string"||a.length===0||typeof c!="string")&&s("IDENTITY_MISSING"),r.push({ordinal:r.length+1,kind:"activity",taskId:I(a),turn:i.get(a)??null,body:I(c),metadata:null,details:null});for(let a of t.highlights){(!a||typeof a.id!="string"||typeof a.text!="string")&&s("IO_ERROR");let c=a.coversToTaskId??a.covers_to_task_id??a.coversFromTaskId??a.covers_from_task_id;r.push({ordinal:r.length+1,kind:"highlight",taskId:c?I(c):null,turn:c?i.get(c)??null:null,body:I(a.text),metadata:null,details:St({id:a.id,kind:a.kind,source:a.source,coversFromTaskId:a.coversFromTaskId,coversToTaskId:a.coversToTaskId,covers_from_task_id:a.covers_from_task_id,covers_to_task_id:a.covers_to_task_id,createdAt:a.createdAt,created_at:a.created_at})});}let d={schemaVersion:1,scope:e,runEpoch:t.runEpoch,preparedAtMs:t.preparedAtMs,expiresAtMs:n,...t.activityCoverage===void 0?{}:{activityCoverage:U(t.activityCoverage,new Set)},entries:r},f=Buffer.from(G(d),"utf8");return f.byteLength>N&&s("TOO_LARGE"),{ref:`hs1-${createHash("sha256").update(f.toString("latin1"),"latin1").digest("hex")}`,expiresAtMs:n,bytes:f}}async function Pe(t,e){let n=Wt(e);Date.now()>=n.snapshot.expiresAtMs&&s("EXPIRED");let r=await Pt(t,true);r.projectRoot!==n.snapshot.scope.workspaceRealPath&&s("SCOPE_MISMATCH");let i=join(r.directory,`${n.ref}.json`),o=await ut(Yt,i,async()=>{if(await w(r),await T(i)){let c=await $(r,i,N);return rt(n,c)}let f=join(r.directory,`.tmp-${process.pid}-${randomBytes(16).toString("hex")}`),y,a;try{await w(r),y=await promises.open(f,constants.O_CREAT|constants.O_EXCL|constants.O_WRONLY|V(),b),await y.chmod(b);let c=await y.stat({bigint:!0});a=c,S(c,b),await Se(y,n.bytes),await y.sync();let l=await y.stat({bigint:!0});S(l,b),(!R(c,l)||l.size!==BigInt(n.bytes.byteLength))&&s("TAMPERED"),a=l,await w(r);let u=await promises.lstat(f,{bigint:!0});S(u,b),R(u,l)||s("UNSAFE_FILE"),await y.close(),y=void 0;try{await promises.link(f,i);}catch(h){if(X(h)!=="EEXIST")throw h;await it(r,f,a),a=void 0;let E=await qt(r,i);return rt(n,E)}await it(r,f,a),a=void 0;let g=await $(r,i,N);return rt(n,g)}catch(c){throw y&&await y.close().catch(()=>{}),a&&await it(r,f,a).catch(()=>{}),Y(c)}});return await ut(Jt,"history-snapshot-retention",async()=>{await ie(r,n.ref);}).catch(()=>{}),o}function Me(t,e){return (typeof t.CREWX_AGENT_ID!="string"||t.CREWX_AGENT_ID.length===0)&&s("IDENTITY_MISSING"),(typeof t.CREWX_TASK_ID!="string"||t.CREWX_TASK_ID.length===0)&&s("IDENTITY_MISSING"),typeof t.CREWX_THREAD_ID!="string"&&s("IDENTITY_MISSING"),Ot({workspaceRealPath:e,agentId:t.CREWX_AGENT_ID,threadId:t.CREWX_THREAD_ID,taskId:t.CREWX_TASK_ID})}async function Be(t,e,n,r={}){let i=await v(t,e,n),o=r.from??1;(!Number.isSafeInteger(o)||o<1||o>i.snapshot.entries.length+1)&&s("NOT_FOUND");let d=r.limit??Ut;(!Number.isSafeInteger(d)||d<=0)&&s("TOO_LARGE");let f=Math.min(d,At);if(o===i.snapshot.entries.length+1)return C(e,"toc","no entries on this page",[],[],void 0);let y=[],a=[],c;for(let u=o-1;u<i.snapshot.entries.length&&y.length<f;u+=1){let g=i.snapshot.entries[u],h=ye(g.body,120),E=`entry=${g.ordinal} kind=${g.kind} task=${ht(g.taskId??"unknown",48)} turn=${g.turn??"unknown"} bytes=${Buffer.byteLength(g.body)} preview=${JSON.stringify(h.text)}`,m=u+1<i.snapshot.entries.length?ae(e,g.ordinal+1,f):void 0,P=[...y,E],z=[...a,{entry:g.ordinal,startByte:0,endByte:h.endByte}],H=i.snapshot.entries.slice(o-1,o-1+P.length).map(J=>J.ordinal),x=C(e,"toc",P.join(`
2
+ `),H,z,m);if(!lt(x))break;y.push(E),a.push({entry:g.ordinal,startByte:0,endByte:h.endByte}),c=m;}y.length===0&&s("TOO_LARGE");let l=i.snapshot.entries.slice(o-1,o-1+y.length).map(u=>u.ordinal);return C(e,"toc",y.join(`
3
+ `),l,a,c)}async function Ne(t,e,n,r){let i=await v(t,e,n);(!r||typeof r.query!="string")&&s("TOO_LARGE");let o=I(r.query);(o.length===0||Buffer.byteLength(o)>256)&&s("TOO_LARGE");let d=r.limit??jt;(!Number.isSafeInteger(d)||d<=0)&&s("TOO_LARGE");let f=Math.min(d,$t),y=createHash("sha256").update(o,"utf8").digest("hex"),a=r.cursor===void 0?void 0:pe(r.cursor,e,y,i.snapshot.entries.length),c=ue(i.snapshot.entries,o,f+1,a);if(c.length===0)return C(e,"search",`no matches for ${JSON.stringify(nt(o,80).text)}`,[],[],void 0);let l=[],u=[],g=[],h,E=c.slice(0,f);for(let A=0;A<E.length;A+=1){let m=E[A],P=`entry=${m.entry.ordinal} kind=${m.entry.kind} task=${ht(m.entry.taskId??"unknown",48)} turn=${m.entry.turn??"unknown"} match=${m.startByte}..${m.endByte} snippet=${JSON.stringify(m.snippet)}`,H=A+1<c.length?ce(e,o,f,he({version:1,ref:e,queryHash:y,entry:m.entry.ordinal,afterByte:m.startByte+1})):void 0,x=[...l,P],J={entry:m.entry.ordinal,startByte:m.snippetStartByte,endByte:m.snippetEndByte},Lt=[...u,J],xt=[...g,m.entry.ordinal],Dt=C(e,"search",x.join(`
4
+ `),xt,Lt,H);if(!lt(Dt))break;l.push(P),u.push(J),g.push(m.entry.ordinal),h=H;}return l.length===0&&s("TOO_LARGE"),C(e,"search",l.join(`
5
+ `),g,u,h)}async function Le(t,e,n,r){let i=await v(t,e,n);(!r||!Number.isSafeInteger(r.entry)||r.entry<1)&&s("NOT_FOUND");let o=i.snapshot.entries[r.entry-1];o||s("NOT_FOUND");let d=Buffer.from(o.body,"utf8"),f=r.offset??0;(!Number.isSafeInteger(f)||f<0||f>d.byteLength||!dt(d,f))&&s("NOT_FOUND");let y=r.bytes??vt;(!Number.isSafeInteger(y)||y<=0)&&s("TOO_LARGE");let a=Math.min(y,Z),c=f===d.byteLength?d.byteLength:F(d,Math.min(d.byteLength,f+a));c===f&&f<d.byteLength&&(c=Bt(d,f));let l=`${fe(o)}
6
+ body:
7
+ `;for(;;){let g=c<d.byteLength?de(e,o.ordinal,c,a):void 0,h=d.toString("utf8",f,c),E=`${l}${h}${h.endsWith(`
8
+ `)?"":`
9
+ `}`,A=C(e,"read",E,[o.ordinal],[{entry:o.ordinal,startByte:f,endByte:c}],g);if(lt(A))return A;let m=gt(A.text);if(m>q){let z=oe(d,f,c),H=Math.max(0,z-(m-q)),x=se(d,f,c,H);if(x>f&&x<c){c=x;continue}}c-f<=4&&s("TOO_LARGE");let P=F(d,f+Math.floor((c-f)/2));P<=f&&s("TOO_LARGE"),c=P;}}async function xe(t,e,n,r){let i=await v(t,e,n);(!r||r.snapshotRef!==e||!Nt(r.operation)||typeof r.text!="string")&&s("TAMPERED");let o=Buffer.byteLength(r.text,"utf8");(o>Z||gt(r.text)>q||r.byteCount!==o||!Array.isArray(r.entries)||!Array.isArray(r.ranges))&&s("TAMPERED");for(let c of r.entries)(!Number.isSafeInteger(c)||c<1||c>i.snapshot.entries.length)&&s("TAMPERED");for(let c of r.ranges){let l=i.snapshot.entries[c.entry-1],u=l?Buffer.from(l.body,"utf8"):void 0;(!l||!u||!Number.isSafeInteger(c.startByte)||!Number.isSafeInteger(c.endByte)||c.startByte<0||c.endByte<c.startByte||c.endByte>u.byteLength||!dt(u,c.startByte)||!dt(u,c.endByte))&&s("TAMPERED");}(r.entries.length!==r.ranges.length||r.entries.some((c,l)=>c!==r.ranges[l]?.entry))&&s("TAMPERED");let d={version:1,timestampMs:Date.now(),operation:r.operation,taskId:i.scope.taskId,entries:[...r.entries],ranges:r.ranges.map(c=>({entry:c.entry,startByte:c.startByte,endByte:c.endByte})),byteCount:o},f={version:d.version,timestampMs:d.timestampMs,operation:d.operation,taskId:d.taskId,ranges:kt(d.ranges),byteCount:d.byteCount},y=Buffer.from(`${G(f)}
10
+ `,"utf8");y.byteLength>It&&s("TOO_LARGE");let a=join(i.storage.directory,`${e}.reads.jsonl`);await ut(zt,a,async()=>{await w(i.storage);let c=await T(a),l;if(c)S(c,b),l=await mt(a);else try{l=await promises.open(a,constants.O_CREAT|constants.O_EXCL|constants.O_WRONLY|constants.O_APPEND|V(),b),await l.chmod(b);}catch(u){if(X(u)!=="EEXIST")throw u;c=await promises.lstat(a,{bigint:!0}),l=await mt(a);}try{let u=await l.stat({bigint:!0});S(u,b),c&&!R(c,u)&&s("UNSAFE_FILE"),u.size+BigInt(y.byteLength)>BigInt(K)&&s("TOO_LARGE"),await w(i.storage);let g=await promises.lstat(a,{bigint:!0});S(g,b),R(g,u)||s("UNSAFE_FILE");let{bytesWritten:h}=await l.write(y.toString("latin1"),null,"latin1");h!==y.byteLength&&s("IO_ERROR"),await l.sync();let E=await l.stat({bigint:!0});S(E,b),E.size>BigInt(K)&&s("TOO_LARGE");}finally{await l.close().catch(()=>{});}});}async function De(t,e,n){let r=await v(t,e,n),i=join(r.storage.directory,`${e}.reads.jsonl`);await w(r.storage);let o=await T(i);if(!o)return [];S(o,b),o.size>BigInt(K)&&s("TOO_LARGE");let f=(await $(r.storage,i,K,true)).toString("utf8");if(f.length===0)return [];f.endsWith(`
11
+ `)||s("TAMPERED");let y=f.slice(0,-1).split(`
12
+ `),a=[];for(let c of y){Buffer.byteLength(c,"utf8")+1>It&&s("TOO_LARGE");let l;try{l=JSON.parse(c);}catch{s("TAMPERED");}let u=Kt(l,r.snapshot.entries);(G(Qt(u))!==c||u.taskId!==r.scope.taskId)&&s("TAMPERED"),a.push(u);}return a}function Wt(t){(!t||typeof t.ref!="string"||!wt.test(t.ref)||!Buffer.isBuffer(t.bytes))&&s("INVALID_REF"),t.bytes.byteLength>N&&s("TOO_LARGE");let e=createHash("sha256").update(t.bytes.toString("latin1"),"latin1").digest("hex");t.ref!==`hs1-${e}`&&s("TAMPERED");let n=tt(t.bytes);return t.expiresAtMs!==n.expiresAtMs&&s("TAMPERED"),{ref:t.ref,bytes:Buffer.from(t.bytes.toString("latin1"),"latin1"),snapshot:n}}function rt(t,e){(`hs1-${createHash("sha256").update(e.toString("latin1"),"latin1").digest("hex")}`!==t.ref||e.toString("latin1")!==t.bytes.toString("latin1"))&&s("TAMPERED");let r=tt(e);return r.expiresAtMs!==t.snapshot.expiresAtMs&&s("TAMPERED"),{ref:t.ref,entries:r.entries.length,bytes:e.byteLength,expiresAtMs:r.expiresAtMs}}async function qt(t,e){for(let n=0;n<12;n+=1)try{return await $(t,e,N)}catch(r){if(!(r instanceof B)||r.code!=="UNSAFE_FILE"||n===11)throw r;await Re(5);}s("IO_ERROR");}async function v(t,e,n){let r=re(e),i=await te(n),o=await Pt(t,false);o.projectRoot!==i.workspaceRealPath&&s("SCOPE_MISMATCH");let d=join(o.directory,`${e}.json`),f=await $(o,d,N);createHash("sha256").update(f.toString("latin1"),"latin1").digest("hex")!==r&&s("TAMPERED");let y=tt(f);return ne(y.scope,i)||s("SCOPE_MISMATCH"),Date.now()>=y.expiresAtMs&&s("EXPIRED"),{storage:o,snapshot:y,scope:i}}function tt(t){let e;try{e=JSON.parse(t.toString("utf8"));}catch{s("TAMPERED");}(!O(e)||!st(e,["schemaVersion","scope","runEpoch","preparedAtMs","expiresAtMs","activityCoverage","entries"])||e.schemaVersion!==1||!ee(e.scope)||!Array.isArray(e.entries))&&s("TAMPERED"),(!st(e.scope,["workspaceRealPath","agentId","threadId","taskId"])||!isAbsolute(e.scope.workspaceRealPath)||resolve(e.scope.workspaceRealPath)!==e.scope.workspaceRealPath||!L(e.scope.workspaceRealPath)||!L(e.scope.agentId)||!L(e.scope.threadId)||!L(e.scope.taskId))&&s("TAMPERED"),(!Number.isSafeInteger(e.runEpoch)||e.runEpoch<0||!Number.isSafeInteger(e.preparedAtMs)||e.preparedAtMs<0||!Number.isSafeInteger(e.expiresAtMs)||e.expiresAtMs!==e.preparedAtMs+Rt)&&s("TAMPERED");let n=[];for(let i=0;i<e.entries.length;i+=1){let o=e.entries[i];(!O(o)||!st(o,["ordinal","kind","taskId","turn","body","metadata","details"])||o.ordinal!==i+1||o.kind!=="message"&&o.kind!=="activity"&&o.kind!=="highlight"||!(o.taskId===null||typeof o.taskId=="string")||!(o.turn===null||Number.isSafeInteger(o.turn)&&o.turn>0)||typeof o.body!="string"||!L(o.body)||!(o.metadata===null||O(o.metadata))||!(o.details===null||O(o.details)))&&s("TAMPERED"),n.push(o);}let r=e;return G(r)!==t.toString("utf8")&&s("TAMPERED"),e.activityCoverage!==void 0&&be(e.activityCoverage,new Set),yt(r)&&s("TAMPERED"),{...r,entries:n}}function Kt(t,e){(!O(t)||t.version!==1||!Number.isSafeInteger(t.timestampMs)||t.timestampMs<0)&&s("TAMPERED"),(!Nt(t.operation)||typeof t.taskId!="string"||typeof t.ranges!="string")&&s("TAMPERED"),(!Number.isSafeInteger(t.byteCount)||t.byteCount<0||t.byteCount>Z)&&s("TAMPERED");let n=Zt(t.ranges),r=[...new Set(n.map(i=>i.entry))];for(let i of n){let o=e[i.entry-1];(!o||i.endByte>Buffer.byteLength(o.body,"utf8"))&&s("TAMPERED");}return {version:1,timestampMs:t.timestampMs,operation:t.operation,taskId:t.taskId,entries:r,ranges:n,byteCount:t.byteCount}}function Qt(t){return {version:t.version,timestampMs:t.timestampMs,operation:t.operation,taskId:t.taskId,ranges:kt(t.ranges),byteCount:t.byteCount}}function kt(t){let e=[];W(e,BigInt(t.length));let n=0,r=0;for(let i of t){let o=i.entry-n,d=i.startByte-r;o<0&&s("TAMPERED"),W(e,BigInt(o));let f=BigInt(d);W(e,f>=0n?f*2n:-f*2n-1n),W(e,BigInt(i.endByte-i.startByte)),n=i.entry,r=i.startByte;}return Buffer.from(e).toString("base64url")}function Zt(t){(!/^[A-Za-z0-9_-]*$/.test(t)||Buffer.byteLength(t)>448)&&s("TAMPERED");let e=Buffer.from(t,"base64url");e.toString("base64url")!==t&&s("TAMPERED");let n=0,r=()=>{let y=0n,a=0n;for(let c=0;c<10&&n<e.length;c+=1){let l=e[n++];if(y|=BigInt(l&127)<<a,(l&128)===0)return y;a+=7n;}s("TAMPERED");},i=Number(r());(!Number.isSafeInteger(i)||i<0||i>At)&&s("TAMPERED");let o=[],d=0,f=0;for(let y=0;y<i;y+=1){let a=Number(r()),c=r(),l=c%2n===0n?Number(c/2n):-Number((c+1n)/2n),u=Number(r()),g=d+a,h=f+l,E=h+u;(!Number.isSafeInteger(g)||g<1||!Number.isSafeInteger(h)||h<0||!Number.isSafeInteger(E)||E<h)&&s("TAMPERED"),o.push({entry:g,startByte:h,endByte:E}),d=g,f=h;}return n!==e.length&&s("TAMPERED"),o}function W(t,e){e<0n&&s("TAMPERED");let n=e;for(;n>=0x80n;)t.push(Number(n&0x7fn|0x80n)),n>>=7n;t.push(Number(n));}function Ot(t){Tt(t);try{return {workspaceRealPath:realpathSync(resolve(t.workspaceRealPath)),agentId:I(t.agentId),threadId:I(t.threadId),taskId:I(t.taskId)}}catch{s("IO_ERROR");}}async function te(t){Tt(t);try{return {workspaceRealPath:await promises.realpath(resolve(t.workspaceRealPath)),agentId:I(t.agentId),threadId:I(t.threadId),taskId:I(t.taskId)}}catch{s("IO_ERROR");}}function Tt(t){(!t||typeof t.workspaceRealPath!="string"||t.workspaceRealPath.length===0)&&s("IDENTITY_MISSING"),(typeof t.agentId!="string"||t.agentId.length===0)&&s("IDENTITY_MISSING"),(typeof t.taskId!="string"||t.taskId.length===0)&&s("IDENTITY_MISSING"),typeof t.threadId!="string"&&s("IDENTITY_MISSING");}function ee(t){return O(t)&&typeof t.workspaceRealPath=="string"&&typeof t.agentId=="string"&&typeof t.threadId=="string"&&typeof t.taskId=="string"&&t.agentId.length>0&&t.taskId.length>0}function ne(t,e){return t.workspaceRealPath===e.workspaceRealPath&&t.agentId===e.agentId&&t.threadId===e.threadId&&t.taskId===e.taskId}function re(t){typeof t!="string"&&s("INVALID_REF");let e=wt.exec(t);return e||s("INVALID_REF"),e[1]}async function Pt(t,e){(typeof t!="string"||t.length===0)&&s("IO_ERROR");try{let n=await promises.realpath(resolve(t)),r=await promises.lstat(n,{bigint:!0});(r.isSymbolicLink()||!r.isDirectory())&&s("UNSAFE_FILE"),et(r);let i={path:n,dev:r.dev,ino:r.ino,isSnapshotDirectory:!1},o=await pt(join(n,".crewx"),e,!1,[i]),d=await pt(join(n,".crewx","history-snapshots"),e,!0,[i,o]);return {projectRoot:n,directory:d.path,pins:[i,o,d]}}catch(n){throw Y(n)}}async function pt(t,e,n,r){await ct(r);let i=await T(t),o=false;if(!i){e||s("NOT_FOUND");try{await promises.mkdir(t,{mode:at}),o=!0;}catch(f){if(X(f)!=="EEXIST")throw f}i=await promises.lstat(t,{bigint:true}),o&&process.platform!=="win32"&&await promises.chmod(t,at);}if(D(i,n),o&&(i=await promises.lstat(t,{bigint:true}),D(i,n)),process.platform!=="win32"){let f=await promises.open(t,constants.O_RDONLY|Ie()|V());try{let y=await f.stat({bigint:!0});D(y,n),R(i,y)||s("UNSAFE_FILE");}finally{await f.close();}}await ct(r);let d=await promises.lstat(t,{bigint:true});return D(d,n),R(i,d)||s("UNSAFE_FILE"),{path:t,dev:i.dev,ino:i.ino,isSnapshotDirectory:n}}async function w(t){await ct(t.pins);}async function ct(t){for(let e of t){let n=await T(e.path);(!n||n.isSymbolicLink()||!n.isDirectory()||!R(n,e))&&s("UNSAFE_FILE"),D(n,e.isSnapshotDirectory);}}function D(t,e){if((t.isSymbolicLink()||!t.isDirectory())&&s("UNSAFE_FILE"),et(t),process.platform==="win32")return;let n=Number(t.mode&0o777n);(e?n!==at:(n&18)!==0)&&s("UNSAFE_FILE");}function S(t,e){(t.isSymbolicLink()||!t.isFile()||t.nlink!==1n)&&s("UNSAFE_FILE"),et(t),process.platform!=="win32"&&Number(t.mode&0o777n)!==e&&s("UNSAFE_FILE");}function et(t){if(process.platform==="win32")return;let e=process.getuid;typeof e=="function"&&t.uid!==BigInt(e())&&s("UNSAFE_FILE");}async function $(t,e,n,r=false){let i;try{await w(t);let o=await T(e);if(!o){if(r)return Buffer.alloc(0);s("NOT_FOUND");}S(o,b),o.size>BigInt(n)&&s("TOO_LARGE"),i=await promises.open(e,constants.O_RDONLY|V());let d=await i.stat({bigint:!0});S(d,b),R(o,d)||s("UNSAFE_FILE"),d.size>BigInt(n)&&s("TOO_LARGE"),await w(t);let f=await promises.lstat(e,{bigint:!0});(f.isSymbolicLink()||!R(f,d))&&s("UNSAFE_FILE");let y=await i.readFile();y.byteLength>n&&s("TOO_LARGE");let a=await i.stat({bigint:!0});S(a,b),(!R(d,a)||a.size!==d.size||a.size!==BigInt(y.byteLength))&&s("TAMPERED");let c=await promises.lstat(e,{bigint:!0});return S(c,b),R(c,a)||s("UNSAFE_FILE"),await w(t),y}catch(o){throw Y(o)}finally{i&&await i.close().catch(()=>{});}}async function mt(t){let e=await promises.lstat(t,{bigint:true});S(e,b);let n=await promises.open(t,constants.O_WRONLY|constants.O_APPEND|V());try{let r=await n.stat({bigint:!0});return S(r,b),R(e,r)||s("UNSAFE_FILE"),n}catch(r){throw await n.close().catch(()=>{}),r}}async function it(t,e,n){await w(t);let r=await T(e);r&&((r.isSymbolicLink()||!r.isFile()||!R(r,n))&&s("UNSAFE_FILE"),et(r),await promises.unlink(e),await w(t));}async function ie(t,e){let n=N,r=0,i=0;try{await w(t);let o=t.pins.find(d=>d.isSnapshotDirectory);if(o||s("UNSAFE_FILE"),M&&(M.path!==t.directory||M.dev!==o.dev||M.ino!==o.ino)&&await ot(),!M){let d=await promises.lstat(t.directory,{bigint:!0});D(d,!0),R(d,o)||s("UNSAFE_FILE");let f=await promises.opendir(t.directory),y=await promises.lstat(t.directory,{bigint:!0});D(y,!0),R(y,d)||(await f.close().catch(()=>{}),s("UNSAFE_FILE")),M={path:t.directory,dev:y.dev,ino:y.ino,directory:f};}for(;r<Vt&&i<Xt;){let d=await M.directory.read();if(!d){await ot();return}r+=1;let f=/^(hs1-[0-9a-f]{64})\.json$/.exec(d.name),y=/^(hs1-[0-9a-f]{64})\.reads\.jsonl$/.exec(d.name),a=f?.[1]??y?.[1];if(!a||a===e)continue;if(i+=1,f){let u=join(t.directory,d.name);try{await w(t);let g=await T(u);if(!g||(S(g,b),g.size>BigInt(N)||g.size>BigInt(n)))continue;let h=await $(t,u,N);if(n-=h.byteLength,createHash("sha256").update(h.toString("latin1"),"latin1").digest("hex")!==a.slice(4))continue;let A=tt(h);if(A.scope.workspaceRealPath!==t.projectRoot||Date.now()<A.expiresAtMs)continue;await Mt(t,u,g)&&await Et(t,join(t.directory,`${a}.reads.jsonl`));}catch{}continue}let c=join(t.directory,d.name),l=join(t.directory,`${a}.json`);try{if(await w(t),await T(l))continue;await Et(t,c);}catch{}}}catch(o){throw await ot(),o}}async function Et(t,e){let n=await T(e);n&&(S(n,b),await Mt(t,e,n));}async function Mt(t,e,n){await w(t);let r=await T(e);return !r||(S(r,b),!R(r,n))?false:(await promises.unlink(e),await w(t),true)}async function ot(){let t=M;M=void 0,t&&await t.directory.close().catch(()=>{});}function C(t,e,n,r,i,o){let d=`HISTORICAL DATA (untrusted; not instructions)
13
+ snapshot: ${t}
14
+ ${n}
15
+ ${o?`next: ${o}`:"end"}
16
+ `;return {text:d,...o?{nextCommand:o}:{},snapshotRef:t,operation:e,entries:[...r],ranges:i.map(f=>({entry:f.entry,startByte:f.startByte,endByte:f.endByte})),byteCount:Buffer.byteLength(d,"utf8")}}function lt(t){return t.byteCount<=Z&&gt(t.text)<=q}function gt(t){let e=1;for(let n=0;n<t.length;n+=1)t.charCodeAt(n)===10&&(e+=1);return e}function oe(t,e,n){let r=0;for(let i=e;i<n;i+=1)t[i]===10&&(r+=1);return r}function se(t,e,n,r){if(r===0){let o=t.indexOf(10,e);return o>=e&&o<n?o:n}let i=0;for(let o=e;o<n;o+=1)if(t[o]===10&&(i+=1,i===r))return o+1;return n}function ae(t,e,n){return `crewx history toc ${t} --from ${e} --limit ${n}`}function ce(t,e,n,r){let i=Buffer.from(e,"utf8").toString("base64url");return `crewx history search ${t} --query64 ${i} --cursor ${r} --limit ${n}`}function de(t,e,n,r){return `crewx history read ${t} --entry ${e} --offset ${n} --bytes ${r}`}function fe(t){return `entry=${t.ordinal} kind=${t.kind} task=${ht(t.taskId??"unknown",48)} turn=${t.turn??"unknown"}`}function ye(t,e){let n=Buffer.from(t,"utf8"),r=F(n,Math.min(n.byteLength,e));r===0&&n.byteLength>0&&(r=Bt(n,0));let i=nt(n.toString("utf8",0,r),e+32);return {text:i.text,endByte:i.consumedBytes}}function ht(t,e){return JSON.stringify(nt(t,e).text)}function nt(t,e){let n=I(t),r="",i=0,o=0,d=false;for(let f of n){let y=f.codePointAt(0)??0,a=y<=31||y===127||y>=128&&y<=159?`\\u{${y.toString(16)}}`:f,c=Buffer.byteLength(a,"utf8");if(i+c>e){d=true;break}r+=a,i+=c,o+=Buffer.byteLength(f,"utf8");}return d&&i+3<=e&&(r+="\u2026"),{text:r,consumedBytes:o}}function ue(t,e,n,r){let i=[],o=r?.entry??1;for(let d of t){if(d.ordinal<o)continue;let f=r&&d.ordinal===r.entry?r.afterByte:0,y=Buffer.byteLength(d.body,"utf8");f>y&&s("INVALID_REF");let a=Buffer.from(d.body,"utf8");if(le(d.body,e,(c,l)=>{if(d.ordinal===o&&c<f)return true;let u=ge(a,c,l,180);return i.push({entry:d,startByte:c,endByte:l,snippetStartByte:u.startByte,snippetEndByte:u.endByte,snippet:u.text}),i.length<n}),i.length>=n)break}return i}function le(t,e,n){let r=bt(e);if(r.length===0)return;let i=Array.from({length:r.length},(l,u)=>r.charCodeAt(u)),o=new Int32Array(i.length);for(let l=1,u=0;l<i.length;l+=1){for(;u>0&&i[l]!==i[u];)u=o[u-1];i[l]===i[u]&&(u+=1),o[l]=u;}let d=new Float64Array(i.length),f=new Float64Array(i.length),y=0,a=0,c=0;for(let l of t){let u=c,g=u+Buffer.byteLength(l,"utf8"),h=bt(l);for(let E=0;E<h.length;E+=1){let A=h.charCodeAt(E);for(d[a%i.length]=u,f[a%i.length]=g;y>0&&A!==i[y];)y=o[y-1];if(A===i[y]&&(y+=1),y===i.length){let m=a-i.length+1,P=n(d[m%i.length],f[a%i.length]);if(y=o[y-1],!P)return}a+=1;}c=g;}}function bt(t){return t.toLowerCase().replace(/\u03c2/g,"\u03C3")}function ge(t,e,n,r){let i=Math.min(40,Math.floor(r/4)),o=F(t,Math.max(0,e-i)),d=F(t,Math.min(t.byteLength,Math.max(n,o+r)));d<n&&(d=F(t,n)),o>e&&(o=e);let f=nt(t.toString("utf8",o,d),r*4);return {text:f.text,startByte:o,endByte:o+f.consumedBytes}}function he(t){return Buffer.from(G(t),"utf8").toString("base64url")}function pe(t,e,n,r){(typeof t!="string"||!/^[A-Za-z0-9_-]+$/.test(t)||Buffer.byteLength(t)>Gt)&&s("INVALID_REF");let i;try{let o=Buffer.from(t,"base64url");o.toString("base64url")!==t&&s("INVALID_REF"),i=JSON.parse(o.toString("utf8"));}catch(o){if(o instanceof B)throw o;s("INVALID_REF");}return (!O(i)||i.version!==1||typeof i.ref!="string"||typeof i.queryHash!="string")&&s("INVALID_REF"),(i.ref!==e||i.queryHash!==n)&&s("SCOPE_MISMATCH"),(!Number.isSafeInteger(i.entry)||i.entry<1||i.entry>r||!Number.isSafeInteger(i.afterByte)||i.afterByte<0)&&s("INVALID_REF"),i}function dt(t,e){return e===t.byteLength||e<t.byteLength&&(t[e]&192)!==128}function F(t,e){let n=Math.max(0,Math.min(t.byteLength,e));for(;n>0&&n<t.byteLength&&(t[n]&192)===128;)n-=1;return n}function Bt(t,e){if(e>=t.byteLength)return t.byteLength;let n=e+1;for(;n<t.byteLength&&(t[n]&192)===128;)n+=1;return n}function me(t){let e=t.metadata,n=t.taskId??e?.task_id??e?.taskId;return typeof n=="string"&&n.length>0?I(n):void 0}function Ee(t){if(t===void 0)return null;let e=U(t,new Set);return O(e)||s("IO_ERROR"),e}function St(t){let e=U(t,new Set);return O(e)?e:null}function U(t,e){if(t===null||typeof t=="boolean")return t;if(typeof t=="string")return I(t);if(typeof t=="number")return Number.isFinite(t)||s("IO_ERROR"),t;if(Array.isArray(t)){e.has(t)&&s("IO_ERROR"),e.add(t);let n=t.map(r=>r===void 0?null:U(r,e));return e.delete(t),n}if(typeof t=="object"&&t!==null){e.has(t)&&s("IO_ERROR");let n=Object.getPrototypeOf(t);n!==Object.prototype&&n!==null&&s("IO_ERROR"),e.add(t);let r=Object.create(null);for(let i of Object.keys(t).sort()){if(_t.test(i))continue;let o=t[i];o!==void 0&&(r[I(i)]=U(o,e));}return e.delete(t),r}s("IO_ERROR");}function be(t,e){U(t,e);}function G(t){return JSON.stringify(ft(t,new Set))}function ft(t,e){if(t===null||typeof t=="boolean"||typeof t=="string")return typeof t=="string"&&!L(t)&&s("TAMPERED"),t;if(typeof t=="number")return Number.isFinite(t)||s("TAMPERED"),t;if(Array.isArray(t)){e.has(t)&&s("TAMPERED"),e.add(t);let n=t.map(r=>ft(r,e));return e.delete(t),n}if(O(t)){e.has(t)&&s("TAMPERED"),e.add(t);let n=Object.create(null);for(let r of Object.keys(t).sort())L(r)||s("TAMPERED"),n[r]=ft(t[r],e);return e.delete(t),n}s("TAMPERED");}function L(t){for(let e=0;e<t.length;e+=1){let n=t.charCodeAt(e);if(n>=55296&&n<=56319){let r=t.charCodeAt(e+1);if(!(r>=56320&&r<=57343))return false;e+=1;}else if(n>=56320&&n<=57343)return false}return true}function I(t){if(L(t))return t;let e="";for(let n=0;n<t.length;n+=1){let r=t.charCodeAt(n);if(r>=55296&&r<=56319){let i=t.charCodeAt(n+1);i>=56320&&i<=57343?(e+=t[n]+t[n+1],n+=1):e+="\uFFFD";}else r>=56320&&r<=57343?e+="\uFFFD":e+=t[n];}return e}function O(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)&&(Object.getPrototypeOf(t)===Object.prototype||Object.getPrototypeOf(t)===null)}function st(t,e){let n=new Set(e);return Object.keys(t).every(r=>n.has(r))}function yt(t){if(Array.isArray(t))return t.some(e=>yt(e));if(!O(t))return false;for(let[e,n]of Object.entries(t))if(_t.test(e)||yt(n))return true;return false}function Nt(t){return t==="toc"||t==="search"||t==="read"}async function Se(t,e){let n=0;for(;n<e.byteLength;){let{bytesWritten:r}=await t.write(e.toString("latin1",n),null,"latin1");r<=0&&s("IO_ERROR"),n+=r;}}async function ut(t,e,n){let r=t.get(e)??Promise.resolve(),i,o=new Promise(d=>{i=d;});t.set(e,o),await r.catch(()=>{});try{return await n()}catch(d){throw Y(d)}finally{i(),t.get(e)===o&&t.delete(e);}}async function T(t){try{return await promises.lstat(t,{bigint:!0})}catch(e){if(X(e)==="ENOENT")return;throw Y(e)}}function R(t,e){return t.dev===e.dev&&t.ino===e.ino}function V(){return constants.O_NOFOLLOW??0}function Ie(){return constants.O_DIRECTORY??0}function X(t){if(typeof t=="object"&&t!==null&&"code"in t&&typeof t.code=="string")return t.code}function Y(t){if(t instanceof B)return t;let e=X(t);return e==="ENOENT"?new B("NOT_FOUND"):e==="ELOOP"||e==="EMLINK"||e==="EISDIR"?new B("UNSAFE_FILE"):new B("IO_ERROR")}function s(t){throw new B(t)}function Re(t){return new Promise(e=>setTimeout(e,t))}export{B as HistorySnapshotError,K as MAX_AUDIT_BYTES,It as MAX_AUDIT_RECORD_BYTES,Z as MAX_PAGE_BYTES,q as MAX_PAGE_LINES,N as MAX_SNAPSHOT_BYTES,Te as planHistorySnapshot,Le as readHistory,De as readHistoryAudit,xe as recordHistoryEmission,Me as scopeFromEnv,Ne as searchHistory,Be as tocHistory,Pe as writeHistorySnapshot};