@synap-core/cli 1.11.0 → 1.12.2

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 (452) hide show
  1. package/README.md +23 -198
  2. package/dist/build-info.json +6 -0
  3. package/dist/commands/agent-run.js +3 -2
  4. package/dist/commands/agent-run.js.map +1 -1
  5. package/dist/commands/agents.d.ts +33 -17
  6. package/dist/commands/agents.js +203 -237
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/app.d.ts +143 -0
  9. package/dist/commands/app.js +523 -0
  10. package/dist/commands/app.js.map +1 -0
  11. package/dist/commands/automate.d.ts +21 -0
  12. package/dist/commands/automate.js +42 -0
  13. package/dist/commands/automate.js.map +1 -0
  14. package/dist/commands/automation-schema.test.d.ts +16 -0
  15. package/dist/commands/automation-schema.test.js +77 -0
  16. package/dist/commands/automation-schema.test.js.map +1 -0
  17. package/dist/commands/automation.d.ts +12 -0
  18. package/dist/commands/automation.js +80 -35
  19. package/dist/commands/automation.js.map +1 -1
  20. package/dist/commands/bridge-setup.d.ts +14 -1
  21. package/dist/commands/bridge-setup.js +392 -128
  22. package/dist/commands/bridge-setup.js.map +1 -1
  23. package/dist/commands/cap-connections.d.ts +4 -4
  24. package/dist/commands/cap-connections.js +14 -14
  25. package/dist/commands/cap-connections.js.map +1 -1
  26. package/dist/commands/capability.d.ts +2 -0
  27. package/dist/commands/capability.js +218 -168
  28. package/dist/commands/capability.js.map +1 -1
  29. package/dist/commands/catalog.d.ts +275 -0
  30. package/dist/commands/catalog.js +481 -0
  31. package/dist/commands/catalog.js.map +1 -0
  32. package/dist/commands/cell.d.ts +155 -8
  33. package/dist/commands/cell.js +416 -40
  34. package/dist/commands/cell.js.map +1 -1
  35. package/dist/commands/centrality.js +1 -13
  36. package/dist/commands/centrality.js.map +1 -1
  37. package/dist/commands/connect.d.ts +38 -13
  38. package/dist/commands/connect.js +68 -167
  39. package/dist/commands/connect.js.map +1 -1
  40. package/dist/commands/connections.d.ts +3 -2
  41. package/dist/commands/connections.js +95 -25
  42. package/dist/commands/connections.js.map +1 -1
  43. package/dist/commands/context.js +7 -1
  44. package/dist/commands/context.js.map +1 -1
  45. package/dist/commands/data-extra.d.ts +34 -0
  46. package/dist/commands/data-extra.js +193 -23
  47. package/dist/commands/data-extra.js.map +1 -1
  48. package/dist/commands/data.d.ts +120 -2
  49. package/dist/commands/data.js +293 -20
  50. package/dist/commands/data.js.map +1 -1
  51. package/dist/commands/diagnose.d.ts +66 -4
  52. package/dist/commands/diagnose.js +285 -28
  53. package/dist/commands/diagnose.js.map +1 -1
  54. package/dist/commands/doc.d.ts +11 -4
  55. package/dist/commands/doc.js +39 -14
  56. package/dist/commands/doc.js.map +1 -1
  57. package/dist/commands/doctor.d.ts +112 -3
  58. package/dist/commands/doctor.js +657 -32
  59. package/dist/commands/doctor.js.map +1 -1
  60. package/dist/commands/explain.js +5 -5
  61. package/dist/commands/explain.js.map +1 -1
  62. package/dist/commands/import.d.ts +368 -13
  63. package/dist/commands/import.js +1064 -54
  64. package/dist/commands/import.js.map +1 -1
  65. package/dist/commands/init.d.ts +20 -9
  66. package/dist/commands/init.js +433 -973
  67. package/dist/commands/init.js.map +1 -1
  68. package/dist/commands/keys.d.ts +1 -0
  69. package/dist/commands/keys.js +15 -2
  70. package/dist/commands/keys.js.map +1 -1
  71. package/dist/commands/knowledge.d.ts +22 -6
  72. package/dist/commands/knowledge.js +117 -55
  73. package/dist/commands/knowledge.js.map +1 -1
  74. package/dist/commands/lens.d.ts +37 -1
  75. package/dist/commands/lens.js +192 -71
  76. package/dist/commands/lens.js.map +1 -1
  77. package/dist/commands/market-authoring.d.ts +29 -2
  78. package/dist/commands/market-authoring.js +348 -7
  79. package/dist/commands/market-authoring.js.map +1 -1
  80. package/dist/commands/market-official.d.ts +58 -0
  81. package/dist/commands/market-official.js +84 -0
  82. package/dist/commands/market-official.js.map +1 -0
  83. package/dist/commands/market.d.ts +400 -16
  84. package/dist/commands/market.js +1802 -146
  85. package/dist/commands/market.js.map +1 -1
  86. package/dist/commands/mcp.d.ts +60 -25
  87. package/dist/commands/mcp.js +251 -64
  88. package/dist/commands/mcp.js.map +1 -1
  89. package/dist/commands/open.d.ts +39 -9
  90. package/dist/commands/open.js +80 -25
  91. package/dist/commands/open.js.map +1 -1
  92. package/dist/commands/playbook.d.ts +42 -0
  93. package/dist/commands/playbook.js +162 -0
  94. package/dist/commands/playbook.js.map +1 -0
  95. package/dist/commands/pod.js +1 -1
  96. package/dist/commands/pod.js.map +1 -1
  97. package/dist/commands/pods.d.ts +5 -0
  98. package/dist/commands/pods.js +97 -116
  99. package/dist/commands/pods.js.map +1 -1
  100. package/dist/commands/proposals-actions.d.ts +62 -0
  101. package/dist/commands/proposals-actions.js +143 -8
  102. package/dist/commands/proposals-actions.js.map +1 -1
  103. package/dist/commands/proposals-await.d.ts +68 -0
  104. package/dist/commands/proposals-await.js +248 -0
  105. package/dist/commands/proposals-await.js.map +1 -0
  106. package/dist/commands/proton-setup.d.ts +73 -0
  107. package/dist/commands/proton-setup.js +577 -0
  108. package/dist/commands/proton-setup.js.map +1 -0
  109. package/dist/commands/providers.d.ts +23 -0
  110. package/dist/commands/providers.js +126 -1
  111. package/dist/commands/providers.js.map +1 -1
  112. package/dist/commands/raycast.js +6 -2
  113. package/dist/commands/raycast.js.map +1 -1
  114. package/dist/commands/rule.d.ts +150 -0
  115. package/dist/commands/rule.js +447 -0
  116. package/dist/commands/rule.js.map +1 -0
  117. package/dist/commands/session-wait.d.ts +111 -0
  118. package/dist/commands/session-wait.js +209 -0
  119. package/dist/commands/session-wait.js.map +1 -0
  120. package/dist/commands/sessions.d.ts +52 -0
  121. package/dist/commands/sessions.js +478 -58
  122. package/dist/commands/sessions.js.map +1 -1
  123. package/dist/commands/skill-manage.d.ts +21 -0
  124. package/dist/commands/skill-manage.js +136 -19
  125. package/dist/commands/skill-manage.js.map +1 -1
  126. package/dist/commands/skills.js +16 -0
  127. package/dist/commands/skills.js.map +1 -1
  128. package/dist/commands/status.d.ts +1 -4
  129. package/dist/commands/status.js +5 -34
  130. package/dist/commands/status.js.map +1 -1
  131. package/dist/commands/statusline.backoff.test.d.ts +13 -0
  132. package/dist/commands/statusline.backoff.test.js +100 -0
  133. package/dist/commands/statusline.backoff.test.js.map +1 -0
  134. package/dist/commands/statusline.js +16 -9
  135. package/dist/commands/statusline.js.map +1 -1
  136. package/dist/commands/sync-status.d.ts +12 -0
  137. package/dist/commands/sync-status.js +125 -0
  138. package/dist/commands/sync-status.js.map +1 -0
  139. package/dist/commands/templates-retire.d.ts +34 -0
  140. package/dist/commands/templates-retire.js +192 -0
  141. package/dist/commands/templates-retire.js.map +1 -0
  142. package/dist/commands/tools.js +6 -21
  143. package/dist/commands/tools.js.map +1 -1
  144. package/dist/commands/tracks.d.ts +51 -0
  145. package/dist/commands/tracks.js +291 -0
  146. package/dist/commands/tracks.js.map +1 -0
  147. package/dist/commands/update.d.ts +3 -11
  148. package/dist/commands/update.js +5 -134
  149. package/dist/commands/update.js.map +1 -1
  150. package/dist/commands/upload.d.ts +41 -3
  151. package/dist/commands/upload.js +120 -18
  152. package/dist/commands/upload.js.map +1 -1
  153. package/dist/commands/vendor.d.ts +28 -0
  154. package/dist/commands/vendor.js +110 -0
  155. package/dist/commands/vendor.js.map +1 -0
  156. package/dist/commands/versions.js +6 -0
  157. package/dist/commands/versions.js.map +1 -1
  158. package/dist/commands/view.js +10 -5
  159. package/dist/commands/view.js.map +1 -1
  160. package/dist/commands/whoami.d.ts +23 -3
  161. package/dist/commands/whoami.js +169 -23
  162. package/dist/commands/whoami.js.map +1 -1
  163. package/dist/commands/worker.d.ts +122 -0
  164. package/dist/commands/worker.js +435 -0
  165. package/dist/commands/worker.js.map +1 -0
  166. package/dist/commands/worker.test.d.ts +1 -0
  167. package/dist/commands/worker.test.js +116 -0
  168. package/dist/commands/worker.test.js.map +1 -0
  169. package/dist/commands/workspace-ops.d.ts +35 -0
  170. package/dist/commands/workspace-ops.js +153 -0
  171. package/dist/commands/workspace-ops.js.map +1 -0
  172. package/dist/index.d.ts +6 -6
  173. package/dist/index.js +900 -180
  174. package/dist/index.js.map +1 -1
  175. package/dist/lib/agent-connections.d.ts +31 -0
  176. package/dist/lib/agent-connections.js +33 -0
  177. package/dist/lib/agent-connections.js.map +1 -0
  178. package/dist/lib/agent-detect.d.ts +27 -0
  179. package/dist/lib/agent-detect.js +71 -0
  180. package/dist/lib/agent-detect.js.map +1 -0
  181. package/dist/lib/agent-door.d.ts +138 -0
  182. package/dist/lib/agent-door.js +426 -0
  183. package/dist/lib/agent-door.js.map +1 -0
  184. package/dist/lib/agents-config.d.ts +2 -0
  185. package/dist/lib/agents-config.js +4 -9
  186. package/dist/lib/agents-config.js.map +1 -1
  187. package/dist/lib/approval-poll.d.ts +31 -2
  188. package/dist/lib/approval-poll.js +20 -7
  189. package/dist/lib/approval-poll.js.map +1 -1
  190. package/dist/lib/atomic-file.d.ts +48 -0
  191. package/dist/lib/atomic-file.js +129 -0
  192. package/dist/lib/atomic-file.js.map +1 -0
  193. package/dist/lib/auth.d.ts +14 -9
  194. package/dist/lib/auth.js +44 -61
  195. package/dist/lib/auth.js.map +1 -1
  196. package/dist/lib/batch-approval.d.ts +85 -0
  197. package/dist/lib/batch-approval.js +170 -0
  198. package/dist/lib/batch-approval.js.map +1 -0
  199. package/dist/lib/capture-lane.d.ts +6 -5
  200. package/dist/lib/capture-lane.js +6 -5
  201. package/dist/lib/capture-lane.js.map +1 -1
  202. package/dist/lib/capture-structure.d.ts +230 -11
  203. package/dist/lib/capture-structure.js +251 -13
  204. package/dist/lib/capture-structure.js.map +1 -1
  205. package/dist/lib/catalog-templates.d.ts +59 -0
  206. package/dist/lib/catalog-templates.js +126 -0
  207. package/dist/lib/catalog-templates.js.map +1 -0
  208. package/dist/lib/cli-build.d.ts +19 -0
  209. package/dist/lib/cli-build.js +37 -0
  210. package/dist/lib/cli-build.js.map +1 -0
  211. package/dist/lib/conversation-headers.d.ts +18 -0
  212. package/dist/lib/conversation-headers.js +32 -0
  213. package/dist/lib/conversation-headers.js.map +1 -0
  214. package/dist/lib/cp-packages.d.ts +167 -11
  215. package/dist/lib/cp-packages.js +253 -21
  216. package/dist/lib/cp-packages.js.map +1 -1
  217. package/dist/lib/credential-class.d.ts +117 -0
  218. package/dist/lib/credential-class.js +116 -0
  219. package/dist/lib/credential-class.js.map +1 -0
  220. package/dist/lib/describe-lens.d.ts +35 -0
  221. package/dist/lib/describe-lens.js +40 -0
  222. package/dist/lib/describe-lens.js.map +1 -1
  223. package/dist/lib/device-connect.d.ts +125 -0
  224. package/dist/lib/device-connect.js +256 -0
  225. package/dist/lib/device-connect.js.map +1 -0
  226. package/dist/lib/directory-lens.d.ts +99 -0
  227. package/dist/lib/directory-lens.js +187 -0
  228. package/dist/lib/directory-lens.js.map +1 -0
  229. package/dist/lib/exporter-coverage.d.ts +71 -0
  230. package/dist/lib/exporter-coverage.js +97 -0
  231. package/dist/lib/exporter-coverage.js.map +1 -0
  232. package/dist/lib/hub-client.d.ts +29 -8
  233. package/dist/lib/hub-client.js +328 -55
  234. package/dist/lib/hub-client.js.map +1 -1
  235. package/dist/lib/init-connect.d.ts +41 -0
  236. package/dist/lib/init-connect.js +75 -0
  237. package/dist/lib/init-connect.js.map +1 -0
  238. package/dist/lib/init-exit.d.ts +24 -0
  239. package/dist/lib/init-exit.js +41 -0
  240. package/dist/lib/init-exit.js.map +1 -0
  241. package/dist/lib/init-flow.d.ts +25 -0
  242. package/dist/lib/init-flow.js +40 -0
  243. package/dist/lib/init-flow.js.map +1 -0
  244. package/dist/lib/init-handoff.d.ts +16 -0
  245. package/dist/lib/init-handoff.js +19 -0
  246. package/dist/lib/init-handoff.js.map +1 -0
  247. package/dist/lib/init-output.d.ts +18 -0
  248. package/dist/lib/init-output.js +43 -0
  249. package/dist/lib/init-output.js.map +1 -0
  250. package/dist/lib/init-pod.d.ts +45 -0
  251. package/dist/lib/init-pod.js +36 -0
  252. package/dist/lib/init-pod.js.map +1 -0
  253. package/dist/lib/installed.d.ts +210 -11
  254. package/dist/lib/installed.js +234 -36
  255. package/dist/lib/installed.js.map +1 -1
  256. package/dist/lib/key-approval.d.ts +57 -0
  257. package/dist/lib/key-approval.js +117 -0
  258. package/dist/lib/key-approval.js.map +1 -0
  259. package/dist/lib/key-diagnosis.d.ts +56 -0
  260. package/dist/lib/key-diagnosis.js +227 -0
  261. package/dist/lib/key-diagnosis.js.map +1 -0
  262. package/dist/lib/key-doctor.d.ts +136 -0
  263. package/dist/lib/key-doctor.js +286 -0
  264. package/dist/lib/key-doctor.js.map +1 -0
  265. package/dist/lib/key-locations.d.ts +120 -0
  266. package/dist/lib/key-locations.js +326 -0
  267. package/dist/lib/key-locations.js.map +1 -0
  268. package/dist/lib/key-source.d.ts +66 -0
  269. package/dist/lib/key-source.js +106 -0
  270. package/dist/lib/key-source.js.map +1 -0
  271. package/dist/lib/key-state.d.ts +70 -0
  272. package/dist/lib/key-state.js +115 -0
  273. package/dist/lib/key-state.js.map +1 -0
  274. package/dist/lib/kind-package.d.ts +181 -0
  275. package/dist/lib/kind-package.js +679 -0
  276. package/dist/lib/kind-package.js.map +1 -0
  277. package/dist/lib/knowledge-title.d.ts +24 -0
  278. package/dist/lib/knowledge-title.js +46 -0
  279. package/dist/lib/knowledge-title.js.map +1 -0
  280. package/dist/lib/knowledge-title.test.d.ts +1 -0
  281. package/dist/lib/knowledge-title.test.js +34 -0
  282. package/dist/lib/knowledge-title.test.js.map +1 -0
  283. package/dist/lib/machine-instance.d.ts +64 -0
  284. package/dist/lib/machine-instance.js +142 -0
  285. package/dist/lib/machine-instance.js.map +1 -0
  286. package/dist/lib/mcp-bridge.d.ts +42 -0
  287. package/dist/lib/mcp-bridge.js +147 -0
  288. package/dist/lib/mcp-bridge.js.map +1 -0
  289. package/dist/lib/mcp-bridge.test.d.ts +1 -0
  290. package/dist/lib/mcp-bridge.test.js +90 -0
  291. package/dist/lib/mcp-bridge.test.js.map +1 -0
  292. package/dist/lib/mcp-call.d.ts +30 -0
  293. package/dist/lib/mcp-call.js +107 -0
  294. package/dist/lib/mcp-call.js.map +1 -0
  295. package/dist/lib/mcp-snippets.d.ts +53 -0
  296. package/dist/lib/mcp-snippets.js +82 -0
  297. package/dist/lib/mcp-snippets.js.map +1 -0
  298. package/dist/lib/next-steps.d.ts +8 -0
  299. package/dist/lib/next-steps.js +31 -1
  300. package/dist/lib/next-steps.js.map +1 -1
  301. package/dist/lib/package-wire.d.ts +179 -0
  302. package/dist/lib/package-wire.js +68 -0
  303. package/dist/lib/package-wire.js.map +1 -0
  304. package/dist/lib/pair-link.d.ts +38 -0
  305. package/dist/lib/pair-link.js +68 -0
  306. package/dist/lib/pair-link.js.map +1 -0
  307. package/dist/lib/pod-wide.d.ts +40 -0
  308. package/dist/lib/pod-wide.js +46 -0
  309. package/dist/lib/pod-wide.js.map +1 -0
  310. package/dist/lib/pod.d.ts +66 -112
  311. package/dist/lib/pod.js +134 -412
  312. package/dist/lib/pod.js.map +1 -1
  313. package/dist/lib/project-ref.d.ts +9 -3
  314. package/dist/lib/project-ref.js +10 -4
  315. package/dist/lib/project-ref.js.map +1 -1
  316. package/dist/lib/review-credential.d.ts +119 -0
  317. package/dist/lib/review-credential.js +147 -0
  318. package/dist/lib/review-credential.js.map +1 -0
  319. package/dist/lib/safe-open.d.ts +49 -0
  320. package/dist/lib/safe-open.js +119 -0
  321. package/dist/lib/safe-open.js.map +1 -0
  322. package/dist/lib/session-lens.d.ts +40 -1
  323. package/dist/lib/session-lens.js +54 -4
  324. package/dist/lib/session-lens.js.map +1 -1
  325. package/dist/lib/superwhisper-import.d.ts +8 -0
  326. package/dist/lib/superwhisper-import.js +14 -7
  327. package/dist/lib/superwhisper-import.js.map +1 -1
  328. package/dist/lib/superwhisper-title.test.d.ts +1 -0
  329. package/dist/lib/superwhisper-title.test.js +18 -0
  330. package/dist/lib/superwhisper-title.test.js.map +1 -0
  331. package/dist/lib/targets.d.ts +134 -10
  332. package/dist/lib/targets.js +962 -258
  333. package/dist/lib/targets.js.map +1 -1
  334. package/dist/lib/template-file.d.ts +4 -0
  335. package/dist/lib/template-file.js.map +1 -1
  336. package/dist/lib/template-lifecycle.d.ts +217 -0
  337. package/dist/lib/template-lifecycle.js +433 -0
  338. package/dist/lib/template-lifecycle.js.map +1 -0
  339. package/dist/lib/template-steps.d.ts +88 -0
  340. package/dist/lib/template-steps.js +118 -0
  341. package/dist/lib/template-steps.js.map +1 -0
  342. package/dist/lib/time-ago.d.ts +2 -0
  343. package/dist/lib/time-ago.js +15 -0
  344. package/dist/lib/time-ago.js.map +1 -0
  345. package/dist/utils/logger.js +5 -2
  346. package/dist/utils/logger.js.map +1 -1
  347. package/package.json +23 -17
  348. package/skills/README.md +12 -10
  349. package/skills/agent-os/SKILL.md +214 -99
  350. package/skills/manifest.json +1 -1
  351. package/skills/onboard/SKILL.md +55 -26
  352. package/skills/synap/README.md +5 -8
  353. package/skills/synap/SKILL.md +1086 -283
  354. package/skills/synap/_order.txt +7 -0
  355. package/skills/synap/_skill.yaml +1 -1
  356. package/skills/synap/automations.md +15 -0
  357. package/skills/synap/capture.md +5 -0
  358. package/skills/synap/cli-operations.md +24 -18
  359. package/skills/synap/concepts.md +28 -0
  360. package/skills/synap/content-os.md +10 -1
  361. package/skills/synap/creative-loop.md +15 -10
  362. package/skills/synap/crm.md +21 -52
  363. package/skills/synap/document-embeds.md +141 -47
  364. package/skills/synap/escalation-ladder.md +20 -10
  365. package/skills/synap/focus-sessions.md +47 -21
  366. package/skills/synap/from-intent.md +142 -0
  367. package/skills/synap/governance-rules.md +4 -4
  368. package/skills/synap/governance.md +10 -7
  369. package/skills/synap/hand-off.md +33 -0
  370. package/skills/synap/inline-patterns.md +15 -7
  371. package/skills/synap/lenses.md +33 -15
  372. package/skills/synap/linking.md +41 -40
  373. package/skills/synap/mcp-remote-servers.md +64 -0
  374. package/skills/synap/mental-model.md +17 -15
  375. package/skills/synap/operating-mode-rules.md +1 -1
  376. package/skills/synap/processes.md +118 -0
  377. package/skills/synap/quick-reference.md +5 -1
  378. package/skills/synap/reading.md +3 -1
  379. package/skills/synap/reflexes.md +12 -42
  380. package/skills/synap/viewframe-cells.md +38 -5
  381. package/skills/synap/work-flow.md +1 -1
  382. package/skills/synap/work-model.md +96 -0
  383. package/skills/synap/worked-examples.md +4 -5
  384. package/skills/synap/workspace-design.md +14 -10
  385. package/skills/synap/writes.md +97 -24
  386. package/skills/synap/writing-titles.md +63 -0
  387. package/skills/synap-app/SKILL.md +2 -2
  388. package/skills/synap-app/_skill.yaml +1 -1
  389. package/skills/synap-app/install-commands.md +1 -1
  390. package/skills/synap-design/SKILL.md +474 -0
  391. package/skills/synap-design/_order.txt +4 -0
  392. package/skills/synap-design/_skill.yaml +21 -0
  393. package/skills/synap-design/loop.md +134 -0
  394. package/skills/synap-design/overview.md +44 -0
  395. package/skills/synap-design/principles.md +130 -0
  396. package/skills/synap-design/system.md +133 -0
  397. package/skills/synap-market/SKILL.md +306 -16
  398. package/skills/synap-market/_skill.yaml +1 -1
  399. package/skills/synap-market/author-and-publish.md +145 -8
  400. package/skills/synap-market/governance-and-catalog.md +7 -0
  401. package/skills/synap-market/install.md +79 -1
  402. package/skills/synap-market/overview.md +74 -6
  403. package/skills/synap-schema/SKILL.md +172 -10
  404. package/skills/synap-schema/_order.txt +2 -0
  405. package/skills/synap-schema/_skill.yaml +4 -2
  406. package/skills/synap-schema/common-mistakes.md +4 -2
  407. package/skills/synap-schema/discover-profiles.md +1 -1
  408. package/skills/synap-schema/entity-scope.md +15 -3
  409. package/skills/synap-schema/extend-first.md +29 -0
  410. package/skills/synap-schema/extend-vs-create.md +1 -1
  411. package/skills/synap-schema/intent-vocabulary-ssot.md +111 -0
  412. package/skills/synap-schema/property-types.md +1 -1
  413. package/skills/synap-schema/relations.md +1 -1
  414. package/skills/synap-ui/SKILL.md +19 -12
  415. package/skills/synap-ui/_skill.yaml +1 -1
  416. package/skills/synap-ui/ai-companion.md +1 -1
  417. package/skills/synap-ui/arranging-bento.md +2 -0
  418. package/skills/synap-ui/bento-layouts.md +10 -10
  419. package/skills/synap-ui/bento-recipes.md +313 -543
  420. package/skills/synap-ui/four-builds.md +5 -0
  421. package/skills/synap-ui/view-types.md +2 -2
  422. package/skills/synap-ui/widget-catalog.md +22 -278
  423. package/templates/automations/bookmark-enrichment.automation.json +290 -13
  424. package/templates/automations/url-bookmark-capture.automation.json +73 -11
  425. package/templates/skills/authoring-playbooks/SKILL.md +6 -3
  426. package/templates/skills/authoring-playbooks/reference/stages-contract.md +15 -0
  427. package/templates/skills/authoring-playbooks/reference/worked-example.md +3 -0
  428. package/dist/commands/infra.d.ts +0 -21
  429. package/dist/commands/infra.js +0 -262
  430. package/dist/commands/infra.js.map +0 -1
  431. package/dist/commands/template.d.ts +0 -42
  432. package/dist/commands/template.js +0 -191
  433. package/dist/commands/template.js.map +0 -1
  434. package/dist/lib/browser-auth.d.ts +0 -35
  435. package/dist/lib/browser-auth.js +0 -170
  436. package/dist/lib/browser-auth.js.map +0 -1
  437. package/dist/lib/openclaw.d.ts +0 -32
  438. package/dist/lib/openclaw.js +0 -164
  439. package/dist/lib/openclaw.js.map +0 -1
  440. package/dist/lib/seed.d.ts +0 -13
  441. package/dist/lib/seed.js +0 -135
  442. package/dist/lib/seed.js.map +0 -1
  443. package/node_modules/@synap/hub-rest-client/dist/index.cjs +0 -1261
  444. package/node_modules/@synap/hub-rest-client/dist/index.d.cts +0 -1647
  445. package/node_modules/@synap/hub-rest-client/dist/index.d.ts +0 -1647
  446. package/node_modules/@synap/hub-rest-client/dist/index.js +0 -1231
  447. package/node_modules/@synap/hub-rest-client/package.json +0 -45
  448. package/node_modules/@synap/hub-rest-client/src/client.ts +0 -1631
  449. package/node_modules/@synap/hub-rest-client/src/errors.ts +0 -30
  450. package/node_modules/@synap/hub-rest-client/src/index.ts +0 -153
  451. package/node_modules/@synap/hub-rest-client/src/setup.ts +0 -133
  452. package/node_modules/@synap/hub-rest-client/src/types.ts +0 -1299
@@ -1,262 +0,0 @@
1
- /**
2
- * synap infra
3
- *
4
- * Infrastructure management via Dokploy — view servers, trigger deploys,
5
- * tail logs, and sync server state into Synap entities.
6
- *
7
- * synap infra — overview: servers + services status
8
- * synap infra status — same as above
9
- * synap infra deploy <app> — trigger a redeploy for a named app
10
- * synap infra logs <app> — tail logs for a service
11
- * synap infra sync — pull Dokploy state into Synap entities
12
- * synap infra open — open Dokploy dashboard in browser
13
- */
14
- import chalk from "chalk";
15
- import ora from "ora";
16
- import { execSync } from "child_process";
17
- import { log, banner } from "../utils/logger.js";
18
- function getDokployConfig() {
19
- const url = process.env.DOKPLOY_URL ?? process.env.DEPLOY_DOMAIN
20
- ? `https://${process.env.DEPLOY_DOMAIN}`
21
- : "https://deploy.synap.live";
22
- const apiKey = process.env.DOKPLOY_API_KEY ?? "";
23
- if (!apiKey)
24
- return null;
25
- return { url, apiKey };
26
- }
27
- async function dokployFetch(path, options = {}) {
28
- const config = getDokployConfig();
29
- if (!config) {
30
- throw new Error("DOKPLOY_API_KEY not set. Get it from the Dokploy dashboard → Settings → API Keys,\n" +
31
- " then add it to your .env or export DOKPLOY_API_KEY=<key>");
32
- }
33
- const res = await fetch(`${config.url}${path}`, {
34
- ...options,
35
- headers: {
36
- "Content-Type": "application/json",
37
- "x-api-key": config.apiKey,
38
- ...options.headers,
39
- },
40
- });
41
- if (!res.ok) {
42
- const text = await res.text().catch(() => res.statusText);
43
- throw new Error(`Dokploy ${path}: ${res.status} ${text}`);
44
- }
45
- return res.json();
46
- }
47
- // ─── Status overview ─────────────────────────────────────────────────────────
48
- export async function infraStatus() {
49
- banner();
50
- const config = getDokployConfig();
51
- if (!config) {
52
- log.warn("Dokploy API key not configured.");
53
- log.blank();
54
- log.dim("1. Open https://deploy.synap.live → Settings → API Keys → Create key");
55
- log.dim("2. Add to your shell: export DOKPLOY_API_KEY=<key>");
56
- log.dim("3. Or add to .env: DOKPLOY_API_KEY=<key>");
57
- log.blank();
58
- log.info(`Dashboard: ${chalk.cyan("https://deploy.synap.live")}`);
59
- return;
60
- }
61
- const spinner = ora("Fetching infrastructure status...").start();
62
- try {
63
- // Dokploy API: GET /api/servers and GET /api/applications
64
- const [servers, apps] = await Promise.all([
65
- dokployFetch("/api/server.all").catch(() => []),
66
- dokployFetch("/api/application.all").catch(() => []),
67
- ]);
68
- spinner.stop();
69
- // ── Servers ──
70
- log.heading("Servers");
71
- if (servers.length === 0) {
72
- log.dim(" No servers connected. Add one in the Dokploy dashboard.");
73
- }
74
- else {
75
- for (const s of servers) {
76
- const dot = s.status === "active"
77
- ? chalk.green("●")
78
- : s.status === "inactive"
79
- ? chalk.red("●")
80
- : chalk.yellow("●");
81
- console.log(` ${dot} ${chalk.bold(s.name)} ${chalk.dim(s.ip)}`);
82
- }
83
- }
84
- log.blank();
85
- // ── Services ──
86
- log.heading("Services");
87
- if (apps.length === 0) {
88
- log.dim(" No services deployed yet.");
89
- }
90
- else {
91
- const byServer = new Map();
92
- for (const app of apps) {
93
- const key = app.serverId ?? "local";
94
- if (!byServer.has(key))
95
- byServer.set(key, []);
96
- byServer.get(key).push(app);
97
- }
98
- for (const [serverId, list] of byServer) {
99
- const server = servers.find((s) => s.id === serverId);
100
- if (server)
101
- log.dim(` ── ${server.name} ──`);
102
- for (const app of list) {
103
- const status = app.status === "running"
104
- ? chalk.green(app.status)
105
- : app.status === "error"
106
- ? chalk.red(app.status)
107
- : chalk.yellow(app.status);
108
- console.log(` ${chalk.bold(app.name)} ${status} ${chalk.dim(app.env ?? "")}`);
109
- }
110
- }
111
- }
112
- log.blank();
113
- log.dim(`Dashboard: ${chalk.cyan(config.url)}`);
114
- log.dim("To deploy: synap infra deploy <app-name>");
115
- log.dim("To tail logs: synap infra logs <app-name>");
116
- }
117
- catch (err) {
118
- spinner.fail("Failed to reach Dokploy");
119
- const msg = err instanceof Error ? err.message : String(err);
120
- log.error(msg);
121
- }
122
- }
123
- // ─── Deploy ──────────────────────────────────────────────────────────────────
124
- export async function infraDeploy(appName) {
125
- const spinner = ora(`Triggering deploy for ${chalk.bold(appName)}...`).start();
126
- try {
127
- // List apps, find by name
128
- const apps = await dokployFetch("/api/application.all");
129
- const match = apps.find((a) => a.name.toLowerCase() === appName.toLowerCase() ||
130
- a.appName?.toLowerCase() === appName.toLowerCase());
131
- if (!match) {
132
- spinner.fail(`App not found: ${appName}`);
133
- log.blank();
134
- log.dim("Available apps:");
135
- for (const a of apps)
136
- log.dim(` • ${a.name}`);
137
- return;
138
- }
139
- await dokployFetch(`/api/application.deploy`, {
140
- method: "POST",
141
- body: JSON.stringify({ applicationId: match.id }),
142
- });
143
- spinner.succeed(`Deploy triggered for ${chalk.bold(match.name)}`);
144
- log.dim(`Watch progress: synap infra logs ${appName}`);
145
- }
146
- catch (err) {
147
- spinner.fail("Deploy failed");
148
- log.error(err instanceof Error ? err.message : String(err));
149
- }
150
- }
151
- // ─── Logs ────────────────────────────────────────────────────────────────────
152
- export async function infraLogs(appName, opts) {
153
- try {
154
- const apps = await dokployFetch("/api/application.all");
155
- const match = apps.find((a) => a.name.toLowerCase() === appName.toLowerCase() ||
156
- a.appName?.toLowerCase() === appName.toLowerCase());
157
- if (!match) {
158
- log.error(`App not found: ${appName}`);
159
- log.blank();
160
- log.dim("Available apps:");
161
- for (const a of apps)
162
- log.dim(` • ${a.name}`);
163
- return;
164
- }
165
- // Use docker logs via container name (Dokploy uses appName as container name)
166
- const containerName = match.appName ?? match.name;
167
- const tail = opts.lines ?? 100;
168
- const followFlag = opts.follow ? "-f" : "";
169
- const cmd = `docker logs --tail ${tail} ${followFlag} ${containerName}`;
170
- log.dim(`> ${cmd}`);
171
- log.blank();
172
- execSync(cmd, { stdio: "inherit" });
173
- }
174
- catch (err) {
175
- log.error(err instanceof Error ? err.message : String(err));
176
- }
177
- }
178
- // ─── Sync ─────────────────────────────────────────────────────────────────────
179
- export async function infraSync(podUrl, apiKey) {
180
- const spinner = ora("Syncing Dokploy state into Synap entities...").start();
181
- try {
182
- const [servers, apps] = await Promise.all([
183
- dokployFetch("/api/server.all"),
184
- dokployFetch("/api/application.all"),
185
- ]);
186
- spinner.text = `Upserting ${servers.length} servers + ${apps.length} deployments...`;
187
- // Push to Synap Hub Protocol
188
- const headers = {
189
- "Content-Type": "application/json",
190
- Authorization: `Bearer ${apiKey}`,
191
- };
192
- let created = 0;
193
- let updated = 0;
194
- for (const s of servers) {
195
- const res = await fetch(`${podUrl}/api/hub/entities/upsert`, {
196
- method: "POST",
197
- headers,
198
- body: JSON.stringify({
199
- profileSlug: "server",
200
- dedupeKey: `dokploy:server:${s.id}`,
201
- title: s.name,
202
- properties: {
203
- ip: s.ip,
204
- status: s.status === "active" ? "online" : "offline",
205
- region: s.region ?? "",
206
- dokployServerId: s.id,
207
- },
208
- }),
209
- });
210
- if (res.ok) {
211
- const { created: c } = await res.json();
212
- c ? created++ : updated++;
213
- }
214
- }
215
- for (const app of apps) {
216
- const res = await fetch(`${podUrl}/api/hub/entities/upsert`, {
217
- method: "POST",
218
- headers,
219
- body: JSON.stringify({
220
- profileSlug: "deployment",
221
- dedupeKey: `dokploy:app:${app.id}`,
222
- title: app.name,
223
- properties: {
224
- deployStatus: app.status,
225
- env: app.env ?? "production",
226
- url: app.domain ? `https://${app.domain}` : "",
227
- image: app.image ?? "",
228
- dokployAppId: app.id,
229
- },
230
- }),
231
- });
232
- if (res.ok) {
233
- const { created: c } = await res.json();
234
- c ? created++ : updated++;
235
- }
236
- }
237
- spinner.succeed(`Sync complete — ${chalk.green(created)} created, ${chalk.blue(updated)} updated`);
238
- }
239
- catch (err) {
240
- spinner.fail("Sync failed");
241
- log.error(err instanceof Error ? err.message : String(err));
242
- }
243
- }
244
- // ─── Open dashboard ──────────────────────────────────────────────────────────
245
- export function infraOpen() {
246
- const config = getDokployConfig();
247
- const url = config?.url ?? "https://deploy.synap.live";
248
- try {
249
- const platform = process.platform;
250
- const cmd = platform === "darwin"
251
- ? "open"
252
- : platform === "win32"
253
- ? "start"
254
- : "xdg-open";
255
- execSync(`${cmd} ${url}`);
256
- log.success(`Opening ${url}`);
257
- }
258
- catch {
259
- log.info(`Dashboard: ${chalk.cyan(url)}`);
260
- }
261
- }
262
- //# sourceMappingURL=infra.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"infra.js","sourceRoot":"","sources":["../../src/commands/infra.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * `synap template` — the "one request" template surface (TEMPLATE-ONE-PATH-PLAN §3-4).
3
- * =====================================================================================
4
- *
5
- * The plan names ONE governed write door for adding/updating a workspace template:
6
- * `synap template publish <file>` → CP `POST /api/packages` (validated server-side).
7
- * No npm publish, no lockfile-bump, no redeploy. This file is that named surface.
8
- *
9
- * synap template publish <file> — validate + upsert to the CP (private by default; --public to share)
10
- * synap template publish --from-workspace <id> — serialize a LIVE workspace, then publish
11
- * synap template list — the caller-visible catalog (own private + public), slug/name/vis/version
12
- * synap template get <slug> — one template's metadata + definition shape
13
- *
14
- * REUSE, no reinvention: publish delegates to the existing `marketPublish` (same
15
- * validator, same CP transport). list/get read through `lib/cp-packages` — the ONE
16
- * authed CP `/api/packages` client (Bearer from `lib/auth`'s stored login token).
17
- * No `fetch` is hand-rolled here.
18
- *
19
- * NOTE (for the orchestrator): this overlaps `synap market publish/validate/
20
- * unpublish`, which already ship the same authoring loop. `synap template` is the
21
- * plan-canonical name; picking one and retiring/aliasing the other is a §4 Wave 2
22
- * cleanup decision, not made here.
23
- */
24
- /**
25
- * `synap template publish <file>` — the plan's "one request". A thin alias over
26
- * the existing `marketPublish` so there is exactly ONE publish implementation
27
- * (same validator, same CP write door, same `--public`/`--from-workspace`/`--json`).
28
- */
29
- export declare function templatePublish(file: string | undefined, opts: {
30
- public?: boolean;
31
- private?: boolean;
32
- fromWorkspace?: string;
33
- json?: boolean;
34
- podUrl?: string;
35
- apiKey?: string;
36
- }): Promise<void>;
37
- export declare function templateList(opts: {
38
- json?: boolean;
39
- }): Promise<void>;
40
- export declare function templateGet(slug: string, opts: {
41
- json?: boolean;
42
- }): Promise<void>;
@@ -1,191 +0,0 @@
1
- /**
2
- * `synap template` — the "one request" template surface (TEMPLATE-ONE-PATH-PLAN §3-4).
3
- * =====================================================================================
4
- *
5
- * The plan names ONE governed write door for adding/updating a workspace template:
6
- * `synap template publish <file>` → CP `POST /api/packages` (validated server-side).
7
- * No npm publish, no lockfile-bump, no redeploy. This file is that named surface.
8
- *
9
- * synap template publish <file> — validate + upsert to the CP (private by default; --public to share)
10
- * synap template publish --from-workspace <id> — serialize a LIVE workspace, then publish
11
- * synap template list — the caller-visible catalog (own private + public), slug/name/vis/version
12
- * synap template get <slug> — one template's metadata + definition shape
13
- *
14
- * REUSE, no reinvention: publish delegates to the existing `marketPublish` (same
15
- * validator, same CP transport). list/get read through `lib/cp-packages` — the ONE
16
- * authed CP `/api/packages` client (Bearer from `lib/auth`'s stored login token).
17
- * No `fetch` is hand-rolled here.
18
- *
19
- * NOTE (for the orchestrator): this overlaps `synap market publish/validate/
20
- * unpublish`, which already ship the same authoring loop. `synap template` is the
21
- * plan-canonical name; picking one and retiring/aliasing the other is a §4 Wave 2
22
- * cleanup decision, not made here.
23
- */
24
- import chalk from "chalk";
25
- import { log } from "../utils/logger.js";
26
- import { getStoredToken, isTokenLocallyExpired } from "../lib/auth.js";
27
- import { fetchMyRows, fetchPublicBrowseRows, fetchPackageDefinition, } from "../lib/cp-packages.js";
28
- // ─── publish ─────────────────────────────────────────────────────────────────
29
- /**
30
- * `synap template publish <file>` — the plan's "one request". A thin alias over
31
- * the existing `marketPublish` so there is exactly ONE publish implementation
32
- * (same validator, same CP write door, same `--public`/`--from-workspace`/`--json`).
33
- */
34
- export async function templatePublish(file, opts) {
35
- const { marketPublish } = await import("./market-authoring.js");
36
- await marketPublish(file, opts);
37
- }
38
- /** private/public/unknown → a short colored label. */
39
- function visLabel(isPublic) {
40
- if (isPublic === false)
41
- return chalk.yellow("private");
42
- if (isPublic === true)
43
- return chalk.green("public");
44
- return chalk.dim("public");
45
- }
46
- /**
47
- * Fetch the caller-visible catalog: the caller's own rows (incl. private) when
48
- * logged in, merged with the public browse rows. `/mine` wins a slug tie so the
49
- * real `isPublic` flag and owned marker survive.
50
- */
51
- async function fetchCatalog() {
52
- const creds = getStoredToken();
53
- const loggedIn = !!creds && !isTokenLocallyExpired(creds);
54
- const filters = { category: "workspace" };
55
- // Public browse is best-effort — a private catalog that resolves is still useful.
56
- const publicRows = await fetchPublicBrowseRows(filters).catch(() => []);
57
- const bySlug = new Map();
58
- for (const r of publicRows) {
59
- bySlug.set(r.slug, {
60
- slug: r.slug,
61
- displayName: r.displayName,
62
- description: r.description,
63
- version: r.version,
64
- isPublic: true,
65
- owned: false,
66
- });
67
- }
68
- if (loggedIn) {
69
- const mineRows = await fetchMyRows(creds.token, filters);
70
- for (const r of mineRows) {
71
- bySlug.set(r.slug, {
72
- slug: r.slug,
73
- displayName: r.displayName,
74
- description: r.description,
75
- version: r.version,
76
- isPublic: r.isPublic,
77
- owned: true,
78
- });
79
- }
80
- }
81
- const rows = [...bySlug.values()].sort((a, b) => a.slug.localeCompare(b.slug));
82
- return { rows, loggedIn };
83
- }
84
- export async function templateList(opts) {
85
- let catalog;
86
- try {
87
- catalog = await fetchCatalog();
88
- }
89
- catch (e) {
90
- if (opts.json) {
91
- console.log(JSON.stringify({ ok: false, error: e.message }, null, 2));
92
- }
93
- else {
94
- log.error(`Could not list templates: ${e.message}`);
95
- log.hint("Log in for your private templates: synap login");
96
- }
97
- process.exit(1);
98
- }
99
- if (opts.json) {
100
- console.log(JSON.stringify({ ok: true, loggedIn: catalog.loggedIn, templates: catalog.rows }, null, 2));
101
- return;
102
- }
103
- if (catalog.rows.length === 0) {
104
- log.info("No templates visible.");
105
- if (!catalog.loggedIn)
106
- log.hint("Your private templates are hidden until you log in: synap login");
107
- return;
108
- }
109
- log.heading(`Templates (${catalog.rows.length})`);
110
- if (!catalog.loggedIn)
111
- log.dim("Logged out — showing public templates only. `synap login` to see your private ones.");
112
- log.blank();
113
- for (const r of catalog.rows) {
114
- const ver = r.version ? chalk.dim(` ${r.version}`) : "";
115
- const owned = r.owned ? chalk.dim(" (yours)") : "";
116
- console.log(` ${chalk.bold(r.slug)}${ver} ${visLabel(r.isPublic)}${owned}`);
117
- console.log(` ${chalk.cyan(r.displayName)}${r.description ? chalk.dim(` ${r.description}`) : ""}`);
118
- }
119
- log.blank();
120
- log.dim("Publish a template: synap template publish <file>");
121
- log.dim("Inspect one: synap template get <slug>");
122
- }
123
- // ─── get ─────────────────────────────────────────────────────────────────────
124
- export async function templateGet(slug, opts) {
125
- const creds = getStoredToken();
126
- const token = creds && !isTokenLocallyExpired(creds) ? creds.token : undefined;
127
- // Metadata: prefer the caller's own row (carries isPublic + version), else the
128
- // public browse row for this slug.
129
- let meta;
130
- try {
131
- if (token) {
132
- const mine = await fetchMyRows(token, { category: "workspace", search: slug });
133
- const own = mine.find((r) => r.slug === slug);
134
- if (own) {
135
- meta = { slug: own.slug, displayName: own.displayName, description: own.description, version: own.version, isPublic: own.isPublic, owned: true };
136
- }
137
- }
138
- if (!meta) {
139
- const pub = await fetchPublicBrowseRows({ category: "workspace", search: slug });
140
- const row = pub.find((r) => r.slug === slug);
141
- if (row) {
142
- meta = { slug: row.slug, displayName: row.displayName, description: row.description, version: row.version, isPublic: true, owned: false };
143
- }
144
- }
145
- }
146
- catch (e) {
147
- if (opts.json) {
148
- console.log(JSON.stringify({ ok: false, slug, error: e.message }, null, 2));
149
- }
150
- else {
151
- log.error(`Could not fetch "${slug}": ${e.message}`);
152
- }
153
- process.exit(1);
154
- }
155
- // Full definition (the install payload) — authed so a private template resolves.
156
- const definition = await fetchPackageDefinition(slug, token).catch(() => null);
157
- if (!meta && !definition) {
158
- if (opts.json) {
159
- console.log(JSON.stringify({ ok: false, slug, error: "not found" }, null, 2));
160
- }
161
- else {
162
- log.error(`Template "${slug}" not found or not visible.`);
163
- if (!token)
164
- log.hint("If it is private, log in first: synap login");
165
- }
166
- process.exit(1);
167
- }
168
- if (opts.json) {
169
- console.log(JSON.stringify({ ok: true, slug, ...meta, definition }, null, 2));
170
- return;
171
- }
172
- const displayName = meta?.displayName ?? slug;
173
- log.heading(`${displayName} ${chalk.dim(`(${slug})`)}`);
174
- log.blank();
175
- if (meta?.description) {
176
- console.log(` ${meta.description}`);
177
- log.blank();
178
- }
179
- if (meta?.version)
180
- console.log(` ${chalk.dim("version:")} ${meta.version}`);
181
- console.log(` ${chalk.dim("visibility:")} ${visLabel(meta?.isPublic)}${meta?.owned ? chalk.dim(" (yours)") : ""}`);
182
- const def = definition;
183
- if (def) {
184
- const count = (v) => (Array.isArray(v) ? v.length : 0);
185
- console.log(` ${chalk.dim("profiles:")} ${count(def.profiles)}`);
186
- console.log(` ${chalk.dim("views:")} ${count(def.views)}`);
187
- }
188
- log.blank();
189
- log.dim(`Install it: synap market install ${slug}`);
190
- }
191
- //# sourceMappingURL=template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- /**
2
- * Browser-based connect flow — the recommended provisioning path.
3
- *
4
- * 1. Start a local HTTP server on an ephemeral port.
5
- * 2. Build `{podUrl}/admin/connect?integration=cli&redirect_uri=http://127.0.0.1:<port>/callback`.
6
- * 3. Open the user's default browser at that URL.
7
- * 4. Admin UI authenticates the user (Kratos session), mints a scoped Hub
8
- * Protocol API key via `trpc.apiKeys.connectIntegration`, and redirects
9
- * to `http://127.0.0.1:<port>/callback?context={apiKey,podUrl,workspaceId}`.
10
- * 5. Local server receives the callback, extracts credentials, shuts down.
11
- *
12
- * This is the same flow Raycast uses (via a `raycast://` deeplink) — for CLI
13
- * we just swap the deeplink for a loopback HTTP URL. The admin UI's redirect
14
- * whitelist accepts both.
15
- *
16
- * Security notes:
17
- * - Loopback only (127.0.0.1) — no external network can intercept.
18
- * - One-shot: server only handles the first /callback, then exits.
19
- * - 5-minute timeout.
20
- * - No CSRF token: single-use, host-local, bound to the process.
21
- */
22
- export interface BrowserAuthResult {
23
- apiKey: string;
24
- podUrl: string;
25
- workspaceId?: string;
26
- }
27
- export interface BrowserAuthOptions {
28
- podUrl: string;
29
- integration: "cli" | "raycast" | "openclaw" | "custom";
30
- /** Milliseconds to wait for the callback. Default 5min. */
31
- timeoutMs?: number;
32
- /** Hook invoked with the admin-panel URL right before opening the browser. */
33
- onUrlReady?: (url: string) => void;
34
- }
35
- export declare function runBrowserAuth(opts: BrowserAuthOptions): Promise<BrowserAuthResult>;