@synap-core/cli 1.10.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 (461) 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 +297 -176
  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 +3 -14
  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 +9 -2
  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 +198 -25
  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 +307 -24
  50. package/dist/commands/data.js.map +1 -1
  51. package/dist/commands/diagnose.d.ts +66 -4
  52. package/dist/commands/diagnose.js +329 -29
  53. package/dist/commands/diagnose.js.map +1 -1
  54. package/dist/commands/digest.js +2 -1
  55. package/dist/commands/digest.js.map +1 -1
  56. package/dist/commands/doc.d.ts +25 -4
  57. package/dist/commands/doc.js +100 -18
  58. package/dist/commands/doc.js.map +1 -1
  59. package/dist/commands/doctor.d.ts +130 -0
  60. package/dist/commands/doctor.js +814 -0
  61. package/dist/commands/doctor.js.map +1 -0
  62. package/dist/commands/events.js +3 -1
  63. package/dist/commands/events.js.map +1 -1
  64. package/dist/commands/explain.js +5 -5
  65. package/dist/commands/explain.js.map +1 -1
  66. package/dist/commands/graph.js +5 -3
  67. package/dist/commands/graph.js.map +1 -1
  68. package/dist/commands/import.d.ts +368 -13
  69. package/dist/commands/import.js +1096 -55
  70. package/dist/commands/import.js.map +1 -1
  71. package/dist/commands/init.d.ts +20 -9
  72. package/dist/commands/init.js +433 -973
  73. package/dist/commands/init.js.map +1 -1
  74. package/dist/commands/keys.d.ts +1 -0
  75. package/dist/commands/keys.js +15 -2
  76. package/dist/commands/keys.js.map +1 -1
  77. package/dist/commands/knowledge.d.ts +28 -6
  78. package/dist/commands/knowledge.js +358 -73
  79. package/dist/commands/knowledge.js.map +1 -1
  80. package/dist/commands/launch.js +2 -2
  81. package/dist/commands/launch.js.map +1 -1
  82. package/dist/commands/lens.d.ts +37 -1
  83. package/dist/commands/lens.js +193 -72
  84. package/dist/commands/lens.js.map +1 -1
  85. package/dist/commands/market-authoring.d.ts +72 -0
  86. package/dist/commands/market-authoring.js +566 -0
  87. package/dist/commands/market-authoring.js.map +1 -0
  88. package/dist/commands/market-official.d.ts +58 -0
  89. package/dist/commands/market-official.js +84 -0
  90. package/dist/commands/market-official.js.map +1 -0
  91. package/dist/commands/market.d.ts +419 -20
  92. package/dist/commands/market.js +2124 -193
  93. package/dist/commands/market.js.map +1 -1
  94. package/dist/commands/mcp.d.ts +70 -13
  95. package/dist/commands/mcp.js +308 -40
  96. package/dist/commands/mcp.js.map +1 -1
  97. package/dist/commands/open.d.ts +39 -9
  98. package/dist/commands/open.js +80 -25
  99. package/dist/commands/open.js.map +1 -1
  100. package/dist/commands/playbook.d.ts +42 -0
  101. package/dist/commands/playbook.js +162 -0
  102. package/dist/commands/playbook.js.map +1 -0
  103. package/dist/commands/pod.js +1 -1
  104. package/dist/commands/pod.js.map +1 -1
  105. package/dist/commands/pods.d.ts +19 -0
  106. package/dist/commands/pods.js +220 -85
  107. package/dist/commands/pods.js.map +1 -1
  108. package/dist/commands/proposals-actions.d.ts +62 -0
  109. package/dist/commands/proposals-actions.js +146 -8
  110. package/dist/commands/proposals-actions.js.map +1 -1
  111. package/dist/commands/proposals-await.d.ts +68 -0
  112. package/dist/commands/proposals-await.js +248 -0
  113. package/dist/commands/proposals-await.js.map +1 -0
  114. package/dist/commands/proton-setup.d.ts +73 -0
  115. package/dist/commands/proton-setup.js +577 -0
  116. package/dist/commands/proton-setup.js.map +1 -0
  117. package/dist/commands/providers.d.ts +23 -0
  118. package/dist/commands/providers.js +126 -1
  119. package/dist/commands/providers.js.map +1 -1
  120. package/dist/commands/raycast.js +6 -2
  121. package/dist/commands/raycast.js.map +1 -1
  122. package/dist/commands/rule.d.ts +150 -0
  123. package/dist/commands/rule.js +447 -0
  124. package/dist/commands/rule.js.map +1 -0
  125. package/dist/commands/session-wait.d.ts +111 -0
  126. package/dist/commands/session-wait.js +209 -0
  127. package/dist/commands/session-wait.js.map +1 -0
  128. package/dist/commands/sessions.d.ts +52 -0
  129. package/dist/commands/sessions.js +479 -58
  130. package/dist/commands/sessions.js.map +1 -1
  131. package/dist/commands/skill-manage.d.ts +21 -0
  132. package/dist/commands/skill-manage.js +136 -19
  133. package/dist/commands/skill-manage.js.map +1 -1
  134. package/dist/commands/skills.js +19 -1
  135. package/dist/commands/skills.js.map +1 -1
  136. package/dist/commands/status.d.ts +1 -4
  137. package/dist/commands/status.js +5 -34
  138. package/dist/commands/status.js.map +1 -1
  139. package/dist/commands/statusline.backoff.test.d.ts +13 -0
  140. package/dist/commands/statusline.backoff.test.js +100 -0
  141. package/dist/commands/statusline.backoff.test.js.map +1 -0
  142. package/dist/commands/statusline.js +16 -9
  143. package/dist/commands/statusline.js.map +1 -1
  144. package/dist/commands/sync-status.d.ts +12 -0
  145. package/dist/commands/sync-status.js +125 -0
  146. package/dist/commands/sync-status.js.map +1 -0
  147. package/dist/commands/templates-retire.d.ts +34 -0
  148. package/dist/commands/templates-retire.js +192 -0
  149. package/dist/commands/templates-retire.js.map +1 -0
  150. package/dist/commands/tools.js +6 -21
  151. package/dist/commands/tools.js.map +1 -1
  152. package/dist/commands/tracks.d.ts +51 -0
  153. package/dist/commands/tracks.js +291 -0
  154. package/dist/commands/tracks.js.map +1 -0
  155. package/dist/commands/update.d.ts +3 -11
  156. package/dist/commands/update.js +5 -134
  157. package/dist/commands/update.js.map +1 -1
  158. package/dist/commands/upload.d.ts +68 -0
  159. package/dist/commands/upload.js +257 -0
  160. package/dist/commands/upload.js.map +1 -0
  161. package/dist/commands/vendor.d.ts +28 -0
  162. package/dist/commands/vendor.js +110 -0
  163. package/dist/commands/vendor.js.map +1 -0
  164. package/dist/commands/versions.js +6 -0
  165. package/dist/commands/versions.js.map +1 -1
  166. package/dist/commands/view.js +10 -5
  167. package/dist/commands/view.js.map +1 -1
  168. package/dist/commands/whoami.d.ts +23 -3
  169. package/dist/commands/whoami.js +169 -23
  170. package/dist/commands/whoami.js.map +1 -1
  171. package/dist/commands/worker.d.ts +122 -0
  172. package/dist/commands/worker.js +435 -0
  173. package/dist/commands/worker.js.map +1 -0
  174. package/dist/commands/worker.test.d.ts +1 -0
  175. package/dist/commands/worker.test.js +116 -0
  176. package/dist/commands/worker.test.js.map +1 -0
  177. package/dist/commands/workspace-ops.d.ts +35 -0
  178. package/dist/commands/workspace-ops.js +153 -0
  179. package/dist/commands/workspace-ops.js.map +1 -0
  180. package/dist/index.d.ts +6 -6
  181. package/dist/index.js +1009 -171
  182. package/dist/index.js.map +1 -1
  183. package/dist/lib/agent-connections.d.ts +31 -0
  184. package/dist/lib/agent-connections.js +33 -0
  185. package/dist/lib/agent-connections.js.map +1 -0
  186. package/dist/lib/agent-detect.d.ts +27 -0
  187. package/dist/lib/agent-detect.js +71 -0
  188. package/dist/lib/agent-detect.js.map +1 -0
  189. package/dist/lib/agent-door.d.ts +138 -0
  190. package/dist/lib/agent-door.js +426 -0
  191. package/dist/lib/agent-door.js.map +1 -0
  192. package/dist/lib/agents-config.d.ts +2 -0
  193. package/dist/lib/agents-config.js +4 -9
  194. package/dist/lib/agents-config.js.map +1 -1
  195. package/dist/lib/approval-poll.d.ts +31 -2
  196. package/dist/lib/approval-poll.js +20 -7
  197. package/dist/lib/approval-poll.js.map +1 -1
  198. package/dist/lib/atomic-file.d.ts +48 -0
  199. package/dist/lib/atomic-file.js +129 -0
  200. package/dist/lib/atomic-file.js.map +1 -0
  201. package/dist/lib/auth.d.ts +14 -9
  202. package/dist/lib/auth.js +44 -61
  203. package/dist/lib/auth.js.map +1 -1
  204. package/dist/lib/batch-approval.d.ts +85 -0
  205. package/dist/lib/batch-approval.js +170 -0
  206. package/dist/lib/batch-approval.js.map +1 -0
  207. package/dist/lib/capture-lane.d.ts +6 -5
  208. package/dist/lib/capture-lane.js +11 -8
  209. package/dist/lib/capture-lane.js.map +1 -1
  210. package/dist/lib/capture-structure.d.ts +342 -0
  211. package/dist/lib/capture-structure.js +295 -0
  212. package/dist/lib/capture-structure.js.map +1 -0
  213. package/dist/lib/catalog-templates.d.ts +59 -0
  214. package/dist/lib/catalog-templates.js +126 -0
  215. package/dist/lib/catalog-templates.js.map +1 -0
  216. package/dist/lib/cli-build.d.ts +19 -0
  217. package/dist/lib/cli-build.js +37 -0
  218. package/dist/lib/cli-build.js.map +1 -0
  219. package/dist/lib/conversation-headers.d.ts +18 -0
  220. package/dist/lib/conversation-headers.js +32 -0
  221. package/dist/lib/conversation-headers.js.map +1 -0
  222. package/dist/lib/cp-packages.d.ts +216 -4
  223. package/dist/lib/cp-packages.js +414 -11
  224. package/dist/lib/cp-packages.js.map +1 -1
  225. package/dist/lib/credential-class.d.ts +117 -0
  226. package/dist/lib/credential-class.js +116 -0
  227. package/dist/lib/credential-class.js.map +1 -0
  228. package/dist/lib/describe-lens.d.ts +35 -0
  229. package/dist/lib/describe-lens.js +40 -0
  230. package/dist/lib/describe-lens.js.map +1 -1
  231. package/dist/lib/device-connect.d.ts +125 -0
  232. package/dist/lib/device-connect.js +256 -0
  233. package/dist/lib/device-connect.js.map +1 -0
  234. package/dist/lib/directory-lens.d.ts +99 -0
  235. package/dist/lib/directory-lens.js +187 -0
  236. package/dist/lib/directory-lens.js.map +1 -0
  237. package/dist/lib/exporter-coverage.d.ts +71 -0
  238. package/dist/lib/exporter-coverage.js +97 -0
  239. package/dist/lib/exporter-coverage.js.map +1 -0
  240. package/dist/lib/hub-client.d.ts +43 -9
  241. package/dist/lib/hub-client.js +429 -65
  242. package/dist/lib/hub-client.js.map +1 -1
  243. package/dist/lib/id.d.ts +23 -0
  244. package/dist/lib/id.js +35 -0
  245. package/dist/lib/id.js.map +1 -0
  246. package/dist/lib/init-connect.d.ts +41 -0
  247. package/dist/lib/init-connect.js +75 -0
  248. package/dist/lib/init-connect.js.map +1 -0
  249. package/dist/lib/init-exit.d.ts +24 -0
  250. package/dist/lib/init-exit.js +41 -0
  251. package/dist/lib/init-exit.js.map +1 -0
  252. package/dist/lib/init-flow.d.ts +25 -0
  253. package/dist/lib/init-flow.js +40 -0
  254. package/dist/lib/init-flow.js.map +1 -0
  255. package/dist/lib/init-handoff.d.ts +16 -0
  256. package/dist/lib/init-handoff.js +19 -0
  257. package/dist/lib/init-handoff.js.map +1 -0
  258. package/dist/lib/init-output.d.ts +18 -0
  259. package/dist/lib/init-output.js +43 -0
  260. package/dist/lib/init-output.js.map +1 -0
  261. package/dist/lib/init-pod.d.ts +45 -0
  262. package/dist/lib/init-pod.js +36 -0
  263. package/dist/lib/init-pod.js.map +1 -0
  264. package/dist/lib/installed.d.ts +210 -11
  265. package/dist/lib/installed.js +234 -36
  266. package/dist/lib/installed.js.map +1 -1
  267. package/dist/lib/key-approval.d.ts +57 -0
  268. package/dist/lib/key-approval.js +117 -0
  269. package/dist/lib/key-approval.js.map +1 -0
  270. package/dist/lib/key-diagnosis.d.ts +56 -0
  271. package/dist/lib/key-diagnosis.js +227 -0
  272. package/dist/lib/key-diagnosis.js.map +1 -0
  273. package/dist/lib/key-doctor.d.ts +136 -0
  274. package/dist/lib/key-doctor.js +286 -0
  275. package/dist/lib/key-doctor.js.map +1 -0
  276. package/dist/lib/key-locations.d.ts +120 -0
  277. package/dist/lib/key-locations.js +326 -0
  278. package/dist/lib/key-locations.js.map +1 -0
  279. package/dist/lib/key-source.d.ts +66 -0
  280. package/dist/lib/key-source.js +106 -0
  281. package/dist/lib/key-source.js.map +1 -0
  282. package/dist/lib/key-state.d.ts +70 -0
  283. package/dist/lib/key-state.js +115 -0
  284. package/dist/lib/key-state.js.map +1 -0
  285. package/dist/lib/kind-package.d.ts +181 -0
  286. package/dist/lib/kind-package.js +679 -0
  287. package/dist/lib/kind-package.js.map +1 -0
  288. package/dist/lib/knowledge-title.d.ts +24 -0
  289. package/dist/lib/knowledge-title.js +46 -0
  290. package/dist/lib/knowledge-title.js.map +1 -0
  291. package/dist/lib/knowledge-title.test.d.ts +1 -0
  292. package/dist/lib/knowledge-title.test.js +34 -0
  293. package/dist/lib/knowledge-title.test.js.map +1 -0
  294. package/dist/lib/machine-instance.d.ts +64 -0
  295. package/dist/lib/machine-instance.js +142 -0
  296. package/dist/lib/machine-instance.js.map +1 -0
  297. package/dist/lib/mcp-bridge.d.ts +42 -0
  298. package/dist/lib/mcp-bridge.js +147 -0
  299. package/dist/lib/mcp-bridge.js.map +1 -0
  300. package/dist/lib/mcp-bridge.test.d.ts +1 -0
  301. package/dist/lib/mcp-bridge.test.js +90 -0
  302. package/dist/lib/mcp-bridge.test.js.map +1 -0
  303. package/dist/lib/mcp-call.d.ts +30 -0
  304. package/dist/lib/mcp-call.js +107 -0
  305. package/dist/lib/mcp-call.js.map +1 -0
  306. package/dist/lib/mcp-snippets.d.ts +53 -0
  307. package/dist/lib/mcp-snippets.js +82 -0
  308. package/dist/lib/mcp-snippets.js.map +1 -0
  309. package/dist/lib/next-steps.d.ts +8 -0
  310. package/dist/lib/next-steps.js +31 -1
  311. package/dist/lib/next-steps.js.map +1 -1
  312. package/dist/lib/package-wire.d.ts +179 -0
  313. package/dist/lib/package-wire.js +68 -0
  314. package/dist/lib/package-wire.js.map +1 -0
  315. package/dist/lib/pair-link.d.ts +38 -0
  316. package/dist/lib/pair-link.js +68 -0
  317. package/dist/lib/pair-link.js.map +1 -0
  318. package/dist/lib/pod-wide.d.ts +40 -0
  319. package/dist/lib/pod-wide.js +46 -0
  320. package/dist/lib/pod-wide.js.map +1 -0
  321. package/dist/lib/pod.d.ts +119 -115
  322. package/dist/lib/pod.js +206 -412
  323. package/dist/lib/pod.js.map +1 -1
  324. package/dist/lib/project-ref.d.ts +9 -3
  325. package/dist/lib/project-ref.js +10 -4
  326. package/dist/lib/project-ref.js.map +1 -1
  327. package/dist/lib/review-credential.d.ts +119 -0
  328. package/dist/lib/review-credential.js +147 -0
  329. package/dist/lib/review-credential.js.map +1 -0
  330. package/dist/lib/safe-open.d.ts +49 -0
  331. package/dist/lib/safe-open.js +119 -0
  332. package/dist/lib/safe-open.js.map +1 -0
  333. package/dist/lib/session-lens.d.ts +40 -1
  334. package/dist/lib/session-lens.js +54 -4
  335. package/dist/lib/session-lens.js.map +1 -1
  336. package/dist/lib/superwhisper-import.d.ts +8 -0
  337. package/dist/lib/superwhisper-import.js +14 -7
  338. package/dist/lib/superwhisper-import.js.map +1 -1
  339. package/dist/lib/superwhisper-title.test.d.ts +1 -0
  340. package/dist/lib/superwhisper-title.test.js +18 -0
  341. package/dist/lib/superwhisper-title.test.js.map +1 -0
  342. package/dist/lib/targets.d.ts +134 -10
  343. package/dist/lib/targets.js +962 -258
  344. package/dist/lib/targets.js.map +1 -1
  345. package/dist/lib/template-file.d.ts +78 -0
  346. package/dist/lib/template-file.js +140 -0
  347. package/dist/lib/template-file.js.map +1 -0
  348. package/dist/lib/template-lifecycle.d.ts +217 -0
  349. package/dist/lib/template-lifecycle.js +433 -0
  350. package/dist/lib/template-lifecycle.js.map +1 -0
  351. package/dist/lib/template-steps.d.ts +88 -0
  352. package/dist/lib/template-steps.js +118 -0
  353. package/dist/lib/template-steps.js.map +1 -0
  354. package/dist/lib/time-ago.d.ts +2 -0
  355. package/dist/lib/time-ago.js +15 -0
  356. package/dist/lib/time-ago.js.map +1 -0
  357. package/dist/utils/logger.js +5 -2
  358. package/dist/utils/logger.js.map +1 -1
  359. package/package.json +25 -18
  360. package/skills/README.md +12 -10
  361. package/skills/agent-os/SKILL.md +220 -99
  362. package/skills/manifest.json +2 -2
  363. package/skills/onboard/SKILL.md +61 -25
  364. package/skills/synap/README.md +5 -8
  365. package/skills/synap/SKILL.md +1185 -301
  366. package/skills/synap/_order.txt +7 -0
  367. package/skills/synap/_skill.yaml +1 -1
  368. package/skills/synap/automations.md +15 -0
  369. package/skills/synap/capture.md +54 -151
  370. package/skills/synap/cli-operations.md +24 -18
  371. package/skills/synap/common-mistakes.md +1 -0
  372. package/skills/synap/concepts.md +28 -0
  373. package/skills/synap/content-os.md +92 -0
  374. package/skills/synap/creative-loop.md +15 -10
  375. package/skills/synap/crm.md +21 -52
  376. package/skills/synap/digesting-a-channel.md +25 -0
  377. package/skills/synap/document-embeds.md +141 -47
  378. package/skills/synap/escalation-ladder.md +20 -10
  379. package/skills/synap/focus-sessions.md +47 -21
  380. package/skills/synap/from-intent.md +142 -0
  381. package/skills/synap/governance-rules.md +4 -4
  382. package/skills/synap/governance.md +10 -7
  383. package/skills/synap/hand-off.md +33 -0
  384. package/skills/synap/inline-patterns.md +15 -7
  385. package/skills/synap/lenses.md +33 -15
  386. package/skills/synap/linking.md +41 -40
  387. package/skills/synap/mcp-remote-servers.md +64 -0
  388. package/skills/synap/mental-model.md +24 -22
  389. package/skills/synap/multi-entity-capture.md +6 -4
  390. package/skills/synap/operating-mode-rules.md +1 -1
  391. package/skills/synap/processes.md +118 -0
  392. package/skills/synap/quick-reference.md +5 -1
  393. package/skills/synap/reading.md +3 -1
  394. package/skills/synap/reflexes.md +12 -42
  395. package/skills/synap/viewframe-cells.md +38 -5
  396. package/skills/synap/work-flow.md +1 -1
  397. package/skills/synap/work-model.md +96 -0
  398. package/skills/synap/worked-examples.md +21 -1
  399. package/skills/synap/workspace-design.md +14 -10
  400. package/skills/synap/writes.md +165 -35
  401. package/skills/synap/writing-titles.md +63 -0
  402. package/skills/synap-app/SKILL.md +319 -0
  403. package/skills/synap-app/_order.txt +5 -0
  404. package/skills/synap-app/_skill.yaml +20 -0
  405. package/skills/synap-app/creating-the-base-app.md +64 -0
  406. package/skills/synap-app/governance.md +42 -0
  407. package/skills/synap-app/install-commands.md +55 -0
  408. package/skills/synap-app/overview.md +50 -0
  409. package/skills/synap-app/using-the-sdk.md +73 -0
  410. package/skills/synap-design/SKILL.md +474 -0
  411. package/skills/synap-design/_order.txt +4 -0
  412. package/skills/synap-design/_skill.yaml +21 -0
  413. package/skills/synap-design/loop.md +134 -0
  414. package/skills/synap-design/overview.md +44 -0
  415. package/skills/synap-design/principles.md +130 -0
  416. package/skills/synap-design/system.md +133 -0
  417. package/skills/synap-market/SKILL.md +625 -0
  418. package/skills/synap-market/_order.txt +5 -0
  419. package/skills/synap-market/_skill.yaml +24 -0
  420. package/skills/synap-market/author-and-publish.md +212 -0
  421. package/skills/synap-market/discover-and-fetch.md +59 -0
  422. package/skills/synap-market/governance-and-catalog.md +63 -0
  423. package/skills/synap-market/install.md +133 -0
  424. package/skills/synap-market/overview.md +119 -0
  425. package/skills/synap-schema/SKILL.md +172 -10
  426. package/skills/synap-schema/_order.txt +2 -0
  427. package/skills/synap-schema/_skill.yaml +4 -2
  428. package/skills/synap-schema/common-mistakes.md +4 -2
  429. package/skills/synap-schema/discover-profiles.md +1 -1
  430. package/skills/synap-schema/entity-scope.md +15 -3
  431. package/skills/synap-schema/extend-first.md +29 -0
  432. package/skills/synap-schema/extend-vs-create.md +1 -1
  433. package/skills/synap-schema/intent-vocabulary-ssot.md +111 -0
  434. package/skills/synap-schema/property-types.md +1 -1
  435. package/skills/synap-schema/relations.md +1 -1
  436. package/skills/synap-ui/SKILL.md +19 -12
  437. package/skills/synap-ui/_skill.yaml +1 -1
  438. package/skills/synap-ui/ai-companion.md +1 -1
  439. package/skills/synap-ui/arranging-bento.md +2 -0
  440. package/skills/synap-ui/bento-layouts.md +10 -10
  441. package/skills/synap-ui/bento-recipes.md +313 -543
  442. package/skills/synap-ui/four-builds.md +5 -0
  443. package/skills/synap-ui/view-types.md +2 -2
  444. package/skills/synap-ui/widget-catalog.md +22 -278
  445. package/templates/automations/bookmark-enrichment.automation.json +290 -13
  446. package/templates/automations/url-bookmark-capture.automation.json +73 -11
  447. package/templates/skills/authoring-playbooks/SKILL.md +6 -3
  448. package/templates/skills/authoring-playbooks/reference/stages-contract.md +15 -0
  449. package/templates/skills/authoring-playbooks/reference/worked-example.md +3 -0
  450. package/dist/commands/infra.d.ts +0 -21
  451. package/dist/commands/infra.js +0 -262
  452. package/dist/commands/infra.js.map +0 -1
  453. package/dist/lib/browser-auth.d.ts +0 -35
  454. package/dist/lib/browser-auth.js +0 -170
  455. package/dist/lib/browser-auth.js.map +0 -1
  456. package/dist/lib/openclaw.d.ts +0 -32
  457. package/dist/lib/openclaw.js +0 -164
  458. package/dist/lib/openclaw.js.map +0 -1
  459. package/dist/lib/seed.d.ts +0 -13
  460. package/dist/lib/seed.js +0 -135
  461. package/dist/lib/seed.js.map +0 -1
@@ -0,0 +1,566 @@
1
+ /**
2
+ * `synap market` — the template AUTHORING loop.
3
+ * =============================================
4
+ *
5
+ * The other half of `market` (browse/install/update/installed lives in
6
+ * `market.ts`): the create→publish path an author walks.
7
+ *
8
+ * synap market scaffold <slug> — write a minimal valid <slug>.template.yaml
9
+ * synap market scaffold <slug> --kind cell|view|workflow|capability — a standalone package file
10
+ * synap market validate <file> — run the ONE shared validator, fast feedback
11
+ * synap market publish <file> — validate, then upsert to the CP (private by default)
12
+ * synap market publish --from-workspace <id> — serialize a LIVE workspace, then publish
13
+ * synap market publish --from-project <id> — serialize a LIVE project's used workspaces into a suite, then publish
14
+ * synap market unpublish <slug> — flip a published package back to private
15
+ *
16
+ * REUSE: validation is the shared `validateTemplate` (via `lib/template-file`);
17
+ * CP transport is `lib/cp-packages` (`publishPackage`/`unpublishPackage`); the
18
+ * pod `to-template` / `to-suite-template` serializers are reached through the
19
+ * standard hub client. No fetch is hand-rolled here.
20
+ */
21
+ import { existsSync, writeFileSync } from "node:fs";
22
+ import { dirname, resolve as resolvePath } from "node:path";
23
+ import chalk from "chalk";
24
+ import { log } from "../utils/logger.js";
25
+ import { parseTemplateFile, validateTemplateYaml, templateToPackageDefinition, packageDefinitionToYaml, scaffoldTemplateYaml, } from "../lib/template-file.js";
26
+ import { publishPackage, unpublishPackage, OFFICIAL_USE_CATALOG_HINT, CpWriteError, } from "../lib/cp-packages.js";
27
+ import { resolveHubConfig, hubPost, renderHubError } from "../lib/hub-client.js";
28
+ import { exporterDropWarnings } from "../lib/exporter-coverage.js";
29
+ import { isStandalonePackageFile, parseStandalonePackageFile, validateStandalonePackage, scaffoldStandalonePackageJson, resolveCellCodeFiles, SCAFFOLDABLE_KINDS, } from "../lib/kind-package.js";
30
+ /** Print a validator failure list human-readably: `rule` · `path` — `message`. */
31
+ function printValidationErrors(errors) {
32
+ for (const e of errors) {
33
+ console.error(` ${chalk.red("✗")} ${chalk.yellow(e.rule)} ${chalk.dim(e.path)}\n ${e.message}`);
34
+ }
35
+ }
36
+ // ─── validate ────────────────────────────────────────────────────────────────
37
+ export async function marketValidate(file, opts) {
38
+ // A standalone view/cell/skill/workflow file branches off IMMEDIATELY — the
39
+ // SAME discriminator `marketPublish` uses. Without this, `validate` ran the
40
+ // WORKSPACE validator over a standalone file and rejected it with three
41
+ // envelope errors (missing `meta`, `workspace`, `profiles`) — including files
42
+ // `market scaffold --kind cell` had JUST WRITTEN. Step 02 of the documented
43
+ // four-command loop rejected step 01's own output, for every non-workspace
44
+ // kind. Found by walking the loop on 2026-09-05.
45
+ let peeked;
46
+ try {
47
+ peeked = parseTemplateFile(file);
48
+ }
49
+ catch {
50
+ peeked = undefined;
51
+ }
52
+ if (isStandalonePackageFile(peeked)) {
53
+ const parsed = parseStandalonePackageFile(file);
54
+ // `validateStandalonePackage` returns plain message strings, not the
55
+ // `ValidationError` records the workspace validator emits — so it prints
56
+ // directly rather than through `printValidationErrors`. `baseDir` lets it
57
+ // check a cell's `codeFile` actually exists — the same resolution root
58
+ // `resolveCellCodeFiles` uses at publish time.
59
+ const errors = validateStandalonePackage(parsed, {
60
+ baseDir: dirname(resolvePath(process.cwd(), file)),
61
+ });
62
+ if (opts.json) {
63
+ console.log(JSON.stringify({ ok: errors.length === 0, errors }, null, 2));
64
+ if (errors.length > 0)
65
+ process.exit(1);
66
+ return;
67
+ }
68
+ if (errors.length === 0) {
69
+ log.success(`${file} is valid.`);
70
+ return;
71
+ }
72
+ log.error(`${file} has ${errors.length} validation error${errors.length === 1 ? "" : "s"}:`);
73
+ for (const message of errors)
74
+ log.hint(`✗ ${message}`);
75
+ process.exit(1);
76
+ }
77
+ let tpl;
78
+ try {
79
+ tpl = parseTemplateFile(file);
80
+ }
81
+ catch (e) {
82
+ if (opts.json) {
83
+ console.log(JSON.stringify({ ok: false, errors: [{ rule: "parse", path: file, message: e.message }] }, null, 2));
84
+ }
85
+ else {
86
+ log.error(e.message);
87
+ }
88
+ process.exit(1);
89
+ }
90
+ const result = validateTemplateYaml(tpl);
91
+ if (opts.json) {
92
+ console.log(JSON.stringify(result, null, 2));
93
+ if (!result.ok)
94
+ process.exit(1);
95
+ return;
96
+ }
97
+ if (result.ok) {
98
+ log.success(`${file} is valid.`);
99
+ return;
100
+ }
101
+ log.error(`${file} has ${result.errors.length} validation error${result.errors.length === 1 ? "" : "s"}:`);
102
+ printValidationErrors(result.errors);
103
+ process.exit(1);
104
+ }
105
+ // ─── scaffold ──────────────────────────────────────────────────────────────
106
+ export async function marketScaffold(slug, opts) {
107
+ // `--kind cell|view|workflow|capability|skill` scaffolds a STANDALONE package
108
+ // file instead of a workspace template — see `lib/kind-package.ts`.
109
+ // (`skill` used to be refused here, on the grounds that the CP had no slot to
110
+ // publish one into; that slot now exists, so the special case is gone.)
111
+ //
112
+ // The accepted list is `SCAFFOLDABLE_KINDS` — the same constant `src/index.ts`
113
+ // builds the `--kind` help string from, so the help can never again advertise
114
+ // a kind this branch refuses (it advertised `skill`) or hide one it accepts
115
+ // (it hid `workflow`, which `validateStandalonePackage` has always handled).
116
+ if (opts.kind && opts.kind !== "workspace") {
117
+ if (!SCAFFOLDABLE_KINDS.includes(opts.kind)) {
118
+ log.error(`Unknown --kind "${opts.kind}" — expected one of: ${SCAFFOLDABLE_KINDS.join(", ")}.`);
119
+ process.exit(1);
120
+ }
121
+ const kind = opts.kind;
122
+ const fileName = `${slug}.${kind}.json`;
123
+ const target = resolvePath(process.cwd(), fileName);
124
+ if (existsSync(target)) {
125
+ if (opts.json) {
126
+ console.log(JSON.stringify({ ok: false, error: "exists", path: target }, null, 2));
127
+ }
128
+ else {
129
+ log.error(`${fileName} already exists — refusing to overwrite.`);
130
+ log.hint("Edit it in place, or choose a different slug.");
131
+ }
132
+ process.exit(1);
133
+ }
134
+ writeFileSync(target, scaffoldStandalonePackageJson(kind, slug), "utf-8");
135
+ if (opts.json) {
136
+ console.log(JSON.stringify({ ok: true, path: target, slug, kind }, null, 2));
137
+ return;
138
+ }
139
+ log.success(`Wrote ${fileName}`);
140
+ log.dim("Edit it in place, then:");
141
+ if (kind === "cell") {
142
+ log.dim(` tip: replace "code" with "codeFile": "./path/to/your-entry.tsx" to publish from a real source file — \`market publish\` bundles it (esbuild) and inlines the result, no hand-pasted bundle needed.`);
143
+ }
144
+ log.dim(` synap market validate ${fileName}`);
145
+ log.dim(` synap market publish ${fileName}`);
146
+ return;
147
+ }
148
+ const fileName = `${slug}.template.yaml`;
149
+ const target = resolvePath(process.cwd(), fileName);
150
+ // Create-then-configure: refuse to clobber, never overwrite an author's work.
151
+ if (existsSync(target)) {
152
+ if (opts.json) {
153
+ console.log(JSON.stringify({ ok: false, error: "exists", path: target }, null, 2));
154
+ }
155
+ else {
156
+ log.error(`${fileName} already exists — refusing to overwrite.`);
157
+ log.hint("Edit it in place, or choose a different slug.");
158
+ }
159
+ process.exit(1);
160
+ }
161
+ writeFileSync(target, scaffoldTemplateYaml(slug), "utf-8");
162
+ if (opts.json) {
163
+ console.log(JSON.stringify({ ok: true, path: target, slug }, null, 2));
164
+ return;
165
+ }
166
+ log.success(`Wrote ${fileName}`);
167
+ log.dim("Edit it in place, then:");
168
+ log.dim(` synap market validate ${fileName}`);
169
+ log.dim(` synap market publish ${fileName}`);
170
+ }
171
+ // ─── publish ─────────────────────────────────────────────────────────────────
172
+ /**
173
+ * POST `/api/hub/workspaces/:id/to-template` — the pod-native serializer that
174
+ * turns a LIVE workspace into a full `PackageDefinition`. The one door for the
175
+ * `--from-workspace` publish path; mirrors every other `/api/hub/*` call.
176
+ */
177
+ export async function fetchWorkspaceAsTemplate(workspaceId, opts) {
178
+ const cfg = await resolveHubConfig(opts);
179
+ const res = (await hubPost(`/workspaces/${encodeURIComponent(workspaceId)}/to-template`, {}, cfg, 60_000));
180
+ if (!res?.definition) {
181
+ throw new Error(`Workspace ${workspaceId} produced no template definition.`);
182
+ }
183
+ return res.definition;
184
+ }
185
+ /**
186
+ * POST `/api/hub/projects/:id/to-suite-template` — walk a project's uses→workspace
187
+ * edges: full constituent workspace packages + thin suite (`suite` tag, `require`
188
+ * deps, harvested playbooks). The one door for `--from-project`.
189
+ */
190
+ export async function fetchProjectAsSuiteTemplate(projectId, opts) {
191
+ const cfg = await resolveHubConfig(opts);
192
+ const res = (await hubPost(`/projects/${encodeURIComponent(projectId)}/to-suite-template`, {}, cfg, 120_000));
193
+ if (!res?.definition) {
194
+ throw new Error(`Project ${projectId} produced no suite definition.`);
195
+ }
196
+ return {
197
+ definition: res.definition,
198
+ constituents: Array.isArray(res.constituents) ? res.constituents : [],
199
+ requiredSlugs: Array.isArray(res.requiredSlugs) ? res.requiredSlugs : [],
200
+ };
201
+ }
202
+ /**
203
+ * Parse `--price <usd>` into CP columns. Dollars → cents. Settlement/Stripe is
204
+ * NOT this wave — we only stamp `pricingModel: one_time` + `priceUsd`.
205
+ */
206
+ export function parsePriceUsdFlag(raw) {
207
+ const dollars = Number(raw);
208
+ if (!Number.isFinite(dollars) || dollars <= 0) {
209
+ throw new Error(`--price must be a positive dollar amount (got "${raw}")`);
210
+ }
211
+ const cents = Math.round(dollars * 100);
212
+ if (cents <= 0) {
213
+ throw new Error(`--price must be at least $0.01 (got "${raw}")`);
214
+ }
215
+ return { pricingModel: "one_time", priceUsd: cents };
216
+ }
217
+ /** Surface a publish outcome (created/updated/no-op) uniformly. */
218
+ function reportPublish(r) {
219
+ const vis = r.isPublic ? chalk.green("public") : chalk.dim("private");
220
+ switch (r.outcome) {
221
+ case "created":
222
+ log.success(`Published ${chalk.bold(r.slug)} ${chalk.dim(r.version)} (${vis})`);
223
+ break;
224
+ case "updated":
225
+ log.success(`Updated ${chalk.bold(r.slug)} → ${chalk.dim(r.version)} (${vis})`);
226
+ break;
227
+ case "no-op":
228
+ log.info(`${chalk.bold(r.slug)} is already up to date at ${chalk.dim(r.version)} (${vis}) — nothing to publish.`);
229
+ break;
230
+ }
231
+ // Attribution is WRITE-TIME ONLY at the CP: `if (body.vendorId) {…}` with no
232
+ // else, and no back-fill. Silence here is how every CLI-published package
233
+ // ended up orphaned from its author — the publish looked like a full success
234
+ // because, apart from the author page, it was.
235
+ if (r.officialVendorWithheld) {
236
+ log.hint(OFFICIAL_USE_CATALOG_HINT);
237
+ }
238
+ else if (!r.vendorAttached) {
239
+ log.warn("Published without a publisher profile — attributed to nobody.");
240
+ log.hint(`Create one (synap vendor create <slug>), then publish again.`);
241
+ }
242
+ }
243
+ /** Turn a CP write failure into a clear, honest message — never swallow the server `detail`; special-case the reserved-slug 403. */
244
+ function reportCpWriteError(err, slug) {
245
+ if (err.status === 403 && /reserved/i.test(err.serverMessage) && slug) {
246
+ log.error(`"${slug}" is a reserved Synap bedrock template — publish under a different slug.`);
247
+ log.hint("Reserved: foundation, crm, operations, content-os, enterprise-os, research-base.");
248
+ return;
249
+ }
250
+ // A 401 here is almost always "no CP session", not a broken package — publish
251
+ // authenticates as the HUMAN account (the pod agent key does not carry CP
252
+ // credentials, by design). Naming the door beats restating the wall: a bare
253
+ // "Unauthorized" sends the author back to re-check a file that was fine.
254
+ if (err.status === 401) {
255
+ log.error("Publish failed (HTTP 401): not signed in to the Synap account.");
256
+ log.hint("Run `synap login`, then publish again. Your package file is unchanged.");
257
+ log.hint("Publishing authenticates as YOU, not as the pod's agent key — that separation is deliberate: approval and publication stay human.");
258
+ return;
259
+ }
260
+ log.error(`Publish failed${err.status ? ` (HTTP ${err.status})` : ""}: ${err.serverMessage}`);
261
+ }
262
+ /**
263
+ * Publish a STANDALONE (non-workspace) package file — a view/cell/skill,
264
+ * discriminated by a top-level `category` key the workspace-template envelope
265
+ * never carries (see `lib/kind-package.ts`). Reuses the SAME `publishPackage`
266
+ * CP transport as the workspace path — no second fetch, just a different
267
+ * identity (`opts.slug`/`opts.displayName`/`opts.category` instead of
268
+ * `_meta.slug`/`workspaceName`).
269
+ */
270
+ async function marketPublishStandalone(file, opts) {
271
+ const isPublic = opts.public === true;
272
+ let pkg;
273
+ try {
274
+ pkg = parseStandalonePackageFile(file);
275
+ }
276
+ catch (e) {
277
+ log.error(e.message);
278
+ process.exit(1);
279
+ }
280
+ const baseDir = dirname(resolvePath(process.cwd(), file));
281
+ const structuralErrors = validateStandalonePackage(pkg, { baseDir });
282
+ if (structuralErrors.length) {
283
+ if (opts.json) {
284
+ console.log(JSON.stringify({ ok: false, stage: "validate", errors: structuralErrors }, null, 2));
285
+ }
286
+ else {
287
+ log.error(`${file} failed validation — not published:`);
288
+ for (const e of structuralErrors)
289
+ log.hint(e);
290
+ }
291
+ process.exit(1);
292
+ }
293
+ // Inline any `codeFile` cell entries into `code` — the field the CP schema
294
+ // actually validates; `codeFile` never reaches the wire (see
295
+ // `lib/kind-package.ts`). Bundling defaults to `--bundle-deps` HERE, on the
296
+ // publish path only: a published cell is exactly the case Chrome MV3's
297
+ // "reviewers must be able to see the code that runs" rationale targets —
298
+ // our `deps` map otherwise resolves through esm.sh at runtime, so the
299
+ // published artifact is not what actually executes. `synap cell build`
300
+ // invoked directly keeps its own default (external deps via esm.sh)
301
+ // unchanged; `--no-bundle-deps` opts a publish back out of this default.
302
+ let definition = pkg.definition;
303
+ if (pkg.category === "cell") {
304
+ const { definition: resolvedDefinition, errors: codeFileErrors } = await resolveCellCodeFiles(pkg, baseDir, {
305
+ bundleDeps: opts.bundleDeps !== false,
306
+ });
307
+ if (codeFileErrors.length) {
308
+ if (opts.json) {
309
+ console.log(JSON.stringify({ ok: false, stage: "build", errors: codeFileErrors }, null, 2));
310
+ }
311
+ else {
312
+ log.error(`${file} failed to build — not published:`);
313
+ for (const e of codeFileErrors)
314
+ log.hint(e);
315
+ }
316
+ process.exit(1);
317
+ }
318
+ definition = resolvedDefinition;
319
+ }
320
+ try {
321
+ const r = await publishPackage({ ...definition, description: pkg.description }, {
322
+ isPublic,
323
+ category: pkg.category,
324
+ slug: pkg.slug,
325
+ displayName: pkg.displayName,
326
+ });
327
+ if (opts.json) {
328
+ console.log(JSON.stringify({ ok: true, ...r }, null, 2));
329
+ return;
330
+ }
331
+ reportPublish(r);
332
+ }
333
+ catch (e) {
334
+ if (e instanceof CpWriteError) {
335
+ if (opts.json) {
336
+ console.log(JSON.stringify({ ok: false, stage: "publish", status: e.status, error: e.serverMessage, slug: pkg.slug }, null, 2));
337
+ }
338
+ else {
339
+ reportCpWriteError(e, pkg.slug);
340
+ }
341
+ process.exit(1);
342
+ }
343
+ log.error(`Publish failed: ${e.message}`);
344
+ process.exit(1);
345
+ }
346
+ }
347
+ export async function marketPublish(file, opts) {
348
+ // A standalone view/cell/skill file branches off IMMEDIATELY — it has no
349
+ // `meta`/`workspace` envelope, so the WorkspaceYaml parser below would
350
+ // reject it. `--from-workspace` / `--from-project` never produce this shape,
351
+ // so only the `file` path is checked. `isStandalonePackageFile` peeks the
352
+ // SAME parse `parseStandalonePackageFile` will redo — cheap, and keeps the
353
+ // discriminator logic in ONE place (`kind-package.ts`).
354
+ if (file && !opts.fromWorkspace && !opts.fromProject) {
355
+ let peeked;
356
+ try {
357
+ peeked = parseTemplateFile(file);
358
+ }
359
+ catch {
360
+ peeked = undefined;
361
+ }
362
+ if (isStandalonePackageFile(peeked)) {
363
+ await marketPublishStandalone(file, opts);
364
+ return;
365
+ }
366
+ }
367
+ if (opts.fromWorkspace && opts.fromProject) {
368
+ log.error("Pass only one of --from-workspace or --from-project.");
369
+ process.exit(1);
370
+ }
371
+ // Default PRIVATE; `--public` flips it. `--private` is accepted as the explicit
372
+ // default so a script can state intent.
373
+ const isPublic = opts.public === true;
374
+ let pricing;
375
+ if (opts.price !== undefined) {
376
+ try {
377
+ pricing = parsePriceUsdFlag(opts.price);
378
+ }
379
+ catch (e) {
380
+ log.error(e.message);
381
+ process.exit(1);
382
+ }
383
+ }
384
+ // 1. Obtain the definition + a WorkspaceYaml view to validate.
385
+ let def;
386
+ let yamlForValidate;
387
+ let sourceLabel;
388
+ // Keys the pod's workspace serialiser has NO projection for. Unconditional
389
+ // for `--from-workspace` / `--from-project` (both walk that door) and EMPTY
390
+ // for a hand-written file, because the file path is not a projection — what
391
+ // the author wrote is what gets published. See `lib/exporter-coverage.ts`.
392
+ let dropWarnings = [];
393
+ let lossyLabel = "workspace";
394
+ if (opts.fromWorkspace) {
395
+ try {
396
+ def = await fetchWorkspaceAsTemplate(opts.fromWorkspace, opts);
397
+ }
398
+ catch (e) {
399
+ renderHubError(e);
400
+ process.exit(1);
401
+ }
402
+ dropWarnings = exporterDropWarnings();
403
+ yamlForValidate = packageDefinitionToYaml(def);
404
+ sourceLabel = `workspace ${opts.fromWorkspace}`;
405
+ }
406
+ else if (opts.fromProject) {
407
+ let suiteConstituents = [];
408
+ try {
409
+ const suite = await fetchProjectAsSuiteTemplate(opts.fromProject, opts);
410
+ def = suite.definition;
411
+ suiteConstituents = suite.constituents;
412
+ }
413
+ catch (e) {
414
+ renderHubError(e);
415
+ process.exit(1);
416
+ }
417
+ dropWarnings = exporterDropWarnings();
418
+ lossyLabel = "project suite";
419
+ yamlForValidate = packageDefinitionToYaml(def);
420
+ sourceLabel = `project ${opts.fromProject}`;
421
+ // Publish FULL constituent workspace packages FIRST so suite `require`
422
+ // deps resolve on install (otherwise hollow required-absent).
423
+ if (suiteConstituents.length > 0 && !opts.json) {
424
+ log.info(`Publishing ${suiteConstituents.length} constituent workspace package(s) before the suite…`);
425
+ }
426
+ for (const constituent of suiteConstituents) {
427
+ const cSlug = constituent._meta?.slug;
428
+ if (!cSlug) {
429
+ log.warn("Skipping constituent without _meta.slug");
430
+ continue;
431
+ }
432
+ const cYaml = packageDefinitionToYaml(constituent);
433
+ const cVal = validateTemplateYaml(cYaml);
434
+ if (!cVal.ok) {
435
+ log.error(`Constituent ${cSlug} failed validation — not published:`);
436
+ printValidationErrors(cVal.errors);
437
+ process.exit(1);
438
+ }
439
+ try {
440
+ const r = await publishPackage(constituent, {
441
+ isPublic,
442
+ ...(pricing ?? {}),
443
+ });
444
+ if (!opts.json)
445
+ reportPublish(r);
446
+ }
447
+ catch (e) {
448
+ if (e instanceof CpWriteError) {
449
+ reportCpWriteError(e, cSlug);
450
+ process.exit(1);
451
+ }
452
+ throw e;
453
+ }
454
+ }
455
+ }
456
+ else {
457
+ if (!file) {
458
+ log.error("Provide a template file, --from-workspace <id>, or --from-project <id>.");
459
+ process.exit(1);
460
+ }
461
+ try {
462
+ const tpl = parseTemplateFile(file);
463
+ yamlForValidate = tpl;
464
+ def = templateToPackageDefinition(tpl);
465
+ }
466
+ catch (e) {
467
+ log.error(e.message);
468
+ process.exit(1);
469
+ }
470
+ sourceLabel = file;
471
+ }
472
+ // 2. Validate BEFORE any publish network call (the fast author-feedback gate).
473
+ const result = validateTemplateYaml(yamlForValidate);
474
+ if (!result.ok) {
475
+ if (opts.json) {
476
+ console.log(JSON.stringify({ ok: false, stage: "validate", errors: result.errors }, null, 2));
477
+ }
478
+ else {
479
+ log.error(`${sourceLabel} failed validation — not published:`);
480
+ printValidationErrors(result.errors);
481
+ }
482
+ process.exit(1);
483
+ }
484
+ // 2b. Say what this door does NOT carry — BEFORE the publish, not after, so
485
+ // the author can still stop. Printed as a warning, never as an error: the
486
+ // export is not wrong, it is incomplete, and the package still installs.
487
+ if (dropWarnings.length > 0 && !opts.json) {
488
+ log.warn(`Serialising a live ${lossyLabel} is a LOSSY projection — these are NOT in the package:`);
489
+ for (const w of dropWarnings)
490
+ log.hint(`• ${w}`);
491
+ log.hint("See TEMPLATE-DEV-GUIDE.md — `template ≡ installed` holds publish→install, not workspace→publish.");
492
+ if (opts.fromProject) {
493
+ log.hint("Constituent workspace packages were published first (when present); the suite only requires them by slug.");
494
+ }
495
+ }
496
+ if (pricing && !opts.json) {
497
+ log.info(`Pricing stamped: one_time @ $${(pricing.priceUsd / 100).toFixed(2)} (settlement/Stripe is not this wave).`);
498
+ }
499
+ // 3. Publish.
500
+ const slug = def._meta?.slug;
501
+ try {
502
+ const r = await publishPackage(def, {
503
+ isPublic,
504
+ ...(pricing ?? {}),
505
+ });
506
+ if (opts.json) {
507
+ console.log(JSON.stringify({
508
+ ok: true,
509
+ warnings: dropWarnings,
510
+ ...(pricing
511
+ ? {
512
+ pricingModel: pricing.pricingModel,
513
+ priceUsd: pricing.priceUsd,
514
+ settlement: "not-this-wave",
515
+ }
516
+ : {}),
517
+ ...r,
518
+ }, null, 2));
519
+ return;
520
+ }
521
+ reportPublish(r);
522
+ }
523
+ catch (e) {
524
+ if (e instanceof CpWriteError) {
525
+ if (opts.json) {
526
+ console.log(JSON.stringify({ ok: false, stage: "publish", status: e.status, error: e.serverMessage, slug }, null, 2));
527
+ }
528
+ else {
529
+ reportCpWriteError(e, slug);
530
+ }
531
+ process.exit(1);
532
+ }
533
+ log.error(`Publish failed: ${e.message}`);
534
+ process.exit(1);
535
+ }
536
+ }
537
+ // ─── unpublish ───────────────────────────────────────────────────────────────
538
+ export async function marketUnpublish(slug, opts) {
539
+ try {
540
+ const r = await unpublishPackage(slug);
541
+ if (opts.json) {
542
+ console.log(JSON.stringify({ ok: true, ...r }, null, 2));
543
+ return;
544
+ }
545
+ log.success(`${chalk.bold(slug)} is now ${r.isPublic ? "public" : "private"}.`);
546
+ }
547
+ catch (e) {
548
+ if (e instanceof CpWriteError) {
549
+ if (opts.json) {
550
+ console.log(JSON.stringify({ ok: false, status: e.status, error: e.serverMessage, slug }, null, 2));
551
+ }
552
+ else {
553
+ log.error(`Unpublish failed${e.status ? ` (HTTP ${e.status})` : ""}: ${e.serverMessage}`);
554
+ // The CP PATCH door does not yet accept `isPublic` (only `podId`) — say so
555
+ // rather than leaving a bare validation error.
556
+ if (e.status === 400) {
557
+ log.hint("The control-plane PATCH door needs `isPublic` added to its allow-list (TODO cp).");
558
+ }
559
+ }
560
+ process.exit(1);
561
+ }
562
+ log.error(`Unpublish failed: ${e.message}`);
563
+ process.exit(1);
564
+ }
565
+ }
566
+ //# sourceMappingURL=market-authoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-authoring.js","sourceRoot":"","sources":["../../src/commands/market-authoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * `synap market publish --official [slug...]` — the founder's command for
3
+ * publishing the official Synap template catalog.
4
+ * ==========================================================================
5
+ *
6
+ * An ALIAS, not an implementation: it is exactly
7
+ * `synap catalog publish --official --kind workspace [slug...]` — the ONE code
8
+ * path in `catalog.ts` (`runCatalog`), which dynamic-imports the ONE catalog lib
9
+ * (`scripts/catalog-lib.mjs`) from the monorepo checkout. All the safety lives
10
+ * there: validate → diff preview → confirm (`--dry-run` previews only, `--yes`
11
+ * skips the question, non-interactive without `--yes` refuses), founder-only
12
+ * `synap-official` preflight in the lib, `synap login` CP session as the
13
+ * credential.
14
+ *
15
+ * What stays here is only what is specific to the `market publish` spelling:
16
+ * the flags `market publish` carries for its NON-official mode (a file,
17
+ * `--from-workspace`, visibility, price) are usage errors next to `--official`.
18
+ */
19
+ import { findCatalogDir, looksLikeFile, type CatalogDeps } from "./catalog.js";
20
+ export { looksLikeFile };
21
+ export interface OfficialPublishOpts {
22
+ official?: boolean;
23
+ templatesDir?: string;
24
+ dryRun?: boolean;
25
+ yes?: boolean;
26
+ json?: boolean;
27
+ public?: boolean;
28
+ private?: boolean;
29
+ price?: string;
30
+ fromWorkspace?: string;
31
+ fromProject?: string;
32
+ }
33
+ /** Seams for tests — the catalog command's own seams (one implementation). */
34
+ export type OfficialPublishDeps = CatalogDeps;
35
+ /** Kept for callers of the old name: the catalog package dir of the checkout. */
36
+ export declare const findTemplatesDir: typeof findCatalogDir;
37
+ /**
38
+ * `--official` publishes the checkout's corpus, so every flag that names some
39
+ * OTHER source or overrides what the template itself declares is a usage error —
40
+ * silently ignoring it would publish something other than what was typed.
41
+ * Returns the message, or null when the combination is valid.
42
+ */
43
+ export declare function officialUsageError(file: string | undefined, opts: OfficialPublishOpts): string | null;
44
+ /**
45
+ * Returns the process exit code (0 ok · 1 refused/failed · 2 usage). The alias:
46
+ * `market`-only usage checks, then `runCatalog("publish", …, kind workspace)`.
47
+ */
48
+ export declare function marketPublishOfficial(slugs: string[], opts: OfficialPublishOpts, deps?: OfficialPublishDeps): Promise<number>;
49
+ /**
50
+ * The flags that only mean something WITH `--official`, and the one-file rule
51
+ * of a regular publish. Without this a stray `--dry-run` on a regular publish
52
+ * would be silently ignored and the package published for real.
53
+ */
54
+ export declare function nonOfficialUsageError(targets: string[], opts: {
55
+ dryRun?: boolean;
56
+ yes?: boolean;
57
+ templatesDir?: string;
58
+ }): string | null;