@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
@@ -108,6 +108,8 @@ export declare const COMPUTER_EVENTS: {
108
108
  * them. Needs `computer_browser_file_chooser_v1`.
109
109
  */
110
110
  readonly fileChooser: "computer:surface:filechooser";
111
+ /** Deliberate semantic teaching in the browser controlled by this attachment. */
112
+ readonly teaching: "computer:surface:teaching";
111
113
  };
112
114
  /**
113
115
  * API ⇄ daemon. The daemon transports (Socket.IO and SSE) carry no
@@ -135,6 +137,7 @@ export declare const DAEMON_COMPUTER_EVENTS: {
135
137
  readonly dialog: "daemon:computer:surface:dialog";
136
138
  readonly copy: "daemon:computer:surface:copy";
137
139
  readonly fileChooser: "daemon:computer:surface:filechooser";
140
+ readonly teaching: "daemon:computer:surface:teaching";
138
141
  /**
139
142
  * Pin or unpin the surface an open human-input request names (§8): a pinned
140
143
  * surface is not reclaimed by idle or wall-clock expiry. Fire-and-forget,
@@ -244,6 +247,9 @@ export declare const COMPUTER_CAPABILITIES: {
244
247
  * them (headless refuses them), so no surface may claim to show one.
245
248
  */
246
249
  readonly browserPage: "computer_browser_page_v1";
250
+ readonly browserTeaching: "computer_browser_teaching_v1";
251
+ /** Separately consented, origin-filtered semantic activity review. */
252
+ readonly browserActivityReview: "computer_browser_activity_review_v1";
247
253
  /** Sharing a person's own surface with an agent session (§5.4). */
248
254
  readonly surfaceShare: "computer_surface_share_v1";
249
255
  /** Pinning a surface an open human-input request names: `daemon:computer:surface:pin` (§8). */
@@ -1036,7 +1042,7 @@ export declare function computerDeclaredServiceSpec(raw: unknown): {
1036
1042
  * caller can never be handed an address off the machine.
1037
1043
  */
1038
1044
  export declare function computerDeclaredServiceUrl(service: Pick<ComputerDeclaredServiceSpec, 'port'> & Partial<Pick<ComputerDeclaredServiceSpec, 'path' | 'protocol'>>): string;
1039
- export declare const COMPUTER_MACHINE_KINDS: readonly ["dedicated", "personal"];
1045
+ export declare const COMPUTER_MACHINE_KINDS: readonly ["dedicated", "personal", "space"];
1040
1046
  export type ComputerMachineKind = (typeof COMPUTER_MACHINE_KINDS)[number];
1041
1047
  /**
1042
1048
  * One picture per machine state; none of them is a spinner without a bound,
@@ -1148,3 +1154,10 @@ export interface ComputerDaemonLogResult {
1148
1154
  /** Lines the redaction rewrote anywhere in the ring (a count, never content). */
1149
1155
  redactedLines: number;
1150
1156
  }
1157
+ /** Exact origins only: neither URL paths nor credentials broaden consent. */
1158
+ export interface BrowserActivityOriginPolicy {
1159
+ allowOrigins: string[];
1160
+ excludeOrigins: string[];
1161
+ }
1162
+ export declare function normalizeBrowserActivityOriginPolicy(input: unknown): BrowserActivityOriginPolicy;
1163
+ export declare function browserActivityOriginAllowed(policy: BrowserActivityOriginPolicy, url: unknown): boolean;
@@ -111,6 +111,8 @@ export const COMPUTER_EVENTS = {
111
111
  * them. Needs `computer_browser_file_chooser_v1`.
112
112
  */
113
113
  fileChooser: 'computer:surface:filechooser',
114
+ /** Deliberate semantic teaching in the browser controlled by this attachment. */
115
+ teaching: 'computer:surface:teaching',
114
116
  };
115
117
  /**
116
118
  * API ⇄ daemon. The daemon transports (Socket.IO and SSE) carry no
@@ -139,6 +141,7 @@ export const DAEMON_COMPUTER_EVENTS = {
139
141
  dialog: 'daemon:computer:surface:dialog',
140
142
  copy: 'daemon:computer:surface:copy',
141
143
  fileChooser: 'daemon:computer:surface:filechooser',
144
+ teaching: 'daemon:computer:surface:teaching',
142
145
  /**
143
146
  * Pin or unpin the surface an open human-input request names (§8): a pinned
144
147
  * surface is not reclaimed by idle or wall-clock expiry. Fire-and-forget,
@@ -264,6 +267,9 @@ export const COMPUTER_CAPABILITIES = {
264
267
  * them (headless refuses them), so no surface may claim to show one.
265
268
  */
266
269
  browserPage: 'computer_browser_page_v1',
270
+ browserTeaching: 'computer_browser_teaching_v1',
271
+ /** Separately consented, origin-filtered semantic activity review. */
272
+ browserActivityReview: 'computer_browser_activity_review_v1',
267
273
  /** Sharing a person's own surface with an agent session (§5.4). */
268
274
  surfaceShare: 'computer_surface_share_v1',
269
275
  /** Pinning a surface an open human-input request names: `daemon:computer:surface:pin` (§8). */
@@ -1111,7 +1117,7 @@ export function computerDeclaredServiceUrl(service) {
1111
1117
  // ---------------------------------------------------------------------------
1112
1118
  // Machines and power (§10, §18)
1113
1119
  // ---------------------------------------------------------------------------
1114
- export const COMPUTER_MACHINE_KINDS = ['dedicated', 'personal'];
1120
+ export const COMPUTER_MACHINE_KINDS = ['dedicated', 'personal', 'space'];
1115
1121
  /**
1116
1122
  * One picture per machine state; none of them is a spinner without a bound,
1117
1123
  * and none collapses two states into the reassuring one.
@@ -1212,7 +1218,7 @@ export function computerShowsDesktop(phase) {
1212
1218
  }
1213
1219
  /** Power actions are offered for a Dedicated Runtime only; a personal machine has none (§18). */
1214
1220
  export function computerOffersPowerActions(machineKind) {
1215
- return machineKind === 'dedicated';
1221
+ return machineKind === 'dedicated' || machineKind === 'space';
1216
1222
  }
1217
1223
  // ---------------------------------------------------------------------------
1218
1224
  // The daemon's own log (`computer_daemon_log_v1`)
@@ -1243,3 +1249,40 @@ export const COMPUTER_DAEMON_LOG_LIMITS = {
1243
1249
  rateMax: 30,
1244
1250
  rateWindowMs: 60 * 1000,
1245
1251
  };
1252
+ export function normalizeBrowserActivityOriginPolicy(input) {
1253
+ if (!input || typeof input !== 'object' || Array.isArray(input))
1254
+ throw new Error('Choose exact allowed and excluded web origins');
1255
+ const value = input;
1256
+ if (Object.keys(value).some((key) => !['allowOrigins', 'excludeOrigins'].includes(key)))
1257
+ throw new Error('Unsupported source filter');
1258
+ const origins = (items, required) => {
1259
+ if (!Array.isArray(items) || items.length > 20 || (required && !items.length))
1260
+ throw new Error('Choose from one to twenty allowed origins and up to twenty excluded origins');
1261
+ return [...new Set(items.map((item) => {
1262
+ if (typeof item !== 'string' || item.length > 500)
1263
+ throw new Error('Use an exact http or https origin without a path, credentials, query or fragment');
1264
+ let url;
1265
+ try {
1266
+ url = new URL(item);
1267
+ }
1268
+ catch {
1269
+ throw new Error('Use an exact http or https origin');
1270
+ }
1271
+ if (!['http:', 'https:'].includes(url.protocol) || url.hostname.includes('*') || url.username || url.password || item !== url.origin)
1272
+ throw new Error('Use an exact http or https origin without a path, credentials, query or fragment');
1273
+ return url.origin;
1274
+ }))].sort();
1275
+ };
1276
+ return { allowOrigins: origins(value.allowOrigins, true), excludeOrigins: origins(value.excludeOrigins, false) };
1277
+ }
1278
+ export function browserActivityOriginAllowed(policy, url) {
1279
+ if (typeof url !== 'string')
1280
+ return false;
1281
+ try {
1282
+ const origin = new URL(url).origin;
1283
+ return ['http:', 'https:'].includes(new URL(url).protocol) && policy.allowOrigins.includes(origin) && !policy.excludeOrigins.includes(origin);
1284
+ }
1285
+ catch {
1286
+ return false;
1287
+ }
1288
+ }
@@ -31,6 +31,11 @@
31
31
  * and the daemon spends each approval once: a second delivery of the same
32
32
  * attestation inside its window is refused as `replayed`. That ledger lives
33
33
  * in daemon memory, so a daemon restart inside the (≤60s) window forgets it.
34
+ *
35
+ * v2 (OSK-16614, `toolApprovalSignature.ts`) carries the same claims signed by
36
+ * a platform Ed25519 key and bound to the daemon and session; a daemon that has
37
+ * pinned the platform's keyset accepts only v2. This module stays the v1
38
+ * format and the checks both versions share.
34
39
  */
35
40
  /** Announced by a daemon that honours `attestedApproval` on daemon:tool:request. */
36
41
  export declare const DAEMON_TOOL_ATTESTED_APPROVAL_CAPABILITY = "daemon_tool_attested_approval_v1";
@@ -84,6 +89,14 @@ export interface AttestedToolApproval {
84
89
  issuedAt: number;
85
90
  expiresAt: number;
86
91
  }
92
+ /**
93
+ * Deterministic serialization for the input digest: objects sort keys
94
+ * recursively, arrays keep order, non-JSON values normalize the way
95
+ * `JSON.stringify` would emit them (undefined/functions in objects drop, in
96
+ * arrays become null). Both runtimes must digest the SAME bytes — the server
97
+ * mints and the daemon verifies — so this lives here, once.
98
+ */
99
+ export declare function canonicalApprovalJson(value: unknown): string;
87
100
  /** The digest both sides compute over `toolInput`. */
88
101
  export declare function canonicalToolInputDigest(toolInput: unknown): string;
89
102
  /** Server side: mint the attestation after a person approved THIS call. */
@@ -106,8 +119,24 @@ export declare function mintAttestedToolApproval(args: {
106
119
  * - `replayed` — this exact approval was already spent on this daemon
107
120
  * (the ledger is the verifier's caller's, see the daemon's
108
121
  * `permissions/attestation-ledger.ts`)
122
+ *
123
+ * Signed approvals (`tool_approval_signed_v1`, `toolApprovalSignature.ts`):
124
+ * - `unsigned` — a v1 (unsigned) attestation reached a daemon that has
125
+ * pinned the platform's approval keyset: a downgrade
126
+ * - `unknown_key` — signed by a key id the pinned keyset does not hold
127
+ * - `signature` — the signature does not verify over the payload
128
+ * - `daemon_binding` — signed for a different daemon or session
129
+ * - `unpinned` — a v2 attestation reached a daemon holding no keyset,
130
+ * so nothing here can verify it
131
+ * - `pin_unreadable` — the pinned keyset file exists and cannot be read;
132
+ * nothing is accepted rather than falling back to v1
133
+ *
134
+ * All are internal-only for the person: the daemon log line
135
+ * (`describePermissionRefusalForLog`, `attestation=<reason>`) names them, and
136
+ * the refusal text a caller reads distinguishes only `absent` from "did not
137
+ * verify" so a probing caller learns nothing new.
109
138
  */
110
- export type AttestedToolApprovalRefusalReason = 'absent' | 'malformed' | 'binding' | 'expired' | 'window' | 'replayed';
139
+ export type AttestedToolApprovalRefusalReason = 'absent' | 'malformed' | 'binding' | 'expired' | 'window' | 'replayed' | 'unsigned' | 'unknown_key' | 'signature' | 'daemon_binding' | 'unpinned' | 'pin_unreadable';
111
140
  export type AttestedToolApprovalVerdict = {
112
141
  ok: true;
113
142
  } | {
@@ -131,3 +160,22 @@ export declare function verifyAttestedToolApproval(approval: unknown, call: {
131
160
  toolInput: unknown;
132
161
  now?: number;
133
162
  }): AttestedToolApprovalVerdict;
163
+ /**
164
+ * The checks every attestation version shares once its claims are trusted to
165
+ * be what the issuer wrote: freshness, the verifier-owned window, and the
166
+ * binding to this exact call. v1 reaches here after a shape check; v2
167
+ * (`toolApprovalSignature.ts`) only after its signature verified, so one
168
+ * implementation decides "expired", "window" and "binding" for both.
169
+ */
170
+ export declare function verifyAttestedToolApprovalClaims(a: {
171
+ toolUseId: string;
172
+ toolName: string;
173
+ inputSha256: string;
174
+ issuedAt: number;
175
+ expiresAt: number;
176
+ }, call: {
177
+ toolUseId: string;
178
+ toolName: string;
179
+ toolInput: unknown;
180
+ now?: number;
181
+ }): AttestedToolApprovalVerdict;
@@ -32,6 +32,11 @@ import { createHash } from 'node:crypto';
32
32
  * and the daemon spends each approval once: a second delivery of the same
33
33
  * attestation inside its window is refused as `replayed`. That ledger lives
34
34
  * in daemon memory, so a daemon restart inside the (≤60s) window forgets it.
35
+ *
36
+ * v2 (OSK-16614, `toolApprovalSignature.ts`) carries the same claims signed by
37
+ * a platform Ed25519 key and bound to the daemon and session; a daemon that has
38
+ * pinned the platform's keyset accepts only v2. This module stays the v1
39
+ * format and the checks both versions share.
35
40
  */
36
41
  /** Announced by a daemon that honours `attestedApproval` on daemon:tool:request. */
37
42
  export const DAEMON_TOOL_ATTESTED_APPROVAL_CAPABILITY = 'daemon_tool_attested_approval_v1';
@@ -105,6 +110,9 @@ export const ATTESTED_TOOL_APPROVAL_TTL_MS = 60 * 1000;
105
110
  * arrays become null). Both runtimes must digest the SAME bytes — the server
106
111
  * mints and the daemon verifies — so this lives here, once.
107
112
  */
113
+ export function canonicalApprovalJson(value) {
114
+ return canonicalJson(value);
115
+ }
108
116
  function canonicalJson(value) {
109
117
  if (value === null || typeof value !== 'object') {
110
118
  if (value === undefined || typeof value === 'function' || typeof value === 'symbol') {
@@ -168,6 +176,22 @@ export function verifyAttestedToolApproval(approval, call) {
168
176
  typeof a.expiresAt !== 'number') {
169
177
  return { ok: false, reason: 'malformed' };
170
178
  }
179
+ return verifyAttestedToolApprovalClaims({
180
+ toolUseId: a.toolUseId,
181
+ toolName: a.toolName,
182
+ inputSha256: a.inputSha256,
183
+ issuedAt: a.issuedAt,
184
+ expiresAt: a.expiresAt,
185
+ }, call);
186
+ }
187
+ /**
188
+ * The checks every attestation version shares once its claims are trusted to
189
+ * be what the issuer wrote: freshness, the verifier-owned window, and the
190
+ * binding to this exact call. v1 reaches here after a shape check; v2
191
+ * (`toolApprovalSignature.ts`) only after its signature verified, so one
192
+ * implementation decides "expired", "window" and "binding" for both.
193
+ */
194
+ export function verifyAttestedToolApprovalClaims(a, call) {
171
195
  const now = call.now ?? Date.now();
172
196
  if (a.expiresAt <= now || a.issuedAt > now + ATTESTED_TOOL_APPROVAL_CLOCK_SKEW_MS) {
173
197
  return { ok: false, reason: 'expired' };
@@ -0,0 +1,118 @@
1
+ /**
2
+ * daemonWire.ts — the ONE declaration of every name the daemon and the API
3
+ * put on the wire between them, with what each name is for (OSK-16617).
4
+ *
5
+ * `computerWire.ts` proved the pattern for one family: the names live in the
6
+ * published package every end can import, and a boundary spec fails on a
7
+ * second spelling. This module generalises it to the whole daemon wire. Each
8
+ * entry declares:
9
+ *
10
+ * - `direction` — who sends it. `bidirectional` means both ends send AND
11
+ * handle the same name (`rpc:request`, the model-proxy relay);
12
+ * - `delivery` — `acked` when the sender learns that it arrived (a Socket.IO
13
+ * acknowledgement callback, or an answer event named in `answeredBy`),
14
+ * `fire_and_forget` otherwise;
15
+ * - `stability` — `stable`: every supported daemon and API speak it, and a
16
+ * change needs a new capability; `experimental`: newer than the fleet, or
17
+ * declared ahead of a speaker (`dormant` says which), and its shape may
18
+ * still move; `deprecated`: kept only so an older peer is heard, never
19
+ * newly sent;
20
+ * - `capability` — the capability the daemon announces before the API may
21
+ * send it (or before the daemon itself sends it). `null` means the event
22
+ * predates capability gating and every supported daemon speaks it;
23
+ * - `payload` — the zod schema that validates it, NAMED (an export of
24
+ * `@skrr-ai/data-provider`, which owns every zod schema; this module stays
25
+ * zod-free so the browser, React Native and a bun-compiled daemon all load
26
+ * it), or `unvalidated`. "This event has no schema" is a recorded fact
27
+ * here, counted by `scripts/daemon-wire/unvalidated-ratchet.mjs`, which
28
+ * lets the count fall and never rise.
29
+ *
30
+ * Who checks it:
31
+ *
32
+ * - `daemon/src/daemon-wire-registry.test.ts` parses the daemon's source and
33
+ * fails on an event the daemon handles or sends that is not declared here,
34
+ * or that it handles or sends against its declared direction;
35
+ * - `api/server/websocket/__tests__/daemonWireRegistry.spec.js` holds the
36
+ * API's SSE ingress table (`EXACT_DAEMON_INGRESS`) and its daemon-socket
37
+ * listeners to the same declarations. The API keeps its own table on
38
+ * purpose: the routing kind is server-owned, and an API booting on a stale
39
+ * package build must not lose routes;
40
+ * - `scripts/daemon-wire/generate-schema.mjs` writes
41
+ * `docs/protocol/daemon-wire.schema.json` from here (the Codex
42
+ * `generate-json-schema` analogue), and a spec fails when it is stale.
43
+ *
44
+ * Event names, never routing: a `{provider}` placeholder stands for one
45
+ * session-provider spelling (`daemon:{provider}:request`). Which spellings are
46
+ * heard is `firstPartyHarness.ts`'s and the API's `sessionProvider.js`'s
47
+ * decision, not this table's.
48
+ */
49
+ export declare const DAEMON_WIRE_DIRECTIONS: readonly ["server_to_daemon", "daemon_to_server", "bidirectional"];
50
+ export type DaemonWireDirection = (typeof DAEMON_WIRE_DIRECTIONS)[number];
51
+ export declare const DAEMON_WIRE_DELIVERIES: readonly ["fire_and_forget", "acked"];
52
+ export type DaemonWireDelivery = (typeof DAEMON_WIRE_DELIVERIES)[number];
53
+ export declare const DAEMON_WIRE_STABILITIES: readonly ["stable", "experimental", "deprecated"];
54
+ export type DaemonWireStability = (typeof DAEMON_WIRE_STABILITIES)[number];
55
+ /**
56
+ * How a name travels. `event` is its own Socket.IO / SSE event; `rpc` is a
57
+ * `method` inside `rpc:request`, answered on `rpc:response` — the shape SSE
58
+ * needs because it has no acknowledgement callback. Several older methods are
59
+ * still ALSO their own event for a Socket.IO daemon, and are declared once
60
+ * with both.
61
+ */
62
+ export declare const DAEMON_WIRE_CARRIERS: readonly ["event", "rpc"];
63
+ export type DaemonWireCarrier = (typeof DAEMON_WIRE_CARRIERS)[number];
64
+ /**
65
+ * The zod schema that validates a payload, by its export name in
66
+ * `@skrr-ai/data-provider` (a dotted path reaches into an exported table:
67
+ * `DAEMON_COMPUTER_EVENT_PAYLOAD_SCHEMAS.attach`). `unvalidated` is a recorded
68
+ * gap, not a default: both ends read the payload field by field.
69
+ */
70
+ export type DaemonWirePayload = {
71
+ readonly kind: 'zod';
72
+ readonly schema: string;
73
+ } | {
74
+ readonly kind: 'unvalidated';
75
+ };
76
+ export interface DaemonWireEntry {
77
+ readonly name: string;
78
+ readonly direction: DaemonWireDirection;
79
+ readonly delivery: DaemonWireDelivery;
80
+ /** The name carrying the answer, when `delivery` is `acked` by an answer rather than a callback. */
81
+ readonly answeredBy?: string;
82
+ readonly stability: DaemonWireStability;
83
+ readonly capability: string | null;
84
+ /**
85
+ * A capability the API announces in `daemon:registered.serverCaps` that
86
+ * changes this name's delivery (`toolResponseAck` turns a fire-and-forget
87
+ * `daemon:tool:response` into an acked one). Absent: the API's version alone decides.
88
+ */
89
+ readonly serverCapability?: string;
90
+ readonly carriers: readonly DaemonWireCarrier[];
91
+ readonly payload: DaemonWirePayload;
92
+ readonly purpose: string;
93
+ /**
94
+ * The API also accepts this name from a person's client socket and relays
95
+ * it to the daemon under the same name (`daemon:list-dirs`). Without this, a
96
+ * server-side listener of a server → daemon name would read as a direction error.
97
+ */
98
+ readonly relayedFromClient?: boolean;
99
+ /**
100
+ * Declared, and one end has no speaker for it: why. A dormant entry is exempt
101
+ * from "somebody speaks this" and is still subject to every other check.
102
+ */
103
+ readonly dormant?: string;
104
+ }
105
+ /** Every daemon ⇄ API name, in declaration order (which the generated schema keeps). */
106
+ export declare const DAEMON_WIRE: readonly DaemonWireEntry[];
107
+ export declare const DAEMON_WIRE_NAMES: readonly string[];
108
+ /**
109
+ * The declaration a concrete name belongs to, or null. An exact declaration
110
+ * wins over a templated one: `daemon:ping:response` is its own event, not a
111
+ * `daemon:{provider}:response`. A templated match says only that the SHAPE is
112
+ * declared; whether a provider spelling is heard is the API's decision.
113
+ */
114
+ export declare function daemonWireEntry(name: string): DaemonWireEntry | null;
115
+ /** Whether `direction` lets `end` send the name. */
116
+ export declare function daemonWireSends(entry: DaemonWireEntry, end: 'daemon' | 'server'): boolean;
117
+ /** Whether `direction` lets `end` handle the name. */
118
+ export declare function daemonWireHandles(entry: DaemonWireEntry, end: 'daemon' | 'server'): boolean;