@skrr-ai/cli 0.1.110 → 0.1.113

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 (399) hide show
  1. package/bin/run.js +15 -1
  2. package/dist/base-command.d.ts +31 -3
  3. package/dist/base-command.js +136 -22
  4. package/dist/commands/actions/list.js +2 -1
  5. package/dist/commands/agenda/trigger/create.js +1 -1
  6. package/dist/commands/agenda/trigger/list.js +2 -1
  7. package/dist/commands/agent-groups/list.js +2 -1
  8. package/dist/commands/agents/actions/list.js +2 -1
  9. package/dist/commands/agents/always-on/status.js +5 -0
  10. package/dist/commands/agents/chat.js +4 -1
  11. package/dist/commands/agents/create.d.ts +3 -1
  12. package/dist/commands/agents/create.js +36 -3
  13. package/dist/commands/agents/duplicate.js +4 -0
  14. package/dist/commands/agents/eval/list.js +2 -1
  15. package/dist/commands/agents/files/list.js +2 -1
  16. package/dist/commands/agents/folders/list.js +2 -1
  17. package/dist/commands/agents/goals/list.js +2 -1
  18. package/dist/commands/agents/intuitions/list.js +8 -5
  19. package/dist/commands/agents/list.d.ts +12 -0
  20. package/dist/commands/agents/list.js +45 -8
  21. package/dist/commands/agents/releases/known-issues/list.js +2 -1
  22. package/dist/commands/agents/releases/list.js +5 -1
  23. package/dist/commands/agents/releases/trusted-publishers/list.js +2 -1
  24. package/dist/commands/agents/roles/list.js +2 -1
  25. package/dist/commands/agents/skills/list.js +2 -1
  26. package/dist/commands/agents/todos/list.js +2 -1
  27. package/dist/commands/agents/triggers/list.js +2 -1
  28. package/dist/commands/api-keys/list.js +2 -1
  29. package/dist/commands/apps/channel.d.ts +20 -0
  30. package/dist/commands/apps/channel.js +64 -0
  31. package/dist/commands/apps/check-draft.d.ts +12 -0
  32. package/dist/commands/apps/check-draft.js +41 -0
  33. package/dist/commands/apps/check.d.ts +42 -0
  34. package/dist/commands/apps/check.js +91 -0
  35. package/dist/commands/apps/create.d.ts +15 -0
  36. package/dist/commands/apps/create.js +59 -0
  37. package/dist/commands/apps/data/put.d.ts +18 -0
  38. package/dist/commands/apps/data/put.js +72 -0
  39. package/dist/commands/apps/data/query.d.ts +20 -0
  40. package/dist/commands/apps/data/query.js +88 -0
  41. package/dist/commands/apps/disclosure.d.ts +16 -0
  42. package/dist/commands/apps/disclosure.js +71 -0
  43. package/dist/commands/apps/file/cat.d.ts +15 -0
  44. package/dist/commands/apps/file/cat.js +50 -0
  45. package/dist/commands/apps/file/ls.d.ts +13 -0
  46. package/dist/commands/apps/file/ls.js +47 -0
  47. package/dist/commands/apps/file/mv.d.ts +15 -0
  48. package/dist/commands/apps/file/mv.js +49 -0
  49. package/dist/commands/apps/file/rm.d.ts +15 -0
  50. package/dist/commands/apps/file/rm.js +53 -0
  51. package/dist/commands/apps/file/write.d.ts +17 -0
  52. package/dist/commands/apps/file/write.js +81 -0
  53. package/dist/commands/apps/install.d.ts +19 -0
  54. package/dist/commands/apps/install.js +136 -0
  55. package/dist/commands/apps/installations/list.d.ts +11 -0
  56. package/dist/commands/apps/installations/list.js +49 -0
  57. package/dist/commands/apps/installations/show.d.ts +12 -0
  58. package/dist/commands/apps/installations/show.js +61 -0
  59. package/dist/commands/apps/layout/set.d.ts +11 -0
  60. package/dist/commands/apps/layout/set.js +125 -0
  61. package/dist/commands/apps/layout/show.d.ts +9 -0
  62. package/dist/commands/apps/layout/show.js +33 -0
  63. package/dist/commands/apps/list.d.ts +10 -0
  64. package/dist/commands/apps/list.js +45 -0
  65. package/dist/commands/apps/logs.d.ts +13 -0
  66. package/dist/commands/apps/logs.js +55 -0
  67. package/dist/commands/apps/preview.d.ts +12 -0
  68. package/dist/commands/apps/preview.js +39 -0
  69. package/dist/commands/apps/publish/propose.d.ts +14 -0
  70. package/dist/commands/apps/publish/propose.js +45 -0
  71. package/dist/commands/apps/pull.d.ts +14 -0
  72. package/dist/commands/apps/pull.js +56 -0
  73. package/dist/commands/apps/push.d.ts +15 -0
  74. package/dist/commands/apps/push.js +75 -0
  75. package/dist/commands/apps/reconsent.d.ts +13 -0
  76. package/dist/commands/apps/reconsent.js +67 -0
  77. package/dist/commands/apps/report.d.ts +20 -0
  78. package/dist/commands/apps/report.js +63 -0
  79. package/dist/commands/apps/resume.d.ts +12 -0
  80. package/dist/commands/apps/resume.js +36 -0
  81. package/dist/commands/apps/settings/set.d.ts +13 -0
  82. package/dist/commands/apps/settings/set.js +54 -0
  83. package/dist/commands/apps/settings/show.d.ts +11 -0
  84. package/dist/commands/apps/settings/show.js +31 -0
  85. package/dist/commands/apps/show.d.ts +12 -0
  86. package/dist/commands/apps/show.js +49 -0
  87. package/dist/commands/apps/suspend.d.ts +12 -0
  88. package/dist/commands/apps/suspend.js +35 -0
  89. package/dist/commands/apps/uninstall.d.ts +13 -0
  90. package/dist/commands/apps/uninstall.js +43 -0
  91. package/dist/commands/apps/upgrade.d.ts +14 -0
  92. package/dist/commands/apps/upgrade.js +49 -0
  93. package/dist/commands/apps/version/create.d.ts +14 -0
  94. package/dist/commands/apps/version/create.js +53 -0
  95. package/dist/commands/apps/version/show.d.ts +12 -0
  96. package/dist/commands/apps/version/show.js +39 -0
  97. package/dist/commands/apps/versions.d.ts +12 -0
  98. package/dist/commands/apps/versions.js +40 -0
  99. package/dist/commands/apps/webhooks/list.d.ts +12 -0
  100. package/dist/commands/apps/webhooks/list.js +47 -0
  101. package/dist/commands/characters/list.js +2 -1
  102. package/dist/commands/chats/files/list.js +2 -1
  103. package/dist/commands/chats/folders/list.js +2 -1
  104. package/dist/commands/chats/list.js +2 -1
  105. package/dist/commands/chats/spaces/list.js +2 -1
  106. package/dist/commands/chats/widgets/list.js +2 -1
  107. package/dist/commands/code/jobs/list.js +4 -1
  108. package/dist/commands/commerce/incidents/list.js +2 -1
  109. package/dist/commands/commitments/accounting.js +3 -0
  110. package/dist/commands/commitments/action-proposals.d.ts +8 -0
  111. package/dist/commands/commitments/action-proposals.js +17 -2
  112. package/dist/commands/commitments/cost.d.ts +11 -0
  113. package/dist/commands/commitments/cost.js +25 -0
  114. package/dist/commands/commitments/create.js +6 -1
  115. package/dist/commands/commitments/endpoints/list.js +2 -1
  116. package/dist/commands/commitments/links/list.js +2 -1
  117. package/dist/commands/commitments/list.js +2 -1
  118. package/dist/commands/commitments/liveness.d.ts +30 -0
  119. package/dist/commands/commitments/liveness.js +22 -5
  120. package/dist/commands/commitments/pack/list.js +2 -1
  121. package/dist/commands/commitments/preflight.js +6 -2
  122. package/dist/commands/commitments/update.js +10 -1
  123. package/dist/commands/compass/list.js +2 -1
  124. package/dist/commands/context.js +7 -1
  125. package/dist/commands/convos/list.js +3 -2
  126. package/dist/commands/dm/list.js +2 -1
  127. package/dist/commands/dm/work.d.ts +19 -0
  128. package/dist/commands/dm/work.js +54 -0
  129. package/dist/commands/feeds/list.js +2 -1
  130. package/dist/commands/followups/list.js +2 -1
  131. package/dist/commands/followups/plans/cancel.d.ts +13 -0
  132. package/dist/commands/followups/plans/cancel.js +26 -0
  133. package/dist/commands/followups/plans/create.d.ts +11 -0
  134. package/dist/commands/followups/plans/create.js +37 -0
  135. package/dist/commands/followups/plans/example.d.ts +6 -0
  136. package/dist/commands/followups/plans/example.js +12 -0
  137. package/dist/commands/followups/plans/list.d.ts +13 -0
  138. package/dist/commands/followups/plans/list.js +50 -0
  139. package/dist/commands/followups/plans/observability.d.ts +11 -0
  140. package/dist/commands/followups/plans/observability.js +46 -0
  141. package/dist/commands/followups/plans/revise.d.ts +14 -0
  142. package/dist/commands/followups/plans/revise.js +38 -0
  143. package/dist/commands/followups/plans/show.d.ts +11 -0
  144. package/dist/commands/followups/plans/show.js +32 -0
  145. package/dist/commands/goals/key-results/list.js +2 -1
  146. package/dist/commands/goals/labels/list.js +3 -2
  147. package/dist/commands/goals/list.js +3 -2
  148. package/dist/commands/grants/list.js +2 -1
  149. package/dist/commands/harnesses/grants/list.js +2 -1
  150. package/dist/commands/harnesses/leases/list.js +2 -1
  151. package/dist/commands/harnesses/list.js +10 -1
  152. package/dist/commands/ingress/list.js +2 -1
  153. package/dist/commands/initiatives/list.js +2 -1
  154. package/dist/commands/instruction-blocks/list.js +2 -1
  155. package/dist/commands/instructions/list.js +2 -1
  156. package/dist/commands/integrations/connections/list.js +2 -1
  157. package/dist/commands/integrations/tools/list.js +2 -1
  158. package/dist/commands/labels/list.js +3 -2
  159. package/dist/commands/learning/adapters.d.ts +16 -0
  160. package/dist/commands/learning/adapters.js +44 -0
  161. package/dist/commands/machines/dedicated/list.js +2 -1
  162. package/dist/commands/machines/hosted/list.js +2 -1
  163. package/dist/commands/machines/list.js +2 -1
  164. package/dist/commands/machines/show.js +5 -2
  165. package/dist/commands/measures/list.js +2 -1
  166. package/dist/commands/memory/list.js +2 -1
  167. package/dist/commands/memory/proposals/list.js +2 -1
  168. package/dist/commands/memory/stores/list.js +2 -1
  169. package/dist/commands/memory/topics/list.js +2 -1
  170. package/dist/commands/memory/versions/list.js +2 -1
  171. package/dist/commands/messages/list.js +2 -1
  172. package/dist/commands/northstars/intents/list.js +2 -1
  173. package/dist/commands/northstars/list.js +2 -1
  174. package/dist/commands/northstars/recommendations/list.js +2 -1
  175. package/dist/commands/outbox/list.js +2 -1
  176. package/dist/commands/profiles/list.js +2 -1
  177. package/dist/commands/projects/docs/list.js +8 -1
  178. package/dist/commands/projects/updates/list.js +2 -1
  179. package/dist/commands/proposals/list.js +2 -1
  180. package/dist/commands/requests/comments/list.js +2 -1
  181. package/dist/commands/requests/list.js +2 -1
  182. package/dist/commands/shares/list.js +2 -1
  183. package/dist/commands/shortcuts/list.js +2 -1
  184. package/dist/commands/signals/monitors/list.js +2 -1
  185. package/dist/commands/signals/schemas/list.js +2 -1
  186. package/dist/commands/signals/sources/list.js +2 -1
  187. package/dist/commands/space-directory-views/list.js +2 -1
  188. package/dist/commands/spaces/actions/list.js +4 -3
  189. package/dist/commands/spaces/briefs/list.js +2 -1
  190. package/dist/commands/spaces/cycles/list.js +2 -1
  191. package/dist/commands/spaces/files/folders/list.js +2 -1
  192. package/dist/commands/spaces/files/list.js +3 -2
  193. package/dist/commands/spaces/heartbeats/list.js +3 -2
  194. package/dist/commands/spaces/labels/list.js +3 -2
  195. package/dist/commands/spaces/list.d.ts +3 -18
  196. package/dist/commands/spaces/list.js +28 -35
  197. package/dist/commands/spaces/live/cards/list.js +2 -1
  198. package/dist/commands/spaces/members/list.d.ts +1 -0
  199. package/dist/commands/spaces/members/list.js +4 -1
  200. package/dist/commands/spaces/show.js +2 -2
  201. package/dist/commands/spaces/skills/list.js +6 -2
  202. package/dist/commands/spaces/states/list.js +2 -1
  203. package/dist/commands/spaces/views/list.js +2 -1
  204. package/dist/commands/spaces/widgets/list.js +3 -2
  205. package/dist/commands/spaces/workflow-templates/list.js +2 -1
  206. package/dist/commands/spaces/workflows/fixtures/list.js +2 -1
  207. package/dist/commands/spaces/workflows/list.js +3 -2
  208. package/dist/commands/spaces/workflows/proposals/list.js +2 -1
  209. package/dist/commands/spaces/workflows/triggers/list.js +2 -1
  210. package/dist/commands/store/acquisitions/list.js +2 -1
  211. package/dist/commands/store/admissions/list.js +17 -1
  212. package/dist/commands/store/advisories/list.js +2 -1
  213. package/dist/commands/store/follows/list.js +2 -1
  214. package/dist/commands/store/publishers/domains/list.js +2 -1
  215. package/dist/commands/store/reports/list.js +2 -1
  216. package/dist/commands/subscriptions/list.js +2 -1
  217. package/dist/commands/tasks/actionability.js +7 -30
  218. package/dist/commands/tasks/activity.js +3 -7
  219. package/dist/commands/tasks/approvals/list.js +2 -1
  220. package/dist/commands/tasks/assign.d.ts +1 -0
  221. package/dist/commands/tasks/assign.js +43 -7
  222. package/dist/commands/tasks/attachments/list.js +2 -1
  223. package/dist/commands/tasks/chat/send.js +34 -0
  224. package/dist/commands/tasks/comments/add.js +6 -1
  225. package/dist/commands/tasks/comments/list.js +2 -1
  226. package/dist/commands/tasks/complete.js +26 -2
  227. package/dist/commands/tasks/continue.d.ts +18 -0
  228. package/dist/commands/tasks/continue.js +54 -0
  229. package/dist/commands/tasks/create-tree.d.ts +5 -0
  230. package/dist/commands/tasks/create-tree.js +399 -219
  231. package/dist/commands/tasks/create.d.ts +1 -0
  232. package/dist/commands/tasks/create.js +63 -11
  233. package/dist/commands/tasks/deliverable/add.js +10 -3
  234. package/dist/commands/tasks/deliverable/list.js +2 -1
  235. package/dist/commands/tasks/events/list.js +2 -1
  236. package/dist/commands/tasks/execution-state.d.ts +12 -0
  237. package/dist/commands/tasks/execution-state.js +28 -0
  238. package/dist/commands/tasks/expectations/assess.js +40 -5
  239. package/dist/commands/tasks/guide.d.ts +10 -0
  240. package/dist/commands/tasks/guide.js +20 -0
  241. package/dist/commands/tasks/labels/list.js +2 -1
  242. package/dist/commands/tasks/list.d.ts +19 -0
  243. package/dist/commands/tasks/list.js +97 -4
  244. package/dist/commands/tasks/move.js +10 -2
  245. package/dist/commands/tasks/preflight.d.ts +14 -0
  246. package/dist/commands/tasks/preflight.js +77 -0
  247. package/dist/commands/tasks/resource/list.js +2 -1
  248. package/dist/commands/tasks/result/submit.js +10 -1
  249. package/dist/commands/tasks/review.js +6 -1
  250. package/dist/commands/tasks/revisions.d.ts +2 -0
  251. package/dist/commands/tasks/revisions.js +8 -1
  252. package/dist/commands/tasks/show.js +17 -11
  253. package/dist/commands/tasks/start.d.ts +1 -0
  254. package/dist/commands/tasks/start.js +35 -0
  255. package/dist/commands/tasks/templates/list.js +2 -1
  256. package/dist/commands/tasks/timeline.d.ts +5 -0
  257. package/dist/commands/tasks/timeline.js +9 -1
  258. package/dist/commands/tasks/update.d.ts +1 -0
  259. package/dist/commands/tasks/update.js +25 -2
  260. package/dist/commands/tasks/updates/add.js +6 -1
  261. package/dist/commands/tasks/updates/list.js +2 -1
  262. package/dist/commands/tasks/upsert.d.ts +1 -0
  263. package/dist/commands/tasks/upsert.js +8 -1
  264. package/dist/commands/token/list.js +2 -1
  265. package/dist/commands/tokens/list.js +2 -1
  266. package/dist/commands/tones/list.js +4 -2
  267. package/dist/commands/triggers/list.js +2 -1
  268. package/dist/commands/views/list.js +2 -1
  269. package/dist/commands/webhooks/list.js +2 -1
  270. package/dist/commands/whoami.js +1 -1
  271. package/dist/commands/widgets/list.js +2 -1
  272. package/dist/commands/widgets/save-as-app.d.ts +13 -0
  273. package/dist/commands/widgets/save-as-app.js +65 -0
  274. package/dist/commands/work-views/list.js +2 -1
  275. package/dist/commands/worklog/list.js +2 -1
  276. package/dist/commands/workspaces/list.js +3 -2
  277. package/dist/commands/workspaces/members.d.ts +1 -0
  278. package/dist/commands/workspaces/members.js +5 -2
  279. package/dist/generated/managed-instruction-guides.json +2 -2
  280. package/dist/help.js +7 -0
  281. package/dist/lib/agent-proactive-baseline.d.ts +9 -0
  282. package/dist/lib/agent-proactive-baseline.js +44 -0
  283. package/dist/lib/agentic-stream.d.ts +4 -1
  284. package/dist/lib/agentic-stream.js +29 -4
  285. package/dist/lib/appData.d.ts +75 -0
  286. package/dist/lib/appData.js +274 -0
  287. package/dist/lib/appInstallations.d.ts +117 -0
  288. package/dist/lib/appInstallations.js +960 -0
  289. package/dist/lib/appSettings.d.ts +3 -0
  290. package/dist/lib/appSettings.js +71 -0
  291. package/dist/lib/appWebhooks.d.ts +7 -0
  292. package/dist/lib/appWebhooks.js +59 -0
  293. package/dist/lib/apps-command.d.ts +44 -0
  294. package/dist/lib/apps-command.js +164 -0
  295. package/dist/lib/apps.d.ts +45 -0
  296. package/dist/lib/apps.js +148 -0
  297. package/dist/lib/appsCheck.d.ts +12 -0
  298. package/dist/lib/appsCheck.js +173 -0
  299. package/dist/lib/appsFs.d.ts +58 -0
  300. package/dist/lib/appsFs.js +384 -0
  301. package/dist/lib/auth-failure.d.ts +20 -0
  302. package/dist/lib/auth-failure.js +40 -3
  303. package/dist/lib/cli-installers.d.ts +9 -2
  304. package/dist/lib/command-miss.js +107 -0
  305. package/dist/lib/commitment-loop-status.js +25 -3
  306. package/dist/lib/commitments.d.ts +44 -3
  307. package/dist/lib/commitments.js +107 -9
  308. package/dist/lib/compasses.d.ts +4 -0
  309. package/dist/lib/compasses.js +11 -0
  310. package/dist/lib/daemon-setup.js +7 -7
  311. package/dist/lib/daemonHandoff.js +3 -2
  312. package/dist/lib/dedicated-ssh.d.ts +2 -0
  313. package/dist/lib/dedicated-ssh.js +98 -28
  314. package/dist/lib/json-output.d.ts +33 -0
  315. package/dist/lib/json-output.js +37 -0
  316. package/dist/lib/list-output.d.ts +9 -4
  317. package/dist/lib/list-output.js +36 -9
  318. package/dist/lib/lookbackPlanHelp.d.ts +19 -0
  319. package/dist/lib/lookbackPlanHelp.js +27 -0
  320. package/dist/lib/lookbackPlans.d.ts +22 -0
  321. package/dist/lib/lookbackPlans.js +88 -0
  322. package/dist/lib/machines.d.ts +27 -6
  323. package/dist/lib/machines.js +25 -14
  324. package/dist/lib/member-output.d.ts +20 -0
  325. package/dist/lib/member-output.js +57 -0
  326. package/dist/lib/preflight-copy.d.ts +7 -0
  327. package/dist/lib/preflight-copy.js +31 -0
  328. package/dist/lib/roles.d.ts +2 -2
  329. package/dist/lib/task-admission.d.ts +9 -0
  330. package/dist/lib/task-admission.js +35 -0
  331. package/dist/lib/task-batch.d.ts +4 -0
  332. package/dist/lib/task-batch.js +2 -0
  333. package/dist/lib/task-operations.d.ts +25 -0
  334. package/dist/lib/task-operations.js +123 -0
  335. package/dist/lib/task-preflight.d.ts +35 -0
  336. package/dist/lib/task-preflight.js +121 -0
  337. package/dist/lib/task-resource-references.d.ts +23 -0
  338. package/dist/lib/task-resource-references.js +119 -0
  339. package/dist/lib/task-spec-verification.d.ts +42 -0
  340. package/dist/lib/task-spec-verification.js +101 -0
  341. package/dist/lib/task-work.d.ts +11 -0
  342. package/dist/lib/task-work.js +41 -0
  343. package/dist/lib/task-write-attribution.d.ts +26 -0
  344. package/dist/lib/task-write-attribution.js +47 -0
  345. package/dist/lib/tasks.d.ts +13 -0
  346. package/dist/lib/tasks.js +61 -8
  347. package/dist/lib/triggers.d.ts +7 -0
  348. package/dist/lib/triggers.js +54 -4
  349. package/dist/lib/usage-discovery.d.ts +4 -0
  350. package/dist/lib/usage-discovery.js +14 -4
  351. package/dist/lib/widgetApps.d.ts +10 -0
  352. package/dist/lib/widgetApps.js +47 -0
  353. package/dist/lib/widgetStaticScan.js +25 -1
  354. package/dist/lib/workspaces.d.ts +11 -4
  355. package/dist/lib/workspaces.js +7 -3
  356. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.d.ts +14 -1
  357. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.js +47 -2
  358. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.d.ts +49 -1
  359. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.js +26 -0
  360. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.d.ts +118 -0
  361. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.js +614 -0
  362. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refresh.d.ts +2 -0
  363. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refresh.js +15 -2
  364. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshClassification.d.ts +5 -0
  365. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshClassification.js +3 -1
  366. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionRevocation.d.ts +177 -0
  367. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionRevocation.js +484 -0
  368. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.d.ts +11 -0
  369. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.js +46 -7
  370. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.d.ts +232 -0
  371. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.js +372 -0
  372. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/types.d.ts +17 -1
  373. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/types.js +12 -1
  374. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.d.ts +14 -1
  375. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.js +45 -2
  376. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonToolApproval.d.ts +49 -1
  377. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonToolApproval.js +24 -0
  378. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonWire.d.ts +118 -0
  379. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonWire.js +608 -0
  380. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refresh.d.ts +2 -0
  381. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refresh.js +15 -2
  382. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refreshClassification.d.ts +5 -0
  383. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refreshClassification.js +3 -1
  384. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/sessionRevocation.d.ts +177 -0
  385. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/sessionRevocation.js +472 -0
  386. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.d.ts +11 -0
  387. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.js +44 -6
  388. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.d.ts +232 -0
  389. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.js +360 -0
  390. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/types.d.ts +17 -1
  391. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/types.js +12 -1
  392. package/dist/node_modules/@skrr-ai/auth-core/package.json +30 -0
  393. package/dist/node_modules/@skrr-ai/data-provider/index.js +25245 -18730
  394. package/docs/v1/README.md +1 -0
  395. package/docs/v1/lookback-plans.md +88 -0
  396. package/docs/v1/operations.md +52 -0
  397. package/docs/v1/space-search.md +19 -0
  398. package/oclif.manifest.json +4792 -477
  399. package/package.json +27 -3
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../../base-command");
@@ -25,7 +26,7 @@ class ChatsFilesList extends base_command_1.BaseCommand {
25
26
  this.handleApiError(err);
26
27
  }
27
28
  if (flags.json) {
28
- this.log(JSON.stringify(response, null, 2));
29
+ this.printJsonResult((0, list_output_1.listResult)(response, 'files'));
29
30
  return;
30
31
  }
31
32
  const r = response;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../../base-command");
@@ -25,7 +26,7 @@ class ChatsFoldersList extends base_command_1.BaseCommand {
25
26
  this.handleApiError(err);
26
27
  }
27
28
  if (flags.json) {
28
- this.log(JSON.stringify(response, null, 2));
29
+ this.printJsonResult((0, list_output_1.listResult)(response, 'folders'));
29
30
  return;
30
31
  }
31
32
  const r = response;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toChatListRow = toChatListRow;
4
+ const list_output_1 = require("../../lib/list-output");
4
5
  const core_1 = require("@oclif/core");
5
6
  const data_provider_1 = require("@skrr-ai/data-provider");
6
7
  const base_command_1 = require("../../base-command");
@@ -73,7 +74,7 @@ class ChatsList extends base_command_1.BaseCommand {
73
74
  return true;
74
75
  });
75
76
  if (flags.json) {
76
- this.log(JSON.stringify({ ...r, groupChats: items }, null, 2));
77
+ this.printJsonResult((0, list_output_1.listResult)({ ...r, groupChats: items }, 'groupChats'));
77
78
  return;
78
79
  }
79
80
  if (items.length === 0) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../../base-command");
@@ -25,7 +26,7 @@ class ChatsSpacesList extends base_command_1.BaseCommand {
25
26
  this.handleApiError(err);
26
27
  }
27
28
  if (flags.json) {
28
- this.log(JSON.stringify(response, null, 2));
29
+ this.printJsonResult((0, list_output_1.listResult)(response, 'spaces'));
29
30
  return;
30
31
  }
31
32
  const r = response;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../../base-command");
@@ -25,7 +26,7 @@ class ChatsWidgetsList extends base_command_1.BaseCommand {
25
26
  this.handleApiError(err);
26
27
  }
27
28
  if (flags.json) {
28
- this.log(JSON.stringify(response, null, 2));
29
+ this.printJsonResult((0, list_output_1.listResult)(response, 'widgets'));
29
30
  return;
30
31
  }
31
32
  const r = response;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../../base-command");
@@ -41,11 +42,13 @@ class CodeJobsList extends base_command_1.BaseCommand {
41
42
  this.requireAuth();
42
43
  const { flags } = await this.parse(CodeJobsList);
43
44
  let tasks = [];
45
+ let response;
44
46
  try {
45
47
  const res = await data_provider_1.dataService.listCloudCodingTasks({
46
48
  ...(flags.status ? { status: flags.status } : {}),
47
49
  ...(flags.limit ? { limit: flags.limit } : {}),
48
50
  });
51
+ response = res;
49
52
  tasks = res?.data ?? [];
50
53
  }
51
54
  catch (err) {
@@ -55,7 +58,7 @@ class CodeJobsList extends base_command_1.BaseCommand {
55
58
  tasks = tasks.filter((t) => !TERMINAL.has(String(t.status)));
56
59
  }
57
60
  if (flags.json) {
58
- this.log(JSON.stringify(tasks, null, 2));
61
+ this.printJsonResult((0, list_output_1.listResult)({ ...response, data: tasks }));
59
62
  return;
60
63
  }
61
64
  if (tasks.length === 0) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const base_command_1 = require("../../../base-command");
5
6
  const commerce_1 = require("../../../lib/commerce");
@@ -43,7 +44,7 @@ class CommerceIncidentsList extends base_command_1.BaseCommand {
43
44
  this.handleApiError(error);
44
45
  return;
45
46
  }
46
- this.log(JSON.stringify(result, null, 2));
47
+ this.printJsonResult((0, list_output_1.listResult)(result, 'incidents'));
47
48
  }
48
49
  }
49
50
  exports.default = CommerceIncidentsList;
@@ -105,6 +105,9 @@ function formatAccountingReadout(readout) {
105
105
  const noSpendNote = (0, cost_1.noSpendInferenceNote)(Number(readout.costNoSpendRunCount || 0), Number(readout.costNoSpendInferredRunCount || 0));
106
106
  if (noSpendNote)
107
107
  lines.push(noSpendNote);
108
+ const olderNote = (0, cost_1.olderProjectionNote)(readout.costProjection);
109
+ if (olderNote)
110
+ lines.push(olderNote);
108
111
  const multiplier = readout.recommendedAttemptMultiplier;
109
112
  lines.push('');
110
113
  lines.push(`Attempt multiplier: ${multiplier == null ? 'not derivable yet' : multiplier}` +
@@ -1,4 +1,12 @@
1
1
  import { BaseCommand } from '../../base-command';
2
+ /**
3
+ * An approved bundle waiting out the owner's quiet hours reads as held, with
4
+ * the instant it sends, never as a bare `approved` that looks stuck.
5
+ */
6
+ export declare function proposalStatusLabel(proposal: {
7
+ status?: string;
8
+ executionReceipt?: Record<string, unknown>;
9
+ }): string;
2
10
  export default class CommitmentsActionProposals extends BaseCommand {
3
11
  static description: string;
4
12
  static args: {
@@ -1,9 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.proposalStatusLabel = proposalStatusLabel;
3
4
  const core_1 = require("@oclif/core");
5
+ const data_provider_1 = require("@skrr-ai/data-provider");
4
6
  const base_command_1 = require("../../base-command");
5
7
  const commitments_1 = require("../../lib/commitments");
6
8
  const format_1 = require("../../lib/format");
9
+ /**
10
+ * An approved bundle waiting out the owner's quiet hours reads as held, with
11
+ * the instant it sends, never as a bare `approved` that looks stuck.
12
+ */
13
+ function proposalStatusLabel(proposal) {
14
+ const hold = proposal.executionReceipt?.hold;
15
+ if (proposal.status === 'approved' && hold?.until) {
16
+ return `held until ${hold.untilLabel || hold.until}`;
17
+ }
18
+ return String(proposal.status || '—');
19
+ }
7
20
  class CommitmentsActionProposals extends base_command_1.BaseCommand {
8
21
  static description = 'List frozen Action Bundles and their recovery state';
9
22
  static args = {
@@ -49,16 +62,18 @@ class CommitmentsActionProposals extends base_command_1.BaseCommand {
49
62
  id: proposal.id,
50
63
  actions: String(proposal.actionSnapshots?.length || 1),
51
64
  digest: proposal.snapshotDigest || 'legacy',
52
- status: proposal.status,
65
+ status: proposalStatusLabel(proposal),
53
66
  attempt: `${proposal.attempt || 0}/${proposal.maxAttempts || 3}`,
54
67
  expires: proposal.expiresAt || '—',
68
+ notices: (0, data_provider_1.describeProposalNotices)(proposal.notices),
55
69
  })), [
56
70
  { key: 'id', header: 'PROPOSAL', verbatim: true },
57
71
  { key: 'actions', header: 'ACTIONS' },
58
72
  { key: 'digest', header: 'DIGEST', maxWidth: 64, verbatim: true },
59
- { key: 'status', header: 'STATUS' },
73
+ { key: 'status', header: 'STATUS', maxWidth: 40 },
60
74
  { key: 'attempt', header: 'ATTEMPT' },
61
75
  { key: 'expires', header: 'EXPIRES', maxWidth: 28 },
76
+ { key: 'notices', header: 'APPROVERS TOLD', maxWidth: 60 },
62
77
  ], (line) => this.log(line));
63
78
  }
64
79
  }
@@ -60,6 +60,17 @@ export default class CommitmentsCost extends BaseCommand {
60
60
  * formed a belief by the time they reach the caveat.
61
61
  */
62
62
  export declare function formatCostWindow(data: CommitmentCostWindow): string[];
63
+ /**
64
+ * The line that says when closed days were derived under an older spend rule
65
+ * (OSK-15500). Such a day keeps the census of the rule that closed it until the
66
+ * correction sweep re-closes it, which happens only while the day is inside the
67
+ * correction window. Without this line, an old day's "without cost" count reads
68
+ * exactly like a current one.
69
+ */
70
+ export declare function olderProjectionNote(projection: {
71
+ currentVersion?: number;
72
+ olderDayCount?: number;
73
+ } | undefined): string | null;
63
74
  /**
64
75
  * The line that says when "cost nothing" rests on inference (OSK-15500).
65
76
  *
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveCostWindow = resolveCostWindow;
4
4
  exports.formatCostWindow = formatCostWindow;
5
+ exports.olderProjectionNote = olderProjectionNote;
5
6
  exports.noSpendInferenceNote = noSpendInferenceNote;
6
7
  const core_1 = require("@oclif/core");
7
8
  const base_command_1 = require("../../base-command");
@@ -133,8 +134,32 @@ function formatCostWindow(data) {
133
134
  const note = noSpendInferenceNote(noSpend, Number(data.noSpendInferredRunCount || 0));
134
135
  if (note)
135
136
  lines.push(note);
137
+ const older = olderProjectionNote(data.projection);
138
+ if (older) {
139
+ lines.push(older);
140
+ const days = (data.projection?.olderDays ?? [])
141
+ .map((day) => `${day.date ?? '-'} (rule ${Number(day.version || 1)})`)
142
+ .join(', ');
143
+ if (days)
144
+ lines.push(` ${days}`);
145
+ }
136
146
  return lines;
137
147
  }
148
+ /**
149
+ * The line that says when closed days were derived under an older spend rule
150
+ * (OSK-15500). Such a day keeps the census of the rule that closed it until the
151
+ * correction sweep re-closes it, which happens only while the day is inside the
152
+ * correction window. Without this line, an old day's "without cost" count reads
153
+ * exactly like a current one.
154
+ */
155
+ function olderProjectionNote(projection) {
156
+ const older = Number(projection?.olderDayCount || 0);
157
+ if (!(older > 0))
158
+ return null;
159
+ return (`Note: ${older} closed day(s) were derived under an older cost rule than the ` +
160
+ `current one (rule ${Number(projection?.currentVersion || 0)}); their counts may differ ` +
161
+ 'until they are re-closed');
162
+ }
138
163
  /**
139
164
  * The line that says when "cost nothing" rests on inference (OSK-15500).
140
165
  *
@@ -457,12 +457,17 @@ JSON
457
457
  catch (err) {
458
458
  this.handleApiError(err);
459
459
  }
460
+ const warnings = (0, commitments_1.commitmentWriteWarnings)(commitment, { payload });
460
461
  if (flags.json) {
461
- this.log(JSON.stringify((0, web_url_1.withCommitmentUrl)(this.cliConfig.baseURL, commitment), null, 2));
462
+ this.log(JSON.stringify((0, web_url_1.withCommitmentUrl)(this.cliConfig.baseURL, {
463
+ ...commitment,
464
+ ...(warnings.length ? { warnings } : {}),
465
+ }), null, 2));
462
466
  return;
463
467
  }
464
468
  this.log('Created commitment:');
465
469
  (0, commitments_1.renderCommitmentSummary)(commitment, (line) => this.log(line));
470
+ (0, commitments_1.renderCommitmentWriteWarnings)(warnings, (line) => this.warn(line));
466
471
  }
467
472
  }
468
473
  exports.default = CommitmentsCreate;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const base_command_1 = require("../../../base-command");
5
6
  const commitment_endpoints_1 = require("../../../lib/commitment-endpoints");
@@ -32,7 +33,7 @@ class CommitmentsEndpointsList extends base_command_1.BaseCommand {
32
33
  this.handleApiError(err);
33
34
  }
34
35
  if (flags.json) {
35
- this.log(JSON.stringify(response, null, 2));
36
+ this.printJsonResult((0, list_output_1.listResult)(response, 'endpoints'));
36
37
  return;
37
38
  }
38
39
  (0, commitment_endpoints_1.renderEndpointList)(response.endpoints ?? [], (line) => this.log(line));
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const base_command_1 = require("../../../base-command");
5
6
  const commitments_1 = require("../../../lib/commitments");
@@ -25,7 +26,7 @@ class CommitmentsLinksList extends base_command_1.BaseCommand {
25
26
  this.handleApiError(error);
26
27
  }
27
28
  if (flags.json) {
28
- this.log(JSON.stringify(result, null, 2));
29
+ this.printJsonResult((0, list_output_1.listResult)(result));
29
30
  return;
30
31
  }
31
32
  const links = result.data || [];
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const base_command_1 = require("../../base-command");
5
6
  const web_url_1 = require("../../lib/web-url");
@@ -45,7 +46,7 @@ class CommitmentsList extends base_command_1.BaseCommand {
45
46
  this.handleApiError(err);
46
47
  }
47
48
  if (flags.json) {
48
- this.log(JSON.stringify((0, web_url_1.withDataUrls)(this.cliConfig.baseURL, response, web_url_1.commitmentUrlFrom), null, 2));
49
+ this.printJsonResult((0, list_output_1.listResult)((0, web_url_1.withDataUrls)(this.cliConfig.baseURL, response, web_url_1.commitmentUrlFrom)));
49
50
  return;
50
51
  }
51
52
  const rows = response.data ?? [];
@@ -1,4 +1,32 @@
1
1
  import { BaseCommand } from '../../base-command';
2
+ type SweepTally = {
3
+ at?: string;
4
+ scanned?: number;
5
+ selected?: number;
6
+ selectedLimit?: number;
7
+ timeboxed?: boolean;
8
+ stalenessSeconds?: number | null;
9
+ sloSeconds?: number | null;
10
+ ready?: number;
11
+ working?: number;
12
+ waiting?: number;
13
+ blocked?: number;
14
+ failed?: number;
15
+ alerted?: number;
16
+ errors?: number;
17
+ };
18
+ export type SweepHealth = {
19
+ lastSweepAt?: string | null;
20
+ sweepAgeSeconds?: number | null;
21
+ cursor?: {
22
+ id?: string;
23
+ at?: string | null;
24
+ } | null;
25
+ lastTick?: SweepTally | null;
26
+ stalenessSeconds?: number | null;
27
+ sloSeconds?: number | null;
28
+ healthy?: boolean;
29
+ };
2
30
  /**
3
31
  * `skrr commitments liveness` — is the liveness witness itself alive?
4
32
  *
@@ -16,3 +44,5 @@ export default class CommitmentsLiveness extends BaseCommand {
16
44
  };
17
45
  run(): Promise<void>;
18
46
  }
47
+ export declare function formatSweepHealth(health: SweepHealth): string[];
48
+ export {};
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatSweepHealth = formatSweepHealth;
3
4
  const core_1 = require("@oclif/core");
4
5
  const base_command_1 = require("../../base-command");
5
6
  const commitments_1 = require("../../lib/commitments");
@@ -52,13 +53,29 @@ function formatSweepHealth(health) {
52
53
  const status = health.healthy ? 'healthy' : 'STALE';
53
54
  lines.push(`Liveness sweep: ${status} (${formatAge(age)} old)`);
54
55
  lines.push(` last sweep: ${health.lastSweepAt}`);
56
+ const staleness = health.stalenessSeconds ?? health.lastTick?.stalenessSeconds;
57
+ const slo = health.sloSeconds ?? health.lastTick?.sloSeconds;
58
+ if (typeof staleness === 'number') {
59
+ const over = typeof slo === 'number' && staleness > slo;
60
+ lines.push(` stalest: ${formatAge(staleness)} unobserved at last tick` +
61
+ (typeof slo === 'number' ? ` (target ${formatAge(slo)}${over ? ', OVER' : ''})` : ''));
62
+ }
63
+ else if (health.lastTick) {
64
+ // An older leader recorded no age, or the head row's age could not be read.
65
+ lines.push(' stalest: unknown');
66
+ }
55
67
  const tick = health.lastTick;
56
68
  if (tick) {
57
- lines.push(` last tick: scanned ${tick.scanned ?? 0}` +
58
- ` | on_track ${tick.onTrack ?? 0}` +
59
- ` | stalled ${tick.stalled ?? 0}` +
60
- ` | unknown ${tick.unknown ?? 0}` +
61
- ` | unjudged ${tick.unjudged ?? 0}` +
69
+ const batch = typeof tick.selected === 'number'
70
+ ? ` of ${tick.selected}${typeof tick.selectedLimit === 'number' ? ` (batch ${tick.selectedLimit})` : ''}`
71
+ : '';
72
+ lines.push(` last tick: scanned ${tick.scanned ?? 0}${batch}` +
73
+ (tick.timeboxed ? ' | CUT SHORT by the lease budget' : ''));
74
+ lines.push(` ready ${tick.ready ?? 0}` +
75
+ ` | working ${tick.working ?? 0}` +
76
+ ` | waiting ${tick.waiting ?? 0}` +
77
+ ` | blocked ${tick.blocked ?? 0}` +
78
+ ` | failed ${tick.failed ?? 0}` +
62
79
  ` | alerted ${tick.alerted ?? 0}` +
63
80
  ` | errors ${tick.errors ?? 0}`);
64
81
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const base_command_1 = require("../../../base-command");
5
6
  const commitments_1 = require("../../../lib/commitments");
@@ -29,7 +30,7 @@ class CommitmentsPackList extends base_command_1.BaseCommand {
29
30
  return;
30
31
  }
31
32
  if (flags.json) {
32
- this.log(JSON.stringify(result, null, 2));
33
+ this.printJsonResult((0, list_output_1.listResult)(result));
33
34
  return;
34
35
  }
35
36
  const rows = result.data || [];
@@ -92,8 +92,10 @@ function preflightGateLines(gate, verbose = false) {
92
92
  else if (status === 'invalid') {
93
93
  lines.push(' Active owner rules: unknown (stored rules invalid).');
94
94
  }
95
- else if (status === 'available' && typeof count === 'number' &&
96
- Number.isSafeInteger(count) && count >= 0) {
95
+ else if (status === 'available' &&
96
+ typeof count === 'number' &&
97
+ Number.isSafeInteger(count) &&
98
+ count >= 0) {
97
99
  lines.push(` Active owner rules: ${count}${count === 0 ? ' (no active rules configured)' : ''}.`);
98
100
  }
99
101
  else {
@@ -110,6 +112,8 @@ function preflightGateLines(gate, verbose = false) {
110
112
  }
111
113
  for (const sentence of (0, preflight_copy_1.gateExplanationLines)(gate))
112
114
  lines.push(` ${sentence}`);
115
+ for (const sentence of (0, preflight_copy_1.placementTargetLines)(gate))
116
+ lines.push(` ${sentence}`);
113
117
  return lines;
114
118
  }
115
119
  class CommitmentsPreflight extends base_command_1.BaseCommand {
@@ -406,12 +406,21 @@ JSON
406
406
  catch (err) {
407
407
  this.handleApiError(err);
408
408
  }
409
+ // A replacement edit is accepted as written; these say what it removed.
410
+ const warnings = (0, commitments_1.commitmentWriteWarnings)(commitment, {
411
+ before: current,
412
+ payload,
413
+ });
409
414
  if (flags.json) {
410
- this.log(JSON.stringify((0, web_url_1.withCommitmentUrl)(this.cliConfig.baseURL, commitment), null, 2));
415
+ this.log(JSON.stringify((0, web_url_1.withCommitmentUrl)(this.cliConfig.baseURL, {
416
+ ...commitment,
417
+ ...(warnings.length ? { warnings } : {}),
418
+ }), null, 2));
411
419
  return;
412
420
  }
413
421
  this.log((0, commitments_1.describeCommitmentRevision)(commitment?.revision));
414
422
  (0, commitments_1.renderCommitmentSummary)(commitment, (line) => this.log(line));
423
+ (0, commitments_1.renderCommitmentWriteWarnings)(warnings, (line) => this.warn(line));
415
424
  }
416
425
  }
417
426
  exports.default = CommitmentsUpdate;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const base_command_1 = require("../../base-command");
5
6
  const compasses_1 = require("../../lib/compasses");
@@ -36,7 +37,7 @@ class CompassList extends base_command_1.BaseCommand {
36
37
  this.handleApiError(err);
37
38
  }
38
39
  if (flags.json) {
39
- this.log(JSON.stringify(response, null, 2));
40
+ this.printJsonResult((0, list_output_1.listResult)(response));
40
41
  return;
41
42
  }
42
43
  (0, compasses_1.renderCompassList)(response.data ?? [], (line) => this.log(line));
@@ -8,6 +8,7 @@ const cli_id_1 = require("../lib/cli-id");
8
8
  const keychain_1 = require("../lib/keychain");
9
9
  const cli_runtime_1 = require("../lib/cli-runtime");
10
10
  const runtime_context_1 = require("../lib/runtime-context");
11
+ const task_write_attribution_1 = require("../lib/task-write-attribution");
11
12
  class Context extends base_command_1.BaseCommand {
12
13
  static description = 'Print the current skrr CLI runtime context for agent automation';
13
14
  static examples = [
@@ -82,6 +83,8 @@ class Context extends base_command_1.BaseCommand {
82
83
  return { id, source: id === selected ? 'selection' : 'env' };
83
84
  })(),
84
85
  runtime,
86
+ writeAttribution: (0, task_write_attribution_1.runtimeWriteAttribution)(runtime),
87
+ warnings: [...runtime.warnings, ...(!runtime.agent?.boundToSession ? [(0, task_write_attribution_1.runtimeWriteAttribution)(runtime).notice] : [])],
85
88
  agent: runtime.agent,
86
89
  task: runtime.task,
87
90
  conversation: runtime.conversation,
@@ -108,6 +111,9 @@ class Context extends base_command_1.BaseCommand {
108
111
  if (runtime.task.id || runtime.task.identifier) {
109
112
  this.log(`Task: ${runtime.task.identifier ?? runtime.task.id}`);
110
113
  }
114
+ this.log(`Task writes: ${payload.writeAttribution.notice}`);
115
+ if (!runtime.agent?.boundToSession)
116
+ this.log(task_write_attribution_1.AGENT_BINDING_GUIDANCE);
111
117
  if (runtime.warnings.length > 0) {
112
118
  this.log('Warnings:');
113
119
  for (const warning of runtime.warnings)
@@ -119,7 +125,7 @@ exports.default = Context;
119
125
  function recommendationsFor(runtime) {
120
126
  const recommendations = [];
121
127
  if (!runtime.agent) {
122
- recommendations.push('Pass `--agent <agent-id>` or run inside a daemon session with OVERSKY_SESSION_AGENT_ID.');
128
+ recommendations.push(task_write_attribution_1.AGENT_BINDING_GUIDANCE);
123
129
  }
124
130
  else if (!runtime.agent.canonical) {
125
131
  recommendations.push('Prefer OVERSKY_SESSION_AGENT_ID over legacy OVERSKY_AGENT_ID in daemon runtimes.');
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../base-command");
@@ -92,12 +93,12 @@ class ConvosList extends base_command_1.BaseCommand {
92
93
  // OSK-1675 — normalize to the { object, data, next_cursor, has_more } envelope
93
94
  // used by sibling list commands (e.g. `tasks list`) so scripts can share parsing.
94
95
  if (flags.json) {
95
- this.log(JSON.stringify({
96
+ this.printJsonResult((0, list_output_1.listResult)({
96
97
  object: 'list',
97
98
  data: items,
98
99
  next_cursor: nextCursor ?? null,
99
100
  has_more: Boolean(nextCursor),
100
- }, null, 2));
101
+ }));
101
102
  return;
102
103
  }
103
104
  if (items.length === 0) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const list_output_1 = require("../../lib/list-output");
3
4
  const core_1 = require("@oclif/core");
4
5
  const data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../base-command");
@@ -21,7 +22,7 @@ class DmList extends base_command_1.BaseCommand {
21
22
  this.handleApiError(err);
22
23
  }
23
24
  if (flags.json) {
24
- this.log(JSON.stringify(chats, null, 2));
25
+ this.printJsonResult((0, list_output_1.listResult)(chats));
25
26
  return;
26
27
  }
27
28
  if (!Array.isArray(chats) || chats.length === 0) {
@@ -0,0 +1,19 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class DmWork extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ agent: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ limit: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ cursor: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ task: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ commands: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ pending: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ 'source-message': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ command: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ capabilities: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
@@ -0,0 +1,54 @@
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 agent_resolver_1 = require("../../lib/agent-resolver");
7
+ class DmWork extends base_command_1.BaseCommand {
8
+ static description = 'List the authorized Tasks managed in an agent’s main chat';
9
+ static args = { agent: core_1.Args.string({ required: false, ignoreStdin: true, description: 'Agent ID; uses authenticated runtime context when omitted' }) };
10
+ static flags = {
11
+ limit: core_1.Flags.integer({ min: 1, max: 100, default: 20 }),
12
+ cursor: core_1.Flags.string({ description: 'Opaque nextCursor from the previous page' }),
13
+ task: core_1.Flags.string({ description: 'Read one exact managed Task link, including Tasks beyond the first page' }),
14
+ commands: core_1.Flags.boolean({ description: 'List durable launch command receipts' }),
15
+ pending: core_1.Flags.boolean({ description: 'With --commands, include only commands still preparing or awaiting effects' }),
16
+ 'source-message': core_1.Flags.string({ description: 'With --commands, filter by one source message within this main chat' }),
17
+ command: core_1.Flags.string({ description: 'Read one exact launch command receipt' }),
18
+ capabilities: core_1.Flags.boolean({ description: 'Read managed-work protocol and rollout capabilities' }),
19
+ json: core_1.Flags.boolean({ description: 'Output JSON (including pagination)' }),
20
+ };
21
+ async run() {
22
+ this.requireAuth();
23
+ const { args, flags } = await this.parse(DmWork);
24
+ try {
25
+ const { id } = await (0, agent_resolver_1.resolveAgentIdentity)(args.agent);
26
+ if ([Boolean(flags.task), Boolean(flags.commands), Boolean(flags.command), Boolean(flags.capabilities)].filter(Boolean).length > 1) {
27
+ this.error('Use only one of --task, --commands, --command or --capabilities.', { exit: 2 });
28
+ }
29
+ if (flags.capabilities)
30
+ return this.printJsonResult(await data_provider_1.dataService.getAgentChatWorkCapabilities(id));
31
+ if (flags.task)
32
+ return this.printJsonResult(await data_provider_1.dataService.getAgentChatWorkTask(id, flags.task));
33
+ if (flags.command)
34
+ return this.printJsonResult(await data_provider_1.dataService.getAgentChatWorkCommand(id, flags.command));
35
+ if ((flags.pending || flags['source-message']) && !flags.commands)
36
+ this.error('--pending and --source-message require --commands.', { exit: 2 });
37
+ if (flags.commands)
38
+ return this.printJsonResult(await data_provider_1.dataService.listAgentChatWorkCommands(id, {
39
+ limit: flags.limit, cursor: flags.cursor, pendingOnly: flags.pending,
40
+ sourceMessageId: flags['source-message'],
41
+ }));
42
+ const page = await data_provider_1.dataService.listAgentChatWorkTasks(id, { limit: flags.limit, cursor: flags.cursor });
43
+ if (flags.json)
44
+ return this.printJsonResult(page);
45
+ for (const task of page.items)
46
+ this.log(`${task.taskId} ${task.title ?? ''}`.trimEnd());
47
+ this.log(`${page.items.length} shown; ${page.total} authorized Task(s)${page.hasMore ? `; next cursor ${page.nextCursor}` : ''}.`);
48
+ }
49
+ catch (error) {
50
+ this.handleApiError(error);
51
+ }
52
+ }
53
+ }
54
+ exports.default = DmWork;