@skrr-ai/cli 0.1.109 → 0.1.111

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 (434) hide show
  1. package/bin/run.js +15 -1
  2. package/dist/base-command.d.ts +44 -1
  3. package/dist/base-command.js +194 -33
  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/duplicate.js +4 -0
  12. package/dist/commands/agents/eval/list.js +2 -1
  13. package/dist/commands/agents/files/list.js +2 -1
  14. package/dist/commands/agents/folders/list.js +2 -1
  15. package/dist/commands/agents/goals/list.js +2 -1
  16. package/dist/commands/agents/intuitions/list.js +8 -5
  17. package/dist/commands/agents/list.d.ts +12 -0
  18. package/dist/commands/agents/list.js +45 -8
  19. package/dist/commands/agents/releases/known-issues/list.js +2 -1
  20. package/dist/commands/agents/releases/list.js +5 -1
  21. package/dist/commands/agents/releases/trusted-publishers/list.js +2 -1
  22. package/dist/commands/agents/roles/list.js +2 -1
  23. package/dist/commands/agents/skills/list.js +2 -1
  24. package/dist/commands/agents/todos/list.js +2 -1
  25. package/dist/commands/agents/triggers/create.js +1 -1
  26. package/dist/commands/agents/triggers/list.js +2 -1
  27. package/dist/commands/agents/triggers/update.js +1 -1
  28. package/dist/commands/agents/update.d.ts +11 -0
  29. package/dist/commands/agents/update.js +58 -2
  30. package/dist/commands/api-keys/list.js +2 -1
  31. package/dist/commands/apps/channel.d.ts +20 -0
  32. package/dist/commands/apps/channel.js +64 -0
  33. package/dist/commands/apps/check-draft.d.ts +12 -0
  34. package/dist/commands/apps/check-draft.js +41 -0
  35. package/dist/commands/apps/check.d.ts +42 -0
  36. package/dist/commands/apps/check.js +91 -0
  37. package/dist/commands/apps/create.d.ts +15 -0
  38. package/dist/commands/apps/create.js +59 -0
  39. package/dist/commands/apps/data/put.d.ts +18 -0
  40. package/dist/commands/apps/data/put.js +72 -0
  41. package/dist/commands/apps/data/query.d.ts +20 -0
  42. package/dist/commands/apps/data/query.js +88 -0
  43. package/dist/commands/apps/disclosure.d.ts +16 -0
  44. package/dist/commands/apps/disclosure.js +71 -0
  45. package/dist/commands/apps/file/cat.d.ts +15 -0
  46. package/dist/commands/apps/file/cat.js +50 -0
  47. package/dist/commands/apps/file/ls.d.ts +13 -0
  48. package/dist/commands/apps/file/ls.js +47 -0
  49. package/dist/commands/apps/file/mv.d.ts +15 -0
  50. package/dist/commands/apps/file/mv.js +49 -0
  51. package/dist/commands/apps/file/rm.d.ts +15 -0
  52. package/dist/commands/apps/file/rm.js +53 -0
  53. package/dist/commands/apps/file/write.d.ts +17 -0
  54. package/dist/commands/apps/file/write.js +81 -0
  55. package/dist/commands/apps/install.d.ts +19 -0
  56. package/dist/commands/apps/install.js +136 -0
  57. package/dist/commands/apps/installations/list.d.ts +11 -0
  58. package/dist/commands/apps/installations/list.js +49 -0
  59. package/dist/commands/apps/installations/show.d.ts +12 -0
  60. package/dist/commands/apps/installations/show.js +61 -0
  61. package/dist/commands/apps/layout/set.d.ts +11 -0
  62. package/dist/commands/apps/layout/set.js +125 -0
  63. package/dist/commands/apps/layout/show.d.ts +9 -0
  64. package/dist/commands/apps/layout/show.js +33 -0
  65. package/dist/commands/apps/list.d.ts +10 -0
  66. package/dist/commands/apps/list.js +45 -0
  67. package/dist/commands/apps/logs.d.ts +13 -0
  68. package/dist/commands/apps/logs.js +55 -0
  69. package/dist/commands/apps/preview.d.ts +12 -0
  70. package/dist/commands/apps/preview.js +39 -0
  71. package/dist/commands/apps/publish/propose.d.ts +14 -0
  72. package/dist/commands/apps/publish/propose.js +45 -0
  73. package/dist/commands/apps/pull.d.ts +14 -0
  74. package/dist/commands/apps/pull.js +56 -0
  75. package/dist/commands/apps/push.d.ts +15 -0
  76. package/dist/commands/apps/push.js +75 -0
  77. package/dist/commands/apps/reconsent.d.ts +13 -0
  78. package/dist/commands/apps/reconsent.js +67 -0
  79. package/dist/commands/apps/report.d.ts +20 -0
  80. package/dist/commands/apps/report.js +63 -0
  81. package/dist/commands/apps/resume.d.ts +12 -0
  82. package/dist/commands/apps/resume.js +36 -0
  83. package/dist/commands/apps/settings/set.d.ts +13 -0
  84. package/dist/commands/apps/settings/set.js +54 -0
  85. package/dist/commands/apps/settings/show.d.ts +11 -0
  86. package/dist/commands/apps/settings/show.js +31 -0
  87. package/dist/commands/apps/show.d.ts +12 -0
  88. package/dist/commands/apps/show.js +49 -0
  89. package/dist/commands/apps/suspend.d.ts +12 -0
  90. package/dist/commands/apps/suspend.js +35 -0
  91. package/dist/commands/apps/uninstall.d.ts +13 -0
  92. package/dist/commands/apps/uninstall.js +43 -0
  93. package/dist/commands/apps/upgrade.d.ts +14 -0
  94. package/dist/commands/apps/upgrade.js +49 -0
  95. package/dist/commands/apps/version/create.d.ts +14 -0
  96. package/dist/commands/apps/version/create.js +53 -0
  97. package/dist/commands/apps/version/show.d.ts +12 -0
  98. package/dist/commands/apps/version/show.js +39 -0
  99. package/dist/commands/apps/versions.d.ts +12 -0
  100. package/dist/commands/apps/versions.js +40 -0
  101. package/dist/commands/apps/webhooks/list.d.ts +12 -0
  102. package/dist/commands/apps/webhooks/list.js +47 -0
  103. package/dist/commands/characters/list.js +2 -1
  104. package/dist/commands/chats/files/list.js +2 -1
  105. package/dist/commands/chats/folders/list.js +2 -1
  106. package/dist/commands/chats/list.js +2 -1
  107. package/dist/commands/chats/spaces/list.js +2 -1
  108. package/dist/commands/chats/widgets/list.js +2 -1
  109. package/dist/commands/code/jobs/list.js +4 -1
  110. package/dist/commands/commerce/incidents/list.js +2 -1
  111. package/dist/commands/commitments/accounting.js +3 -0
  112. package/dist/commands/commitments/action-proposals.d.ts +8 -0
  113. package/dist/commands/commitments/action-proposals.js +17 -2
  114. package/dist/commands/commitments/cost.d.ts +11 -0
  115. package/dist/commands/commitments/cost.js +25 -0
  116. package/dist/commands/commitments/create.js +6 -1
  117. package/dist/commands/commitments/endpoints/list.js +2 -1
  118. package/dist/commands/commitments/links/list.js +2 -1
  119. package/dist/commands/commitments/list.js +2 -1
  120. package/dist/commands/commitments/liveness.d.ts +30 -0
  121. package/dist/commands/commitments/liveness.js +22 -5
  122. package/dist/commands/commitments/pack/list.js +2 -1
  123. package/dist/commands/commitments/preflight.js +6 -2
  124. package/dist/commands/commitments/update.js +10 -1
  125. package/dist/commands/compass/list.js +2 -1
  126. package/dist/commands/context.js +7 -1
  127. package/dist/commands/convos/list.js +3 -2
  128. package/dist/commands/daemon/install.js +17 -1
  129. package/dist/commands/daemon/login.js +14 -0
  130. package/dist/commands/dm/list.js +2 -1
  131. package/dist/commands/dm/work.d.ts +19 -0
  132. package/dist/commands/dm/work.js +54 -0
  133. package/dist/commands/feeds/list.js +2 -1
  134. package/dist/commands/followups/list.js +2 -1
  135. package/dist/commands/followups/plans/cancel.d.ts +13 -0
  136. package/dist/commands/followups/plans/cancel.js +26 -0
  137. package/dist/commands/followups/plans/create.d.ts +11 -0
  138. package/dist/commands/followups/plans/create.js +35 -0
  139. package/dist/commands/followups/plans/list.d.ts +13 -0
  140. package/dist/commands/followups/plans/list.js +50 -0
  141. package/dist/commands/followups/plans/observability.d.ts +11 -0
  142. package/dist/commands/followups/plans/observability.js +46 -0
  143. package/dist/commands/followups/plans/revise.d.ts +13 -0
  144. package/dist/commands/followups/plans/revise.js +35 -0
  145. package/dist/commands/followups/plans/show.d.ts +11 -0
  146. package/dist/commands/followups/plans/show.js +32 -0
  147. package/dist/commands/goals/key-results/list.js +2 -1
  148. package/dist/commands/goals/labels/list.js +3 -2
  149. package/dist/commands/goals/list.js +3 -2
  150. package/dist/commands/grants/list.js +2 -1
  151. package/dist/commands/harnesses/grants/list.js +2 -1
  152. package/dist/commands/harnesses/leases/list.js +2 -1
  153. package/dist/commands/harnesses/list.js +10 -1
  154. package/dist/commands/harnesses/prune.d.ts +26 -0
  155. package/dist/commands/harnesses/prune.js +172 -0
  156. package/dist/commands/ingress/list.js +2 -1
  157. package/dist/commands/initiatives/list.js +2 -1
  158. package/dist/commands/instruction-blocks/list.js +2 -1
  159. package/dist/commands/instructions/list.js +2 -1
  160. package/dist/commands/integrations/connections/list.js +2 -1
  161. package/dist/commands/integrations/tools/list.js +2 -1
  162. package/dist/commands/labels/list.js +3 -2
  163. package/dist/commands/learning/adapters.d.ts +16 -0
  164. package/dist/commands/learning/adapters.js +44 -0
  165. package/dist/commands/login.js +11 -0
  166. package/dist/commands/machines/dedicated/list.js +2 -1
  167. package/dist/commands/machines/hosted/list.js +2 -1
  168. package/dist/commands/machines/list.js +2 -1
  169. package/dist/commands/machines/show.js +5 -2
  170. package/dist/commands/measures/list.js +2 -1
  171. package/dist/commands/memory/list.js +2 -1
  172. package/dist/commands/memory/proposals/list.js +2 -1
  173. package/dist/commands/memory/stores/list.js +2 -1
  174. package/dist/commands/memory/topics/list.js +2 -1
  175. package/dist/commands/memory/versions/list.js +2 -1
  176. package/dist/commands/messages/list.js +2 -1
  177. package/dist/commands/northstars/intents/list.js +2 -1
  178. package/dist/commands/northstars/list.js +2 -1
  179. package/dist/commands/northstars/recommendations/list.js +2 -1
  180. package/dist/commands/outbox/list.js +2 -1
  181. package/dist/commands/profiles/list.js +2 -1
  182. package/dist/commands/projects/docs/list.js +8 -1
  183. package/dist/commands/projects/updates/list.js +2 -1
  184. package/dist/commands/proposals/list.js +2 -1
  185. package/dist/commands/requests/comments/list.js +2 -1
  186. package/dist/commands/requests/list.js +2 -1
  187. package/dist/commands/shares/list.js +2 -1
  188. package/dist/commands/shortcuts/list.js +2 -1
  189. package/dist/commands/signals/monitors/list.js +2 -1
  190. package/dist/commands/signals/schemas/list.js +2 -1
  191. package/dist/commands/signals/sources/list.js +2 -1
  192. package/dist/commands/space-directory-views/list.js +2 -1
  193. package/dist/commands/spaces/actions/list.js +4 -3
  194. package/dist/commands/spaces/briefs/list.js +2 -1
  195. package/dist/commands/spaces/cycles/list.js +2 -1
  196. package/dist/commands/spaces/files/folders/list.js +2 -1
  197. package/dist/commands/spaces/files/list.js +3 -2
  198. package/dist/commands/spaces/heartbeats/list.js +3 -2
  199. package/dist/commands/spaces/labels/list.js +3 -2
  200. package/dist/commands/spaces/list.d.ts +3 -18
  201. package/dist/commands/spaces/list.js +28 -35
  202. package/dist/commands/spaces/live/cards/list.js +2 -1
  203. package/dist/commands/spaces/members/list.d.ts +1 -0
  204. package/dist/commands/spaces/members/list.js +4 -1
  205. package/dist/commands/spaces/show.js +2 -2
  206. package/dist/commands/spaces/skills/list.js +6 -2
  207. package/dist/commands/spaces/states/list.js +2 -1
  208. package/dist/commands/spaces/views/list.js +2 -1
  209. package/dist/commands/spaces/widgets/list.js +3 -2
  210. package/dist/commands/spaces/workflow-templates/list.js +2 -1
  211. package/dist/commands/spaces/workflows/fixtures/list.js +2 -1
  212. package/dist/commands/spaces/workflows/list.js +3 -2
  213. package/dist/commands/spaces/workflows/proposals/list.js +2 -1
  214. package/dist/commands/spaces/workflows/start.js +3 -1
  215. package/dist/commands/spaces/workflows/triggers/list.js +2 -1
  216. package/dist/commands/spaces/workflows/validate.js +12 -2
  217. package/dist/commands/store/acquisitions/list.js +2 -1
  218. package/dist/commands/store/admissions/list.js +17 -1
  219. package/dist/commands/store/advisories/list.js +2 -1
  220. package/dist/commands/store/follows/list.js +2 -1
  221. package/dist/commands/store/publishers/domains/list.js +2 -1
  222. package/dist/commands/store/reports/list.js +2 -1
  223. package/dist/commands/subscriptions/list.js +2 -1
  224. package/dist/commands/tasks/actionability.js +7 -30
  225. package/dist/commands/tasks/activity.js +14 -8
  226. package/dist/commands/tasks/approvals/list.js +2 -1
  227. package/dist/commands/tasks/assign.d.ts +1 -0
  228. package/dist/commands/tasks/assign.js +43 -7
  229. package/dist/commands/tasks/attachments/list.js +2 -1
  230. package/dist/commands/tasks/chat/send.js +34 -0
  231. package/dist/commands/tasks/comments/add.js +6 -1
  232. package/dist/commands/tasks/comments/list.js +2 -1
  233. package/dist/commands/tasks/complete.js +26 -2
  234. package/dist/commands/tasks/continue.d.ts +18 -0
  235. package/dist/commands/tasks/continue.js +54 -0
  236. package/dist/commands/tasks/create-tree.d.ts +5 -0
  237. package/dist/commands/tasks/create-tree.js +399 -219
  238. package/dist/commands/tasks/create.d.ts +1 -0
  239. package/dist/commands/tasks/create.js +63 -11
  240. package/dist/commands/tasks/deliverable/add.js +10 -3
  241. package/dist/commands/tasks/deliverable/list.js +2 -1
  242. package/dist/commands/tasks/events/list.js +2 -1
  243. package/dist/commands/tasks/execution-state.d.ts +12 -0
  244. package/dist/commands/tasks/execution-state.js +28 -0
  245. package/dist/commands/tasks/expectations/assess.js +40 -5
  246. package/dist/commands/tasks/guide.d.ts +10 -0
  247. package/dist/commands/tasks/guide.js +20 -0
  248. package/dist/commands/tasks/labels/list.js +2 -1
  249. package/dist/commands/tasks/list.d.ts +19 -0
  250. package/dist/commands/tasks/list.js +103 -6
  251. package/dist/commands/tasks/move.js +10 -2
  252. package/dist/commands/tasks/preflight.d.ts +14 -0
  253. package/dist/commands/tasks/preflight.js +77 -0
  254. package/dist/commands/tasks/rearm-recurrence.js +22 -3
  255. package/dist/commands/tasks/resource/list.js +2 -1
  256. package/dist/commands/tasks/result/submit.js +10 -1
  257. package/dist/commands/tasks/review.js +6 -1
  258. package/dist/commands/tasks/revisions.d.ts +2 -0
  259. package/dist/commands/tasks/revisions.js +8 -1
  260. package/dist/commands/tasks/show.d.ts +8 -0
  261. package/dist/commands/tasks/show.js +81 -43
  262. package/dist/commands/tasks/start.d.ts +1 -0
  263. package/dist/commands/tasks/start.js +35 -0
  264. package/dist/commands/tasks/templates/list.js +2 -1
  265. package/dist/commands/tasks/timeline.d.ts +5 -0
  266. package/dist/commands/tasks/timeline.js +9 -1
  267. package/dist/commands/tasks/unschedule.js +5 -1
  268. package/dist/commands/tasks/update.d.ts +1 -0
  269. package/dist/commands/tasks/update.js +36 -3
  270. package/dist/commands/tasks/updates/add.js +6 -1
  271. package/dist/commands/tasks/updates/list.js +2 -1
  272. package/dist/commands/tasks/upsert.d.ts +1 -0
  273. package/dist/commands/tasks/upsert.js +8 -1
  274. package/dist/commands/token/list.js +2 -1
  275. package/dist/commands/tokens/list.js +2 -1
  276. package/dist/commands/tones/list.js +4 -2
  277. package/dist/commands/triggers/audit.js +12 -3
  278. package/dist/commands/triggers/create.js +1 -1
  279. package/dist/commands/triggers/fire-detail.d.ts +7 -0
  280. package/dist/commands/triggers/fire-detail.js +30 -12
  281. package/dist/commands/triggers/fire.js +13 -3
  282. package/dist/commands/triggers/list.js +2 -1
  283. package/dist/commands/triggers/parse-intent.js +1 -1
  284. package/dist/commands/triggers/update.js +1 -1
  285. package/dist/commands/views/list.js +2 -1
  286. package/dist/commands/webhooks/list.js +2 -1
  287. package/dist/commands/whoami.js +1 -1
  288. package/dist/commands/widgets/list.js +2 -1
  289. package/dist/commands/widgets/save-as-app.d.ts +13 -0
  290. package/dist/commands/widgets/save-as-app.js +65 -0
  291. package/dist/commands/work-views/list.js +2 -1
  292. package/dist/commands/worklog/list.js +2 -1
  293. package/dist/commands/workspaces/grants.js +1 -4
  294. package/dist/commands/workspaces/list.js +3 -2
  295. package/dist/commands/workspaces/members.d.ts +1 -0
  296. package/dist/commands/workspaces/members.js +10 -7
  297. package/dist/generated/managed-instruction-guides.json +2 -2
  298. package/dist/help.js +7 -0
  299. package/dist/lib/agent-proactive-baseline.d.ts +9 -0
  300. package/dist/lib/agent-proactive-baseline.js +44 -0
  301. package/dist/lib/agentic-stream.d.ts +4 -1
  302. package/dist/lib/agentic-stream.js +29 -4
  303. package/dist/lib/appData.d.ts +75 -0
  304. package/dist/lib/appData.js +274 -0
  305. package/dist/lib/appInstallations.d.ts +117 -0
  306. package/dist/lib/appInstallations.js +960 -0
  307. package/dist/lib/appSettings.d.ts +3 -0
  308. package/dist/lib/appSettings.js +71 -0
  309. package/dist/lib/appWebhooks.d.ts +7 -0
  310. package/dist/lib/appWebhooks.js +59 -0
  311. package/dist/lib/apps-command.d.ts +44 -0
  312. package/dist/lib/apps-command.js +164 -0
  313. package/dist/lib/apps.d.ts +45 -0
  314. package/dist/lib/apps.js +148 -0
  315. package/dist/lib/appsCheck.d.ts +12 -0
  316. package/dist/lib/appsCheck.js +173 -0
  317. package/dist/lib/appsFs.d.ts +58 -0
  318. package/dist/lib/appsFs.js +384 -0
  319. package/dist/lib/auth-failure.d.ts +20 -0
  320. package/dist/lib/auth-failure.js +40 -3
  321. package/dist/lib/cli-installers.d.ts +9 -2
  322. package/dist/lib/command-miss.js +107 -0
  323. package/dist/lib/commitment-loop-status.js +25 -3
  324. package/dist/lib/commitment-product.js +5 -2
  325. package/dist/lib/commitments.d.ts +45 -3
  326. package/dist/lib/commitments.js +139 -41
  327. package/dist/lib/compasses.d.ts +4 -0
  328. package/dist/lib/compasses.js +11 -0
  329. package/dist/lib/daemon-machine-identity-copy.d.ts +14 -0
  330. package/dist/lib/daemon-machine-identity-copy.js +27 -0
  331. package/dist/lib/daemon-machine-identity.d.ts +27 -0
  332. package/dist/lib/daemon-machine-identity.js +61 -0
  333. package/dist/lib/daemon-setup.js +7 -7
  334. package/dist/lib/daemonHandoff.d.ts +19 -1
  335. package/dist/lib/daemonHandoff.js +62 -2
  336. package/dist/lib/dedicated-ssh.d.ts +2 -0
  337. package/dist/lib/dedicated-ssh.js +98 -28
  338. package/dist/lib/harnesses.d.ts +71 -0
  339. package/dist/lib/harnesses.js +70 -0
  340. package/dist/lib/json-output.d.ts +33 -0
  341. package/dist/lib/json-output.js +37 -0
  342. package/dist/lib/list-output.d.ts +9 -4
  343. package/dist/lib/list-output.js +38 -9
  344. package/dist/lib/lookbackPlans.d.ts +13 -0
  345. package/dist/lib/lookbackPlans.js +68 -0
  346. package/dist/lib/machines.d.ts +27 -6
  347. package/dist/lib/machines.js +25 -14
  348. package/dist/lib/member-output.d.ts +20 -0
  349. package/dist/lib/member-output.js +57 -0
  350. package/dist/lib/preflight-copy.d.ts +7 -0
  351. package/dist/lib/preflight-copy.js +31 -0
  352. package/dist/lib/profile-machine-identity-guard.js +11 -1
  353. package/dist/lib/roles.d.ts +2 -2
  354. package/dist/lib/task-admission.d.ts +9 -0
  355. package/dist/lib/task-admission.js +35 -0
  356. package/dist/lib/task-batch.d.ts +4 -0
  357. package/dist/lib/task-batch.js +2 -0
  358. package/dist/lib/task-economics.d.ts +10 -0
  359. package/dist/lib/task-economics.js +24 -2
  360. package/dist/lib/task-operations.d.ts +25 -0
  361. package/dist/lib/task-operations.js +123 -0
  362. package/dist/lib/task-preflight.d.ts +35 -0
  363. package/dist/lib/task-preflight.js +121 -0
  364. package/dist/lib/task-resource-references.d.ts +23 -0
  365. package/dist/lib/task-resource-references.js +119 -0
  366. package/dist/lib/task-spec-verification.d.ts +42 -0
  367. package/dist/lib/task-spec-verification.js +101 -0
  368. package/dist/lib/task-work.d.ts +11 -0
  369. package/dist/lib/task-work.js +41 -0
  370. package/dist/lib/task-write-attribution.d.ts +26 -0
  371. package/dist/lib/task-write-attribution.js +47 -0
  372. package/dist/lib/tasks.d.ts +13 -0
  373. package/dist/lib/tasks.js +61 -8
  374. package/dist/lib/triggers.d.ts +18 -0
  375. package/dist/lib/triggers.js +97 -5
  376. package/dist/lib/usage-discovery.d.ts +4 -0
  377. package/dist/lib/usage-discovery.js +14 -4
  378. package/dist/lib/widgetApps.d.ts +10 -0
  379. package/dist/lib/widgetApps.js +47 -0
  380. package/dist/lib/widgetStaticScan.js +25 -1
  381. package/dist/lib/workflow-run-view.d.ts +4 -0
  382. package/dist/lib/workflow-run-view.js +5 -0
  383. package/dist/lib/workspaces.d.ts +33 -9
  384. package/dist/lib/workspaces.js +19 -3
  385. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.d.ts +14 -1
  386. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/computerWire.js +47 -2
  387. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.d.ts +49 -1
  388. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonToolApproval.js +26 -0
  389. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.d.ts +118 -0
  390. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonWire.js +614 -0
  391. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.d.ts +1 -1
  392. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.js +5 -3
  393. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/machineUuid.d.ts +60 -0
  394. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/machineUuid.js +130 -6
  395. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refresh.d.ts +2 -0
  396. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refresh.js +15 -2
  397. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshClassification.d.ts +5 -0
  398. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/refreshClassification.js +3 -1
  399. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionRevocation.d.ts +177 -0
  400. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/sessionRevocation.js +484 -0
  401. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.d.ts +11 -0
  402. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/telemetryRedaction.js +46 -7
  403. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.d.ts +232 -0
  404. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/toolApprovalSignature.js +372 -0
  405. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/types.d.ts +17 -1
  406. package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/types.js +12 -1
  407. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.d.ts +14 -1
  408. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/computerWire.js +45 -2
  409. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonToolApproval.d.ts +49 -1
  410. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonToolApproval.js +24 -0
  411. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonWire.d.ts +118 -0
  412. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonWire.js +608 -0
  413. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.d.ts +1 -1
  414. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.js +1 -1
  415. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/machineUuid.d.ts +60 -0
  416. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/machineUuid.js +128 -6
  417. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refresh.d.ts +2 -0
  418. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refresh.js +15 -2
  419. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refreshClassification.d.ts +5 -0
  420. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/refreshClassification.js +3 -1
  421. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/sessionRevocation.d.ts +177 -0
  422. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/sessionRevocation.js +472 -0
  423. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.d.ts +11 -0
  424. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/telemetryRedaction.js +44 -6
  425. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.d.ts +232 -0
  426. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/toolApprovalSignature.js +360 -0
  427. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/types.d.ts +17 -1
  428. package/dist/node_modules/@skrr-ai/auth-core/dist/esm/types.js +12 -1
  429. package/dist/node_modules/@skrr-ai/auth-core/package.json +31 -1
  430. package/dist/node_modules/@skrr-ai/data-provider/index.js +25255 -18711
  431. package/docs/v1/operations.md +52 -0
  432. package/docs/v1/space-search.md +19 -0
  433. package/oclif.manifest.json +4843 -513
  434. package/package.json +32 -2
@@ -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) {
@@ -5,6 +5,9 @@ const exec_runtime_binary_1 = require("../../lib/exec-runtime-binary");
5
5
  const daemon_binding_1 = require("../../lib/daemon-binding");
6
6
  const daemon_installer_1 = require("../../lib/daemon-installer");
7
7
  const daemon_setup_1 = require("../../lib/daemon-setup");
8
+ const daemonHandoff_1 = require("../../lib/daemonHandoff");
9
+ const daemon_machine_identity_copy_1 = require("../../lib/daemon-machine-identity-copy");
10
+ const live_runtime_binary_1 = require("../../lib/live-runtime-binary");
8
11
  /**
9
12
  * `skrr daemon install` — install the local runtime's OS service.
10
13
  *
@@ -83,7 +86,20 @@ class DaemonInstall extends core_1.Command {
83
86
  // moment the binding is chosen, and leaving it to a separate command
84
87
  // is how a CLI and its daemon end up on different deployments
85
88
  // (OSK-279) without anyone doing anything wrong.
86
- const code = await (0, exec_runtime_binary_1.execRuntimeBinary)(['install', ...(0, daemon_binding_1.bindToCliSession)(argv)]);
89
+ const installArgs = (0, daemon_binding_1.bindToCliSession)(argv);
90
+ // A service installed from a daemon that predates per-profile machine
91
+ // identities runs that daemon for good, and registers the profile on the
92
+ // default profile's machine row (OSK-S-440). Ask the binary about to run.
93
+ // `--help` and `--json` are not installs.
94
+ if (!installArgs.some((arg) => ['--help', '-h'].includes(arg))) {
95
+ const skew = await (0, daemonHandoff_1.checkLocalDaemonMachineIdentity)((0, live_runtime_binary_1.profileFromArgs)(installArgs));
96
+ if (skew) {
97
+ for (const line of (0, daemon_machine_identity_copy_1.describeDaemonMachineIdentitySkew)(skew))
98
+ this.logToStderr(line);
99
+ this.exit(78);
100
+ }
101
+ }
102
+ const code = await (0, exec_runtime_binary_1.execRuntimeBinary)(['install', ...installArgs]);
87
103
  if (code === 0 &&
88
104
  !argv.some((arg) => ['--json', '--help', '-h'].includes(arg))) {
89
105
  this.log('Coding-agent instructions: sign in with `skrr login`, or review installation choices with `skrr instructions setup`.');
@@ -4,6 +4,8 @@ const core_1 = require("@oclif/core");
4
4
  const daemon_binding_1 = require("../../lib/daemon-binding");
5
5
  const exec_runtime_binary_1 = require("../../lib/exec-runtime-binary");
6
6
  const live_runtime_binary_1 = require("../../lib/live-runtime-binary");
7
+ const daemonHandoff_1 = require("../../lib/daemonHandoff");
8
+ const daemon_machine_identity_copy_1 = require("../../lib/daemon-machine-identity-copy");
7
9
  /**
8
10
  * `skrr daemon login` — authenticate the local runtime.
9
11
  *
@@ -53,6 +55,18 @@ class DaemonLogin extends core_1.Command {
53
55
  if (decision?.kind === 'forward-live') {
54
56
  this.warn(`Signing in with the live daemon binary ${decision.binary}.`);
55
57
  }
58
+ // The binary about to sign this profile in must register it under the
59
+ // machine identity the profile has (OSK-S-440): a daemon that predates
60
+ // per-profile identities would bind this login to the default profile's
61
+ // machine row. `--help` is not a login.
62
+ if (!boundArgv.some((arg) => ['--help', '-h'].includes(arg))) {
63
+ const skew = await (0, daemonHandoff_1.checkLocalDaemonMachineIdentity)((0, live_runtime_binary_1.profileFromArgs)(boundArgv), decision?.binary ?? pathBinary);
64
+ if (skew) {
65
+ for (const line of (0, daemon_machine_identity_copy_1.describeDaemonMachineIdentitySkew)(skew))
66
+ this.logToStderr(line);
67
+ this.exit(78);
68
+ }
69
+ }
56
70
  // `--cwd` is deliberately NOT defaulted here. `skrrd login` resolves it
57
71
  // from the installed service definition, which is the only authoritative
58
72
  // answer; guessing it from the CLI's cwd is exactly the mistake that made
@@ -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;
@@ -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 api_fetch_1 = require("../../lib/api-fetch");
@@ -50,7 +51,7 @@ class FeedsList extends base_command_1.BaseCommand {
50
51
  this.handleApiError(err);
51
52
  }
52
53
  if (flags.json) {
53
- this.log(JSON.stringify(response, null, 2));
54
+ this.printJsonResult((0, list_output_1.listResult)(response, 'items'));
54
55
  return;
55
56
  }
56
57
  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 base_command_1 = require("../../base-command");
5
6
  const followups_1 = require("../../lib/followups");
@@ -72,7 +73,7 @@ class FollowupsList extends base_command_1.BaseCommand {
72
73
  return;
73
74
  }
74
75
  if (flags.json) {
75
- this.log(JSON.stringify(response, null, 2));
76
+ this.printJsonResult((0, list_output_1.listResult)(response, 'followups'));
76
77
  return;
77
78
  }
78
79
  const rows = response.followups ?? [];
@@ -0,0 +1,13 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class LookbackPlansCancel extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ revision: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ reason: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const lookbackPlans_1 = require("../../../lib/lookbackPlans");
6
+ class LookbackPlansCancel extends base_command_1.BaseCommand {
7
+ static description = 'Cancel the remaining lookbacks of a plan';
8
+ static args = { id: lookbackPlans_1.lookbackPlanIdArg };
9
+ static flags = {
10
+ revision: core_1.Flags.integer({ description: 'Expected current revision; stale edits are refused', min: 1 }),
11
+ reason: core_1.Flags.string({ description: 'Why the remaining lookbacks are no longer needed' }),
12
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
13
+ };
14
+ async run() {
15
+ this.requireAuth();
16
+ const { args, flags } = await this.parse(LookbackPlansCancel);
17
+ try {
18
+ const result = await lookbackPlans_1.lookbackPlansApi.cancel(args.id, { expectedRevision: flags.revision, reason: flags.reason });
19
+ this.log(flags.json ? JSON.stringify(result, null, 2) : `Lookback plan ${result.plan.id}: ${result.plan.state} (r${result.plan.revision}).`);
20
+ }
21
+ catch (err) {
22
+ this.handleApiError(err);
23
+ }
24
+ }
25
+ }
26
+ exports.default = LookbackPlansCancel;
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class LookbackPlansCreate extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ 'from-json': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ agent: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const prompt_1 = require("../../../lib/prompt");
6
+ const lookbackPlans_1 = require("../../../lib/lookbackPlans");
7
+ class LookbackPlansCreate extends base_command_1.BaseCommand {
8
+ static description = 'Schedule a bounded plan of 1–10 lookbacks, each free to stay silent';
9
+ static examples = ['<%= config.bin %> followups plans create --from-json plan.json --agent agent_1 --json'];
10
+ static flags = {
11
+ 'from-json': core_1.Flags.string({ description: 'Plan or create envelope JSON file; - reads stdin', required: true }),
12
+ agent: core_1.Flags.string({ description: 'Agent ID (default: bound session agent or input agentId)' }),
13
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
14
+ };
15
+ async run() {
16
+ this.requireAuth();
17
+ const { flags } = await this.parse(LookbackPlansCreate);
18
+ let body;
19
+ try {
20
+ body = (0, lookbackPlans_1.lookbackCreateBody)(await (0, prompt_1.readJsonBody)(flags['from-json']), flags.agent);
21
+ }
22
+ catch (err) {
23
+ this.failWithCliError({ message: err instanceof Error ? err.message : String(err), code: 'LOOKBACK_INVALID_FIELD', exit: 2, retryable: false });
24
+ return;
25
+ }
26
+ try {
27
+ const result = await lookbackPlans_1.lookbackPlansApi.create(body);
28
+ this.log(flags.json ? JSON.stringify(result, null, 2) : (0, lookbackPlans_1.lookbackArmingLine)(result));
29
+ }
30
+ catch (err) {
31
+ this.handleApiError(err);
32
+ }
33
+ }
34
+ }
35
+ exports.default = LookbackPlansCreate;
@@ -0,0 +1,13 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class LookbackPlansList extends BaseCommand {
3
+ static description: string;
4
+ static flags: {
5
+ agent: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
6
+ 'all-agents': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ state: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ limit: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ cursor: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,50 @@
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 lookbackPlans_1 = require("../../../lib/lookbackPlans");
7
+ const followups_1 = require("../../../lib/followups");
8
+ const list_output_1 = require("../../../lib/list-output");
9
+ class LookbackPlansList extends base_command_1.BaseCommand {
10
+ static description = 'List lookback plans, active first, with bounded history pagination';
11
+ static flags = {
12
+ agent: core_1.Flags.string({ description: 'Agent ID (default: bound session agent)', exclusive: ['all-agents'] }),
13
+ 'all-agents': core_1.Flags.boolean({ description: 'List all agents owned by you', exclusive: ['agent'] }),
14
+ state: core_1.Flags.string({ description: 'Filter plan state', options: [...data_provider_1.LOOKBACK_PLAN_STATES] }),
15
+ limit: core_1.Flags.integer({ description: 'Maximum plans (1..100)', min: 1, max: 100 }),
16
+ cursor: core_1.Flags.string({ description: 'Opaque nextCursor from a previous page; keep the same scope and filters' }),
17
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
18
+ };
19
+ async run() {
20
+ this.requireAuth();
21
+ const { flags } = await this.parse(LookbackPlansList);
22
+ let agentId;
23
+ try {
24
+ agentId = flags['all-agents'] ? undefined : (0, followups_1.resolveFollowUpAgent)(flags.agent).id;
25
+ }
26
+ catch (err) {
27
+ this.failWithCliError({ message: err instanceof Error ? err.message : String(err), code: 'AGENT_CONTEXT_AMBIGUOUS', exit: 2, retryable: false });
28
+ return;
29
+ }
30
+ try {
31
+ const result = await lookbackPlans_1.lookbackPlansApi.list({ agentId, state: flags.state, limit: flags.limit, cursor: flags.cursor });
32
+ if (flags.json) {
33
+ this.printJsonResult((0, list_output_1.listResult)(result, 'plans'));
34
+ return;
35
+ }
36
+ if (!result.plans.length) {
37
+ this.log('No lookback plans.');
38
+ return;
39
+ }
40
+ for (const plan of result.plans)
41
+ this.log((0, lookbackPlans_1.lookbackPlanSummary)(plan));
42
+ if (result.hasMore)
43
+ this.log(`More plans: repeat this command with --cursor ${result.nextCursor}`);
44
+ }
45
+ catch (err) {
46
+ this.handleApiError(err);
47
+ }
48
+ }
49
+ }
50
+ exports.default = LookbackPlansList;
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class LookbackPlansObservability extends BaseCommand {
3
+ static description: string;
4
+ static flags: {
5
+ agent: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
6
+ 'all-agents': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ limit: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const lookbackPlans_1 = require("../../../lib/lookbackPlans");
6
+ const followups_1 = require("../../../lib/followups");
7
+ class LookbackPlansObservability extends base_command_1.BaseCommand {
8
+ static description = 'Inspect bounded lookback scheduling health and evaluation outcomes';
9
+ static flags = {
10
+ agent: core_1.Flags.string({ description: 'Agent ID (default: bound session agent)', exclusive: ['all-agents'] }),
11
+ 'all-agents': core_1.Flags.boolean({ description: 'Inspect all owned agents', exclusive: ['agent'] }),
12
+ limit: core_1.Flags.integer({ description: 'Maximum sampled plans (1..100)', min: 1, max: 100 }),
13
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
14
+ };
15
+ async run() {
16
+ this.requireAuth();
17
+ const { flags } = await this.parse(LookbackPlansObservability);
18
+ let agentId;
19
+ try {
20
+ agentId = flags['all-agents'] ? undefined : (0, followups_1.resolveFollowUpAgent)(flags.agent).id;
21
+ }
22
+ catch (err) {
23
+ this.failWithCliError({ message: err instanceof Error ? err.message : String(err), code: 'AGENT_CONTEXT_AMBIGUOUS', exit: 2, retryable: false });
24
+ return;
25
+ }
26
+ try {
27
+ const result = await lookbackPlans_1.lookbackPlansApi.observability({ agentId, limit: flags.limit });
28
+ if (flags.json) {
29
+ this.log(JSON.stringify(result, null, 2));
30
+ return;
31
+ }
32
+ this.log(`${result.sample.plans} plans sampled${result.sample.truncated ? ' (more exist)' : ''}.`);
33
+ for (const group of result.groups) {
34
+ this.log(`${group.agentId}: ${group.evaluations.used}/${group.evaluations.ceiling} evaluations used`);
35
+ for (const [name, count] of Object.entries(group.health)) {
36
+ if (count > 0)
37
+ this.log(` ${name}: ${count}`);
38
+ }
39
+ }
40
+ }
41
+ catch (err) {
42
+ this.handleApiError(err);
43
+ }
44
+ }
45
+ }
46
+ exports.default = LookbackPlansObservability;
@@ -0,0 +1,13 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class LookbackPlansRevise extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ revision: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ 'from-json': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const prompt_1 = require("../../../lib/prompt");
6
+ const lookbackPlans_1 = require("../../../lib/lookbackPlans");
7
+ class LookbackPlansRevise extends base_command_1.BaseCommand {
8
+ static description = 'Revise pending lookbacks using the original source and step IDs';
9
+ static args = { id: lookbackPlans_1.lookbackPlanIdArg };
10
+ static flags = {
11
+ revision: core_1.Flags.integer({ description: 'Expected current revision; stale edits are refused', min: 1, required: true }),
12
+ 'from-json': core_1.Flags.string({ description: 'Full PlanInput JSON file; - reads stdin', required: true }),
13
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
14
+ };
15
+ async run() {
16
+ this.requireAuth();
17
+ const { args, flags } = await this.parse(LookbackPlansRevise);
18
+ let plan;
19
+ try {
20
+ plan = (0, lookbackPlans_1.lookbackInput)(await (0, prompt_1.readJsonBody)(flags['from-json']), true);
21
+ }
22
+ catch (err) {
23
+ this.failWithCliError({ message: err instanceof Error ? err.message : String(err), code: 'LOOKBACK_INVALID_FIELD', exit: 2, retryable: false });
24
+ return;
25
+ }
26
+ try {
27
+ const result = await lookbackPlans_1.lookbackPlansApi.revise(args.id, { expectedRevision: flags.revision, plan });
28
+ this.log(flags.json ? JSON.stringify(result, null, 2) : (0, lookbackPlans_1.lookbackArmingLine)(result));
29
+ }
30
+ catch (err) {
31
+ this.handleApiError(err);
32
+ }
33
+ }
34
+ }
35
+ exports.default = LookbackPlansRevise;
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class LookbackPlansShow extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const lookbackPlans_1 = require("../../../lib/lookbackPlans");
6
+ class LookbackPlansShow extends base_command_1.BaseCommand {
7
+ static description = 'Show a lookback plan, step outcomes and its current revision';
8
+ static args = { id: lookbackPlans_1.lookbackPlanIdArg };
9
+ static flags = { json: core_1.Flags.boolean({ description: 'Output as JSON' }) };
10
+ async run() {
11
+ this.requireAuth();
12
+ const { args, flags } = await this.parse(LookbackPlansShow);
13
+ try {
14
+ const result = await lookbackPlans_1.lookbackPlansApi.show(args.id);
15
+ if (flags.json) {
16
+ this.log(JSON.stringify(result, null, 2));
17
+ return;
18
+ }
19
+ this.log((0, lookbackPlans_1.lookbackPlanSummary)(result.plan));
20
+ this.log(`Objective: ${result.plan.objective}\nStop when: ${result.plan.stopCondition}`);
21
+ for (const step of result.plan.steps) {
22
+ this.log(` ${step.id} [${step.state}${step.outcome ? `/${step.outcome}` : ''}] ${step.runAt} ${step.label || step.instruction}`);
23
+ if (step.summary)
24
+ this.log(` ${step.summary}`);
25
+ }
26
+ }
27
+ catch (err) {
28
+ this.handleApiError(err);
29
+ }
30
+ }
31
+ }
32
+ exports.default = LookbackPlansShow;
@@ -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");
@@ -36,7 +37,7 @@ class GoalsKeyResultsList 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
  const items = response?.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 data_provider_1 = require("@skrr-ai/data-provider");
5
6
  const base_command_1 = require("../../../base-command");
@@ -29,7 +30,7 @@ class GoalsLabelsList extends base_command_1.BaseCommand {
29
30
  const labelIds = goal.labelIds ?? [];
30
31
  if (labelIds.length === 0) {
31
32
  if (flags.json) {
32
- this.log(JSON.stringify({ data: [] }, null, 2));
33
+ this.printJsonResult((0, list_output_1.listResult)({ data: [] }));
33
34
  return;
34
35
  }
35
36
  this.log('No labels on this goal.');
@@ -47,7 +48,7 @@ class GoalsLabelsList extends base_command_1.BaseCommand {
47
48
  }
48
49
  }));
49
50
  if (flags.json) {
50
- this.log(JSON.stringify({ data: hydrated }, null, 2));
51
+ this.printJsonResult((0, list_output_1.listResult)({ data: hydrated }));
51
52
  return;
52
53
  }
53
54
  const rows = hydrated.map((l) => {
@@ -1,11 +1,12 @@
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");
6
7
  const web_url_1 = require("../../lib/web-url");
7
8
  const format_1 = require("../../lib/format");
8
- const list_output_1 = require("../../lib/list-output");
9
+ const list_output_2 = require("../../lib/list-output");
9
10
  class GoalsList extends base_command_1.BaseCommand {
10
11
  static description = 'List goals';
11
12
  static examples = [
@@ -77,7 +78,7 @@ class GoalsList extends base_command_1.BaseCommand {
77
78
  // a script reads `.data` here exactly as it does for tasks and projects. The
78
79
  // space-scoped endpoint is not paginated and answers a bare `{data}`; filling
79
80
  // the missing fields is additive, so nothing that read `.data` changes.
80
- this.log(JSON.stringify((0, web_url_1.withDataUrls)(this.cliConfig.baseURL, (0, list_output_1.toListEnvelope)(response) ?? response, web_url_1.goalUrlFrom), null, 2));
81
+ this.printJsonResult((0, list_output_1.listResult)((0, web_url_1.withDataUrls)(this.cliConfig.baseURL, (0, list_output_2.toListEnvelope)(response) ?? response, web_url_1.goalUrlFrom)));
81
82
  return;
82
83
  }
83
84
  // Both listGoals and listSpaceGoals return { data: Goal[] }. The general
@@ -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 grants_1 = require("../../lib/grants");
@@ -32,7 +33,7 @@ class GrantsList extends base_command_1.BaseCommand {
32
33
  provider: flags.provider,
33
34
  }));
34
35
  if (flags.json) {
35
- this.log(JSON.stringify(response.grants, null, 2));
36
+ this.printJsonResult((0, list_output_1.listResult)(response.grants));
36
37
  return;
37
38
  }
38
39
  (0, grants_1.renderGrantList)(response.grants, (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 format_1 = require("../../../lib/format");
@@ -33,7 +34,7 @@ class HarnessesGrantsList extends base_command_1.BaseCommand {
33
34
  return;
34
35
  }
35
36
  if (flags.json) {
36
- this.log(JSON.stringify(grants, null, 2));
37
+ this.printJsonResult((0, list_output_1.listResult)(grants));
37
38
  return;
38
39
  }
39
40
  if (grants.length === 0) {