@synap-core/cli 1.8.0 → 1.11.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 (372) hide show
  1. package/dist/commands/agent-chat.d.ts +47 -0
  2. package/dist/commands/agent-chat.js +250 -0
  3. package/dist/commands/agent-chat.js.map +1 -0
  4. package/dist/commands/agent-run.js +3 -4
  5. package/dist/commands/agent-run.js.map +1 -1
  6. package/dist/commands/agents.js +85 -46
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/automation.js +2 -1
  9. package/dist/commands/automation.js.map +1 -1
  10. package/dist/commands/bridge-setup.d.ts +66 -0
  11. package/dist/commands/bridge-setup.js +1112 -0
  12. package/dist/commands/bridge-setup.js.map +1 -0
  13. package/dist/commands/cap-connections.d.ts +28 -0
  14. package/dist/commands/cap-connections.js +224 -0
  15. package/dist/commands/cap-connections.js.map +1 -0
  16. package/dist/commands/capability.d.ts +89 -0
  17. package/dist/commands/capability.js +1594 -0
  18. package/dist/commands/capability.js.map +1 -0
  19. package/dist/commands/centrality.d.ts +20 -0
  20. package/dist/commands/centrality.js +95 -0
  21. package/dist/commands/centrality.js.map +1 -0
  22. package/dist/commands/connect.d.ts +2 -0
  23. package/dist/commands/connect.js +16 -35
  24. package/dist/commands/connect.js.map +1 -1
  25. package/dist/commands/context.js +6 -7
  26. package/dist/commands/context.js.map +1 -1
  27. package/dist/commands/data-extra.d.ts +1 -0
  28. package/dist/commands/data-extra.js +41 -14
  29. package/dist/commands/data-extra.js.map +1 -1
  30. package/dist/commands/data.d.ts +4 -4
  31. package/dist/commands/data.js +254 -187
  32. package/dist/commands/data.js.map +1 -1
  33. package/dist/commands/diagnose.d.ts +20 -0
  34. package/dist/commands/diagnose.js +186 -0
  35. package/dist/commands/diagnose.js.map +1 -0
  36. package/dist/commands/digest.d.ts +17 -0
  37. package/dist/commands/digest.js +122 -0
  38. package/dist/commands/digest.js.map +1 -0
  39. package/dist/commands/discover.d.ts +2 -0
  40. package/dist/commands/discover.js +25 -8
  41. package/dist/commands/discover.js.map +1 -1
  42. package/dist/commands/doc.d.ts +14 -0
  43. package/dist/commands/doc.js +61 -4
  44. package/dist/commands/doc.js.map +1 -1
  45. package/dist/commands/doctor.d.ts +21 -0
  46. package/dist/commands/doctor.js +189 -0
  47. package/dist/commands/doctor.js.map +1 -0
  48. package/dist/commands/events.js +5 -2
  49. package/dist/commands/events.js.map +1 -1
  50. package/dist/commands/explain.d.ts +1 -1
  51. package/dist/commands/explain.js +18 -15
  52. package/dist/commands/explain.js.map +1 -1
  53. package/dist/commands/facet.d.ts +29 -0
  54. package/dist/commands/facet.js +113 -0
  55. package/dist/commands/facet.js.map +1 -0
  56. package/dist/commands/graph.js +7 -4
  57. package/dist/commands/graph.js.map +1 -1
  58. package/dist/commands/import.d.ts +38 -0
  59. package/dist/commands/import.js +471 -0
  60. package/dist/commands/import.js.map +1 -0
  61. package/dist/commands/init.js +35 -16
  62. package/dist/commands/init.js.map +1 -1
  63. package/dist/commands/keys.js +3 -4
  64. package/dist/commands/keys.js.map +1 -1
  65. package/dist/commands/knowledge.d.ts +8 -0
  66. package/dist/commands/knowledge.js +308 -33
  67. package/dist/commands/knowledge.js.map +1 -1
  68. package/dist/commands/launch.d.ts +50 -0
  69. package/dist/commands/launch.js +790 -0
  70. package/dist/commands/launch.js.map +1 -0
  71. package/dist/commands/lens.d.ts +45 -0
  72. package/dist/commands/lens.js +386 -0
  73. package/dist/commands/lens.js.map +1 -0
  74. package/dist/commands/market-authoring.d.ts +45 -0
  75. package/dist/commands/market-authoring.js +225 -0
  76. package/dist/commands/market-authoring.js.map +1 -0
  77. package/dist/commands/market.d.ts +224 -0
  78. package/dist/commands/market.js +1643 -0
  79. package/dist/commands/market.js.map +1 -0
  80. package/dist/commands/mcp.d.ts +64 -0
  81. package/dist/commands/mcp.js +265 -0
  82. package/dist/commands/mcp.js.map +1 -0
  83. package/dist/commands/observe.js +14 -11
  84. package/dist/commands/observe.js.map +1 -1
  85. package/dist/commands/open.d.ts +21 -4
  86. package/dist/commands/open.js +45 -4
  87. package/dist/commands/open.js.map +1 -1
  88. package/dist/commands/pod.d.ts +100 -0
  89. package/dist/commands/pod.js +359 -0
  90. package/dist/commands/pod.js.map +1 -0
  91. package/dist/commands/pods.d.ts +15 -0
  92. package/dist/commands/pods.js +233 -17
  93. package/dist/commands/pods.js.map +1 -1
  94. package/dist/commands/proposals-actions.js +43 -3
  95. package/dist/commands/proposals-actions.js.map +1 -1
  96. package/dist/commands/purge.d.ts +23 -0
  97. package/dist/commands/purge.js +148 -0
  98. package/dist/commands/purge.js.map +1 -0
  99. package/dist/commands/raycast.d.ts +15 -0
  100. package/dist/commands/raycast.js +153 -0
  101. package/dist/commands/raycast.js.map +1 -0
  102. package/dist/commands/sessions.js +47 -22
  103. package/dist/commands/sessions.js.map +1 -1
  104. package/dist/commands/skill-manage.d.ts +21 -0
  105. package/dist/commands/skill-manage.js +195 -0
  106. package/dist/commands/skill-manage.js.map +1 -0
  107. package/dist/commands/skills-commands.js +2 -1
  108. package/dist/commands/skills-commands.js.map +1 -1
  109. package/dist/commands/skills.js +7 -4
  110. package/dist/commands/skills.js.map +1 -1
  111. package/dist/commands/status.d.ts +3 -1
  112. package/dist/commands/status.js +166 -14
  113. package/dist/commands/status.js.map +1 -1
  114. package/dist/commands/statusline.d.ts +24 -0
  115. package/dist/commands/statusline.js +450 -0
  116. package/dist/commands/statusline.js.map +1 -0
  117. package/dist/commands/subscribe.js +2 -2
  118. package/dist/commands/subscribe.js.map +1 -1
  119. package/dist/commands/template.d.ts +42 -0
  120. package/dist/commands/template.js +191 -0
  121. package/dist/commands/template.js.map +1 -0
  122. package/dist/commands/tools.d.ts +30 -0
  123. package/dist/commands/tools.js +315 -0
  124. package/dist/commands/tools.js.map +1 -0
  125. package/dist/commands/upload.d.ts +30 -0
  126. package/dist/commands/upload.js +155 -0
  127. package/dist/commands/upload.js.map +1 -0
  128. package/dist/commands/versions.d.ts +27 -0
  129. package/dist/commands/versions.js +277 -0
  130. package/dist/commands/versions.js.map +1 -0
  131. package/dist/commands/view.js +3 -2
  132. package/dist/commands/view.js.map +1 -1
  133. package/dist/commands/whoami.d.ts +21 -0
  134. package/dist/commands/whoami.js +129 -0
  135. package/dist/commands/whoami.js.map +1 -0
  136. package/dist/index.js +894 -60
  137. package/dist/index.js.map +1 -1
  138. package/dist/lib/approval-poll.d.ts +42 -0
  139. package/dist/lib/approval-poll.js +52 -0
  140. package/dist/lib/approval-poll.js.map +1 -0
  141. package/dist/lib/auth.d.ts +29 -6
  142. package/dist/lib/auth.js +105 -94
  143. package/dist/lib/auth.js.map +1 -1
  144. package/dist/lib/bundle-version.d.ts +11 -0
  145. package/dist/lib/bundle-version.js +33 -0
  146. package/dist/lib/bundle-version.js.map +1 -0
  147. package/dist/lib/capture-lane.d.ts +30 -12
  148. package/dist/lib/capture-lane.js +73 -14
  149. package/dist/lib/capture-lane.js.map +1 -1
  150. package/dist/lib/capture-structure.d.ts +123 -0
  151. package/dist/lib/capture-structure.js +57 -0
  152. package/dist/lib/capture-structure.js.map +1 -0
  153. package/dist/lib/cp-packages.d.ts +177 -0
  154. package/dist/lib/cp-packages.js +389 -0
  155. package/dist/lib/cp-packages.js.map +1 -0
  156. package/dist/lib/describe-lens.d.ts +46 -0
  157. package/dist/lib/describe-lens.js +33 -0
  158. package/dist/lib/describe-lens.js.map +1 -0
  159. package/dist/lib/hub-client.d.ts +91 -1
  160. package/dist/lib/hub-client.js +565 -22
  161. package/dist/lib/hub-client.js.map +1 -1
  162. package/dist/lib/id.d.ts +23 -0
  163. package/dist/lib/id.js +35 -0
  164. package/dist/lib/id.js.map +1 -0
  165. package/dist/lib/installed.d.ts +51 -0
  166. package/dist/lib/installed.js +70 -0
  167. package/dist/lib/installed.js.map +1 -0
  168. package/dist/lib/next-steps.d.ts +61 -0
  169. package/dist/lib/next-steps.js +146 -0
  170. package/dist/lib/next-steps.js.map +1 -0
  171. package/dist/lib/pod.d.ts +144 -22
  172. package/dist/lib/pod.js +302 -64
  173. package/dist/lib/pod.js.map +1 -1
  174. package/dist/lib/project-ref.d.ts +95 -0
  175. package/dist/lib/project-ref.js +144 -0
  176. package/dist/lib/project-ref.js.map +1 -0
  177. package/dist/lib/project.d.ts +35 -0
  178. package/dist/lib/project.js +39 -0
  179. package/dist/lib/project.js.map +1 -0
  180. package/dist/lib/session-lens.d.ts +33 -0
  181. package/dist/lib/session-lens.js +76 -0
  182. package/dist/lib/session-lens.js.map +1 -0
  183. package/dist/lib/skill-import.d.ts +40 -0
  184. package/dist/lib/skill-import.js +203 -0
  185. package/dist/lib/skill-import.js.map +1 -0
  186. package/dist/lib/skills-installer.d.ts +17 -6
  187. package/dist/lib/skills-installer.js +133 -19
  188. package/dist/lib/skills-installer.js.map +1 -1
  189. package/dist/lib/suite.d.ts +28 -0
  190. package/dist/lib/suite.js +29 -0
  191. package/dist/lib/suite.js.map +1 -0
  192. package/dist/lib/superwhisper-import.d.ts +40 -0
  193. package/dist/lib/superwhisper-import.js +389 -0
  194. package/dist/lib/superwhisper-import.js.map +1 -0
  195. package/dist/lib/targets.d.ts +49 -1
  196. package/dist/lib/targets.js +420 -288
  197. package/dist/lib/targets.js.map +1 -1
  198. package/dist/lib/template-file.d.ts +74 -0
  199. package/dist/lib/template-file.js +140 -0
  200. package/dist/lib/template-file.js.map +1 -0
  201. package/dist/lib/unwrapList.d.ts +1 -0
  202. package/dist/lib/unwrapList.js +20 -0
  203. package/dist/lib/unwrapList.js.map +1 -0
  204. package/dist/utils/logger.d.ts +2 -0
  205. package/dist/utils/logger.js +10 -2
  206. package/dist/utils/logger.js.map +1 -1
  207. package/node_modules/@synap/hub-rest-client/dist/index.cjs +414 -34
  208. package/node_modules/@synap/hub-rest-client/dist/index.d.cts +762 -22
  209. package/node_modules/@synap/hub-rest-client/dist/index.d.ts +762 -22
  210. package/node_modules/@synap/hub-rest-client/dist/index.js +414 -34
  211. package/node_modules/@synap/hub-rest-client/package.json +1 -1
  212. package/node_modules/@synap/hub-rest-client/src/client.ts +525 -37
  213. package/node_modules/@synap/hub-rest-client/src/index.ts +42 -0
  214. package/node_modules/@synap/hub-rest-client/src/setup.ts +57 -1
  215. package/node_modules/@synap/hub-rest-client/src/types.ts +697 -37
  216. package/package.json +11 -5
  217. package/skills/agent-os/SKILL.md +218 -0
  218. package/skills/manifest.json +5 -0
  219. package/skills/onboard/SKILL.md +193 -0
  220. package/skills/synap/SKILL.md +1284 -58
  221. package/skills/synap/_order.txt +37 -0
  222. package/skills/synap/_skill.yaml +24 -0
  223. package/skills/synap/authentication.md +10 -0
  224. package/skills/synap/automations.md +264 -0
  225. package/skills/synap/capabilities.md +107 -0
  226. package/skills/synap/capture.md +50 -142
  227. package/skills/synap/cli-operations.md +107 -0
  228. package/skills/synap/common-mistakes.md +13 -0
  229. package/skills/synap/content-os.md +83 -0
  230. package/skills/synap/creative-loop.md +43 -0
  231. package/skills/synap/crm.md +117 -0
  232. package/skills/synap/diagnostics.md +35 -0
  233. package/skills/synap/digesting-a-channel.md +63 -0
  234. package/skills/synap/document-embeds.md +123 -0
  235. package/skills/synap/escalation-ladder.md +71 -0
  236. package/skills/synap/focus-sessions.md +47 -0
  237. package/skills/synap/governance-rules.md +64 -0
  238. package/skills/synap/governance.md +6 -6
  239. package/skills/synap/graph-gardening.md +21 -0
  240. package/skills/synap/inline-patterns.md +38 -0
  241. package/skills/synap/lenses.md +38 -0
  242. package/skills/synap/linking-principle.md +39 -0
  243. package/skills/synap/linking.md +1 -0
  244. package/skills/synap/mental-model.md +45 -0
  245. package/skills/synap/more.md +7 -0
  246. package/skills/synap/multi-entity-capture.md +12 -0
  247. package/skills/synap/next-action.md +37 -0
  248. package/skills/synap/north-star.md +17 -0
  249. package/skills/synap/operating-mode-rules.md +45 -0
  250. package/skills/synap/operating-mode.md +9 -0
  251. package/skills/synap/quick-reference.md +67 -0
  252. package/skills/synap/reading.md +43 -0
  253. package/skills/synap/recap.md +21 -0
  254. package/skills/synap/reflexes.md +46 -0
  255. package/skills/synap/response-style.md +21 -0
  256. package/skills/synap/scope.md +13 -0
  257. package/skills/synap/showing.md +17 -0
  258. package/skills/synap/user-model.md +25 -0
  259. package/skills/synap/viewframe-cells.md +290 -0
  260. package/skills/synap/work-flow.md +113 -0
  261. package/skills/synap/worked-examples.md +74 -0
  262. package/skills/synap/workspace-design.md +45 -0
  263. package/skills/synap/workspace-edges.md +49 -0
  264. package/skills/synap/writes.md +213 -0
  265. package/skills/synap-app/SKILL.md +319 -0
  266. package/skills/synap-app/_order.txt +5 -0
  267. package/skills/synap-app/_skill.yaml +20 -0
  268. package/skills/synap-app/creating-the-base-app.md +64 -0
  269. package/skills/synap-app/governance.md +42 -0
  270. package/skills/synap-app/install-commands.md +55 -0
  271. package/skills/synap-app/overview.md +50 -0
  272. package/skills/synap-app/using-the-sdk.md +73 -0
  273. package/skills/synap-market/SKILL.md +335 -0
  274. package/skills/synap-market/_order.txt +5 -0
  275. package/skills/synap-market/_skill.yaml +24 -0
  276. package/skills/synap-market/author-and-publish.md +75 -0
  277. package/skills/synap-market/discover-and-fetch.md +59 -0
  278. package/skills/synap-market/governance-and-catalog.md +56 -0
  279. package/skills/synap-market/install.md +55 -0
  280. package/skills/synap-market/overview.md +51 -0
  281. package/skills/synap-schema/SKILL.md +97 -6
  282. package/skills/synap-schema/_order.txt +13 -0
  283. package/skills/synap-schema/_skill.yaml +22 -0
  284. package/skills/synap-schema/before-you-touch.md +14 -0
  285. package/skills/synap-schema/common-mistakes.md +9 -0
  286. package/skills/synap-schema/creating-profiles.md +17 -0
  287. package/skills/synap-schema/discover-profiles.md +24 -0
  288. package/skills/synap-schema/entity-scope.md +8 -0
  289. package/skills/synap-schema/extend-vs-create.md +31 -0
  290. package/skills/synap-schema/more.md +6 -0
  291. package/skills/synap-schema/overlay-properties.md +22 -0
  292. package/skills/synap-schema/profiles.md +3 -0
  293. package/skills/synap-schema/property-defs.md +29 -0
  294. package/skills/synap-schema/read-before-write.md +50 -0
  295. package/skills/synap-schema/relations.md +18 -0
  296. package/skills/synap-schema/worked-example.md +30 -0
  297. package/skills/synap-ui/SKILL.md +26 -2
  298. package/skills/synap-ui/_order.txt +13 -0
  299. package/skills/synap-ui/_skill.yaml +23 -0
  300. package/skills/synap-ui/ai-companion.md +27 -0
  301. package/skills/synap-ui/arranging-bento.md +8 -0
  302. package/skills/synap-ui/before-you-build.md +20 -0
  303. package/skills/synap-ui/bento-layouts.md +35 -0
  304. package/skills/synap-ui/common-mistakes.md +10 -0
  305. package/skills/synap-ui/creating-views.md +26 -0
  306. package/skills/synap-ui/four-builds.md +24 -0
  307. package/skills/synap-ui/more.md +7 -0
  308. package/skills/synap-ui/proposing-vs-extending.md +11 -0
  309. package/skills/synap-ui/view-list.md +24 -0
  310. package/skills/synap-ui/views.md +3 -0
  311. package/skills/synap-ui/worked-example.md +18 -0
  312. package/skills/synap-ui/workspaces.md +47 -0
  313. package/templates/automations/bookmark-enrichment.automation.json +44 -0
  314. package/templates/automations/mail-feed.automation.json +86 -0
  315. package/templates/automations/url-bookmark-capture.automation.json +70 -0
  316. package/templates/skills/README.md +21 -0
  317. package/templates/skills/authoring-automations/SKILL.md +95 -0
  318. package/templates/skills/authoring-automations/reference/node-matrix.md +49 -0
  319. package/templates/skills/authoring-capabilities/SKILL.md +93 -0
  320. package/templates/skills/authoring-capabilities/reference/template-anatomy.md +70 -0
  321. package/templates/skills/authoring-playbooks/SKILL.md +102 -0
  322. package/templates/skills/authoring-playbooks/reference/stages-contract.md +35 -0
  323. package/templates/skills/authoring-playbooks/reference/worked-example.md +64 -0
  324. package/templates/skills/bookmark-enrichment/SKILL.md +40 -0
  325. package/templates/skills/coordinating-agents/SKILL.md +32 -0
  326. package/templates/skills/coordinating-branches/SKILL.md +27 -0
  327. package/templates/skills/mapping-the-server/SKILL.md +54 -0
  328. package/templates/skills/reading-client-progress/SKILL.md +65 -0
  329. package/templates/skills/routing-to-channels/SKILL.md +54 -0
  330. package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
  331. package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
  332. package/templates/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
  333. package/templates/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
  334. package/templates/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
  335. package/templates/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
  336. package/templates/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
  337. package/templates/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
  338. package/templates/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
  339. package/templates/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
  340. package/templates/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
  341. package/templates/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
  342. package/templates/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
  343. package/templates/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
  344. package/templates/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
  345. package/templates/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
  346. package/templates/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
  347. package/templates/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
  348. package/templates/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
  349. package/templates/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
  350. package/templates/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
  351. package/templates/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
  352. package/templates/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
  353. package/templates/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
  354. package/templates/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
  355. package/templates/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
  356. package/templates/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
  357. package/templates/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
  358. package/dist/commands/connectors.d.ts +0 -31
  359. package/dist/commands/connectors.js +0 -276
  360. package/dist/commands/connectors.js.map +0 -1
  361. package/dist/commands/finish.d.ts +0 -25
  362. package/dist/commands/finish.js +0 -274
  363. package/dist/commands/finish.js.map +0 -1
  364. package/dist/commands/openclaw.d.ts +0 -40
  365. package/dist/commands/openclaw.js +0 -1148
  366. package/dist/commands/openclaw.js.map +0 -1
  367. package/dist/commands/security-audit.d.ts +0 -12
  368. package/dist/commands/security-audit.js +0 -100
  369. package/dist/commands/security-audit.js.map +0 -1
  370. package/dist/lib/hardening.d.ts +0 -18
  371. package/dist/lib/hardening.js +0 -214
  372. package/dist/lib/hardening.js.map +0 -1
@@ -1,31 +0,0 @@
1
- /**
2
- * synap connectors — Manage pod connector integrations (Nango-powered)
3
- *
4
- * Subcommands: list, sync, disconnect, schema
5
- * Top-level alias: synap connect [service]
6
- */
7
- export interface ConnectOpts {
8
- workspace?: string;
9
- podUrl?: string;
10
- apiKey?: string;
11
- }
12
- export declare function connectorsConnect(service: string | undefined, opts: ConnectOpts): Promise<void>;
13
- export interface ListOpts {
14
- json?: boolean;
15
- workspace?: string;
16
- }
17
- export declare function connectorsList(opts: ListOpts): Promise<void>;
18
- export interface SyncOpts {
19
- workspace?: string;
20
- }
21
- export declare function connectorsSync(provider: string, opts: SyncOpts): Promise<void>;
22
- export interface DisconnectOpts {
23
- workspace?: string;
24
- force?: boolean;
25
- }
26
- export declare function connectorsDisconnect(provider: string, opts: DisconnectOpts): Promise<void>;
27
- export interface SchemaOpts {
28
- writeContext?: string | boolean;
29
- json?: boolean;
30
- }
31
- export declare function connectorsSchema(opts: SchemaOpts): Promise<void>;
@@ -1,276 +0,0 @@
1
- /**
2
- * synap connectors — Manage pod connector integrations (Nango-powered)
3
- *
4
- * Subcommands: list, sync, disconnect, schema
5
- * Top-level alias: synap connect [service]
6
- */
7
- import chalk from "chalk";
8
- import ora from "ora";
9
- import prompts from "prompts";
10
- import { exec } from "child_process";
11
- import { mkdirSync, writeFileSync, existsSync } from "fs";
12
- import { resolveHubConfig, hubGet, hubPost } from "../lib/hub-client.js";
13
- import { log } from "../utils/logger.js";
14
- // ── Helpers ───────────────────────────────────────────────────────────────────
15
- function openBrowser(url) {
16
- const platform = process.platform;
17
- let cmd;
18
- if (platform === "darwin") {
19
- cmd = `open "${url}"`;
20
- }
21
- else if (platform === "win32") {
22
- cmd = `start "" "${url}"`;
23
- }
24
- else {
25
- cmd = `xdg-open "${url}"`;
26
- }
27
- try {
28
- exec(cmd);
29
- }
30
- catch {
31
- // silently ignore — caller already prints the URL
32
- }
33
- }
34
- async function fetchProviders(cfg, workspaceId) {
35
- const params = {};
36
- if (workspaceId)
37
- params.workspaceId = workspaceId;
38
- const res = await hubGet("/connectors/providers", params, cfg);
39
- const r = res;
40
- return (r.providers ?? []);
41
- }
42
- export async function connectorsConnect(service, opts) {
43
- let cfg;
44
- try {
45
- cfg = await resolveHubConfig({ podUrl: opts.podUrl, apiKey: opts.apiKey });
46
- }
47
- catch (err) {
48
- log.error(err.message);
49
- process.exit(1);
50
- }
51
- const workspaceId = opts.workspace ?? cfg.workspaceId;
52
- const spinner = ora({ text: "Starting OAuth session…", color: "cyan" }).start();
53
- let redirectUrl;
54
- try {
55
- const body = {};
56
- if (service)
57
- body.providerId = service;
58
- if (workspaceId)
59
- body.workspaceId = workspaceId;
60
- const res = await hubPost("/connectors/session", body, cfg);
61
- const r = res;
62
- redirectUrl = String(r.redirectUrl);
63
- spinner.stop();
64
- }
65
- catch (err) {
66
- spinner.fail(chalk.red("Failed to start connector session"));
67
- log.error(err.message);
68
- process.exit(1);
69
- }
70
- log.heading(`Connect to ${service ?? "external services"}`);
71
- console.log();
72
- console.log(` Opening OAuth flow in your browser…`);
73
- console.log(` ${chalk.dim("If it didn't open, paste this URL in your browser:")}`);
74
- console.log();
75
- console.log(` ${chalk.underline(chalk.cyan(redirectUrl))}`);
76
- console.log();
77
- openBrowser(redirectUrl);
78
- log.dim(`Once connected, records will import automatically. Run \`synap connectors list\` to check status.`);
79
- }
80
- export async function connectorsList(opts) {
81
- let cfg;
82
- try {
83
- cfg = await resolveHubConfig();
84
- }
85
- catch (err) {
86
- log.error(err.message);
87
- process.exit(1);
88
- }
89
- const workspaceId = opts.workspace ?? cfg.workspaceId;
90
- const spinner = opts.json ? null : ora({ text: "Fetching connectors…", color: "cyan" }).start();
91
- let providers;
92
- try {
93
- providers = await fetchProviders(cfg, workspaceId);
94
- spinner?.stop();
95
- }
96
- catch (err) {
97
- spinner?.fail(chalk.red("Failed to fetch connectors"));
98
- log.error(err.message);
99
- process.exit(1);
100
- }
101
- if (opts.json) {
102
- console.log(JSON.stringify({ providers }, null, 2));
103
- return;
104
- }
105
- if (providers.length === 0) {
106
- log.warn("No connectors configured on this pod.");
107
- log.dim(`Set up Nango at ${cfg.podUrl}/admin/settings.`);
108
- return;
109
- }
110
- const connected = providers.filter((p) => p.connected);
111
- log.heading(`Connected Services (${connected.length} connected / ${providers.length} total)`);
112
- console.log();
113
- for (const p of providers) {
114
- const dot = p.connected ? chalk.green("●") : chalk.dim("○");
115
- const name = p.connected ? chalk.bold(p.displayName) : chalk.dim(p.displayName);
116
- const id = chalk.dim(`(${p.provider})`);
117
- const connLine = p.connected && p.connectionId ? ` ${chalk.dim(p.connectionId)}` : "";
118
- console.log(` ${dot} ${name} ${id}${connLine}`);
119
- }
120
- console.log();
121
- }
122
- export async function connectorsSync(provider, opts) {
123
- let cfg;
124
- try {
125
- cfg = await resolveHubConfig();
126
- }
127
- catch (err) {
128
- log.error(err.message);
129
- process.exit(1);
130
- }
131
- const workspaceId = opts.workspace ?? cfg.workspaceId;
132
- // Find the connectionId
133
- let connectionId;
134
- try {
135
- const providers = await fetchProviders(cfg, workspaceId);
136
- const match = providers.find((p) => p.provider === provider || p.id === provider || p.displayName.toLowerCase() === provider.toLowerCase());
137
- if (!match || !match.connected) {
138
- log.error(`Provider ${chalk.bold(provider)} is not connected. Run: ${chalk.cyan(`synap connect ${provider}`)}`);
139
- process.exit(1);
140
- }
141
- connectionId = match.connectionId;
142
- }
143
- catch (err) {
144
- log.error(err.message);
145
- process.exit(1);
146
- }
147
- const spinner = ora({ text: "Triggering sync…", color: "cyan" }).start();
148
- try {
149
- await hubPost("/connectors/actions", { connectionId, providerConfigKey: provider, actionName: "sync", input: {} }, cfg);
150
- spinner.succeed(chalk.green(`Sync triggered for ${chalk.bold(provider)}. Records will import in the background.`));
151
- }
152
- catch (err) {
153
- const msg = err.message;
154
- // Non-200 may mean manual sync not configured — handle gracefully
155
- spinner.warn(chalk.yellow(`Sync triggered (manual sync may not be configured for this provider — automatic sync runs on the Nango schedule)`));
156
- log.dim(msg);
157
- }
158
- }
159
- export async function connectorsDisconnect(provider, opts) {
160
- let cfg;
161
- try {
162
- cfg = await resolveHubConfig();
163
- }
164
- catch (err) {
165
- log.error(err.message);
166
- process.exit(1);
167
- }
168
- const workspaceId = opts.workspace ?? cfg.workspaceId;
169
- // Find the connectionId
170
- let connectionId;
171
- try {
172
- const providers = await fetchProviders(cfg, workspaceId);
173
- const match = providers.find((p) => p.provider === provider || p.id === provider || p.displayName.toLowerCase() === provider.toLowerCase());
174
- if (!match || !match.connected) {
175
- log.error(`Provider ${chalk.bold(provider)} is not connected.`);
176
- process.exit(1);
177
- }
178
- connectionId = match.connectionId;
179
- }
180
- catch (err) {
181
- log.error(err.message);
182
- process.exit(1);
183
- }
184
- if (!opts.force) {
185
- const response = await prompts({
186
- type: "confirm",
187
- name: "confirmed",
188
- message: `Disconnect ${provider}? This will stop syncing but won't delete imported entities.`,
189
- initial: false,
190
- });
191
- if (!response.confirmed) {
192
- log.dim("Cancelled.");
193
- return;
194
- }
195
- }
196
- const spinner = ora({ text: `Disconnecting ${provider}…`, color: "cyan" }).start();
197
- try {
198
- await hubPost("/connectors/disconnect", { connectionId, provider }, cfg);
199
- spinner.succeed(chalk.green(`Disconnected ${chalk.bold(provider)}. Your imported entities remain intact.`));
200
- }
201
- catch (err) {
202
- spinner.fail(chalk.red(`Failed to disconnect ${provider}`));
203
- log.error(err.message);
204
- process.exit(1);
205
- }
206
- }
207
- export async function connectorsSchema(opts) {
208
- let cfg;
209
- try {
210
- cfg = await resolveHubConfig();
211
- }
212
- catch (err) {
213
- log.error(err.message);
214
- process.exit(1);
215
- }
216
- const spinner = opts.json ? null : ora({ text: "Fetching connector schema…", color: "cyan" }).start();
217
- let schema;
218
- try {
219
- schema = await hubGet("/connectors/schema", {}, cfg);
220
- spinner?.stop();
221
- }
222
- catch (err) {
223
- spinner?.fail(chalk.red("Failed to fetch connector schema"));
224
- log.error(err.message);
225
- process.exit(1);
226
- }
227
- if (opts.json) {
228
- console.log(JSON.stringify(schema, null, 2));
229
- return;
230
- }
231
- const s = schema;
232
- const md = buildConnectorSchemaMarkdown(s, cfg.podUrl);
233
- if (opts.writeContext !== undefined && opts.writeContext !== false) {
234
- const outputPath = typeof opts.writeContext === "string" && opts.writeContext.length > 0
235
- ? opts.writeContext
236
- : ".claude/CONNECTOR_CONTEXT.md";
237
- const dir = outputPath.includes("/") ? outputPath.split("/").slice(0, -1).join("/") : ".";
238
- if (dir && dir !== "." && !existsSync(dir)) {
239
- mkdirSync(dir, { recursive: true });
240
- }
241
- writeFileSync(outputPath, md, "utf-8");
242
- log.success(`Context written to ${chalk.underline(outputPath)} — Claude Code will auto-load this in all sessions from this directory`);
243
- }
244
- else {
245
- console.log(md);
246
- }
247
- }
248
- function buildConnectorSchemaMarkdown(schema, podUrl) {
249
- const lines = [
250
- `# Synap Connector Reference`,
251
- ``,
252
- `> Fetched from pod: ${podUrl} — use this context to connect, manage, and query external service integrations.`,
253
- ``,
254
- `## Supported Providers`,
255
- ];
256
- const providers = (schema.providers ?? schema.supported ?? []);
257
- if (providers.length > 0) {
258
- for (const p of providers) {
259
- lines.push(``, `### ${p.displayName ?? p.provider ?? p.id}`);
260
- if (p.description)
261
- lines.push(``, String(p.description));
262
- if (p.actions) {
263
- lines.push(``, `**Available actions:**`);
264
- for (const action of p.actions) {
265
- lines.push(`- \`${action}\``);
266
- }
267
- }
268
- }
269
- }
270
- else {
271
- lines.push(``, `Providers are configured in Nango. Common integrations include:`, `- Google Workspace (gmail, google-calendar, google-drive)`, `- GitHub (github)`, `- Notion (notion)`, `- Linear (linear)`, `- Slack (slack)`, `- HubSpot (hubspot)`);
272
- }
273
- lines.push(``, `## CLI Commands`, ``, `\`\`\`bash`, `# Connect a service (opens OAuth flow in browser)`, `synap connect [service]`, `synap connect google`, `synap connect github`, ``, `# List all connectors and connection status`, `synap connectors list`, `synap connectors list --json`, ``, `# Trigger a manual sync for a connected provider`, `synap connectors sync <provider>`, ``, `# Disconnect a provider`, `synap connectors disconnect <provider>`, `synap connectors disconnect google --force`, ``, `# Fetch this schema`, `synap connectors schema`, `synap connectors schema --write-context # writes to .claude/CONNECTOR_CONTEXT.md`, `\`\`\``, ``, `## Hub REST Endpoints`, ``, `| Method | Path | Description |`, `|--------|------|-------------|`, `| GET | /api/hub/connectors/providers | List providers and connection status |`, `| POST | /api/hub/connectors/session | Start OAuth session, get redirectUrl |`, `| POST | /api/hub/connectors/disconnect | Disconnect a provider |`, `| GET | /api/hub/connectors/schema | This schema |`, `| POST | /api/hub/connectors/actions | Trigger a provider action (e.g. sync) |`, ``, `## AI Usage Flow`, ``, `1. Check connected services: \`synap connectors list\``, `2. Connect a new service: \`synap connect <provider>\` — opens OAuth in browser`, `3. Once connected, records import automatically on Nango's schedule`, `4. Trigger immediate import: \`synap connectors sync <provider>\``, `5. Query imported entities: \`synap ask "meeting notes from Google Calendar"\``);
274
- return lines.join("\n");
275
- }
276
- //# sourceMappingURL=connectors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/commands/connectors.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * synap finish
3
- *
4
- * Complete setup after OpenClaw has been provisioned. One-shot: after this
5
- * command, everything the user needs is ready — AI key, skill, IS, and public
6
- * dashboard URL.
7
- *
8
- * Steps:
9
- * 1. Verify pod connection (~/.synap/pod-config.json)
10
- * 2. Check pod health
11
- * 3. Check OpenClaw is running
12
- * 4. Security audit (local-install only)
13
- * 5. Install synap skill (via openclaw skills install)
14
- * 6. Seed workspace entities
15
- * 7. Configure AI provider — prompt if missing (via openclaw config set)
16
- * 8. Expose dashboard — offer if managed pod + OPENCLAW_DOMAIN unset
17
- * 9. Configure Synap IS as AI provider (optional)
18
- */
19
- interface FinishOpts {
20
- skipIs?: boolean;
21
- skipAiKey?: boolean;
22
- skipDomain?: boolean;
23
- }
24
- export declare function finish(opts?: FinishOpts): Promise<void>;
25
- export {};
@@ -1,274 +0,0 @@
1
- /**
2
- * synap finish
3
- *
4
- * Complete setup after OpenClaw has been provisioned. One-shot: after this
5
- * command, everything the user needs is ready — AI key, skill, IS, and public
6
- * dashboard URL.
7
- *
8
- * Steps:
9
- * 1. Verify pod connection (~/.synap/pod-config.json)
10
- * 2. Check pod health
11
- * 3. Check OpenClaw is running
12
- * 4. Security audit (local-install only)
13
- * 5. Install synap skill (via openclaw skills install)
14
- * 6. Seed workspace entities
15
- * 7. Configure AI provider — prompt if missing (via openclaw config set)
16
- * 8. Expose dashboard — offer if managed pod + OPENCLAW_DOMAIN unset
17
- * 9. Configure Synap IS as AI provider (optional)
18
- */
19
- import chalk from "chalk";
20
- import prompts from "prompts";
21
- import fs from "node:fs";
22
- import { execSync } from "child_process";
23
- import { log, banner } from "../utils/logger.js";
24
- import { detectOpenClaw } from "../lib/openclaw.js";
25
- import { checkPodHealth, getLocalPodConfig, findSynapDeployDir } from "../lib/pod.js";
26
- import { securityStep, skillStep, seedStep, isStep } from "./init.js";
27
- import { openclawConfigure, openclawSetupDomain, } from "./openclaw.js";
28
- export async function finish(opts = {}) {
29
- banner();
30
- // ── Step 1: Verify pod config ──────────────────────────────────────────────
31
- const localConfig = getLocalPodConfig();
32
- if (!localConfig) {
33
- log.error("Not connected to a pod.");
34
- log.dim("Run: synap init");
35
- process.exit(1);
36
- }
37
- const { podUrl, hubApiKey } = localConfig;
38
- // ── Step 2: Check pod health ───────────────────────────────────────────────
39
- log.heading("Synap Pod");
40
- const pod = await checkPodHealth(podUrl);
41
- log.info(`URL: ${podUrl}`);
42
- if (!pod.healthy) {
43
- log.error("Pod is unreachable.");
44
- log.dim("Check your network connection and pod status.");
45
- log.dim(" synap status");
46
- process.exit(1);
47
- }
48
- log.success(`Health: ${chalk.green("healthy")}${pod.version ? ` (v${pod.version})` : ""}`);
49
- // ── Step 3: Check OpenClaw ─────────────────────────────────────────────────
50
- log.heading("OpenClaw");
51
- const oc = detectOpenClaw();
52
- if (!oc.found) {
53
- log.warn("OpenClaw is not running yet.");
54
- log.blank();
55
- log.dim("If you just ran `synap init`, the container may still be initializing (1-2 min).");
56
- log.dim("Check container status: synap status");
57
- log.dim("Check container logs: docker logs openclaw --tail 30");
58
- log.blank();
59
- log.info("Run `synap finish` again once it's up.");
60
- return;
61
- }
62
- if (oc.runtime === "docker") {
63
- log.success(`Running in Docker container: ${chalk.cyan(oc.containerName ?? "openclaw")}`);
64
- }
65
- else {
66
- log.success(`Local install — version: ${oc.version ?? "unknown"}`);
67
- }
68
- log.info(`Gateway: ${oc.gatewayRunning ? chalk.green("running") : chalk.yellow("not responding")} (port ${oc.gatewayPort ?? 18789})`);
69
- if (!oc.gatewayRunning) {
70
- log.warn("Gateway not responding on port 18789 — OpenClaw may still be starting.");
71
- log.dim("Check: docker logs openclaw --tail 20");
72
- log.dim("Retry in a minute: synap finish");
73
- return;
74
- }
75
- // ── Step 4: Security audit (local only — can't inspect Docker config from host) ──
76
- if (oc.runtime !== "docker") {
77
- await securityStep(oc.version);
78
- }
79
- // ── Step 5: Install skill ──────────────────────────────────────────────────
80
- await skillStep(true, oc);
81
- // ── Step 6: Seed workspace ─────────────────────────────────────────────────
82
- await seedStep(podUrl, hubApiKey, oc);
83
- // ── Step 7: AI provider key ────────────────────────────────────────────────
84
- if (!opts.skipAiKey) {
85
- await aiKeyStep(oc);
86
- }
87
- // ── Step 8: Expose dashboard (managed pods) ────────────────────────────────
88
- if (!opts.skipDomain) {
89
- await domainStep(oc, podUrl);
90
- }
91
- // ── Step 9: Configure IS ───────────────────────────────────────────────────
92
- if (!opts.skipIs) {
93
- await isStep(podUrl, hubApiKey, true);
94
- }
95
- // ── Summary ────────────────────────────────────────────────────────────────
96
- printSummary(oc);
97
- }
98
- // ─── AI key step ─────────────────────────────────────────────────────────────
99
- async function aiKeyStep(oc) {
100
- log.heading("AI Provider");
101
- // Make sure the openclaw CLI inside the container is actually callable.
102
- // If not, skip the step entirely — the user can run `synap openclaw configure` later.
103
- if (oc.runtime === "docker") {
104
- const containerName = oc.containerName ?? "openclaw";
105
- try {
106
- execSync(`docker exec ${containerName} openclaw --version`, {
107
- stdio: "pipe",
108
- timeout: 8000,
109
- });
110
- }
111
- catch {
112
- log.warn("OpenClaw CLI not responding inside the container yet.");
113
- log.dim("Skipping AI key setup — run `synap openclaw configure` once it's fully up.");
114
- return;
115
- }
116
- }
117
- // Check if an AI key is already configured via OpenClaw's config
118
- const hasKey = openclawHasAiKey(oc);
119
- if (hasKey) {
120
- log.success("AI provider already configured");
121
- return;
122
- }
123
- log.info("OpenClaw needs an AI provider to process requests.");
124
- log.blank();
125
- const { setup } = await prompts({
126
- type: "select",
127
- name: "setup",
128
- message: "Set up AI provider now?",
129
- choices: [
130
- { title: "Yes — scripted (pick provider + paste key)", value: "scripted" },
131
- { title: "Yes — run OpenClaw's own wizard (interactive)", value: "wizard" },
132
- { title: "Skip for now", value: "skip" },
133
- ],
134
- });
135
- if (setup === "skip" || !setup) {
136
- log.dim("Set it later with: synap openclaw configure");
137
- return;
138
- }
139
- if (setup === "wizard") {
140
- await openclawConfigure({ interactive: true });
141
- return;
142
- }
143
- await openclawConfigure({});
144
- }
145
- function openclawHasAiKey(oc) {
146
- if (!oc.found || oc.runtime !== "docker")
147
- return false;
148
- const containerName = oc.containerName ?? "openclaw";
149
- for (const key of ["env.ANTHROPIC_API_KEY", "env.OPENAI_API_KEY", "env.GEMINI_API_KEY"]) {
150
- try {
151
- const out = execSync(`docker exec ${containerName} openclaw config get ${key} 2>/dev/null`, { encoding: "utf-8", timeout: 5000 }).trim();
152
- if (out && out !== "undefined" && out !== "null")
153
- return true;
154
- }
155
- catch {
156
- // continue
157
- }
158
- }
159
- return false;
160
- }
161
- // ─── Domain step ─────────────────────────────────────────────────────────────
162
- async function domainStep(oc, podUrl) {
163
- // Only auto-offer for Docker + managed pods + domain not already set
164
- if (oc.runtime !== "docker")
165
- return;
166
- const deployDir = findSynapDeployDir();
167
- if (!deployDir)
168
- return;
169
- const envPath = `${deployDir}/.env`;
170
- let envContent = "";
171
- try {
172
- envContent = fs.existsSync(envPath) ? fs.readFileSync(envPath, "utf-8") : "";
173
- }
174
- catch {
175
- return;
176
- }
177
- const alreadySet = /^OPENCLAW_DOMAIN=(?!disabled\.invalid).+/m.test(envContent);
178
- if (alreadySet) {
179
- const match = envContent.match(/^OPENCLAW_DOMAIN=(.+)$/m);
180
- log.heading("Public Dashboard");
181
- log.success(`Already exposed: ${chalk.cyan(`https://${match?.[1]?.trim()}`)}`);
182
- return;
183
- }
184
- // Detect pod type from the pod URL
185
- const isManaged = podUrl.includes(".synap.live");
186
- if (!isManaged) {
187
- // Self-hosted pods can still expose — but we don't auto-prompt because
188
- // they need to set up DNS themselves. Show a hint instead.
189
- log.heading("Public Dashboard");
190
- log.info("Self-hosted pod — expose the dashboard manually:");
191
- log.dim(" synap openclaw setup-domain");
192
- return;
193
- }
194
- log.heading("Public Dashboard");
195
- log.info("Your pod is managed — we can expose the OpenClaw dashboard at a public URL.");
196
- log.dim("Auth: your existing Synap session (no extra password)");
197
- log.blank();
198
- const { doExpose } = await prompts({
199
- type: "confirm",
200
- name: "doExpose",
201
- message: "Expose the dashboard now?",
202
- initial: true,
203
- });
204
- if (!doExpose) {
205
- log.dim("Later: synap openclaw setup-domain");
206
- return;
207
- }
208
- await openclawSetupDomain();
209
- }
210
- // ─── Summary ─────────────────────────────────────────────────────────────────
211
- function printSummary(oc) {
212
- log.blank();
213
- console.log(chalk.green("═══════════════════════════════════════════"));
214
- console.log(chalk.green.bold(" Synap + OpenClaw Ready"));
215
- console.log(chalk.green("═══════════════════════════════════════════"));
216
- log.blank();
217
- // Read the public URL if exposed
218
- const deployDir = findSynapDeployDir();
219
- let publicUrl = null;
220
- if (deployDir) {
221
- try {
222
- const envContent = fs.readFileSync(`${deployDir}/.env`, "utf-8");
223
- const match = envContent.match(/^OPENCLAW_DOMAIN=(.+)$/m);
224
- const domain = match?.[1]?.trim();
225
- if (domain && domain !== "disabled.invalid") {
226
- publicUrl = `https://${domain}`;
227
- }
228
- }
229
- catch {
230
- // ignore
231
- }
232
- }
233
- const localConfig = getLocalPodConfig();
234
- log.info(`Pod: ${localConfig?.podUrl ?? "unknown"}`);
235
- if (publicUrl) {
236
- log.info(`Dashboard: ${chalk.cyan(publicUrl)}`);
237
- }
238
- else {
239
- log.info(`Gateway: ${chalk.cyan(`localhost:${oc.gatewayPort ?? 18789}`)}`);
240
- }
241
- log.blank();
242
- // ── Connections ──────────────────────────────────────────────────────────
243
- log.heading("Connections");
244
- log.info("Already wired:");
245
- log.dim(" ✓ Synap pod ↔ OpenClaw (Hub API key, workspace, agent user)");
246
- log.dim(" ✓ synap skill installed");
247
- log.blank();
248
- log.info("Needs your input (optional):");
249
- log.dim(" ○ Channels (Telegram, Discord, WhatsApp, Slack, Signal...)");
250
- log.dim(" → synap openclaw open channels");
251
- log.dim(" ○ Extra skills from ClawHub");
252
- log.dim(" → synap openclaw open skills");
253
- log.blank();
254
- log.info("Connect an AI client:");
255
- log.dim(" Claude Desktop synap openclaw connect --client claude");
256
- log.dim(" Cursor synap openclaw connect --client cursor");
257
- log.dim(" Windsurf synap openclaw connect --client windsurf");
258
- log.blank();
259
- log.info("Useful commands:");
260
- log.dim(" synap openclaw — status overview");
261
- log.dim(" synap openclaw connections — AI providers, skills, channels, MCP clients");
262
- log.dim(" synap openclaw dashboard — open the web UI");
263
- log.dim(" synap openclaw open <tab> — open dashboard at channels/skills/config/...");
264
- log.dim(" synap openclaw token — print the gateway token");
265
- log.dim(" synap openclaw configure — change AI provider");
266
- log.dim(" synap openclaw doctor — diagnostics");
267
- log.dim(" synap status — full health check");
268
- log.blank();
269
- log.info("Try it — connect a client and ask your agent:");
270
- log.dim(' "remember that Marc prefers email"');
271
- log.dim(' "what do I know about Marc?"');
272
- log.blank();
273
- }
274
- //# sourceMappingURL=finish.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/commands/finish.ts"],"names":[],"mappings":"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"}