@synap-core/cli 1.11.0 → 1.13.0

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 (533) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -198
  3. package/dist/build-info.json +6 -0
  4. package/dist/commands/agent-run.js +3 -2
  5. package/dist/commands/agent-run.js.map +1 -1
  6. package/dist/commands/agents.d.ts +32 -17
  7. package/dist/commands/agents.js +203 -237
  8. package/dist/commands/agents.js.map +1 -1
  9. package/dist/commands/app.d.ts +143 -0
  10. package/dist/commands/app.js +524 -0
  11. package/dist/commands/app.js.map +1 -0
  12. package/dist/commands/automate.d.ts +21 -0
  13. package/dist/commands/automate.js +42 -0
  14. package/dist/commands/automate.js.map +1 -0
  15. package/dist/commands/automation-schema.test.d.ts +16 -0
  16. package/dist/commands/automation-schema.test.js +77 -0
  17. package/dist/commands/automation-schema.test.js.map +1 -0
  18. package/dist/commands/automation.d.ts +12 -0
  19. package/dist/commands/automation.js +116 -66
  20. package/dist/commands/automation.js.map +1 -1
  21. package/dist/commands/box.d.ts +42 -0
  22. package/dist/commands/box.js +89 -0
  23. package/dist/commands/box.js.map +1 -0
  24. package/dist/commands/bridge-setup.d.ts +14 -1
  25. package/dist/commands/bridge-setup.js +395 -129
  26. package/dist/commands/bridge-setup.js.map +1 -1
  27. package/dist/commands/cap-connections.d.ts +4 -4
  28. package/dist/commands/cap-connections.js +14 -14
  29. package/dist/commands/cap-connections.js.map +1 -1
  30. package/dist/commands/capability.d.ts +3 -1
  31. package/dist/commands/capability.js +249 -176
  32. package/dist/commands/capability.js.map +1 -1
  33. package/dist/commands/catalog.d.ts +275 -0
  34. package/dist/commands/catalog.js +481 -0
  35. package/dist/commands/catalog.js.map +1 -0
  36. package/dist/commands/cell.d.ts +155 -8
  37. package/dist/commands/cell.js +416 -40
  38. package/dist/commands/cell.js.map +1 -1
  39. package/dist/commands/centrality.js +1 -13
  40. package/dist/commands/centrality.js.map +1 -1
  41. package/dist/commands/close-questions.d.ts +27 -0
  42. package/dist/commands/close-questions.js +49 -0
  43. package/dist/commands/close-questions.js.map +1 -0
  44. package/dist/commands/close-questions.test.d.ts +1 -0
  45. package/dist/commands/close-questions.test.js +52 -0
  46. package/dist/commands/close-questions.test.js.map +1 -0
  47. package/dist/commands/connect.d.ts +36 -13
  48. package/dist/commands/connect.js +68 -167
  49. package/dist/commands/connect.js.map +1 -1
  50. package/dist/commands/connections.d.ts +3 -2
  51. package/dist/commands/connections.js +95 -25
  52. package/dist/commands/connections.js.map +1 -1
  53. package/dist/commands/context.js +79 -44
  54. package/dist/commands/context.js.map +1 -1
  55. package/dist/commands/data-extra.d.ts +34 -0
  56. package/dist/commands/data-extra.js +203 -25
  57. package/dist/commands/data-extra.js.map +1 -1
  58. package/dist/commands/data.d.ts +120 -2
  59. package/dist/commands/data.js +295 -21
  60. package/dist/commands/data.js.map +1 -1
  61. package/dist/commands/diagnose.d.ts +66 -4
  62. package/dist/commands/diagnose.js +285 -28
  63. package/dist/commands/diagnose.js.map +1 -1
  64. package/dist/commands/doc.d.ts +11 -4
  65. package/dist/commands/doc.js +39 -14
  66. package/dist/commands/doc.js.map +1 -1
  67. package/dist/commands/doctor.d.ts +133 -3
  68. package/dist/commands/doctor.js +761 -41
  69. package/dist/commands/doctor.js.map +1 -1
  70. package/dist/commands/explain.js +5 -5
  71. package/dist/commands/explain.js.map +1 -1
  72. package/dist/commands/hooks.d.ts +19 -0
  73. package/dist/commands/hooks.js +70 -0
  74. package/dist/commands/hooks.js.map +1 -0
  75. package/dist/commands/import.d.ts +393 -13
  76. package/dist/commands/import.js +1150 -54
  77. package/dist/commands/import.js.map +1 -1
  78. package/dist/commands/init.d.ts +34 -9
  79. package/dist/commands/init.js +481 -981
  80. package/dist/commands/init.js.map +1 -1
  81. package/dist/commands/keys.d.ts +1 -0
  82. package/dist/commands/keys.js +15 -2
  83. package/dist/commands/keys.js.map +1 -1
  84. package/dist/commands/knowledge.d.ts +22 -6
  85. package/dist/commands/knowledge.js +121 -57
  86. package/dist/commands/knowledge.js.map +1 -1
  87. package/dist/commands/lens.d.ts +37 -1
  88. package/dist/commands/lens.js +194 -72
  89. package/dist/commands/lens.js.map +1 -1
  90. package/dist/commands/market-authoring.d.ts +29 -2
  91. package/dist/commands/market-authoring.js +348 -7
  92. package/dist/commands/market-authoring.js.map +1 -1
  93. package/dist/commands/market-official.d.ts +58 -0
  94. package/dist/commands/market-official.js +84 -0
  95. package/dist/commands/market-official.js.map +1 -0
  96. package/dist/commands/market.d.ts +400 -16
  97. package/dist/commands/market.js +1802 -146
  98. package/dist/commands/market.js.map +1 -1
  99. package/dist/commands/mcp.d.ts +60 -25
  100. package/dist/commands/mcp.js +251 -64
  101. package/dist/commands/mcp.js.map +1 -1
  102. package/dist/commands/observe.category.test.d.ts +1 -0
  103. package/dist/commands/observe.category.test.js +59 -0
  104. package/dist/commands/observe.category.test.js.map +1 -0
  105. package/dist/commands/observe.d.ts +3 -0
  106. package/dist/commands/observe.js +7 -5
  107. package/dist/commands/observe.js.map +1 -1
  108. package/dist/commands/observe.title.test.d.ts +1 -0
  109. package/dist/commands/observe.title.test.js +37 -0
  110. package/dist/commands/observe.title.test.js.map +1 -0
  111. package/dist/commands/open.d.ts +39 -9
  112. package/dist/commands/open.js +80 -25
  113. package/dist/commands/open.js.map +1 -1
  114. package/dist/commands/playbook.d.ts +42 -0
  115. package/dist/commands/playbook.js +171 -0
  116. package/dist/commands/playbook.js.map +1 -0
  117. package/dist/commands/pod.js +1 -1
  118. package/dist/commands/pod.js.map +1 -1
  119. package/dist/commands/pods.d.ts +11 -1
  120. package/dist/commands/pods.js +129 -131
  121. package/dist/commands/pods.js.map +1 -1
  122. package/dist/commands/proposals-actions.d.ts +62 -0
  123. package/dist/commands/proposals-actions.js +143 -8
  124. package/dist/commands/proposals-actions.js.map +1 -1
  125. package/dist/commands/proposals-await.d.ts +68 -0
  126. package/dist/commands/proposals-await.js +248 -0
  127. package/dist/commands/proposals-await.js.map +1 -0
  128. package/dist/commands/proton-setup.d.ts +73 -0
  129. package/dist/commands/proton-setup.js +579 -0
  130. package/dist/commands/proton-setup.js.map +1 -0
  131. package/dist/commands/providers.d.ts +23 -0
  132. package/dist/commands/providers.js +126 -1
  133. package/dist/commands/providers.js.map +1 -1
  134. package/dist/commands/raycast.js +6 -2
  135. package/dist/commands/raycast.js.map +1 -1
  136. package/dist/commands/rule.d.ts +150 -0
  137. package/dist/commands/rule.js +447 -0
  138. package/dist/commands/rule.js.map +1 -0
  139. package/dist/commands/session-feed-wait.d.ts +48 -0
  140. package/dist/commands/session-feed-wait.js +261 -0
  141. package/dist/commands/session-feed-wait.js.map +1 -0
  142. package/dist/commands/session-post.d.ts +40 -0
  143. package/dist/commands/session-post.js +96 -0
  144. package/dist/commands/session-post.js.map +1 -0
  145. package/dist/commands/session-wait.d.ts +116 -0
  146. package/dist/commands/session-wait.js +224 -0
  147. package/dist/commands/session-wait.js.map +1 -0
  148. package/dist/commands/sessions.d.ts +54 -0
  149. package/dist/commands/sessions.js +501 -58
  150. package/dist/commands/sessions.js.map +1 -1
  151. package/dist/commands/skill-manage.d.ts +21 -0
  152. package/dist/commands/skill-manage.js +136 -19
  153. package/dist/commands/skill-manage.js.map +1 -1
  154. package/dist/commands/skills-commands.d.ts +2 -0
  155. package/dist/commands/skills-commands.js +9 -1
  156. package/dist/commands/skills-commands.js.map +1 -1
  157. package/dist/commands/skills-commands.test.d.ts +1 -0
  158. package/dist/commands/skills-commands.test.js +57 -0
  159. package/dist/commands/skills-commands.test.js.map +1 -0
  160. package/dist/commands/skills.js +16 -0
  161. package/dist/commands/skills.js.map +1 -1
  162. package/dist/commands/status.d.ts +1 -4
  163. package/dist/commands/status.js +6 -35
  164. package/dist/commands/status.js.map +1 -1
  165. package/dist/commands/statusline.backoff.test.d.ts +13 -0
  166. package/dist/commands/statusline.backoff.test.js +100 -0
  167. package/dist/commands/statusline.backoff.test.js.map +1 -0
  168. package/dist/commands/statusline.js +16 -9
  169. package/dist/commands/statusline.js.map +1 -1
  170. package/dist/commands/sync-status.d.ts +12 -0
  171. package/dist/commands/sync-status.js +125 -0
  172. package/dist/commands/sync-status.js.map +1 -0
  173. package/dist/commands/templates-retire.d.ts +34 -0
  174. package/dist/commands/templates-retire.js +192 -0
  175. package/dist/commands/templates-retire.js.map +1 -0
  176. package/dist/commands/tools.js +6 -21
  177. package/dist/commands/tools.js.map +1 -1
  178. package/dist/commands/tracks.d.ts +112 -0
  179. package/dist/commands/tracks.js +543 -0
  180. package/dist/commands/tracks.js.map +1 -0
  181. package/dist/commands/update.d.ts +3 -11
  182. package/dist/commands/update.js +5 -134
  183. package/dist/commands/update.js.map +1 -1
  184. package/dist/commands/upload.d.ts +41 -3
  185. package/dist/commands/upload.js +120 -18
  186. package/dist/commands/upload.js.map +1 -1
  187. package/dist/commands/vendor.d.ts +28 -0
  188. package/dist/commands/vendor.js +110 -0
  189. package/dist/commands/vendor.js.map +1 -0
  190. package/dist/commands/versions.js +6 -0
  191. package/dist/commands/versions.js.map +1 -1
  192. package/dist/commands/view.js +10 -5
  193. package/dist/commands/view.js.map +1 -1
  194. package/dist/commands/whoami.d.ts +30 -3
  195. package/dist/commands/whoami.js +186 -23
  196. package/dist/commands/whoami.js.map +1 -1
  197. package/dist/commands/worker-accounts.d.ts +149 -0
  198. package/dist/commands/worker-accounts.js +339 -0
  199. package/dist/commands/worker-accounts.js.map +1 -0
  200. package/dist/commands/worker-accounts.test.d.ts +1 -0
  201. package/dist/commands/worker-accounts.test.js +224 -0
  202. package/dist/commands/worker-accounts.test.js.map +1 -0
  203. package/dist/commands/worker.d.ts +331 -0
  204. package/dist/commands/worker.js +1067 -0
  205. package/dist/commands/worker.js.map +1 -0
  206. package/dist/commands/worker.test.d.ts +1 -0
  207. package/dist/commands/worker.test.js +427 -0
  208. package/dist/commands/worker.test.js.map +1 -0
  209. package/dist/commands/workspace-ops.d.ts +35 -0
  210. package/dist/commands/workspace-ops.js +153 -0
  211. package/dist/commands/workspace-ops.js.map +1 -0
  212. package/dist/index.d.ts +6 -6
  213. package/dist/index.js +1043 -186
  214. package/dist/index.js.map +1 -1
  215. package/dist/lib/agent-connections.d.ts +31 -0
  216. package/dist/lib/agent-connections.js +33 -0
  217. package/dist/lib/agent-connections.js.map +1 -0
  218. package/dist/lib/agent-detect.d.ts +27 -0
  219. package/dist/lib/agent-detect.js +71 -0
  220. package/dist/lib/agent-detect.js.map +1 -0
  221. package/dist/lib/agent-door.d.ts +136 -0
  222. package/dist/lib/agent-door.js +429 -0
  223. package/dist/lib/agent-door.js.map +1 -0
  224. package/dist/lib/agents-config.d.ts +2 -0
  225. package/dist/lib/agents-config.js +4 -9
  226. package/dist/lib/agents-config.js.map +1 -1
  227. package/dist/lib/approval-poll.d.ts +31 -2
  228. package/dist/lib/approval-poll.js +20 -7
  229. package/dist/lib/approval-poll.js.map +1 -1
  230. package/dist/lib/atomic-file.d.ts +48 -0
  231. package/dist/lib/atomic-file.js +129 -0
  232. package/dist/lib/atomic-file.js.map +1 -0
  233. package/dist/lib/auth.d.ts +17 -11
  234. package/dist/lib/auth.js +47 -64
  235. package/dist/lib/auth.js.map +1 -1
  236. package/dist/lib/batch-approval.d.ts +85 -0
  237. package/dist/lib/batch-approval.js +170 -0
  238. package/dist/lib/batch-approval.js.map +1 -0
  239. package/dist/lib/box/egress.d.ts +82 -0
  240. package/dist/lib/box/egress.js +264 -0
  241. package/dist/lib/box/egress.js.map +1 -0
  242. package/dist/lib/box/evidence.d.ts +86 -0
  243. package/dist/lib/box/evidence.js +121 -0
  244. package/dist/lib/box/evidence.js.map +1 -0
  245. package/dist/lib/box/job-server.d.ts +72 -0
  246. package/dist/lib/box/job-server.js +246 -0
  247. package/dist/lib/box/job-server.js.map +1 -0
  248. package/dist/lib/box/provisioner.d.ts +83 -0
  249. package/dist/lib/box/provisioner.js +312 -0
  250. package/dist/lib/box/provisioner.js.map +1 -0
  251. package/dist/lib/box/proxmox.d.ts +112 -0
  252. package/dist/lib/box/proxmox.js +211 -0
  253. package/dist/lib/box/proxmox.js.map +1 -0
  254. package/dist/lib/box/wire.d.ts +98 -0
  255. package/dist/lib/box/wire.js +70 -0
  256. package/dist/lib/box/wire.js.map +1 -0
  257. package/dist/lib/capture-lane.d.ts +6 -5
  258. package/dist/lib/capture-lane.js +6 -5
  259. package/dist/lib/capture-lane.js.map +1 -1
  260. package/dist/lib/capture-structure.d.ts +230 -11
  261. package/dist/lib/capture-structure.js +251 -13
  262. package/dist/lib/capture-structure.js.map +1 -1
  263. package/dist/lib/catalog-templates.d.ts +59 -0
  264. package/dist/lib/catalog-templates.js +126 -0
  265. package/dist/lib/catalog-templates.js.map +1 -0
  266. package/dist/lib/cli-build.d.ts +19 -0
  267. package/dist/lib/cli-build.js +37 -0
  268. package/dist/lib/cli-build.js.map +1 -0
  269. package/dist/lib/client-header.test.d.ts +1 -0
  270. package/dist/lib/client-header.test.js +85 -0
  271. package/dist/lib/client-header.test.js.map +1 -0
  272. package/dist/lib/conversation-headers.d.ts +33 -0
  273. package/dist/lib/conversation-headers.js +69 -0
  274. package/dist/lib/conversation-headers.js.map +1 -0
  275. package/dist/lib/cp-packages.d.ts +167 -11
  276. package/dist/lib/cp-packages.js +253 -21
  277. package/dist/lib/cp-packages.js.map +1 -1
  278. package/dist/lib/credential-class.d.ts +144 -0
  279. package/dist/lib/credential-class.js +138 -0
  280. package/dist/lib/credential-class.js.map +1 -0
  281. package/dist/lib/describe-lens.d.ts +35 -0
  282. package/dist/lib/describe-lens.js +40 -0
  283. package/dist/lib/describe-lens.js.map +1 -1
  284. package/dist/lib/device-connect.d.ts +125 -0
  285. package/dist/lib/device-connect.js +256 -0
  286. package/dist/lib/device-connect.js.map +1 -0
  287. package/dist/lib/directory-lens.d.ts +99 -0
  288. package/dist/lib/directory-lens.js +187 -0
  289. package/dist/lib/directory-lens.js.map +1 -0
  290. package/dist/lib/exporter-coverage.d.ts +71 -0
  291. package/dist/lib/exporter-coverage.js +97 -0
  292. package/dist/lib/exporter-coverage.js.map +1 -0
  293. package/dist/lib/goal-words.d.ts +38 -0
  294. package/dist/lib/goal-words.js +112 -0
  295. package/dist/lib/goal-words.js.map +1 -0
  296. package/dist/lib/hub-client.d.ts +57 -15
  297. package/dist/lib/hub-client.js +396 -82
  298. package/dist/lib/hub-client.js.map +1 -1
  299. package/dist/lib/init-connect.d.ts +41 -0
  300. package/dist/lib/init-connect.js +75 -0
  301. package/dist/lib/init-connect.js.map +1 -0
  302. package/dist/lib/init-exit.d.ts +24 -0
  303. package/dist/lib/init-exit.js +41 -0
  304. package/dist/lib/init-exit.js.map +1 -0
  305. package/dist/lib/init-flow.d.ts +25 -0
  306. package/dist/lib/init-flow.js +40 -0
  307. package/dist/lib/init-flow.js.map +1 -0
  308. package/dist/lib/init-handoff.d.ts +24 -0
  309. package/dist/lib/init-handoff.js +26 -0
  310. package/dist/lib/init-handoff.js.map +1 -0
  311. package/dist/lib/init-output.d.ts +18 -0
  312. package/dist/lib/init-output.js +43 -0
  313. package/dist/lib/init-output.js.map +1 -0
  314. package/dist/lib/init-pod.d.ts +45 -0
  315. package/dist/lib/init-pod.js +36 -0
  316. package/dist/lib/init-pod.js.map +1 -0
  317. package/dist/lib/installed.d.ts +210 -11
  318. package/dist/lib/installed.js +234 -36
  319. package/dist/lib/installed.js.map +1 -1
  320. package/dist/lib/key-approval.d.ts +57 -0
  321. package/dist/lib/key-approval.js +117 -0
  322. package/dist/lib/key-approval.js.map +1 -0
  323. package/dist/lib/key-diagnosis.d.ts +56 -0
  324. package/dist/lib/key-diagnosis.js +227 -0
  325. package/dist/lib/key-diagnosis.js.map +1 -0
  326. package/dist/lib/key-doctor.d.ts +136 -0
  327. package/dist/lib/key-doctor.js +286 -0
  328. package/dist/lib/key-doctor.js.map +1 -0
  329. package/dist/lib/key-locations.d.ts +120 -0
  330. package/dist/lib/key-locations.js +326 -0
  331. package/dist/lib/key-locations.js.map +1 -0
  332. package/dist/lib/key-source.d.ts +68 -0
  333. package/dist/lib/key-source.js +109 -0
  334. package/dist/lib/key-source.js.map +1 -0
  335. package/dist/lib/key-state.d.ts +70 -0
  336. package/dist/lib/key-state.js +115 -0
  337. package/dist/lib/key-state.js.map +1 -0
  338. package/dist/lib/kind-package.d.ts +181 -0
  339. package/dist/lib/kind-package.js +679 -0
  340. package/dist/lib/kind-package.js.map +1 -0
  341. package/dist/lib/knowledge-title.d.ts +25 -0
  342. package/dist/lib/knowledge-title.js +47 -0
  343. package/dist/lib/knowledge-title.js.map +1 -0
  344. package/dist/lib/knowledge-title.test.d.ts +1 -0
  345. package/dist/lib/knowledge-title.test.js +34 -0
  346. package/dist/lib/knowledge-title.test.js.map +1 -0
  347. package/dist/lib/machine-instance.d.ts +64 -0
  348. package/dist/lib/machine-instance.js +142 -0
  349. package/dist/lib/machine-instance.js.map +1 -0
  350. package/dist/lib/mcp-bridge.d.ts +49 -0
  351. package/dist/lib/mcp-bridge.js +180 -0
  352. package/dist/lib/mcp-bridge.js.map +1 -0
  353. package/dist/lib/mcp-bridge.test.d.ts +1 -0
  354. package/dist/lib/mcp-bridge.test.js +118 -0
  355. package/dist/lib/mcp-bridge.test.js.map +1 -0
  356. package/dist/lib/mcp-call.d.ts +30 -0
  357. package/dist/lib/mcp-call.js +107 -0
  358. package/dist/lib/mcp-call.js.map +1 -0
  359. package/dist/lib/mcp-snippets.d.ts +53 -0
  360. package/dist/lib/mcp-snippets.js +82 -0
  361. package/dist/lib/mcp-snippets.js.map +1 -0
  362. package/dist/lib/next-steps.d.ts +8 -0
  363. package/dist/lib/next-steps.js +31 -1
  364. package/dist/lib/next-steps.js.map +1 -1
  365. package/dist/lib/openclaw.js +3 -2
  366. package/dist/lib/openclaw.js.map +1 -1
  367. package/dist/lib/package-wire.d.ts +179 -0
  368. package/dist/lib/package-wire.js +68 -0
  369. package/dist/lib/package-wire.js.map +1 -0
  370. package/dist/lib/pair-link.d.ts +38 -0
  371. package/dist/lib/pair-link.js +68 -0
  372. package/dist/lib/pair-link.js.map +1 -0
  373. package/dist/lib/pod-moved.d.ts +70 -0
  374. package/dist/lib/pod-moved.js +146 -0
  375. package/dist/lib/pod-moved.js.map +1 -0
  376. package/dist/lib/pod-reach.d.ts +39 -0
  377. package/dist/lib/pod-reach.js +117 -0
  378. package/dist/lib/pod-reach.js.map +1 -0
  379. package/dist/lib/pod-reach.test.d.ts +1 -0
  380. package/dist/lib/pod-reach.test.js +67 -0
  381. package/dist/lib/pod-reach.test.js.map +1 -0
  382. package/dist/lib/pod-wide.d.ts +40 -0
  383. package/dist/lib/pod-wide.js +46 -0
  384. package/dist/lib/pod-wide.js.map +1 -0
  385. package/dist/lib/pod.d.ts +74 -112
  386. package/dist/lib/pod.js +146 -415
  387. package/dist/lib/pod.js.map +1 -1
  388. package/dist/lib/project-ref.d.ts +9 -3
  389. package/dist/lib/project-ref.js +10 -4
  390. package/dist/lib/project-ref.js.map +1 -1
  391. package/dist/lib/register-claude-code-mcp.test.d.ts +1 -0
  392. package/dist/lib/register-claude-code-mcp.test.js +78 -0
  393. package/dist/lib/register-claude-code-mcp.test.js.map +1 -0
  394. package/dist/lib/review-credential.d.ts +119 -0
  395. package/dist/lib/review-credential.js +149 -0
  396. package/dist/lib/review-credential.js.map +1 -0
  397. package/dist/lib/safe-open.d.ts +49 -0
  398. package/dist/lib/safe-open.js +119 -0
  399. package/dist/lib/safe-open.js.map +1 -0
  400. package/dist/lib/session-feed.d.ts +185 -0
  401. package/dist/lib/session-feed.js +257 -0
  402. package/dist/lib/session-feed.js.map +1 -0
  403. package/dist/lib/session-lens.d.ts +40 -1
  404. package/dist/lib/session-lens.js +54 -4
  405. package/dist/lib/session-lens.js.map +1 -1
  406. package/dist/lib/superwhisper-import.d.ts +8 -0
  407. package/dist/lib/superwhisper-import.js +14 -7
  408. package/dist/lib/superwhisper-import.js.map +1 -1
  409. package/dist/lib/superwhisper-title.test.d.ts +1 -0
  410. package/dist/lib/superwhisper-title.test.js +18 -0
  411. package/dist/lib/superwhisper-title.test.js.map +1 -0
  412. package/dist/lib/targets.d.ts +152 -10
  413. package/dist/lib/targets.js +974 -325
  414. package/dist/lib/targets.js.map +1 -1
  415. package/dist/lib/template-file.d.ts +4 -0
  416. package/dist/lib/template-file.js.map +1 -1
  417. package/dist/lib/template-lifecycle.d.ts +217 -0
  418. package/dist/lib/template-lifecycle.js +433 -0
  419. package/dist/lib/template-lifecycle.js.map +1 -0
  420. package/dist/lib/template-steps.d.ts +88 -0
  421. package/dist/lib/template-steps.js +118 -0
  422. package/dist/lib/template-steps.js.map +1 -0
  423. package/dist/lib/time-ago.d.ts +2 -0
  424. package/dist/lib/time-ago.js +15 -0
  425. package/dist/lib/time-ago.js.map +1 -0
  426. package/dist/lib/wake-hook-settings.d.ts +57 -0
  427. package/dist/lib/wake-hook-settings.js +153 -0
  428. package/dist/lib/wake-hook-settings.js.map +1 -0
  429. package/dist/lib/wake-state.d.ts +65 -0
  430. package/dist/lib/wake-state.js +122 -0
  431. package/dist/lib/wake-state.js.map +1 -0
  432. package/dist/utils/logger.js +5 -2
  433. package/dist/utils/logger.js.map +1 -1
  434. package/package.json +26 -17
  435. package/skills/README.md +13 -11
  436. package/skills/agent-os/SKILL.md +214 -99
  437. package/skills/manifest.json +1 -1
  438. package/skills/onboard/SKILL.md +55 -26
  439. package/skills/synap/README.md +5 -8
  440. package/skills/synap/SKILL.md +1149 -289
  441. package/skills/synap/_order.txt +7 -0
  442. package/skills/synap/_skill.yaml +1 -1
  443. package/skills/synap/automations.md +15 -0
  444. package/skills/synap/capture.md +5 -0
  445. package/skills/synap/cli-operations.md +24 -18
  446. package/skills/synap/code-skills.md +70 -0
  447. package/skills/synap/concepts.md +36 -0
  448. package/skills/synap/content-os.md +10 -1
  449. package/skills/synap/creative-loop.md +15 -10
  450. package/skills/synap/crm.md +21 -52
  451. package/skills/synap/document-embeds.md +143 -47
  452. package/skills/synap/escalation-ladder.md +20 -10
  453. package/skills/synap/focus-sessions.md +56 -21
  454. package/skills/synap/from-intent.md +158 -0
  455. package/skills/synap/governance-rules.md +5 -5
  456. package/skills/synap/governance.md +10 -7
  457. package/skills/synap/hand-off.md +33 -0
  458. package/skills/synap/inline-patterns.md +15 -7
  459. package/skills/synap/lenses.md +34 -16
  460. package/skills/synap/linking.md +42 -41
  461. package/skills/synap/mcp-remote-servers.md +64 -0
  462. package/skills/synap/mental-model.md +17 -15
  463. package/skills/synap/operating-mode-rules.md +2 -2
  464. package/skills/synap/processes.md +118 -0
  465. package/skills/synap/quick-reference.md +7 -2
  466. package/skills/synap/reading.md +3 -1
  467. package/skills/synap/reflexes.md +12 -42
  468. package/skills/synap/viewframe-cells.md +38 -5
  469. package/skills/synap/work-flow.md +1 -1
  470. package/skills/synap/work-model.md +110 -0
  471. package/skills/synap/worked-examples.md +4 -5
  472. package/skills/synap/workspace-design.md +15 -11
  473. package/skills/synap/writes.md +105 -25
  474. package/skills/synap/writing-titles.md +63 -0
  475. package/skills/synap-app/SKILL.md +149 -67
  476. package/skills/synap-app/_skill.yaml +1 -1
  477. package/skills/synap-app/creating-the-base-app.md +12 -7
  478. package/skills/synap-app/governance.md +27 -16
  479. package/skills/synap-app/install-commands.md +18 -9
  480. package/skills/synap-app/overview.md +16 -9
  481. package/skills/synap-app/using-the-sdk.md +75 -25
  482. package/skills/synap-design/SKILL.md +474 -0
  483. package/skills/synap-design/_order.txt +4 -0
  484. package/skills/synap-design/_skill.yaml +21 -0
  485. package/skills/synap-design/loop.md +134 -0
  486. package/skills/synap-design/overview.md +44 -0
  487. package/skills/synap-design/principles.md +130 -0
  488. package/skills/synap-design/system.md +133 -0
  489. package/skills/synap-market/SKILL.md +306 -16
  490. package/skills/synap-market/_skill.yaml +1 -1
  491. package/skills/synap-market/author-and-publish.md +145 -8
  492. package/skills/synap-market/governance-and-catalog.md +7 -0
  493. package/skills/synap-market/install.md +79 -1
  494. package/skills/synap-market/overview.md +74 -6
  495. package/skills/synap-schema/SKILL.md +172 -10
  496. package/skills/synap-schema/_order.txt +2 -0
  497. package/skills/synap-schema/_skill.yaml +4 -2
  498. package/skills/synap-schema/common-mistakes.md +4 -2
  499. package/skills/synap-schema/discover-profiles.md +1 -1
  500. package/skills/synap-schema/entity-scope.md +15 -3
  501. package/skills/synap-schema/extend-first.md +29 -0
  502. package/skills/synap-schema/extend-vs-create.md +1 -1
  503. package/skills/synap-schema/intent-vocabulary-ssot.md +111 -0
  504. package/skills/synap-schema/property-types.md +1 -1
  505. package/skills/synap-schema/relations.md +1 -1
  506. package/skills/synap-ui/SKILL.md +19 -12
  507. package/skills/synap-ui/_skill.yaml +1 -1
  508. package/skills/synap-ui/ai-companion.md +1 -1
  509. package/skills/synap-ui/arranging-bento.md +2 -0
  510. package/skills/synap-ui/bento-layouts.md +10 -10
  511. package/skills/synap-ui/bento-recipes.md +313 -543
  512. package/skills/synap-ui/four-builds.md +5 -0
  513. package/skills/synap-ui/view-types.md +2 -2
  514. package/skills/synap-ui/widget-catalog.md +22 -278
  515. package/templates/automations/bookmark-enrichment.automation.json +290 -13
  516. package/templates/automations/url-bookmark-capture.automation.json +73 -11
  517. package/templates/box/runner.py +206 -0
  518. package/templates/skills/authoring-playbooks/SKILL.md +6 -3
  519. package/templates/skills/authoring-playbooks/reference/stages-contract.md +15 -0
  520. package/templates/skills/authoring-playbooks/reference/worked-example.md +3 -0
  521. package/dist/commands/infra.d.ts +0 -21
  522. package/dist/commands/infra.js +0 -262
  523. package/dist/commands/infra.js.map +0 -1
  524. package/node_modules/@synap/hub-rest-client/dist/index.cjs +0 -1261
  525. package/node_modules/@synap/hub-rest-client/dist/index.d.cts +0 -1647
  526. package/node_modules/@synap/hub-rest-client/dist/index.d.ts +0 -1647
  527. package/node_modules/@synap/hub-rest-client/dist/index.js +0 -1231
  528. package/node_modules/@synap/hub-rest-client/package.json +0 -45
  529. package/node_modules/@synap/hub-rest-client/src/client.ts +0 -1631
  530. package/node_modules/@synap/hub-rest-client/src/errors.ts +0 -30
  531. package/node_modules/@synap/hub-rest-client/src/index.ts +0 -153
  532. package/node_modules/@synap/hub-rest-client/src/setup.ts +0 -133
  533. package/node_modules/@synap/hub-rest-client/src/types.ts +0 -1299
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * synap automate
3
+ *
4
+ * The natural-language front door for automations. It deliberately delegates
5
+ * to the deployed workspace agent instead of attempting to parse a workflow in
6
+ * the CLI. That keeps capability discovery, connection checks, and proposal
7
+ * governance in the same path as the rest of the product.
8
+ */
9
+ import { type AgentAskOpts } from "./agent-chat.js";
10
+ export interface AutomateOpts extends Omit<AgentAskOpts, "message" | "agentType"> {
11
+ }
12
+ type Ask = (opts: AgentAskOpts) => Promise<void>;
13
+ /** Build the canonical, governance-first instruction sent to the workspace agent. */
14
+ export declare function buildAutomatePrompt(instruction: string): string;
15
+ /**
16
+ * Send a natural-language automation request through the proven agent-ask
17
+ * channel. The optional dependency makes this thin adapter straightforward to
18
+ * verify without network calls.
19
+ */
20
+ export declare function automate(instruction: string, opts: AutomateOpts, ask?: Ask): Promise<void>;
21
+ export {};
@@ -0,0 +1,42 @@
1
+ /**
2
+ * synap automate
3
+ *
4
+ * The natural-language front door for automations. It deliberately delegates
5
+ * to the deployed workspace agent instead of attempting to parse a workflow in
6
+ * the CLI. That keeps capability discovery, connection checks, and proposal
7
+ * governance in the same path as the rest of the product.
8
+ */
9
+ import chalk from "chalk";
10
+ import { agentAsk, } from "./agent-chat.js";
11
+ const AUTOMATION_BRIEF = `You are handling a request to set up a Synap automation. Work through the deployed Synap capabilities and governance path; do not use an ad-hoc workflow parser.
12
+
13
+ Before proposing anything, inspect the existing capabilities, installed templates, and relevant workspace context. Identify any missing capability or connection prerequisite explicitly. Never install a capability, enable a capability, create a connection, or authenticate an external service automatically.
14
+
15
+ First classify the request. "React" automations start from data already stored in Synap. "Ingest / store" requests start from an external source; verify that its connected source and inbound normalization into Synap already exist. Never invent an external trigger or claim data is stored when it is not. If the source is not available, explain the exact missing prerequisite and the smallest user-approved setup step; do not create an automation proposal yet.
16
+
17
+ Before proposing, declare the exact user-facing contract in three sections: "Gets data", "Stores in Synap", and "Reacts & sends". Empty sections are valid. These are promises, not guesses from node names, and must match the dataContract supplied to create_automation.
18
+
19
+ Only when the requested automation is grounded in existing, available capabilities and connections, create a governed automation proposal for the user to review. Do not directly create, activate, or enable an automation. If it is not grounded, explain the missing prerequisites and the smallest user-approved next step.`;
20
+ /** Build the canonical, governance-first instruction sent to the workspace agent. */
21
+ export function buildAutomatePrompt(instruction) {
22
+ return `${AUTOMATION_BRIEF}\n\nUser request:\n${instruction.trim()}`;
23
+ }
24
+ /**
25
+ * Send a natural-language automation request through the proven agent-ask
26
+ * channel. The optional dependency makes this thin adapter straightforward to
27
+ * verify without network calls.
28
+ */
29
+ export async function automate(instruction, opts, ask = agentAsk) {
30
+ if (!instruction.trim()) {
31
+ // Match `agent ask`'s fail-fast behavior: otherwise the canonical brief
32
+ // itself would make an empty user instruction look non-empty to agentAsk.
33
+ console.error(chalk.red('Error: an instruction is required. Usage: synap automate "your automation request"'));
34
+ process.exit(1);
35
+ return;
36
+ }
37
+ await ask({
38
+ ...opts,
39
+ message: buildAutomatePrompt(instruction),
40
+ });
41
+ }
42
+ //# sourceMappingURL=automate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automate.js","sourceRoot":"","sources":["../../src/commands/automate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,QAAQ,GAET,MAAM,iBAAiB,CAAC;AAMzB,MAAM,gBAAgB,GAAG;;;;;;;;gUAQuS,CAAC;AAEjU,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,GAAG,gBAAgB,sBAAsB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,WAAmB,EACnB,IAAkB,EAClB,MAAW,QAAQ;IAEnB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACxB,wEAAwE;QACxE,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,oFAAoF,CACrF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC;QACR,GAAG,IAAI;QACP,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Parity test — `synap automation schema` prints exactly the node types the POD
3
+ * declares, and never a list of its own.
4
+ *
5
+ * THE DEFECT (live-dogfooded 2026-09-12, D5): the command printed ten node types
6
+ * and omitted `playbook_run` and `capability`, so an AI authoring a flow from
7
+ * this reference could not emit a playbook step at all. The stale list lived
8
+ * behind the door (the pod's `AUTOMATION_SCHEMA`), and the CLI carried a SECOND
9
+ * one in a fallback branch that fabricated a two-node DSL whenever the door's
10
+ * `nodeTypes` was absent.
11
+ *
12
+ * These assertions are on the RENDERER against a mocked door payload: the
13
+ * printed set must EQUAL the door's set (no additions, no omissions), and an
14
+ * empty read must report itself rather than invent nodes.
15
+ */
16
+ export {};
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Parity test — `synap automation schema` prints exactly the node types the POD
3
+ * declares, and never a list of its own.
4
+ *
5
+ * THE DEFECT (live-dogfooded 2026-09-12, D5): the command printed ten node types
6
+ * and omitted `playbook_run` and `capability`, so an AI authoring a flow from
7
+ * this reference could not emit a playbook step at all. The stale list lived
8
+ * behind the door (the pod's `AUTOMATION_SCHEMA`), and the CLI carried a SECOND
9
+ * one in a fallback branch that fabricated a two-node DSL whenever the door's
10
+ * `nodeTypes` was absent.
11
+ *
12
+ * These assertions are on the RENDERER against a mocked door payload: the
13
+ * printed set must EQUAL the door's set (no additions, no omissions), and an
14
+ * empty read must report itself rather than invent nodes.
15
+ */
16
+ import { describe, it, expect } from "vitest";
17
+ import { buildSchemaMarkdown } from "./automation.js";
18
+ /** The node types the pod's executor accepts (`FLOW_NODE_TYPES`). */
19
+ const DOOR_NODE_TYPES = [
20
+ "trigger",
21
+ "command",
22
+ "condition",
23
+ "delay",
24
+ "output",
25
+ "loop",
26
+ "transform",
27
+ "fetch",
28
+ "query",
29
+ "entity_read",
30
+ "related_entities",
31
+ "guard",
32
+ "compute",
33
+ "select",
34
+ "claim",
35
+ "messages_query",
36
+ "runs_query",
37
+ "proposals_query",
38
+ "switch",
39
+ "skill",
40
+ "capability",
41
+ "sub_automation",
42
+ "playbook_run",
43
+ ];
44
+ function doorPayload(names) {
45
+ return {
46
+ triggerTypes: { manual: { description: "User-triggered." } },
47
+ nodeTypes: Object.fromEntries(names.map((n) => [n, { description: `${n} node`, fields: { a: "string" } }])),
48
+ };
49
+ }
50
+ /** Node headings the renderer emitted, in order. */
51
+ function printedNodeTypes(md) {
52
+ const body = md.slice(md.indexOf("## Node Types"));
53
+ return [...body.matchAll(/^### (.+)$/gm)].map((m) => m[1]);
54
+ }
55
+ describe("synap automation schema — the printed node set IS the door's set", () => {
56
+ it("prints every node type the door declares, and only those", () => {
57
+ const md = buildSchemaMarkdown(doorPayload(DOOR_NODE_TYPES), "https://pod.test");
58
+ expect(printedNodeTypes(md)).toEqual(DOOR_NODE_TYPES);
59
+ });
60
+ it("prints the two types the stale hand list omitted", () => {
61
+ const md = buildSchemaMarkdown(doorPayload(DOOR_NODE_TYPES), "https://pod.test");
62
+ // The exact D5 regression: these were absent while the grammar accepted them.
63
+ expect(md).toContain("### playbook_run");
64
+ expect(md).toContain("### capability");
65
+ });
66
+ it("a node type the door ADDS appears with no CLI change", () => {
67
+ // Derivation, not enumeration: an unknown future type must ride through.
68
+ const md = buildSchemaMarkdown(doorPayload(["trigger", "future_node"]), "https://pod.test");
69
+ expect(printedNodeTypes(md)).toEqual(["trigger", "future_node"]);
70
+ });
71
+ it("an EMPTY nodeTypes read is reported, never replaced by a fabricated list", () => {
72
+ const md = buildSchemaMarkdown({ triggerTypes: { manual: { description: "x" } } }, "https://pod.test");
73
+ expect(printedNodeTypes(md)).toEqual([]);
74
+ expect(md).toMatch(/declared no node types/);
75
+ });
76
+ });
77
+ //# sourceMappingURL=automation-schema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-schema.test.js","sourceRoot":"","sources":["../../src/commands/automation-schema.test.ts"],"names":[],"mappings":"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"}
@@ -45,3 +45,15 @@ export interface SchemaOpts {
45
45
  json?: boolean;
46
46
  }
47
47
  export declare function automationSchema(opts: SchemaOpts): Promise<void>;
48
+ /**
49
+ * Render the pod's automation-schema document as markdown.
50
+ *
51
+ * EVERY node type printed comes from the DOOR's payload — the CLI keeps no list
52
+ * of its own. It used to: the `else` branch below fabricated a two-node DSL
53
+ * ("trigger" + "output") whenever `nodeTypes` was absent, which is a second
54
+ * hand-maintained list and a confident lie about a 23-node grammar. An absent
55
+ * `nodeTypes` is now REPORTED as a stale/failed read, never papered over.
56
+ *
57
+ * Exported for the parity test (`automation-schema.test.ts`).
58
+ */
59
+ export declare function buildSchemaMarkdown(schema: Record<string, unknown>, podUrl: string): string;
@@ -7,7 +7,7 @@ import chalk from "chalk";
7
7
  import ora from "ora";
8
8
  import prompts from "prompts";
9
9
  import { readFileSync, mkdirSync, writeFileSync, existsSync } from "fs";
10
- import { resolveHubConfig, resolveUserId, hubGet, hubPost } from "../lib/hub-client.js";
10
+ import { resolveHubConfig, resolveUserId, hubGet, hubPost, renderHubError } from "../lib/hub-client.js";
11
11
  import { unwrapList } from "../lib/unwrapList.js";
12
12
  import { log } from "../utils/logger.js";
13
13
  // ── Helpers ───────────────────────────────────────────────────────────────────
@@ -40,21 +40,42 @@ function extractResult(res) {
40
40
  }
41
41
  return res;
42
42
  }
43
- async function trpcQuery(procedure, input, cfg) {
44
- // Hub-protocol procedures require the acting userId in their input.
45
- if (input.userId === undefined)
46
- input.userId = await resolveUserId(cfg);
47
- // Backend tRPC uses the superjson transformer: GET input must be wrapped
48
- // in the { json: ... } envelope (mirrors the POST body shape below).
49
- const res = await hubGet(`/trpc/${procedure}`, { input: JSON.stringify({ json: input }) }, cfg);
50
- return extractResult(res);
51
- }
43
+ /**
44
+ * The ONE remaining hub-tRPC call: `automations.deleteAutomation`, which has no
45
+ * Hub REST door. It is a GATED mutation on the pod's Bearer tRPC fence (S7 —
46
+ * the governed-write gate bounds it by the key's grant), so a scoped key still
47
+ * passes. Every other automation command uses the Hub REST door below.
48
+ */
52
49
  async function trpcMutation(procedure, input, cfg) {
53
50
  if (input.userId === undefined)
54
51
  input.userId = await resolveUserId(cfg);
55
52
  const res = await hubPost(`/trpc/${procedure}`, { json: input }, cfg);
56
53
  return extractResult(res);
57
54
  }
55
+ /**
56
+ * Every other automation command goes through the Hub-REST automations door
57
+ * (`/api/hub/automations…`, backend `hub-protocol/rest/automations.ts`). The
58
+ * pod's Bearer tRPC door refuses a scoped key (the default agent key) on every
59
+ * mutation the gate does not bound — `activateAutomation` among them (S7,
60
+ * 2026-10-20) — and the REST doors are the documented ones.
61
+ */
62
+ async function hubListAutomations(input, cfg) {
63
+ const userId = await resolveUserId(cfg);
64
+ return hubGet("/automations", { userId, workspaceId: input.workspaceId, status: input.status }, cfg);
65
+ }
66
+ async function hubCreateAutomation(payload, cfg) {
67
+ const userId = await resolveUserId(cfg);
68
+ return hubPost("/automations/create", { ...payload, userId }, cfg);
69
+ }
70
+ async function hubGetAutomation(id, workspaceId, cfg) {
71
+ const userId = await resolveUserId(cfg);
72
+ return hubGet(`/automations/${encodeURIComponent(id)}`, { userId, workspaceId }, cfg);
73
+ }
74
+ /** `POST /automations/:id/activate|pause` — the door needs a workspace. */
75
+ async function hubAutomationAction(id, action, workspaceId, cfg) {
76
+ const userId = await resolveUserId(cfg);
77
+ return (await hubPost(`/automations/${encodeURIComponent(id)}/${action}`, { userId, workspaceId }, cfg));
78
+ }
58
79
  function parseYamlOrJson(filePath) {
59
80
  const content = readFileSync(filePath, "utf-8").trim();
60
81
  // JSON path
@@ -178,35 +199,25 @@ export async function automationList(opts) {
178
199
  cfg = await resolveHubConfig();
179
200
  }
180
201
  catch (err) {
181
- log.error(err.message);
202
+ renderHubError(err);
182
203
  process.exit(1);
183
204
  }
184
205
  const workspaceId = opts.workspace ?? cfg.workspaceId;
185
206
  if (opts.json) {
186
- const input = {};
187
- if (workspaceId)
188
- input.workspaceId = workspaceId;
189
- if (opts.status)
190
- input.status = opts.status;
191
- const data = await trpcQuery("automations.listAutomations", input, cfg);
207
+ const data = await hubListAutomations({ workspaceId, status: opts.status }, cfg);
192
208
  console.log(JSON.stringify(data, null, 2));
193
209
  return;
194
210
  }
195
211
  const spinner = ora({ text: "Fetching automations…", color: "cyan" }).start();
196
212
  let automations;
197
213
  try {
198
- const input = {};
199
- if (workspaceId)
200
- input.workspaceId = workspaceId;
201
- if (opts.status)
202
- input.status = opts.status;
203
- const data = await trpcQuery("automations.listAutomations", input, cfg);
214
+ const data = await hubListAutomations({ workspaceId, status: opts.status }, cfg);
204
215
  automations = unwrapList(data, ["automations"]);
205
216
  spinner.stop();
206
217
  }
207
218
  catch (err) {
208
219
  spinner.fail(chalk.red("Failed to fetch automations"));
209
- log.error(err.message);
220
+ renderHubError(err);
210
221
  process.exit(1);
211
222
  }
212
223
  if (automations.length === 0) {
@@ -229,28 +240,41 @@ export async function automationDescribe(id, opts) {
229
240
  cfg = await resolveHubConfig();
230
241
  }
231
242
  catch (err) {
232
- log.error(err.message);
243
+ renderHubError(err);
233
244
  process.exit(1);
234
245
  }
235
- const workspaceId = opts.workspace ?? cfg.workspaceId;
236
- const input = { id };
237
- if (workspaceId)
238
- input.workspaceId = workspaceId;
246
+ // An id is already unambiguous — do NOT default to the ambient active-lens
247
+ // workspace (cfg.workspaceId) here. `automations.get` already treats a
248
+ // missing workspaceId as "search every workspace this caller can see" (it
249
+ // only NARROWS when one is given); defaulting to the lens would silently
250
+ // narrow away rows that live in a different workspace than whatever the
251
+ // user last `synap use`'d, producing a misleading 404 for a row they can
252
+ // actually read. Only narrow when the user explicitly asks with --workspace.
253
+ const workspaceId = opts.workspace;
239
254
  if (opts.json) {
240
- const data = await trpcQuery("automations.getAutomation", input, cfg);
255
+ const data = await hubGetAutomation(id, workspaceId, cfg);
241
256
  console.log(JSON.stringify(data, null, 2));
242
257
  return;
243
258
  }
244
259
  const spinner = ora({ text: "Fetching automation…", color: "cyan" }).start();
245
260
  let automation;
246
261
  try {
247
- const data = await trpcQuery("automations.getAutomation", input, cfg);
262
+ const data = await hubGetAutomation(id, workspaceId, cfg);
248
263
  automation = data;
249
264
  spinner.stop();
250
265
  }
251
266
  catch (err) {
252
267
  spinner.fail(chalk.red("Failed to fetch automation"));
253
- log.error(err.message);
268
+ const msg = err.message;
269
+ if (/not found/i.test(msg) && workspaceId) {
270
+ log.error(`Automation not found in workspace ${workspaceId} — try \`synap automation describe ${id}\` without --workspace to search every workspace you can see.`);
271
+ }
272
+ else if (/not found/i.test(msg)) {
273
+ log.error(`Automation not found in any workspace you can see. Double-check the id, or pass --workspace <id> if you know which workspace it lives in.`);
274
+ }
275
+ else {
276
+ log.error(msg);
277
+ }
254
278
  process.exit(1);
255
279
  }
256
280
  log.heading(`Automation: ${chalk.bold(automation.name)}`);
@@ -286,7 +310,7 @@ export async function automationCreate(opts) {
286
310
  cfg = await resolveHubConfig();
287
311
  }
288
312
  catch (err) {
289
- log.error(err.message);
313
+ renderHubError(err);
290
314
  process.exit(1);
291
315
  }
292
316
  const workspaceId = opts.workspace ?? cfg.workspaceId;
@@ -300,7 +324,7 @@ export async function automationCreate(opts) {
300
324
  }
301
325
  catch (err) {
302
326
  spinner.fail(chalk.red("Failed to read file"));
303
- log.error(err.message);
327
+ renderHubError(err);
304
328
  process.exit(1);
305
329
  }
306
330
  // Apply {{env.VAR}} substitution
@@ -342,7 +366,7 @@ export async function automationCreate(opts) {
342
366
  }
343
367
  catch (err) {
344
368
  spinner.fail(chalk.red("Invalid --trigger spec"));
345
- log.error(err.message);
369
+ renderHubError(err);
346
370
  process.exit(1);
347
371
  }
348
372
  // Apply --filter for event triggers
@@ -356,7 +380,7 @@ export async function automationCreate(opts) {
356
380
  }
357
381
  catch (err) {
358
382
  spinner.fail(chalk.red("Invalid --filter value"));
359
- log.error(err.message);
383
+ renderHubError(err);
360
384
  process.exit(1);
361
385
  }
362
386
  }
@@ -380,7 +404,7 @@ export async function automationCreate(opts) {
380
404
  }
381
405
  let result;
382
406
  try {
383
- const data = await trpcMutation("automations.createAutomation", payload, cfg);
407
+ const data = await hubCreateAutomation(payload, cfg);
384
408
  // Response shape may be: { automation: {...} } | { id, name, ... } | raw Automation
385
409
  const raw = data;
386
410
  const inner = (raw.automation ?? raw);
@@ -388,7 +412,7 @@ export async function automationCreate(opts) {
388
412
  }
389
413
  catch (err) {
390
414
  spinner.fail(chalk.red("Failed to create automation"));
391
- log.error(err.message);
415
+ renderHubError(err);
392
416
  process.exit(1);
393
417
  }
394
418
  spinner.succeed(chalk.green(`Automation created`));
@@ -405,26 +429,37 @@ export async function automationEnable(id, opts) {
405
429
  cfg = await resolveHubConfig();
406
430
  }
407
431
  catch (err) {
408
- log.error(err.message);
432
+ renderHubError(err);
409
433
  process.exit(1);
410
434
  }
411
435
  const workspaceId = opts.workspace ?? cfg.workspaceId;
436
+ if (!workspaceId) {
437
+ log.error("Activating an automation needs its workspace: pass --workspace <id>.");
438
+ process.exit(1);
439
+ }
412
440
  const spinner = ora({ text: "Activating automation…", color: "cyan" }).start();
413
- const input = { id };
414
- if (workspaceId)
415
- input.workspaceId = workspaceId;
416
441
  let result;
417
442
  try {
418
- const data = await trpcMutation("automations.activateAutomation", input, cfg);
419
- result = data;
443
+ result = await hubAutomationAction(id, "activate", workspaceId, cfg);
420
444
  }
421
445
  catch (err) {
422
446
  spinner.fail(chalk.red("Failed to activate automation"));
423
- log.error(err.message);
447
+ renderHubError(err);
424
448
  process.exit(1);
425
449
  }
426
450
  spinner.stop();
427
- log.success(`Automation ${chalk.bold(result.name ?? id)} is now active`);
451
+ if (result.status === "proposed") {
452
+ // An agent key proposes the activation; a person approves it.
453
+ log.success(`Activation of ${chalk.bold(id)} proposed for review`);
454
+ if (result.proposalId)
455
+ log.dim(`proposal ${result.proposalId}`);
456
+ return;
457
+ }
458
+ if (result.status === "already_active") {
459
+ log.info(`Automation ${chalk.bold(id)} was already active`);
460
+ return;
461
+ }
462
+ log.success(`Automation ${chalk.bold(id)} is now active`);
428
463
  }
429
464
  export async function automationDisable(id, opts) {
430
465
  let cfg;
@@ -432,26 +467,25 @@ export async function automationDisable(id, opts) {
432
467
  cfg = await resolveHubConfig();
433
468
  }
434
469
  catch (err) {
435
- log.error(err.message);
470
+ renderHubError(err);
436
471
  process.exit(1);
437
472
  }
438
473
  const workspaceId = opts.workspace ?? cfg.workspaceId;
474
+ if (!workspaceId) {
475
+ log.error("Pausing an automation needs its workspace: pass --workspace <id>.");
476
+ process.exit(1);
477
+ }
439
478
  const spinner = ora({ text: "Pausing automation…", color: "cyan" }).start();
440
- const input = { id };
441
- if (workspaceId)
442
- input.workspaceId = workspaceId;
443
- let result;
444
479
  try {
445
- const data = await trpcMutation("automations.pauseAutomation", input, cfg);
446
- result = data;
480
+ await hubAutomationAction(id, "pause", workspaceId, cfg);
447
481
  }
448
482
  catch (err) {
449
483
  spinner.fail(chalk.red("Failed to pause automation"));
450
- log.error(err.message);
484
+ renderHubError(err);
451
485
  process.exit(1);
452
486
  }
453
487
  spinner.stop();
454
- console.log(` ${chalk.red("⊘")} Automation ${chalk.bold(result.name ?? id)} paused`);
488
+ console.log(` ${chalk.red("⊘")} Automation ${chalk.bold(id)} paused`);
455
489
  }
456
490
  export async function automationDelete(id, opts) {
457
491
  let cfg;
@@ -459,18 +493,20 @@ export async function automationDelete(id, opts) {
459
493
  cfg = await resolveHubConfig();
460
494
  }
461
495
  catch (err) {
462
- log.error(err.message);
496
+ renderHubError(err);
463
497
  process.exit(1);
464
498
  }
465
- const workspaceId = opts.workspace ?? cfg.workspaceId;
499
+ // Same id-is-unambiguous rule as `describe`: don't default to the ambient
500
+ // lens workspace, it can silently narrow away a row that lives elsewhere.
501
+ // (activate/pause/delete themselves ignore workspaceId server-side — they
502
+ // load by id and gate on the row's OWN workspace — so this only affects
503
+ // the name lookup below.)
504
+ const workspaceId = opts.workspace;
466
505
  // Fetch name for confirmation prompt
467
506
  let automationName = id;
468
507
  if (!opts.force) {
469
508
  try {
470
- const input = { id };
471
- if (workspaceId)
472
- input.workspaceId = workspaceId;
473
- const data = await trpcQuery("automations.getAutomation", input, cfg);
509
+ const data = await hubGetAutomation(id, workspaceId, cfg);
474
510
  automationName = data.name ?? id;
475
511
  }
476
512
  catch {
@@ -496,7 +532,7 @@ export async function automationDelete(id, opts) {
496
532
  }
497
533
  catch (err) {
498
534
  spinner.fail(chalk.red("Failed to delete automation"));
499
- log.error(err.message);
535
+ renderHubError(err);
500
536
  process.exit(1);
501
537
  }
502
538
  spinner.succeed(chalk.green(`Automation '${automationName}' deleted`));
@@ -507,7 +543,7 @@ export async function automationSchema(opts) {
507
543
  cfg = await resolveHubConfig();
508
544
  }
509
545
  catch (err) {
510
- log.error(err.message);
546
+ renderHubError(err);
511
547
  process.exit(1);
512
548
  }
513
549
  const spinner = opts.json ? null : ora({ text: "Fetching schema…", color: "cyan" }).start();
@@ -519,7 +555,7 @@ export async function automationSchema(opts) {
519
555
  }
520
556
  catch (err) {
521
557
  spinner?.fail(chalk.red("Failed to fetch schema"));
522
- log.error(err.message);
558
+ renderHubError(err);
523
559
  process.exit(1);
524
560
  }
525
561
  if (opts.json) {
@@ -544,7 +580,18 @@ export async function automationSchema(opts) {
544
580
  console.log(md);
545
581
  }
546
582
  }
547
- function buildSchemaMarkdown(schema, podUrl) {
583
+ /**
584
+ * Render the pod's automation-schema document as markdown.
585
+ *
586
+ * EVERY node type printed comes from the DOOR's payload — the CLI keeps no list
587
+ * of its own. It used to: the `else` branch below fabricated a two-node DSL
588
+ * ("trigger" + "output") whenever `nodeTypes` was absent, which is a second
589
+ * hand-maintained list and a confident lie about a 23-node grammar. An absent
590
+ * `nodeTypes` is now REPORTED as a stale/failed read, never papered over.
591
+ *
592
+ * Exported for the parity test (`automation-schema.test.ts`).
593
+ */
594
+ export function buildSchemaMarkdown(schema, podUrl) {
548
595
  const lines = [
549
596
  `# Synap Automation DSL Reference`,
550
597
  ``,
@@ -593,7 +640,10 @@ function buildSchemaMarkdown(schema, podUrl) {
593
640
  }
594
641
  }
595
642
  else {
596
- lines.push(``, `### trigger`, ``, `Entry point for the flow. Exactly one per automation.`, ``, `**data fields:**`, `- \`triggerType\` — event | cron | webhook | manual`, `- \`label\` — display name`, `- \`config\` — trigger-specific config object (eventPattern, filters, expression)`, ``, `### output`, ``, `Sends a notification or message when reached.`, ``, `**data fields:**`, `- \`outputType\` — notification | channel_message`, `- \`label\` — display name`, `- \`config\` — output-specific config (title, body for notification; channelId, content for channel_message)`);
643
+ // NOT a fallback list. The node types are the pod's to declare; printing a
644
+ // guessed subset here is how the reference fell two node types behind the
645
+ // executor in the first place. Say the read came back empty instead.
646
+ lines.push(``, `_This pod's schema document declared no node types — the reference could not be read._`, `_Upgrade the pod, or read the raw document with \`synap automation schema --json\`._`);
597
647
  }
598
648
  lines.push(``, `## Template Syntax`, ``, `String values support \`{{...}}\` template expressions:`, ``, `- \`{{trigger.payload.entity.title}}\` — field from the triggering event`, `- \`{{trigger.payload.entity.id}}\` — entity ID from trigger`, `- \`{{env.MY_VAR}}\` — environment variable (resolved at CLI create-time when using \`--from\`)`, ``, `## Quick-Create Examples`, ``, `\`\`\`bash`, `# Notify when a note is created`, `synap automation create --name "Note alert" --trigger "event:entity.create.completed" --filter "profileSlug=note" --action notify --message "New note: {{trigger.payload.entity.title}}"`, ``, `# Weekly digest every Monday at 9am`, `synap automation create --name "Weekly digest" --trigger "cron:0 9 * * MON" --action channel-message --channel "#general" --message "Weekly digest ready."`, ``, `# Manual-only automation (draft, no action)`, `synap automation create --name "Manual trigger" --trigger manual`, `\`\`\``, ``, `## YAML File Format`, ``, `\`\`\`yaml`, `name: string`, `description: string # optional`, `trigger: event | cron | webhook | manual`, `triggerConfig:`, ` eventPattern: string # for event triggers`, ` filters: # for event triggers`, ` key: value`, ` expression: string # for cron triggers`, `status: draft | active`, `flow:`, ` nodes:`, ` - id: trigger-1`, ` type: trigger`, ` position: { x: 0, y: 0 }`, ` data:`, ` triggerType: event`, ` label: Trigger`, ` config:`, ` eventPattern: entity.create.completed`, ` edges: []`, `\`\`\``, ``, `> **Env substitution**: \`{{env.MY_VAR}}\` in any string value is replaced with \`process.env.MY_VAR\` at create-time.`);
599
649
  return lines.join("\n");