@skrr-ai/cli 0.1.119 → 0.1.121

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 (336) hide show
  1. package/dist/base-command.d.ts +31 -0
  2. package/dist/base-command.js +117 -6
  3. package/dist/commands/agent/message/context.d.ts +1 -0
  4. package/dist/commands/agent/message/context.js +3 -2
  5. package/dist/commands/commands.js +11 -0
  6. package/dist/commands/commitments/action-proposal.d.ts +13 -0
  7. package/dist/commands/commitments/action-proposal.js +39 -0
  8. package/dist/commands/commitments/action-proposals/decide.js +8 -1
  9. package/dist/commands/commitments/action-proposals/execute.js +11 -1
  10. package/dist/commands/commitments/create.js +2 -2
  11. package/dist/commands/commitments/doctor.d.ts +8 -0
  12. package/dist/commands/commitments/doctor.js +22 -0
  13. package/dist/commands/commitments/execute-remediation.js +12 -1
  14. package/dist/commands/commitments/observations.js +2 -2
  15. package/dist/commands/commitments/pack/bind.d.ts +18 -1
  16. package/dist/commands/commitments/pack/bind.js +66 -8
  17. package/dist/commands/commitments/pack/plan.d.ts +4 -1
  18. package/dist/commands/commitments/pack/plan.js +30 -2
  19. package/dist/commands/commitments/update.js +8 -2
  20. package/dist/commands/completion/index.js +1 -1
  21. package/dist/commands/completion/values.js +1 -1
  22. package/dist/commands/computer-use/audio.d.ts +1 -0
  23. package/dist/commands/computer-use/audio.js +1 -0
  24. package/dist/commands/computer-use/browser.d.ts +1 -0
  25. package/dist/commands/computer-use/browser.js +1 -0
  26. package/dist/commands/computer-use/disable.d.ts +1 -0
  27. package/dist/commands/computer-use/disable.js +1 -0
  28. package/dist/commands/computer-use/enable.d.ts +1 -0
  29. package/dist/commands/computer-use/enable.js +1 -0
  30. package/dist/commands/computer-use/index.d.ts +1 -0
  31. package/dist/commands/computer-use/index.js +1 -0
  32. package/dist/commands/computer-use/install.d.ts +1 -0
  33. package/dist/commands/computer-use/install.js +1 -0
  34. package/dist/commands/computer-use/recover.d.ts +1 -0
  35. package/dist/commands/computer-use/recover.js +1 -0
  36. package/dist/commands/computer-use/status.d.ts +1 -0
  37. package/dist/commands/computer-use/status.js +1 -0
  38. package/dist/commands/computer-use/stop.d.ts +1 -0
  39. package/dist/commands/computer-use/stop.js +1 -0
  40. package/dist/commands/context.js +16 -11
  41. package/dist/commands/convos/recovery.js +1 -1
  42. package/dist/commands/daemon/diagnostics.d.ts +9 -0
  43. package/dist/commands/daemon/diagnostics.js +53 -0
  44. package/dist/commands/daemon/index.js +2 -0
  45. package/dist/commands/daemon/maintenance/attest.d.ts +15 -0
  46. package/dist/commands/daemon/maintenance/attest.js +52 -0
  47. package/dist/commands/daemon/maintenance/hold.d.ts +17 -0
  48. package/dist/commands/daemon/maintenance/hold.js +70 -0
  49. package/dist/commands/daemon/maintenance/index.d.ts +12 -0
  50. package/dist/commands/daemon/maintenance/index.js +30 -0
  51. package/dist/commands/daemon/maintenance/resume.d.ts +13 -0
  52. package/dist/commands/daemon/maintenance/resume.js +36 -0
  53. package/dist/commands/daemon/maintenance/status.d.ts +13 -0
  54. package/dist/commands/daemon/maintenance/status.js +36 -0
  55. package/dist/commands/doctor.d.ts +4 -1
  56. package/dist/commands/doctor.js +50 -6
  57. package/dist/commands/followups/plans/cancel-batch.js +6 -3
  58. package/dist/commands/followups/plans/capacity.js +7 -3
  59. package/dist/commands/followups/plans/observability.js +11 -3
  60. package/dist/commands/followups/plans/preferences/set.js +26 -8
  61. package/dist/commands/followups/plans/preferences.js +1 -1
  62. package/dist/commands/followups/plans/show.js +1 -1
  63. package/dist/commands/goals/key-results/assess.d.ts +36 -0
  64. package/dist/commands/goals/key-results/assess.js +110 -0
  65. package/dist/commands/goals/key-results/history.d.ts +30 -0
  66. package/dist/commands/goals/key-results/history.js +104 -0
  67. package/dist/commands/goals/key-results/list.d.ts +5 -4
  68. package/dist/commands/goals/key-results/list.js +12 -6
  69. package/dist/commands/goals/key-results/show.d.ts +4 -2
  70. package/dist/commands/goals/key-results/show.js +25 -4
  71. package/dist/commands/goals/key-results/update.d.ts +4 -0
  72. package/dist/commands/goals/key-results/update.js +18 -24
  73. package/dist/commands/goals/plan-now.js +12 -1
  74. package/dist/commands/goals/planner-compare.d.ts +30 -0
  75. package/dist/commands/goals/planner-compare.js +136 -0
  76. package/dist/commands/machines/dedicated/service/exec.d.ts +3 -0
  77. package/dist/commands/machines/dedicated/service/exec.js +70 -11
  78. package/dist/commands/machines/hosted/destroy.d.ts +1 -0
  79. package/dist/commands/machines/hosted/destroy.js +11 -1
  80. package/dist/commands/machines/hosted/exec.d.ts +1 -0
  81. package/dist/commands/machines/hosted/exec.js +12 -1
  82. package/dist/commands/machines/hosted/index.js +1 -0
  83. package/dist/commands/machines/hosted/operation.d.ts +14 -0
  84. package/dist/commands/machines/hosted/operation.js +51 -0
  85. package/dist/commands/machines/hosted/pull.js +1 -1
  86. package/dist/commands/machines/hosted/start.js +6 -2
  87. package/dist/commands/search/agents.js +5 -1
  88. package/dist/commands/search/all.js +74 -22
  89. package/dist/commands/search/skills.d.ts +1 -0
  90. package/dist/commands/search/skills.js +12 -1
  91. package/dist/commands/search/spaces.d.ts +8 -1
  92. package/dist/commands/search/spaces.js +50 -12
  93. package/dist/commands/search/tasks.d.ts +13 -2
  94. package/dist/commands/search/tasks.js +78 -14
  95. package/dist/commands/search/teams.js +5 -1
  96. package/dist/commands/search/workspace.d.ts +19 -0
  97. package/dist/commands/search/workspace.js +126 -0
  98. package/dist/commands/skills/browse.d.ts +1 -0
  99. package/dist/commands/skills/browse.js +8 -1
  100. package/dist/commands/skills/search.d.ts +1 -0
  101. package/dist/commands/skills/search.js +12 -1
  102. package/dist/commands/spaces/auto-executor/compare.d.ts +18 -0
  103. package/dist/commands/spaces/auto-executor/compare.js +139 -0
  104. package/dist/commands/spaces/auto-executor/runs.d.ts +3 -0
  105. package/dist/commands/spaces/auto-executor/runs.js +13 -1
  106. package/dist/commands/spaces/charter/create-from-description.d.ts +21 -0
  107. package/dist/commands/spaces/charter/create-from-description.js +77 -0
  108. package/dist/commands/spaces/charter/show.d.ts +22 -0
  109. package/dist/commands/spaces/charter/show.js +61 -0
  110. package/dist/commands/spaces/heartbeats/list.d.ts +1 -16
  111. package/dist/commands/spaces/heartbeats/list.js +13 -0
  112. package/dist/commands/spaces/install-template.js +3 -0
  113. package/dist/commands/spaces/list.d.ts +1 -0
  114. package/dist/commands/spaces/list.js +12 -3
  115. package/dist/commands/spaces/loops/migrate.d.ts +32 -0
  116. package/dist/commands/spaces/loops/migrate.js +103 -0
  117. package/dist/commands/spaces/loops/release.d.ts +14 -0
  118. package/dist/commands/spaces/loops/release.js +59 -0
  119. package/dist/commands/spaces/notebook.d.ts +25 -0
  120. package/dist/commands/spaces/notebook.js +75 -0
  121. package/dist/commands/spaces/proposals/discard.d.ts +17 -0
  122. package/dist/commands/spaces/proposals/discard.js +17 -0
  123. package/dist/commands/spaces/proposals/keep.d.ts +17 -0
  124. package/dist/commands/spaces/proposals/keep.js +17 -0
  125. package/dist/commands/spaces/proposals/list.d.ts +24 -0
  126. package/dist/commands/spaces/proposals/list.js +89 -0
  127. package/dist/commands/spaces/search.d.ts +1 -0
  128. package/dist/commands/spaces/search.js +9 -0
  129. package/dist/commands/spaces/skills/propose.d.ts +29 -0
  130. package/dist/commands/spaces/skills/propose.js +82 -0
  131. package/dist/commands/spaces/templates/fork.js +3 -0
  132. package/dist/commands/spaces/triggers/show.js +6 -0
  133. package/dist/commands/spaces/workflows/retry.d.ts +1 -0
  134. package/dist/commands/spaces/workflows/retry.js +8 -1
  135. package/dist/commands/spaces/workflows/triggers/create.js +3 -2
  136. package/dist/commands/spaces/workflows/triggers/fire.js +4 -0
  137. package/dist/commands/spaces/workflows/triggers/update.js +2 -1
  138. package/dist/commands/spaces/write-policy/set.d.ts +22 -0
  139. package/dist/commands/spaces/write-policy/set.js +82 -0
  140. package/dist/commands/spaces/write-policy/show.d.ts +19 -0
  141. package/dist/commands/spaces/write-policy/show.js +49 -0
  142. package/dist/commands/store/artifacts/receipt.d.ts +14 -0
  143. package/dist/commands/store/artifacts/receipt.js +34 -0
  144. package/dist/commands/store/artifacts/release.d.ts +2 -0
  145. package/dist/commands/store/artifacts/release.js +11 -0
  146. package/dist/commands/store/governance/publish-release.d.ts +2 -0
  147. package/dist/commands/store/governance/publish-release.js +30 -1
  148. package/dist/commands/store/governance/release-receipt.d.ts +12 -0
  149. package/dist/commands/store/governance/release-receipt.js +32 -0
  150. package/dist/commands/tasks/approvals/list.d.ts +11 -5
  151. package/dist/commands/tasks/approvals/list.js +13 -6
  152. package/dist/commands/tasks/attachments/facts.d.ts +12 -0
  153. package/dist/commands/tasks/attachments/facts.js +29 -0
  154. package/dist/commands/tasks/attachments/upload.d.ts +1 -0
  155. package/dist/commands/tasks/attachments/upload.js +16 -0
  156. package/dist/commands/tasks/bulk-update.js +35 -1
  157. package/dist/commands/tasks/context.d.ts +15 -0
  158. package/dist/commands/tasks/context.js +69 -0
  159. package/dist/commands/tasks/copy.d.ts +18 -0
  160. package/dist/commands/tasks/copy.js +85 -0
  161. package/dist/commands/tasks/create-tree.js +97 -23
  162. package/dist/commands/tasks/create.js +9 -1
  163. package/dist/commands/tasks/deliverable/add.js +20 -10
  164. package/dist/commands/tasks/move.js +8 -1
  165. package/dist/commands/tasks/operations/show.d.ts +16 -0
  166. package/dist/commands/tasks/operations/show.js +98 -0
  167. package/dist/commands/tasks/operations/wait.d.ts +22 -0
  168. package/dist/commands/tasks/operations/wait.js +114 -0
  169. package/dist/commands/tasks/preflight.d.ts +1 -0
  170. package/dist/commands/tasks/preflight.js +11 -1
  171. package/dist/commands/tasks/rearm-recurrence.js +4 -0
  172. package/dist/commands/tasks/result/show.js +22 -0
  173. package/dist/commands/tasks/result/submit.d.ts +1 -0
  174. package/dist/commands/tasks/result/submit.js +3 -0
  175. package/dist/commands/tasks/retry-receipt.d.ts +15 -0
  176. package/dist/commands/tasks/retry-receipt.js +89 -0
  177. package/dist/commands/tasks/retry-review.d.ts +16 -0
  178. package/dist/commands/tasks/retry-review.js +66 -0
  179. package/dist/commands/tasks/retry.d.ts +4 -8
  180. package/dist/commands/tasks/retry.js +34 -68
  181. package/dist/commands/tasks/runs.d.ts +21 -0
  182. package/dist/commands/tasks/runs.js +95 -0
  183. package/dist/commands/tasks/search.d.ts +1 -0
  184. package/dist/commands/tasks/search.js +9 -0
  185. package/dist/commands/tasks/show.d.ts +2 -0
  186. package/dist/commands/tasks/show.js +15 -1
  187. package/dist/commands/tasks/start-receipt.d.ts +15 -0
  188. package/dist/commands/tasks/start-receipt.js +95 -0
  189. package/dist/commands/tasks/start.d.ts +4 -0
  190. package/dist/commands/tasks/start.js +49 -3
  191. package/dist/commands/tasks/update.js +3 -0
  192. package/dist/commands/tasks/upsert.js +17 -3
  193. package/dist/commands/tasks/watch.d.ts +3 -0
  194. package/dist/commands/tasks/watch.js +85 -20
  195. package/dist/commands/wiki/history.d.ts +33 -0
  196. package/dist/commands/wiki/history.js +134 -0
  197. package/dist/commands/wiki/ls.d.ts +2 -0
  198. package/dist/commands/wiki/ls.js +8 -0
  199. package/dist/commands/wiki/update.d.ts +3 -1
  200. package/dist/commands/wiki/update.js +24 -2
  201. package/dist/commands/wiki/write.d.ts +22 -0
  202. package/dist/commands/wiki/write.js +144 -6
  203. package/dist/generated/agent-guides.json +81 -81
  204. package/dist/generated/managed-instruction-guides.json +1 -1
  205. package/dist/lib/agent-guides.d.ts +9 -0
  206. package/dist/lib/agent-guides.js +23 -1
  207. package/dist/lib/agentic-stream.d.ts +5 -0
  208. package/dist/lib/agentic-stream.js +122 -3
  209. package/dist/lib/api-error-reason.d.ts +2 -0
  210. package/dist/lib/api-error-reason.js +14 -0
  211. package/dist/lib/api-fetch.js +3 -0
  212. package/dist/lib/auth-diagnostics.d.ts +39 -0
  213. package/dist/lib/auth-diagnostics.js +71 -0
  214. package/dist/lib/cli-client-identity.d.ts +6 -0
  215. package/dist/lib/cli-client-identity.js +16 -0
  216. package/dist/lib/cli-installation-diagnostics.d.ts +52 -0
  217. package/dist/lib/cli-installation-diagnostics.js +254 -0
  218. package/dist/lib/command-hygiene.d.ts +45 -0
  219. package/dist/lib/command-hygiene.js +413 -0
  220. package/dist/lib/commitments.d.ts +64 -3
  221. package/dist/lib/commitments.js +34 -6
  222. package/dist/lib/completion-index.d.ts +16 -4
  223. package/dist/lib/completion-index.js +50 -14
  224. package/dist/lib/config.js +7 -1
  225. package/dist/lib/daemon-maintenance-command.d.ts +22 -0
  226. package/dist/lib/daemon-maintenance-command.js +39 -0
  227. package/dist/lib/daemon-maintenance.d.ts +275 -0
  228. package/dist/lib/daemon-maintenance.js +1035 -0
  229. package/dist/lib/dedicated-service.d.ts +3 -2
  230. package/dist/lib/dedicated-service.js +11 -3
  231. package/dist/lib/governed-store.d.ts +8 -0
  232. package/dist/lib/governed-store.js +5 -0
  233. package/dist/lib/hosted-machines.d.ts +33 -2
  234. package/dist/lib/hosted-machines.js +19 -1
  235. package/dist/lib/json-output.d.ts +1 -1
  236. package/dist/lib/machines.d.ts +9 -1
  237. package/dist/lib/machines.js +15 -1
  238. package/dist/lib/node-adapter.js +13 -0
  239. package/dist/lib/record-output.d.ts +22 -0
  240. package/dist/lib/record-output.js +78 -0
  241. package/dist/lib/roles.d.ts +3 -3
  242. package/dist/lib/scoped-memory-command.d.ts +18 -0
  243. package/dist/lib/scoped-memory-command.js +53 -2
  244. package/dist/lib/search-display.d.ts +7 -0
  245. package/dist/lib/search-display.js +31 -0
  246. package/dist/lib/skill-store-pagination.d.ts +8 -0
  247. package/dist/lib/skill-store-pagination.js +35 -0
  248. package/dist/lib/space-charter.d.ts +49 -0
  249. package/dist/lib/space-charter.js +78 -0
  250. package/dist/lib/space-loop-migration.d.ts +18 -0
  251. package/dist/lib/space-loop-migration.js +128 -0
  252. package/dist/lib/space-notebook.d.ts +22 -0
  253. package/dist/lib/space-notebook.js +140 -0
  254. package/dist/lib/space-proposal-decision-command.d.ts +36 -0
  255. package/dist/lib/space-proposal-decision-command.js +108 -0
  256. package/dist/lib/space-proposals.d.ts +44 -0
  257. package/dist/lib/space-proposals.js +186 -0
  258. package/dist/lib/space-templates.d.ts +8 -0
  259. package/dist/lib/space-templates.js +17 -0
  260. package/dist/lib/space-write-policy.d.ts +24 -0
  261. package/dist/lib/space-write-policy.js +103 -0
  262. package/dist/lib/task-agent-context-capabilities.d.ts +10 -0
  263. package/dist/lib/task-agent-context-capabilities.js +22 -0
  264. package/dist/lib/task-agent-context-compatibility.d.ts +9 -0
  265. package/dist/lib/task-agent-context-compatibility.js +30 -0
  266. package/dist/lib/task-asset-upload.d.ts +22 -0
  267. package/dist/lib/task-asset-upload.js +257 -29
  268. package/dist/lib/task-batch.d.ts +15 -1
  269. package/dist/lib/task-batch.js +35 -2
  270. package/dist/lib/task-operation-watch.d.ts +66 -0
  271. package/dist/lib/task-operation-watch.js +159 -0
  272. package/dist/lib/task-resolver.d.ts +1 -1
  273. package/dist/lib/task-resolver.js +4 -3
  274. package/dist/lib/task-work.d.ts +1 -1
  275. package/dist/lib/task-work.js +35 -1
  276. package/dist/lib/task-write-attribution.d.ts +14 -0
  277. package/dist/lib/task-write-attribution.js +35 -2
  278. package/dist/lib/triggers.d.ts +11 -0
  279. package/dist/lib/triggers.js +7 -0
  280. package/dist/lib/wiki-update.d.ts +1 -0
  281. package/dist/lib/wiki-update.js +10 -1
  282. package/dist/lib/wiki.js +4 -1
  283. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.d.ts +9 -1
  284. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.js +31 -15
  285. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/credentialEnvelopeBridge.d.ts +10 -0
  286. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/credentialEnvelopeBridge.js +147 -0
  287. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonConsentProof.d.ts +20 -0
  288. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonConsentProof.js +72 -0
  289. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.js +1 -0
  290. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.js +13 -7
  291. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/desktopDaemonProof.d.ts +21 -0
  292. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/desktopDaemonProof.js +96 -0
  293. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/deviceIdentityBridge.d.ts +2 -3
  294. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/deviceIdentityBridge.js +102 -20
  295. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/guidedUpdate.d.ts +370 -0
  296. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/guidedUpdate.js +315 -0
  297. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/independentMachineReservation.d.ts +27 -0
  298. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/independentMachineReservation.js +161 -0
  299. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/independentMachineScopes.d.ts +26 -0
  300. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/independentMachineScopes.js +41 -0
  301. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.d.ts +2 -1
  302. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.js +15 -0
  303. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/kek/macos.js +20 -4
  304. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/maintenanceReportWire.d.ts +178 -0
  305. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/maintenanceReportWire.js +262 -0
  306. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.d.ts +51 -0
  307. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.js +106 -0
  308. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.d.ts +9 -1
  309. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.js +32 -5
  310. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/credentialEnvelopeBridge.d.ts +10 -0
  311. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/credentialEnvelopeBridge.js +172 -1
  312. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonConsentProof.d.ts +20 -0
  313. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonConsentProof.js +43 -0
  314. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonToolApproval.js +1 -0
  315. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonWire.js +33 -14
  316. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/desktopDaemonProof.d.ts +21 -0
  317. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/desktopDaemonProof.js +62 -0
  318. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/deviceIdentityBridge.d.ts +2 -3
  319. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/deviceIdentityBridge.js +133 -25
  320. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/guidedUpdate.d.ts +370 -0
  321. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/guidedUpdate.js +404 -0
  322. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/independentMachineReservation.d.ts +27 -0
  323. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/independentMachineReservation.js +132 -0
  324. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/independentMachineScopes.d.ts +26 -0
  325. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/independentMachineScopes.js +15 -0
  326. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.d.ts +2 -1
  327. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.js +2 -1
  328. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/kek/macos.js +28 -15
  329. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/maintenanceReportWire.d.ts +178 -0
  330. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/maintenanceReportWire.js +342 -0
  331. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.d.ts +51 -0
  332. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.js +138 -0
  333. package/dist/node_modules/@skrr-ai/auth-core/package.json +51 -1
  334. package/dist/node_modules/@skrr-ai/data-provider/index.js +27181 -20293
  335. package/oclif.manifest.json +5745 -1813
  336. package/package.json +20 -2
@@ -14,13 +14,9 @@ import { BaseCommand } from '../../base-command';
14
14
  * locally-running coding agent) was told an action existed and given no verb —
15
15
  * exactly the gap the CLI↔API parity contract exists to prevent.
16
16
  *
17
- * `retry_task` has no dedicated endpoint: it is a NAME for the documented
18
- * recovery, which is to return the task to a startable status and start it. So
19
- * this command composes the two existing endpoints rather than inventing a
20
- * third. The value it adds is that the advertised action is now reachable, and
21
- * that the status write is attached to the intent ("retry this") instead of
22
- * being an operator hand-editing a status field and hoping that was the right
23
- * one.
17
+ * The server owns the compound mutation. A status move and a Run admission are
18
+ * not independently replayable after a lost response, so the CLI sends one
19
+ * stable request id and offers an inspect-only receipt command for recovery.
24
20
  */
25
21
  export default class TasksRetry extends BaseCommand {
26
22
  static description: string;
@@ -31,8 +27,8 @@ export default class TasksRetry extends BaseCommand {
31
27
  static flags: {
32
28
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
33
29
  task: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
- 'no-start': import("@oclif/core/interfaces").BooleanFlag<boolean>;
35
30
  skill: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
31
+ 'request-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
36
32
  };
37
33
  run(): Promise<void>;
38
34
  }
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@oclif/core");
4
+ const node_crypto_1 = require("node:crypto");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../base-command");
6
7
  const task_resolver_1 = require("../../lib/task-resolver");
7
- const start_1 = require("./start");
8
+ const TASK_RETRY_REQUEST_ID_PATTERN = /^[A-Za-z0-9._:/-]{1,200}$/;
8
9
  /**
9
10
  * OSK-3815 — the CLI verb for the `retry_task` action.
10
11
  *
@@ -20,19 +21,14 @@ const start_1 = require("./start");
20
21
  * locally-running coding agent) was told an action existed and given no verb —
21
22
  * exactly the gap the CLI↔API parity contract exists to prevent.
22
23
  *
23
- * `retry_task` has no dedicated endpoint: it is a NAME for the documented
24
- * recovery, which is to return the task to a startable status and start it. So
25
- * this command composes the two existing endpoints rather than inventing a
26
- * third. The value it adds is that the advertised action is now reachable, and
27
- * that the status write is attached to the intent ("retry this") instead of
28
- * being an operator hand-editing a status field and hoping that was the right
29
- * one.
24
+ * The server owns the compound mutation. A status move and a Run admission are
25
+ * not independently replayable after a lost response, so the CLI sends one
26
+ * stable request id and offers an inspect-only receipt command for recovery.
30
27
  */
31
28
  class TasksRetry extends base_command_1.BaseCommand {
32
29
  static description = 'Retry a failed task — returns it to a startable status and starts it again (the `retry_task` action from `tasks actionability`)';
33
30
  static examples = [
34
31
  '<%= config.bin %> tasks retry <task-id>',
35
- '<%= config.bin %> tasks retry <task-id> --no-start',
36
32
  '<%= config.bin %> tasks retry <task-id> --json',
37
33
  ];
38
34
  static args = {
@@ -45,12 +41,12 @@ class TasksRetry extends base_command_1.BaseCommand {
45
41
  static flags = {
46
42
  json: core_1.Flags.boolean({ description: 'Output as JSON' }),
47
43
  task: core_1.Flags.string({ description: 'Task ID; overrides daemon runtime context' }),
48
- 'no-start': core_1.Flags.boolean({
49
- description: 'Only clear the failed state, do not dispatch. Use when you want to edit the task before it runs again.',
50
- }),
51
44
  skill: core_1.Flags.string({
52
45
  description: "Skill ID to inject into the retried run. Must be pinned to the task's space.",
53
46
  }),
47
+ 'request-id': core_1.Flags.string({
48
+ description: 'Stable idempotency key for this logical retry. Reuse it only to inspect the retry receipt after a lost response.',
49
+ }),
54
50
  };
55
51
  async run() {
56
52
  this.requireAuth();
@@ -70,74 +66,44 @@ class TasksRetry extends base_command_1.BaseCommand {
70
66
  });
71
67
  }
72
68
  const taskRef = await this.resolveEntityRef('task', taskIdentity.id);
73
- // Step 1 — clear the terminal state. `todo` rather than `backlog`: the task
74
- // was already triaged into the working set once, and a retry is not a
75
- // decision to deprioritise it.
76
- let movedTask;
77
- try {
78
- movedTask = await data_provider_1.dataService.moveTask({
79
- taskId: taskRef,
80
- status: 'todo',
81
- });
82
- }
83
- catch (err) {
84
- this.handleApiError(err, { subject: `Task ${taskRef}` });
85
- }
86
- // This receipt describes the first committed transition. Dispatch may
87
- // change the Task again, so it is not an overall current-state snapshot.
88
- const statusTransition = { requestedStatus: 'todo', task: movedTask };
89
- if (flags['no-start']) {
90
- if (flags.json) {
91
- this.log(JSON.stringify({
92
- taskId: taskRef,
93
- status: movedTask?.status,
94
- started: false,
95
- statusTransition,
96
- }));
97
- return;
98
- }
99
- this.log(`Cleared failed state on ${taskRef}; execution was not requested.`);
100
- if (typeof movedTask?.status === 'string')
101
- this.log(`Status: ${movedTask.status}`);
102
- this.log(`Start it with: ${this.config.bin} tasks start ${taskRef}`);
103
- return;
69
+ if (flags['request-id'] !== undefined &&
70
+ !TASK_RETRY_REQUEST_ID_PATTERN.test(flags['request-id'])) {
71
+ this.error('--request-id must be 1-200 characters of letters, digits and . _ : / - (it is sent as an idempotency key).', { exit: 2 });
104
72
  }
73
+ const requestId = flags['request-id'] || `task-retry:${(0, node_crypto_1.randomUUID)()}`;
105
74
  let result;
106
75
  try {
107
- result = await data_provider_1.dataService.startTask(taskRef, flags.skill ? { skillId: flags.skill } : undefined);
76
+ result = await data_provider_1.dataService.retryTask(taskRef, { requestId, ...(flags.skill ? { skillId: flags.skill } : {}) });
108
77
  }
109
78
  catch (err) {
110
- const waiting = (0, start_1.waitingForMachine)(err);
111
- if (waiting) {
112
- if (flags.json) {
113
- this.log(JSON.stringify({
114
- waiting: true,
115
- code: 'TASK_WAITING_FOR_MACHINE',
116
- taskId: taskRef,
117
- started: false,
118
- statusTransition,
119
- ...waiting,
120
- }, null, 2));
121
- return;
122
- }
123
- this.log(`Task ${taskRef} is waiting for the machine to start; the task will run by itself once it is ready.`);
124
- if (waiting.message)
125
- this.log(waiting.message);
126
- return;
127
- }
128
- const observedStatus = typeof movedTask?.status === 'string' ? ` (returned status '${movedTask.status}')` : '';
129
79
  this.handleApiError(err, {
130
- subject: `Task ${taskRef} (status transition committed${observedStatus}; start was not confirmed. ` +
131
- `Check ${this.config.bin} tasks show ${taskRef}, then use ${this.config.bin} tasks start ${taskRef} if needed)`,
80
+ subject: `Task ${taskRef} retry was not confirmed. Inspect ${this.config.bin} tasks retry-receipt ` +
81
+ `${taskRef} --request-id ${requestId}; do not issue a new retry id by guesswork.`,
132
82
  });
133
83
  }
134
84
  if (flags.json) {
135
- this.log(JSON.stringify({ ...result, taskId: taskRef, started: true, statusTransition }, null, 2));
85
+ this.log(JSON.stringify({ ...result, taskId: taskRef, requestId }, null, 2));
86
+ return;
87
+ }
88
+ if (!result.started) {
89
+ this.log(`Retry request ${requestId} is ${result.state}; dispatch is not confirmed.`);
90
+ if (result.dispatch?.code)
91
+ this.log(`Dispatch code: ${result.dispatch.code}`);
92
+ this.log(`Inspect only: ${this.config.bin} tasks retry-receipt ${taskRef} --request-id ${requestId}`);
136
93
  return;
137
94
  }
138
95
  this.log(`Retried task ${taskRef}`);
139
- this.log(`Conversation: ${result.conversationId}`);
140
- this.log(`Session: ${result.sessionId}`);
96
+ this.log(`Retry receipt: ${requestId}`);
97
+ if (result.runId)
98
+ this.log(`Run: ${result.runId}`);
99
+ if (result.autonomousRunId)
100
+ this.log(`Autonomous Run: ${result.autonomousRunId}`);
101
+ if (result.conversationId)
102
+ this.log(`Conversation: ${result.conversationId}`);
103
+ if (result.sessionId)
104
+ this.log(`Session: ${result.sessionId}`);
105
+ if (result.responseMessageId)
106
+ this.log(`Response message: ${result.responseMessageId}`);
141
107
  }
142
108
  }
143
109
  exports.default = TasksRetry;
@@ -6,6 +6,27 @@ import { type RunFailure } from './activity';
6
6
  * daemon id was not recorded). `-` when the row predates executor stamping.
7
7
  */
8
8
  export declare function formatRunExecutor(run: Record<string, unknown>): string;
9
+ /**
10
+ * The executor attempt is the recovery fence, not a coordinator or terminal
11
+ * identity. Keep it in the Task run listing because it lets a person tell a
12
+ * current retry from an old report without requiring them to discover an
13
+ * executor-specific UI.
14
+ */
15
+ export declare function formatRunAttempt(ref: unknown): string | null;
16
+ /** The latest exact attempt is enough for a compact historical row. */
17
+ export declare function formatRunAttemptState(run: Record<string, unknown>): string | null;
18
+ /**
19
+ * A terminal report, Task finalization and resource cleanup are deliberately
20
+ * separate receipts. This compact text preserves that order instead of calling
21
+ * any one of them "done" for the whole Task.
22
+ */
23
+ export declare function formatRunSettlement(run: Record<string, unknown>): string | null;
24
+ /**
25
+ * The public cleanup projection intentionally excludes reservation/fence
26
+ * coordinates. It is diagnostic evidence only; it never grants a CLI caller a
27
+ * release operation.
28
+ */
29
+ export declare function formatRunCleanup(run: Record<string, unknown>): string | null;
9
30
  /**
10
31
  * Whether this run row is one whose reason the caller cannot see. (S3 dogfood finding)
11
32
  *
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatRunExecutor = formatRunExecutor;
4
+ exports.formatRunAttempt = formatRunAttempt;
5
+ exports.formatRunAttemptState = formatRunAttemptState;
6
+ exports.formatRunSettlement = formatRunSettlement;
7
+ exports.formatRunCleanup = formatRunCleanup;
4
8
  exports.runNeedsFailureReason = runNeedsFailureReason;
5
9
  exports.runHandoverMarker = runHandoverMarker;
6
10
  exports.failureFromRun = failureFromRun;
@@ -33,6 +37,83 @@ function formatRunExecutor(run) {
33
37
  }
34
38
  return '-';
35
39
  }
40
+ /**
41
+ * The executor attempt is the recovery fence, not a coordinator or terminal
42
+ * identity. Keep it in the Task run listing because it lets a person tell a
43
+ * current retry from an old report without requiring them to discover an
44
+ * executor-specific UI.
45
+ */
46
+ function formatRunAttempt(ref) {
47
+ if (!ref || typeof ref !== 'object' || Array.isArray(ref))
48
+ return null;
49
+ const attempt = ref;
50
+ const kind = typeof attempt.kind === 'string' && attempt.kind.trim() ? attempt.kind : null;
51
+ const runId = typeof attempt.runId === 'string' && attempt.runId.trim() ? attempt.runId : null;
52
+ const number = typeof attempt.attempt === 'number' &&
53
+ Number.isSafeInteger(attempt.attempt) &&
54
+ attempt.attempt >= 0
55
+ ? String(attempt.attempt)
56
+ : null;
57
+ const generation = typeof attempt.generation === 'number' &&
58
+ Number.isSafeInteger(attempt.generation) &&
59
+ attempt.generation >= 0
60
+ ? String(attempt.generation)
61
+ : null;
62
+ const identity = [kind, runId].filter(Boolean).join(':');
63
+ const counters = [number ? `attempt ${number}` : null, generation ? `generation ${generation}` : null]
64
+ .filter(Boolean)
65
+ .join(', ');
66
+ return [identity || null, counters || null].filter(Boolean).join(' · ') || null;
67
+ }
68
+ /** The latest exact attempt is enough for a compact historical row. */
69
+ function formatRunAttemptState(run) {
70
+ const terminal = formatRunAttempt(run.terminalExecutorAttemptRef);
71
+ const active = formatRunAttempt(run.activeExecutorAttemptRef);
72
+ if (terminal && active && terminal !== active)
73
+ return `active ${active} → terminal ${terminal}`;
74
+ if (terminal)
75
+ return `terminal ${terminal}`;
76
+ if (active)
77
+ return `active ${active}`;
78
+ return null;
79
+ }
80
+ /**
81
+ * A terminal report, Task finalization and resource cleanup are deliberately
82
+ * separate receipts. This compact text preserves that order instead of calling
83
+ * any one of them "done" for the whole Task.
84
+ */
85
+ function formatRunSettlement(run) {
86
+ const terminal = run.terminalReport;
87
+ const finalization = run.finalization;
88
+ const facts = [];
89
+ if (terminal?.state === 'accepted') {
90
+ facts.push(`terminal accepted${typeof terminal.outcome === 'string' ? ` (${terminal.outcome})` : ''}`);
91
+ }
92
+ if (finalization?.pending === true || finalization?.projected === false) {
93
+ facts.push('finalization pending');
94
+ }
95
+ else if (finalization?.projected === true) {
96
+ facts.push('finalized');
97
+ }
98
+ return facts.length ? facts.join(' · ') : null;
99
+ }
100
+ /**
101
+ * The public cleanup projection intentionally excludes reservation/fence
102
+ * coordinates. It is diagnostic evidence only; it never grants a CLI caller a
103
+ * release operation.
104
+ */
105
+ function formatRunCleanup(run) {
106
+ const cleanup = run.cleanup;
107
+ const lease = cleanup?.capacityReservation;
108
+ if (!lease || typeof lease.state !== 'string' || !lease.state)
109
+ return null;
110
+ const reason = typeof lease.unknownReason === 'string' && lease.unknownReason
111
+ ? lease.unknownReason
112
+ : typeof lease.reason === 'string' && lease.reason
113
+ ? lease.reason
114
+ : null;
115
+ return `capacity ${lease.state}${reason ? ` (${reason})` : ''}`;
116
+ }
36
117
  /**
37
118
  * Whether this run row is one whose reason the caller cannot see. (S3 dogfood finding)
38
119
  *
@@ -193,6 +274,12 @@ class TasksRuns extends base_command_1.BaseCommand {
193
274
  // The column exists only when a run carries a handover field — an older
194
275
  // deployment sends neither, and an always-on column of '-' is noise.
195
276
  const showHandover = markers.some(Boolean);
277
+ const attempts = items.map(formatRunAttemptState);
278
+ const settlements = items.map(formatRunSettlement);
279
+ const cleanups = items.map(formatRunCleanup);
280
+ const showAttempt = attempts.some(Boolean);
281
+ const showSettlement = settlements.some(Boolean);
282
+ const showCleanup = cleanups.some(Boolean);
196
283
  const rows = items.map((run, i) => ({
197
284
  runId: String(run.runId ?? run.id ?? run._id ?? '-'),
198
285
  status: String(run.status ?? '-'),
@@ -203,6 +290,9 @@ class TasksRuns extends base_command_1.BaseCommand {
203
290
  // Always present on the row so the record type stays uniform; the COLUMN
204
291
  // is what is conditional.
205
292
  handover: markers[i] ?? '-',
293
+ attempt: attempts[i] ?? '-',
294
+ settlement: settlements[i] ?? '-',
295
+ cleanup: cleanups[i] ?? '-',
206
296
  }));
207
297
  (0, format_1.renderTable)(rows, [
208
298
  { key: 'runId', header: 'RUN ID' },
@@ -211,6 +301,11 @@ class TasksRuns extends base_command_1.BaseCommand {
211
301
  { key: 'started', header: 'STARTED' },
212
302
  { key: 'duration', header: 'DURATION' },
213
303
  { key: 'tokens', header: 'TOKENS' },
304
+ ...(showAttempt ? [{ key: 'attempt', header: 'ATTEMPT', maxWidth: 48 }] : []),
305
+ ...(showSettlement
306
+ ? [{ key: 'settlement', header: 'SETTLEMENT', maxWidth: 42 }]
307
+ : []),
308
+ ...(showCleanup ? [{ key: 'cleanup', header: 'CLEANUP', maxWidth: 42 }] : []),
214
309
  ...(showHandover ? [{ key: 'handover', header: 'HANDOVER' }] : []),
215
310
  ], (line) => this.log(line));
216
311
  // Only once something failed: a healthy list pays nothing for this.
@@ -0,0 +1 @@
1
+ export { default } from '../search/tasks';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ // Both spellings share one implementation and result contract.
8
+ var tasks_1 = require("../search/tasks");
9
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(tasks_1).default; } });
@@ -117,6 +117,8 @@ export default class TasksShow extends BaseCommand {
117
117
  id: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
118
118
  };
119
119
  static flags: {
120
+ fields: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
121
+ compact: import("@oclif/core/interfaces").BooleanFlag<boolean>;
120
122
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
121
123
  task: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
122
124
  'no-enrich': import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -23,6 +23,7 @@ const principal_display_1 = require("../../lib/principal-display");
23
23
  const task_economics_line_1 = require("../../lib/task-economics-line");
24
24
  const format_1 = require("../../lib/format");
25
25
  const task_recurrence_outcome_1 = require("../../lib/task-recurrence-outcome");
26
+ const record_output_1 = require("../../lib/record-output");
26
27
  /**
27
28
  * Where to look next — as COMMANDS, not as facts about the task.
28
29
  *
@@ -282,6 +283,8 @@ class TasksShow extends base_command_1.BaseCommand {
282
283
  '<%= config.bin %> tasks show',
283
284
  '<%= config.bin %> tasks show --task <task-id> --json',
284
285
  '<%= config.bin %> tasks show <task-id> --json',
286
+ '<%= config.bin %> tasks show <task-id> --compact --json',
287
+ '<%= config.bin %> tasks show <task-id> --fields id,ref,title,status --json',
285
288
  '<%= config.bin %> tasks show <task-id> --no-enrich',
286
289
  ];
287
290
  static args = {
@@ -303,6 +306,7 @@ class TasksShow extends base_command_1.BaseCommand {
303
306
  description: 'How to read the description. html (default) is what is stored; markdown returns it as it was written.',
304
307
  options: ['html', 'markdown'],
305
308
  }),
309
+ ...record_output_1.recordOutputFlags,
306
310
  };
307
311
  async run() {
308
312
  this.requireAuth();
@@ -393,9 +397,19 @@ class TasksShow extends base_command_1.BaseCommand {
393
397
  completionRead = false;
394
398
  }
395
399
  if (flags.json) {
396
- this.printJsonResult({ ...t, url, completion });
400
+ // `ref` is the stable copy/paste alias list output already exposes. A
401
+ // detail record normalizes it before any projection so callers may use
402
+ // `--fields ref` consistently across `tasks list` and `tasks show`.
403
+ const ref = (typeof t.ref === 'string' && t.ref) ||
404
+ (typeof t.identifier === 'string' && t.identifier) ||
405
+ (typeof t.taskNumber === 'number' || typeof t.taskNumber === 'string'
406
+ ? `#${t.taskNumber}`
407
+ : undefined);
408
+ this.printJsonResult((0, record_output_1.shapeRecordResponse)({ ...t, ...(ref ? { ref } : {}), ...(url ? { url } : {}), completion }, { resource: 'task', fields: flags.fields, compact: flags.compact }));
397
409
  return;
398
410
  }
411
+ for (const line of (0, record_output_1.textModeRecordProjectionNotes)(flags))
412
+ this.log(line);
399
413
  for (const line of completionLines(completion, { read: completionRead }))
400
414
  this.log(line);
401
415
  const agents = Array.isArray(t.assigneeAgentIds) ? t.assigneeAgentIds : [];
@@ -0,0 +1,15 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ /** Read-only recovery for one caller-owned task-start request. */
3
+ export default class TasksStartReceipt extends BaseCommand {
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ id: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ task: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ 'request-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../base-command");
6
+ const task_resolver_1 = require("../../lib/task-resolver");
7
+ /** Read-only recovery for one caller-owned task-start request. */
8
+ class TasksStartReceipt extends base_command_1.BaseCommand {
9
+ static description = 'Read the durable receipt for one task-start request without starting another run.';
10
+ static examples = [
11
+ '<%= config.bin %> tasks start-receipt <task-id> --request-id task-start:deploy-42',
12
+ '<%= config.bin %> tasks start-receipt <task-id> --request-id task-start:deploy-42 --json',
13
+ ];
14
+ static args = {
15
+ id: core_1.Args.string({
16
+ description: 'Task ID; defaults to OVERSKY_SESSION_TASK_ID in task runtimes',
17
+ required: false,
18
+ ignoreStdin: true,
19
+ }),
20
+ };
21
+ static flags = {
22
+ task: core_1.Flags.string({ description: 'Task ID; overrides daemon runtime context' }),
23
+ 'request-id': core_1.Flags.string({
24
+ description: 'The request id printed by tasks start',
25
+ required: true,
26
+ }),
27
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
28
+ };
29
+ async run() {
30
+ this.requireAuth();
31
+ const { args, flags } = await this.parse(TasksStartReceipt);
32
+ let taskIdentity;
33
+ try {
34
+ taskIdentity = (0, task_resolver_1.resolveTaskIdentity)({ positionalId: args.id, flagTask: flags.task });
35
+ }
36
+ catch (err) {
37
+ const failure = (0, task_resolver_1.taskResolutionFailure)(err);
38
+ this.failWithCliError({
39
+ message: failure.message,
40
+ code: failure.code,
41
+ exit: 2,
42
+ retryable: false,
43
+ details: { suggestion: failure.suggestion, context: failure.details },
44
+ });
45
+ }
46
+ // `resolveTaskIdentity` decides which INPUT wins; it does no lookup. This
47
+ // turns whatever it picked into something the API can resolve — a UUID and
48
+ // an OSK-2423 ref pass through untouched, a title is searched.
49
+ const taskId = await this.resolveTaskReference(taskIdentity.id);
50
+ // The CLI may compile against a published data-provider declaration that
51
+ // predates this additive reader; use the runtime surface just as `start`
52
+ // does for its newer options.
53
+ const getTaskStartReceipt = data_provider_1.dataService
54
+ .getTaskStartReceipt;
55
+ let receipt;
56
+ try {
57
+ receipt = await getTaskStartReceipt(taskId, flags['request-id']);
58
+ }
59
+ catch (err) {
60
+ this.handleApiError(err, { subject: `Task ${taskId} start receipt` });
61
+ }
62
+ if (flags.json) {
63
+ this.printJsonResult(receipt);
64
+ return;
65
+ }
66
+ if (receipt.state === 'accepted') {
67
+ this.log(`Start request ${receipt.requestId} has an accepted server response.`);
68
+ if (receipt.responseStatus !== undefined)
69
+ this.log(`Response status: ${receipt.responseStatus}`);
70
+ if (receipt.run?.runId)
71
+ this.log(`Run: ${receipt.run.runId}`);
72
+ if (receipt.run?.autonomousRunId)
73
+ this.log(`Autonomous Run: ${receipt.run.autonomousRunId}`);
74
+ if (receipt.run?.conversationId)
75
+ this.log(`Conversation: ${receipt.run.conversationId}`);
76
+ if (receipt.run?.sessionId)
77
+ this.log(`Session: ${receipt.run.sessionId}`);
78
+ if (receipt.run?.responseMessageId) {
79
+ this.log(`Response message: ${receipt.run.responseMessageId}`);
80
+ }
81
+ if (receipt.code)
82
+ this.log(`Response code: ${receipt.code}`);
83
+ this.log('This receipt does not prove target acquisition, harness activity, or a terminal Task outcome.');
84
+ return;
85
+ }
86
+ if (receipt.state === 'pending') {
87
+ this.log(`Start request ${receipt.requestId} is pending; its outcome is not recorded yet.`);
88
+ this.log('Do not issue a fresh start. Wait for the original request or retry this exact request id.');
89
+ return;
90
+ }
91
+ this.log(`No task-scoped receipt exists for start request ${receipt.requestId}.`);
92
+ this.log(`That is not proof the start did not happen. Inspect: ${this.config.bin} tasks execution-state ${taskId}`);
93
+ }
94
+ }
95
+ exports.default = TasksStartReceipt;
@@ -11,7 +11,9 @@ export default class TasksStart extends BaseCommand {
11
11
  'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
12
  task: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
13
  skill: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ capability: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  branch: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ 'request-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
17
  };
16
18
  run(): Promise<void>;
17
19
  }
@@ -25,6 +27,8 @@ export declare function waitingForMachine(err: unknown): {
25
27
  reason?: string;
26
28
  retryable?: boolean;
27
29
  } | null;
30
+ /** The next safe action when admission is retained but its machine is waking. */
31
+ export declare function waitingForMachineFollowUpLine(bin: string, taskRef: string): string;
28
32
  /**
29
33
  * What to run next, printed after a start (OSK-12128). A start used to print
30
34
  * two ids and stop, and the way to watch it was found by accident. Every