@synap-core/cli 1.7.0 → 1.10.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 (371) 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.d.ts +47 -0
  5. package/dist/commands/agent-run.js +301 -0
  6. package/dist/commands/agent-run.js.map +1 -0
  7. package/dist/commands/agents.js +85 -46
  8. package/dist/commands/agents.js.map +1 -1
  9. package/dist/commands/artifact.d.ts +26 -0
  10. package/dist/commands/artifact.js +76 -0
  11. package/dist/commands/artifact.js.map +1 -0
  12. package/dist/commands/automation.d.ts +47 -0
  13. package/dist/commands/automation.js +601 -0
  14. package/dist/commands/automation.js.map +1 -0
  15. package/dist/commands/bridge-setup.d.ts +66 -0
  16. package/dist/commands/bridge-setup.js +1112 -0
  17. package/dist/commands/bridge-setup.js.map +1 -0
  18. package/dist/commands/cap-connections.d.ts +28 -0
  19. package/dist/commands/cap-connections.js +224 -0
  20. package/dist/commands/cap-connections.js.map +1 -0
  21. package/dist/commands/capability.d.ts +89 -0
  22. package/dist/commands/capability.js +1523 -0
  23. package/dist/commands/capability.js.map +1 -0
  24. package/dist/commands/cell.d.ts +55 -0
  25. package/dist/commands/cell.js +277 -0
  26. package/dist/commands/cell.js.map +1 -0
  27. package/dist/commands/centrality.d.ts +20 -0
  28. package/dist/commands/centrality.js +94 -0
  29. package/dist/commands/centrality.js.map +1 -0
  30. package/dist/commands/connect.d.ts +2 -0
  31. package/dist/commands/connect.js +25 -10
  32. package/dist/commands/connect.js.map +1 -1
  33. package/dist/commands/connections.js +0 -16
  34. package/dist/commands/connections.js.map +1 -1
  35. package/dist/commands/context.d.ts +22 -0
  36. package/dist/commands/context.js +149 -0
  37. package/dist/commands/context.js.map +1 -0
  38. package/dist/commands/data-extra.d.ts +14 -0
  39. package/dist/commands/data-extra.js +185 -0
  40. package/dist/commands/data-extra.js.map +1 -0
  41. package/dist/commands/data.d.ts +14 -10
  42. package/dist/commands/data.js +353 -192
  43. package/dist/commands/data.js.map +1 -1
  44. package/dist/commands/diagnose.d.ts +20 -0
  45. package/dist/commands/diagnose.js +143 -0
  46. package/dist/commands/diagnose.js.map +1 -0
  47. package/dist/commands/digest.d.ts +17 -0
  48. package/dist/commands/digest.js +121 -0
  49. package/dist/commands/digest.js.map +1 -0
  50. package/dist/commands/discover.d.ts +2 -0
  51. package/dist/commands/discover.js +25 -8
  52. package/dist/commands/discover.js.map +1 -1
  53. package/dist/commands/doc.d.ts +39 -0
  54. package/dist/commands/doc.js +130 -0
  55. package/dist/commands/doc.js.map +1 -0
  56. package/dist/commands/events.d.ts +26 -0
  57. package/dist/commands/events.js +69 -0
  58. package/dist/commands/events.js.map +1 -0
  59. package/dist/commands/explain.d.ts +21 -0
  60. package/dist/commands/explain.js +251 -0
  61. package/dist/commands/explain.js.map +1 -0
  62. package/dist/commands/facet.d.ts +29 -0
  63. package/dist/commands/facet.js +113 -0
  64. package/dist/commands/facet.js.map +1 -0
  65. package/dist/commands/graph.d.ts +18 -0
  66. package/dist/commands/graph.js +74 -0
  67. package/dist/commands/graph.js.map +1 -0
  68. package/dist/commands/home.d.ts +12 -0
  69. package/dist/commands/home.js +54 -0
  70. package/dist/commands/home.js.map +1 -0
  71. package/dist/commands/import.d.ts +38 -0
  72. package/dist/commands/import.js +440 -0
  73. package/dist/commands/import.js.map +1 -0
  74. package/dist/commands/init.d.ts +0 -2
  75. package/dist/commands/init.js +97 -118
  76. package/dist/commands/init.js.map +1 -1
  77. package/dist/commands/keys.d.ts +9 -0
  78. package/dist/commands/keys.js +78 -0
  79. package/dist/commands/keys.js.map +1 -0
  80. package/dist/commands/knowledge.d.ts +34 -18
  81. package/dist/commands/knowledge.js +355 -57
  82. package/dist/commands/knowledge.js.map +1 -1
  83. package/dist/commands/launch.d.ts +50 -0
  84. package/dist/commands/launch.js +790 -0
  85. package/dist/commands/launch.js.map +1 -0
  86. package/dist/commands/lens.d.ts +45 -0
  87. package/dist/commands/lens.js +386 -0
  88. package/dist/commands/lens.js.map +1 -0
  89. package/dist/commands/market.d.ts +209 -0
  90. package/dist/commands/market.js +1368 -0
  91. package/dist/commands/market.js.map +1 -0
  92. package/dist/commands/mcp.d.ts +42 -0
  93. package/dist/commands/mcp.js +184 -0
  94. package/dist/commands/mcp.js.map +1 -0
  95. package/dist/commands/observe.d.ts +9 -0
  96. package/dist/commands/observe.js +93 -0
  97. package/dist/commands/observe.js.map +1 -0
  98. package/dist/commands/open.d.ts +32 -0
  99. package/dist/commands/open.js +85 -0
  100. package/dist/commands/open.js.map +1 -0
  101. package/dist/commands/pod.d.ts +100 -0
  102. package/dist/commands/pod.js +359 -0
  103. package/dist/commands/pod.js.map +1 -0
  104. package/dist/commands/pods.d.ts +6 -0
  105. package/dist/commands/pods.js +160 -50
  106. package/dist/commands/pods.js.map +1 -1
  107. package/dist/commands/proposals-actions.d.ts +7 -0
  108. package/dist/commands/proposals-actions.js +77 -0
  109. package/dist/commands/proposals-actions.js.map +1 -0
  110. package/dist/commands/providers.d.ts +38 -0
  111. package/dist/commands/providers.js +170 -0
  112. package/dist/commands/providers.js.map +1 -0
  113. package/dist/commands/purge.d.ts +23 -0
  114. package/dist/commands/purge.js +148 -0
  115. package/dist/commands/purge.js.map +1 -0
  116. package/dist/commands/raycast.d.ts +15 -0
  117. package/dist/commands/raycast.js +153 -0
  118. package/dist/commands/raycast.js.map +1 -0
  119. package/dist/commands/sessions.d.ts +31 -0
  120. package/dist/commands/sessions.js +248 -0
  121. package/dist/commands/sessions.js.map +1 -0
  122. package/dist/commands/skill-manage.d.ts +21 -0
  123. package/dist/commands/skill-manage.js +195 -0
  124. package/dist/commands/skill-manage.js.map +1 -0
  125. package/dist/commands/skills-commands.d.ts +26 -0
  126. package/dist/commands/skills-commands.js +187 -0
  127. package/dist/commands/skills-commands.js.map +1 -0
  128. package/dist/commands/skills.d.ts +26 -0
  129. package/dist/commands/skills.js +196 -0
  130. package/dist/commands/skills.js.map +1 -0
  131. package/dist/commands/status.d.ts +3 -1
  132. package/dist/commands/status.js +231 -41
  133. package/dist/commands/status.js.map +1 -1
  134. package/dist/commands/statusline.d.ts +24 -0
  135. package/dist/commands/statusline.js +450 -0
  136. package/dist/commands/statusline.js.map +1 -0
  137. package/dist/commands/subscribe.d.ts +19 -0
  138. package/dist/commands/subscribe.js +91 -0
  139. package/dist/commands/subscribe.js.map +1 -0
  140. package/dist/commands/tools.d.ts +30 -0
  141. package/dist/commands/tools.js +315 -0
  142. package/dist/commands/tools.js.map +1 -0
  143. package/dist/commands/versions.d.ts +27 -0
  144. package/dist/commands/versions.js +277 -0
  145. package/dist/commands/versions.js.map +1 -0
  146. package/dist/commands/view.d.ts +57 -0
  147. package/dist/commands/view.js +195 -0
  148. package/dist/commands/view.js.map +1 -0
  149. package/dist/commands/whoami.d.ts +21 -0
  150. package/dist/commands/whoami.js +129 -0
  151. package/dist/commands/whoami.js.map +1 -0
  152. package/dist/index.d.ts +3 -4
  153. package/dist/index.js +1524 -202
  154. package/dist/index.js.map +1 -1
  155. package/dist/lib/agent-templates.d.ts +25 -0
  156. package/dist/lib/agent-templates.js +148 -0
  157. package/dist/lib/agent-templates.js.map +1 -0
  158. package/dist/lib/agents-config.d.ts +4 -1
  159. package/dist/lib/agents-config.js +19 -2
  160. package/dist/lib/agents-config.js.map +1 -1
  161. package/dist/lib/approval-poll.d.ts +42 -0
  162. package/dist/lib/approval-poll.js +52 -0
  163. package/dist/lib/approval-poll.js.map +1 -0
  164. package/dist/lib/auth.d.ts +29 -6
  165. package/dist/lib/auth.js +105 -94
  166. package/dist/lib/auth.js.map +1 -1
  167. package/dist/lib/bundle-version.d.ts +11 -0
  168. package/dist/lib/bundle-version.js +33 -0
  169. package/dist/lib/bundle-version.js.map +1 -0
  170. package/dist/lib/capture-lane.d.ts +67 -0
  171. package/dist/lib/capture-lane.js +136 -0
  172. package/dist/lib/capture-lane.js.map +1 -0
  173. package/dist/lib/cp-packages.d.ts +121 -0
  174. package/dist/lib/cp-packages.js +218 -0
  175. package/dist/lib/cp-packages.js.map +1 -0
  176. package/dist/lib/describe-lens.d.ts +46 -0
  177. package/dist/lib/describe-lens.js +33 -0
  178. package/dist/lib/describe-lens.js.map +1 -0
  179. package/dist/lib/hub-client.d.ts +84 -1
  180. package/dist/lib/hub-client.js +502 -22
  181. package/dist/lib/hub-client.js.map +1 -1
  182. package/dist/lib/installed.d.ts +51 -0
  183. package/dist/lib/installed.js +70 -0
  184. package/dist/lib/installed.js.map +1 -0
  185. package/dist/lib/next-steps.d.ts +61 -0
  186. package/dist/lib/next-steps.js +146 -0
  187. package/dist/lib/next-steps.js.map +1 -0
  188. package/dist/lib/pod.d.ts +104 -19
  189. package/dist/lib/pod.js +245 -57
  190. package/dist/lib/pod.js.map +1 -1
  191. package/dist/lib/project-ref.d.ts +95 -0
  192. package/dist/lib/project-ref.js +144 -0
  193. package/dist/lib/project-ref.js.map +1 -0
  194. package/dist/lib/project.d.ts +35 -0
  195. package/dist/lib/project.js +39 -0
  196. package/dist/lib/project.js.map +1 -0
  197. package/dist/lib/session-lens.d.ts +33 -0
  198. package/dist/lib/session-lens.js +76 -0
  199. package/dist/lib/session-lens.js.map +1 -0
  200. package/dist/lib/skill-import.d.ts +40 -0
  201. package/dist/lib/skill-import.js +203 -0
  202. package/dist/lib/skill-import.js.map +1 -0
  203. package/dist/lib/skills-installer.d.ts +16 -5
  204. package/dist/lib/skills-installer.js +132 -18
  205. package/dist/lib/skills-installer.js.map +1 -1
  206. package/dist/lib/suite.d.ts +28 -0
  207. package/dist/lib/suite.js +29 -0
  208. package/dist/lib/suite.js.map +1 -0
  209. package/dist/lib/superwhisper-import.d.ts +40 -0
  210. package/dist/lib/superwhisper-import.js +389 -0
  211. package/dist/lib/superwhisper-import.js.map +1 -0
  212. package/dist/lib/targets.d.ts +66 -2
  213. package/dist/lib/targets.js +914 -132
  214. package/dist/lib/targets.js.map +1 -1
  215. package/dist/lib/unwrapList.d.ts +1 -0
  216. package/dist/lib/unwrapList.js +20 -0
  217. package/dist/lib/unwrapList.js.map +1 -0
  218. package/dist/utils/logger.d.ts +2 -0
  219. package/dist/utils/logger.js +10 -2
  220. package/dist/utils/logger.js.map +1 -1
  221. package/package.json +10 -4
  222. package/skills/agent-os/SKILL.md +212 -0
  223. package/skills/manifest.json +5 -0
  224. package/skills/onboard/SKILL.md +186 -0
  225. package/skills/synap/SKILL.md +1524 -104
  226. package/skills/synap/_order.txt +37 -0
  227. package/skills/synap/_skill.yaml +24 -0
  228. package/skills/synap/authentication.md +10 -0
  229. package/skills/synap/automations.md +264 -0
  230. package/skills/synap/capabilities.md +107 -0
  231. package/skills/synap/capture.md +10 -0
  232. package/skills/synap/cli-operations.md +107 -0
  233. package/skills/synap/common-mistakes.md +12 -0
  234. package/skills/synap/creative-loop.md +43 -0
  235. package/skills/synap/crm.md +117 -0
  236. package/skills/synap/diagnostics.md +35 -0
  237. package/skills/synap/digesting-a-channel.md +38 -0
  238. package/skills/synap/document-embeds.md +123 -0
  239. package/skills/synap/escalation-ladder.md +71 -0
  240. package/skills/synap/focus-sessions.md +47 -0
  241. package/skills/synap/governance-rules.md +64 -0
  242. package/skills/synap/governance.md +6 -6
  243. package/skills/synap/graph-gardening.md +21 -0
  244. package/skills/synap/inline-patterns.md +38 -0
  245. package/skills/synap/lenses.md +38 -0
  246. package/skills/synap/linking-principle.md +39 -0
  247. package/skills/synap/linking.md +1 -0
  248. package/skills/synap/mental-model.md +45 -0
  249. package/skills/synap/more.md +7 -0
  250. package/skills/synap/multi-entity-capture.md +10 -0
  251. package/skills/synap/next-action.md +37 -0
  252. package/skills/synap/north-star.md +17 -0
  253. package/skills/synap/operating-mode-rules.md +45 -0
  254. package/skills/synap/operating-mode.md +9 -0
  255. package/skills/synap/quick-reference.md +67 -0
  256. package/skills/synap/reading.md +43 -0
  257. package/skills/synap/recap.md +21 -0
  258. package/skills/synap/reflexes.md +46 -0
  259. package/skills/synap/response-style.md +21 -0
  260. package/skills/synap/scope.md +13 -0
  261. package/skills/synap/showing.md +17 -0
  262. package/skills/synap/user-model.md +25 -0
  263. package/skills/synap/viewframe-cells.md +290 -0
  264. package/skills/synap/work-flow.md +113 -0
  265. package/skills/synap/worked-examples.md +53 -0
  266. package/skills/synap/workspace-design.md +45 -0
  267. package/skills/synap/workspace-edges.md +49 -0
  268. package/skills/synap/writes.md +156 -0
  269. package/skills/synap-schema/SKILL.md +97 -6
  270. package/skills/synap-schema/_order.txt +13 -0
  271. package/skills/synap-schema/_skill.yaml +22 -0
  272. package/skills/synap-schema/before-you-touch.md +14 -0
  273. package/skills/synap-schema/common-mistakes.md +9 -0
  274. package/skills/synap-schema/creating-profiles.md +17 -0
  275. package/skills/synap-schema/discover-profiles.md +24 -0
  276. package/skills/synap-schema/entity-scope.md +8 -0
  277. package/skills/synap-schema/extend-vs-create.md +31 -0
  278. package/skills/synap-schema/more.md +6 -0
  279. package/skills/synap-schema/overlay-properties.md +22 -0
  280. package/skills/synap-schema/profiles.md +3 -0
  281. package/skills/synap-schema/property-defs.md +29 -0
  282. package/skills/synap-schema/read-before-write.md +50 -0
  283. package/skills/synap-schema/relations.md +18 -0
  284. package/skills/synap-schema/worked-example.md +30 -0
  285. package/skills/synap-ui/SKILL.md +38 -11
  286. package/skills/synap-ui/_order.txt +13 -0
  287. package/skills/synap-ui/_skill.yaml +23 -0
  288. package/skills/synap-ui/ai-companion.md +27 -0
  289. package/skills/synap-ui/arranging-bento.md +8 -0
  290. package/skills/synap-ui/before-you-build.md +20 -0
  291. package/skills/synap-ui/bento-layouts.md +35 -0
  292. package/skills/synap-ui/common-mistakes.md +10 -0
  293. package/skills/synap-ui/creating-views.md +26 -0
  294. package/skills/synap-ui/four-builds.md +24 -0
  295. package/skills/synap-ui/more.md +7 -0
  296. package/skills/synap-ui/proposing-vs-extending.md +11 -0
  297. package/skills/synap-ui/view-list.md +24 -0
  298. package/skills/synap-ui/views.md +3 -0
  299. package/skills/synap-ui/worked-example.md +18 -0
  300. package/skills/synap-ui/workspaces.md +47 -0
  301. package/templates/automations/bookmark-enrichment.automation.json +44 -0
  302. package/templates/automations/mail-feed.automation.json +86 -0
  303. package/templates/automations/url-bookmark-capture.automation.json +70 -0
  304. package/templates/skills/README.md +21 -0
  305. package/templates/skills/authoring-automations/SKILL.md +95 -0
  306. package/templates/skills/authoring-automations/reference/node-matrix.md +49 -0
  307. package/templates/skills/authoring-capabilities/SKILL.md +93 -0
  308. package/templates/skills/authoring-capabilities/reference/template-anatomy.md +70 -0
  309. package/templates/skills/authoring-playbooks/SKILL.md +102 -0
  310. package/templates/skills/authoring-playbooks/reference/stages-contract.md +35 -0
  311. package/templates/skills/authoring-playbooks/reference/worked-example.md +64 -0
  312. package/templates/skills/bookmark-enrichment/SKILL.md +40 -0
  313. package/templates/skills/coordinating-agents/SKILL.md +32 -0
  314. package/templates/skills/coordinating-branches/SKILL.md +27 -0
  315. package/templates/skills/mapping-the-server/SKILL.md +54 -0
  316. package/templates/skills/reading-client-progress/SKILL.md +65 -0
  317. package/templates/skills/routing-to-channels/SKILL.md +54 -0
  318. package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
  319. package/templates/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
  320. package/templates/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
  321. package/templates/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
  322. package/templates/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
  323. package/templates/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
  324. package/templates/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
  325. package/templates/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
  326. package/templates/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
  327. package/templates/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
  328. package/templates/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
  329. package/templates/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
  330. package/templates/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
  331. package/templates/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
  332. package/templates/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
  333. package/templates/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
  334. package/templates/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
  335. package/templates/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
  336. package/templates/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
  337. package/templates/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
  338. package/templates/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
  339. package/templates/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
  340. package/templates/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
  341. package/templates/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
  342. package/templates/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
  343. package/templates/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
  344. package/templates/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
  345. package/templates/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
  346. package/dist/commands/finish.d.ts +0 -25
  347. package/dist/commands/finish.js +0 -274
  348. package/dist/commands/finish.js.map +0 -1
  349. package/dist/commands/openclaw.d.ts +0 -40
  350. package/dist/commands/openclaw.js +0 -1148
  351. package/dist/commands/openclaw.js.map +0 -1
  352. package/dist/commands/security-audit.d.ts +0 -12
  353. package/dist/commands/security-audit.js +0 -100
  354. package/dist/commands/security-audit.js.map +0 -1
  355. package/dist/lib/hardening.d.ts +0 -18
  356. package/dist/lib/hardening.js +0 -214
  357. package/dist/lib/hardening.js.map +0 -1
  358. package/dist/lib/templates.d.ts +0 -11
  359. package/dist/lib/templates.js +0 -13
  360. package/dist/lib/templates.js.map +0 -1
  361. package/dist/templates/agent-os.json +0 -3090
  362. package/node_modules/@synap/hub-rest-client/dist/index.cjs +0 -881
  363. package/node_modules/@synap/hub-rest-client/dist/index.d.cts +0 -907
  364. package/node_modules/@synap/hub-rest-client/dist/index.d.ts +0 -907
  365. package/node_modules/@synap/hub-rest-client/dist/index.js +0 -851
  366. package/node_modules/@synap/hub-rest-client/package.json +0 -45
  367. package/node_modules/@synap/hub-rest-client/src/client.ts +0 -1143
  368. package/node_modules/@synap/hub-rest-client/src/errors.ts +0 -30
  369. package/node_modules/@synap/hub-rest-client/src/index.ts +0 -111
  370. package/node_modules/@synap/hub-rest-client/src/setup.ts +0 -77
  371. package/node_modules/@synap/hub-rest-client/src/types.ts +0 -639
@@ -0,0 +1,100 @@
1
+ /**
2
+ * `synap pod` — the unified pod-configuration view.
3
+ * ===================================================
4
+ *
5
+ * `market installed` shows what packages are installed; `synap pod` answers
6
+ * the bigger question — "what does my WHOLE pod look like right now?" — one
7
+ * scannable graph over workspaces (with provenance), pod-wide vs per-workspace
8
+ * capabilities/automations/playbooks, and the give/need feed links between
9
+ * workspaces. It is the read surface for `GET /api/hub/pod/config`
10
+ * (`hub-protocol/rest/pod.ts` on the backend side).
11
+ *
12
+ * `synap pod adopt <workspaceId> --template <slug>` links an orphan/ad-hoc
13
+ * workspace to a matching template so it becomes version-tracked, via
14
+ * `POST /api/hub/pod/adopt`.
15
+ *
16
+ * READ-first, ONE write door (`adopt`). Reuses rather than re-derives:
17
+ * - the composition-tree engine (`buildCompositionTrees`/`printCompositionTree`
18
+ * + `buildMarketCatalog`/`computeUpdates`) from `market.ts`, for the
19
+ * marketplace-provenance workspaces' package → template deps → workspaces
20
+ * overlay.
21
+ * - the honest-outcome verdict helpers (`classifyApplyResult`/
22
+ * `printApplyVerdict`) from `market.ts`, for `pod adopt`'s outcome.
23
+ */
24
+ export type WorkspaceProvenance = {
25
+ kind: "marketplace";
26
+ packageSlug: string;
27
+ packageVersion: string | null;
28
+ } | {
29
+ kind: "composed";
30
+ composedFrom: unknown[];
31
+ } | {
32
+ kind: "ad-hoc";
33
+ createdBy: string | null;
34
+ templateMatch?: {
35
+ slug: string;
36
+ name: string;
37
+ };
38
+ };
39
+ export interface PodConfigWorkspace {
40
+ id: string;
41
+ name: string;
42
+ subtype: string | null;
43
+ entityCount: number;
44
+ provenance: WorkspaceProvenance;
45
+ }
46
+ export type CapabilityProvenance = {
47
+ kind: "marketplace";
48
+ templateKey: string;
49
+ } | {
50
+ kind: "manual";
51
+ };
52
+ export interface PodConfigCapability {
53
+ id: string;
54
+ name: string;
55
+ workspaceId: string | null;
56
+ provenance: CapabilityProvenance;
57
+ }
58
+ export type AutomationProvenance = {
59
+ kind: "ai" | "manual" | "template";
60
+ };
61
+ export interface PodConfigAutomation {
62
+ id: string;
63
+ name: string;
64
+ workspaceId: string | null;
65
+ provenance: AutomationProvenance;
66
+ }
67
+ export type PlaybookProvenance = {
68
+ kind: "manual";
69
+ };
70
+ export interface PodConfigPlaybook {
71
+ id: string;
72
+ name: string;
73
+ workspaceId: string | null;
74
+ provenance: PlaybookProvenance;
75
+ }
76
+ export interface PodConfigFeedsLink {
77
+ from: string;
78
+ to: string;
79
+ domain: string | null;
80
+ profileSlug: string | null;
81
+ }
82
+ export interface PodConfig {
83
+ workspaces: PodConfigWorkspace[];
84
+ capabilities: PodConfigCapability[];
85
+ automations: PodConfigAutomation[];
86
+ playbooks: PodConfigPlaybook[];
87
+ feedsLinks: PodConfigFeedsLink[];
88
+ }
89
+ export declare function pod(opts: {
90
+ json?: boolean;
91
+ orphans?: boolean;
92
+ podUrl?: string;
93
+ apiKey?: string;
94
+ }): Promise<void>;
95
+ export declare function podAdopt(workspaceNameOrId: string, opts: {
96
+ template?: string;
97
+ json?: boolean;
98
+ podUrl?: string;
99
+ apiKey?: string;
100
+ }): Promise<void>;
@@ -0,0 +1,359 @@
1
+ /**
2
+ * `synap pod` — the unified pod-configuration view.
3
+ * ===================================================
4
+ *
5
+ * `market installed` shows what packages are installed; `synap pod` answers
6
+ * the bigger question — "what does my WHOLE pod look like right now?" — one
7
+ * scannable graph over workspaces (with provenance), pod-wide vs per-workspace
8
+ * capabilities/automations/playbooks, and the give/need feed links between
9
+ * workspaces. It is the read surface for `GET /api/hub/pod/config`
10
+ * (`hub-protocol/rest/pod.ts` on the backend side).
11
+ *
12
+ * `synap pod adopt <workspaceId> --template <slug>` links an orphan/ad-hoc
13
+ * workspace to a matching template so it becomes version-tracked, via
14
+ * `POST /api/hub/pod/adopt`.
15
+ *
16
+ * READ-first, ONE write door (`adopt`). Reuses rather than re-derives:
17
+ * - the composition-tree engine (`buildCompositionTrees`/`printCompositionTree`
18
+ * + `buildMarketCatalog`/`computeUpdates`) from `market.ts`, for the
19
+ * marketplace-provenance workspaces' package → template deps → workspaces
20
+ * overlay.
21
+ * - the honest-outcome verdict helpers (`classifyApplyResult`/
22
+ * `printApplyVerdict`) from `market.ts`, for `pod adopt`'s outcome.
23
+ */
24
+ import chalk from "chalk";
25
+ import { log } from "../utils/logger.js";
26
+ import { resolveHubConfig, hubGet, hubPost, renderHubError, HubError, } from "../lib/hub-client.js";
27
+ import { writeGovernance } from "../lib/capture-lane.js";
28
+ import { fetchInstalledTemplates } from "../lib/installed.js";
29
+ import { buildMarketCatalog, computeUpdates, buildCompositionTrees, printCompositionTree, } from "./market.js";
30
+ /** Coerce whatever shape a field arrives in into an array — tolerates minor DTO drift. */
31
+ function arr(v) {
32
+ return Array.isArray(v) ? v : [];
33
+ }
34
+ /** Defensive parse of the raw `/pod/config` JSON into `PodConfig` — never throws on a shifted field name, just degrades that section to empty. */
35
+ function parsePodConfig(raw) {
36
+ const r = (raw ?? {});
37
+ return {
38
+ workspaces: arr(r.workspaces),
39
+ capabilities: arr(r.capabilities),
40
+ automations: arr(r.automations),
41
+ playbooks: arr(r.playbooks),
42
+ feedsLinks: arr(r.feedsLinks),
43
+ };
44
+ }
45
+ /**
46
+ * `GET /pod/config`. Returns `null` (never throws) on a 404 — the endpoint
47
+ * not being deployed yet on this pod build is an expected, non-fatal state
48
+ * during parallel backend/CLI development; callers render an honest "not
49
+ * live on this pod yet" message instead of a stack trace.
50
+ */
51
+ async function fetchPodConfig(cfg) {
52
+ try {
53
+ const raw = await hubGet("/pod/config", {}, cfg);
54
+ return parsePodConfig(raw);
55
+ }
56
+ catch (e) {
57
+ if (e instanceof HubError && e.status === 404)
58
+ return null;
59
+ throw e;
60
+ }
61
+ }
62
+ /** An orphan is an ad-hoc workspace the backend matched to a known template. */
63
+ function isOrphan(ws) {
64
+ return ws.provenance.kind === "ad-hoc" && !!ws.provenance.templateMatch;
65
+ }
66
+ // ── Rendering helpers ────────────────────────────────────────────────────────
67
+ /** Tag for the small provenance shapes shared by capabilities/automations/playbooks. */
68
+ function provenanceTag(p) {
69
+ if (p.kind === "marketplace" && p.templateKey)
70
+ return chalk.green(`marketplace: ${p.templateKey}`);
71
+ switch (p.kind) {
72
+ case "marketplace":
73
+ return chalk.green("marketplace");
74
+ case "ai":
75
+ return chalk.magenta("ai");
76
+ case "template":
77
+ return chalk.cyan("template");
78
+ case "manual":
79
+ default:
80
+ return chalk.dim(p.kind);
81
+ }
82
+ }
83
+ /** One workspace row — `nameW` right-pads the name so provenance tags line up in a column. */
84
+ function workspaceLine(ws, nameW = 0) {
85
+ const name = chalk.bold(ws.name.padEnd(nameW));
86
+ const count = chalk.dim(`(${ws.entityCount} entities)`.padEnd(16));
87
+ const p = ws.provenance;
88
+ switch (p.kind) {
89
+ case "marketplace":
90
+ return `${name} ${count} ${chalk.green(`marketplace: ${p.packageSlug}${p.packageVersion ? "@" + p.packageVersion : ""}`)}`;
91
+ case "composed": {
92
+ const from = p.composedFrom.length ? p.composedFrom.map(String).join(", ") : "?";
93
+ return `${name} ${count} ${chalk.cyan(`composed from ${from}`)}`;
94
+ }
95
+ case "ad-hoc":
96
+ if (p.templateMatch) {
97
+ return (`${name} ${count} ` +
98
+ chalk.yellow(`⚠ orphan — matches template ${p.templateMatch.slug}`) +
99
+ "\n" +
100
+ " ".repeat(nameW + count.length + 4) +
101
+ chalk.dim(`run: synap pod adopt ${ws.id} --template ${p.templateMatch.slug}`));
102
+ }
103
+ return `${name} ${count} ${chalk.dim("ad-hoc")}`;
104
+ }
105
+ }
106
+ /** Group `{workspaceId|null}`-carrying rows into pod-wide vs per-workspace. */
107
+ function splitPodWide(rows) {
108
+ const podWide = [];
109
+ const perWorkspace = new Map();
110
+ for (const r of rows) {
111
+ if (r.workspaceId) {
112
+ (perWorkspace.get(r.workspaceId) ?? perWorkspace.set(r.workspaceId, []).get(r.workspaceId)).push(r);
113
+ }
114
+ else {
115
+ podWide.push(r);
116
+ }
117
+ }
118
+ return { podWide, perWorkspace };
119
+ }
120
+ function printGroupedSection(title, rows, nameById) {
121
+ log.heading(` ${title}`);
122
+ log.blank();
123
+ if (rows.length === 0) {
124
+ console.log(" " + chalk.dim("(none)"));
125
+ log.blank();
126
+ return;
127
+ }
128
+ const nameW = Math.max(4, ...rows.map((r) => r.name.length)) + 2;
129
+ const { podWide, perWorkspace } = splitPodWide(rows);
130
+ if (podWide.length > 0) {
131
+ console.log(" " + chalk.dim("Pod-wide"));
132
+ for (const r of podWide) {
133
+ console.log(" " + r.name.padEnd(nameW) + provenanceTag(r.provenance));
134
+ }
135
+ log.blank();
136
+ }
137
+ for (const [wsId, wsRows] of perWorkspace) {
138
+ console.log(" " + chalk.bold(nameById.get(wsId) ?? wsId));
139
+ for (const r of wsRows) {
140
+ console.log(" " + r.name.padEnd(nameW) + provenanceTag(r.provenance));
141
+ }
142
+ log.blank();
143
+ }
144
+ }
145
+ /** Render `feedsLinks` as `Foundation → provides → CRM` edges. */
146
+ function printFeedsLinks(links, nameById) {
147
+ log.heading(" Give / need links");
148
+ log.blank();
149
+ if (links.length === 0) {
150
+ console.log(" " + chalk.dim("(none)"));
151
+ log.blank();
152
+ return;
153
+ }
154
+ for (const l of links) {
155
+ const from = nameById.get(l.from) ?? l.from;
156
+ const to = nameById.get(l.to) ?? l.to;
157
+ const detail = l.domain ? ` (${l.domain})` : l.profileSlug ? ` (${l.profileSlug})` : "";
158
+ console.log(" " + chalk.bold(from) + chalk.dim(" → provides → ") + chalk.bold(to) + chalk.dim(detail));
159
+ }
160
+ log.blank();
161
+ }
162
+ // ── `synap pod` ──────────────────────────────────────────────────────────────
163
+ export async function pod(opts) {
164
+ let cfg;
165
+ try {
166
+ cfg = await resolveHubConfig(opts);
167
+ }
168
+ catch (e) {
169
+ renderHubError(e);
170
+ process.exit(1);
171
+ }
172
+ const config = await fetchPodConfig(cfg);
173
+ if (!config) {
174
+ if (opts.json) {
175
+ console.log(JSON.stringify({ error: "not-deployed", message: "GET /api/hub/pod/config returned 404" }, null, 2));
176
+ return;
177
+ }
178
+ log.warn("The unified pod-config endpoint isn't live on this pod yet (404).");
179
+ log.hint("The backend half of this feature hasn't been deployed — this command is wired and will work once it is.");
180
+ return;
181
+ }
182
+ const nameById = new Map(config.workspaces.map((w) => [w.id, w.name]));
183
+ const adHocWorkspaces = config.workspaces.filter((w) => w.provenance.kind === "ad-hoc");
184
+ if (opts.orphans) {
185
+ if (opts.json) {
186
+ console.log(JSON.stringify({ workspaces: adHocWorkspaces }, null, 2));
187
+ return;
188
+ }
189
+ if (adHocWorkspaces.length === 0) {
190
+ log.success("No orphan or ad-hoc workspaces — everything is either marketplace-linked or composed.");
191
+ return;
192
+ }
193
+ log.heading(" Orphan / ad-hoc workspaces");
194
+ log.blank();
195
+ const nameW = Math.max(4, ...adHocWorkspaces.map((w) => w.name.length)) + 2;
196
+ for (const ws of adHocWorkspaces) {
197
+ console.log(" " + workspaceLine(ws, nameW));
198
+ }
199
+ log.blank();
200
+ return;
201
+ }
202
+ if (opts.json) {
203
+ console.log(JSON.stringify(config, null, 2));
204
+ return;
205
+ }
206
+ // ── Workspaces ─────────────────────────────────────────────────────────
207
+ log.heading(" Workspaces");
208
+ log.blank();
209
+ if (config.workspaces.length === 0) {
210
+ console.log(" " + chalk.dim("(none)"));
211
+ log.blank();
212
+ }
213
+ const marketplaceWorkspaces = config.workspaces.filter((w) => w.provenance.kind === "marketplace");
214
+ const otherWorkspaces = config.workspaces.filter((w) => w.provenance.kind !== "marketplace");
215
+ // Composition-tree overlay for marketplace workspaces — reuses market.ts's
216
+ // `--tree` engine (buildMarketCatalog + computeUpdates + buildCompositionTrees)
217
+ // rather than re-deriving a second package→workspace walk.
218
+ if (marketplaceWorkspaces.length > 0) {
219
+ const nameW = Math.max(4, ...marketplaceWorkspaces.map((w) => w.name.length)) + 2;
220
+ const printFlat = () => {
221
+ marketplaceWorkspaces.forEach((ws) => console.log(" " + workspaceLine(ws, nameW)));
222
+ log.blank();
223
+ };
224
+ try {
225
+ const [installedTemplates, cat] = await Promise.all([fetchInstalledTemplates(), buildMarketCatalog()]);
226
+ if (installedTemplates.length > 0) {
227
+ const checks = computeUpdates(installedTemplates, cat);
228
+ const workspaceCountBySlug = new Map();
229
+ for (const t of installedTemplates) {
230
+ workspaceCountBySlug.set(t.slug, (workspaceCountBySlug.get(t.slug) ?? 0) + 1);
231
+ }
232
+ const seen = new Set();
233
+ const rows = checks.filter((c) => (seen.has(c.slug) ? false : (seen.add(c.slug), true)));
234
+ const { packages } = await buildCompositionTrees(rows, cat, installedTemplates, workspaceCountBySlug);
235
+ if (packages.length > 0)
236
+ packages.forEach(printCompositionTree);
237
+ else
238
+ printFlat();
239
+ }
240
+ else {
241
+ printFlat();
242
+ }
243
+ }
244
+ catch {
245
+ // Composition-tree overlay is best-effort — fall back to the flat list.
246
+ printFlat();
247
+ }
248
+ }
249
+ if (otherWorkspaces.length > 0) {
250
+ console.log(" " + chalk.dim("Composed / ad-hoc"));
251
+ const nameW = Math.max(4, ...otherWorkspaces.map((w) => w.name.length)) + 2;
252
+ for (const ws of otherWorkspaces) {
253
+ console.log(" " + workspaceLine(ws, nameW));
254
+ }
255
+ log.blank();
256
+ }
257
+ // ── Capabilities / Automations / Playbooks ────────────────────────────
258
+ printGroupedSection("Capabilities", config.capabilities, nameById);
259
+ printGroupedSection("Automations", config.automations, nameById);
260
+ printGroupedSection("Playbooks", config.playbooks, nameById);
261
+ // ── Give / need links ──────────────────────────────────────────────────
262
+ printFeedsLinks(config.feedsLinks, nameById);
263
+ const orphanCount = adHocWorkspaces.filter(isOrphan).length;
264
+ const adHocCount = adHocWorkspaces.length - orphanCount;
265
+ if (orphanCount > 0 || adHocCount > 0) {
266
+ log.dim(`${orphanCount} orphan, ${adHocCount} ad-hoc workspace${orphanCount + adHocCount === 1 ? "" : "s"} — run 'synap pod --orphans' to focus on them.`);
267
+ }
268
+ }
269
+ // ── `synap pod adopt <nameOrId> --template <slug>` ───────────────────────────
270
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
271
+ /**
272
+ * Resolve a user-supplied `<workspace>` arg to a workspace id.
273
+ *
274
+ * `adopt` is FOR orphans, so the source must include unstamped/ad-hoc
275
+ * workspaces — `fetchInstalledTemplates` (template-installed only) is the
276
+ * wrong list here. `GET /orient` already returns every workspace on the pod
277
+ * (incl. orphans) and is deployed today, so it's the resolution source; the
278
+ * newer `/pod/config` read (this file's `fetchPodConfig`) would also work
279
+ * once live but isn't guaranteed deployed yet.
280
+ *
281
+ * A UUID is passed straight through unchanged (fast path — no network call).
282
+ * Anything else is matched case-insensitively by exact name against `/orient`.
283
+ */
284
+ async function resolveWorkspaceRef(nameOrId, cfg) {
285
+ if (UUID_RE.test(nameOrId))
286
+ return nameOrId;
287
+ const res = (await hubGet("/orient", { detail: "full" }, cfg));
288
+ const workspaces = res.workspaces ?? [];
289
+ const needle = nameOrId.trim().toLowerCase();
290
+ const matches = workspaces.filter((w) => (w.name ?? "").trim().toLowerCase() === needle);
291
+ if (matches.length === 0) {
292
+ log.error(`No workspace named "${nameOrId}" on this pod. Run 'synap pod' to see them.`);
293
+ process.exit(1);
294
+ }
295
+ if (matches.length > 1) {
296
+ const candidates = matches.map((w) => `${w.id} (${w.name})`).join(", ");
297
+ log.error(`Multiple workspaces named "${nameOrId}" — use the id: ${candidates}`);
298
+ process.exit(1);
299
+ }
300
+ const match = matches[0];
301
+ log.dim(`Resolved "${nameOrId}" → ${match.id}`);
302
+ return match.id;
303
+ }
304
+ export async function podAdopt(workspaceNameOrId, opts) {
305
+ if (!opts.template) {
306
+ log.error("Missing --template <slug>.");
307
+ log.hint("List template matches: synap pod --orphans");
308
+ process.exit(1);
309
+ }
310
+ let cfg;
311
+ try {
312
+ cfg = await resolveHubConfig(opts);
313
+ }
314
+ catch (e) {
315
+ renderHubError(e);
316
+ process.exit(1);
317
+ }
318
+ const workspaceId = await resolveWorkspaceRef(workspaceNameOrId, cfg);
319
+ try {
320
+ const res = (await hubPost("/pod/adopt", { workspaceId, templateSlug: opts.template }, cfg));
321
+ if (writeGovernance(res) === "proposed") {
322
+ const proposalId = res.proposalId ? String(res.proposalId) : undefined;
323
+ if (opts.json) {
324
+ console.log(JSON.stringify({ outcome: "proposed", proposalId }, null, 2));
325
+ return;
326
+ }
327
+ log.info(`Adopting into ${opts.template} — proposed (under review, not live yet).`);
328
+ if (proposalId)
329
+ log.hint(`Approve: synap proposals approve ${proposalId.slice(0, 8)}`);
330
+ return;
331
+ }
332
+ const result = res;
333
+ if (opts.json) {
334
+ console.log(JSON.stringify(result, null, 2));
335
+ return;
336
+ }
337
+ const wsName = result.workspace?.name ?? workspaceId;
338
+ if (result.outcome === "already-linked") {
339
+ log.info(`${wsName} is already linked to ${opts.template}.`);
340
+ return;
341
+ }
342
+ log.success(`Linked ${wsName} to ${opts.template} — now version-tracked.`);
343
+ if (result.workspace?.packageVersion) {
344
+ log.dim(`Stamped version ${result.workspace.packageVersion}.`);
345
+ }
346
+ log.hint(`Check for drift going forward: synap market update ${opts.template}`);
347
+ }
348
+ catch (e) {
349
+ if (e instanceof HubError && e.status === 404) {
350
+ log.warn("The pod-adopt endpoint isn't live on this pod yet (404).");
351
+ log.hint("The backend half of this feature hasn't been deployed — this command is wired and will work once it is.");
352
+ return;
353
+ }
354
+ log.error(`Adopting ${workspaceId} into ${opts.template} failed`);
355
+ renderHubError(e);
356
+ process.exit(1);
357
+ }
358
+ }
359
+ //# sourceMappingURL=pod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod.js","sourceRoot":"","sources":["../../src/commands/pod.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,12 @@ export declare function podsAdd(name?: string, podUrlArg?: string): Promise<void
12
12
  export type { SurfaceName };
13
13
  export declare function podsUse(name: string, opts?: {
14
14
  surface?: SurfaceName;
15
+ json?: boolean;
15
16
  }): Promise<void>;
16
17
  export declare function podsSwitch(name?: string): Promise<void>;
17
18
  export declare function podsRemove(name: string): Promise<void>;
19
+ /**
20
+ * Re-run the browser auth flow against an already-saved pod URL.
21
+ * Lets users refresh a broken/expired API key without re-entering the pod URL.
22
+ */
23
+ export declare function podsReconnect(name?: string): Promise<void>;