@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,179 @@
1
+ /**
2
+ * The per-kind wire envelopes and the ONE unwrap — import-free on purpose.
3
+ *
4
+ * Re-exported (with the workspace types) by `./wire`, the public subpath
5
+ * `@synap-core/workspace-templates/wire`. It has no imports so a consumer that
6
+ * still resolves an older npm copy of this package (the CLI, the CP, the pod)
7
+ * can carry it as a BYTE-IDENTICAL mirror pinned by a tripwire until it can
8
+ * import the subpath. Edit it here; the mirror copies it.
9
+ *
10
+ * What `GET {CP}/api/packages/:slug` serves as `package.definition`, per kind:
11
+ * the outputs of this package's producers (`scripts/catalog-lib.mjs`
12
+ * `toPublishBody`; `toOfficialPublishBody` for workspaces) plus what the CP
13
+ * adds on store/serve (`_meta.slug` via `withTemplateSlug`,
14
+ * `capability.contentHash`).
15
+ *
16
+ * WHY: a skill package is served as `{ _meta, skill: {…} }`. Read flat, every
17
+ * field is `undefined`: install refused a "bodiless" skill and the update door
18
+ * reported "no drift" forever (founder pod 2026-10-13, creative-director). Each
19
+ * consumer had its own cast; this is the one place the envelope is known.
20
+ *
21
+ * Element fields are pinned to the catalog schema (`SKILL_FIELDS`,
22
+ * `CapabilitySpec`) and `AutomationElement` to `PackageAutomationWire` by
23
+ * `schema/wire.parity.test.ts` (compile time).
24
+ */
25
+ /** The kinds whose served definition this module describes. */
26
+ export declare const WIRE_KINDS: readonly ["workspace", "capability", "skill", "automation", "view"];
27
+ export type WireKind = (typeof WIRE_KINDS)[number];
28
+ /**
29
+ * Other names the same kinds go by: the pod's `market.install` says
30
+ * `template`, the CP category for an automation is `workflow`, and a pack is
31
+ * a workspace-shaped definition.
32
+ */
33
+ export declare const WIRE_KIND_ALIASES: {
34
+ readonly template: "workspace";
35
+ readonly pack: "workspace";
36
+ readonly workflow: "automation";
37
+ };
38
+ export type WireKindName = WireKind | keyof typeof WIRE_KIND_ALIASES;
39
+ /** `template` → `workspace`, `workflow` → `automation`; `null` for a kind with no wire contract here (e.g. `cell`). */
40
+ export declare function toWireKind(kind: string): WireKind | null;
41
+ /**
42
+ * `definition._meta` as served: the CP stamps `slug` on every row (the pod
43
+ * keys "which space is this template's?" on it); the CLI adds the `version`
44
+ * label it installs.
45
+ */
46
+ export interface WireMeta {
47
+ slug?: string;
48
+ version?: string;
49
+ [key: string]: unknown;
50
+ }
51
+ /** `meta.icon` / `color` / `domain`, mirrored onto the definition by every publish builder. */
52
+ export interface WireIdentity {
53
+ icon?: string;
54
+ color?: string;
55
+ domain?: string;
56
+ }
57
+ /** A composition dependency. */
58
+ export interface WireDependency {
59
+ slug: string;
60
+ kind?: "workspace" | "capability" | "skill" | "workflow" | "view" | "cell" | "automation";
61
+ relation?: "compose" | "require";
62
+ reason?: string;
63
+ }
64
+ export interface WireEnvelope extends WireIdentity {
65
+ _meta?: WireMeta;
66
+ dependencies?: WireDependency[];
67
+ }
68
+ /** The capability itself (`CapabilityDefinition`). */
69
+ export interface CapabilityElement {
70
+ key: string;
71
+ name: string;
72
+ description?: string;
73
+ params?: Array<Record<string, unknown>>;
74
+ vault?: Array<Record<string, unknown>>;
75
+ tools?: Array<Record<string, unknown>>;
76
+ skills?: Array<Record<string, unknown>>;
77
+ provides?: string[];
78
+ playbooks?: Array<Record<string, unknown>>;
79
+ /** Stamped by the CP on publish; the pod's drift marker. */
80
+ contentHash?: string;
81
+ automations?: Array<Record<string, unknown>>;
82
+ mcpServers?: unknown;
83
+ metadata?: Record<string, unknown>;
84
+ _generated?: unknown;
85
+ }
86
+ /** capability: `{ profiles: [], description, capability }`. */
87
+ export interface CapabilityWire extends WireEnvelope {
88
+ profiles: unknown[];
89
+ description?: string;
90
+ capability: CapabilityElement;
91
+ }
92
+ /** ONE standalone skill. Not a workspace's `skills[]` link list. */
93
+ export interface SkillElement {
94
+ /** The pod-side `load_skill` ref — its own identity, not the package slug. */
95
+ slug?: string;
96
+ name?: string;
97
+ displayName?: string;
98
+ description?: string;
99
+ kind?: "instruction" | "code" | "declarative" | "builtin";
100
+ scope?: "pod" | "user" | "workspace";
101
+ agentTypes?: string[];
102
+ body?: string;
103
+ code?: string;
104
+ providerSpec?: Record<string, unknown>;
105
+ parameters?: Record<string, unknown>;
106
+ category?: string;
107
+ executionMode?: "sync" | "async";
108
+ timeoutSeconds?: number;
109
+ intent?: string;
110
+ [key: string]: unknown;
111
+ }
112
+ /** skill: `{ skill, icon?, color?, domain?, dependencies? }`. */
113
+ export interface SkillWire extends WireEnvelope {
114
+ skill: SkillElement;
115
+ }
116
+ /** One graph automation (= `PackageAutomationWire`): `flowDefinition`, not the authored `flow`. */
117
+ export interface AutomationElement {
118
+ key?: string;
119
+ name: string;
120
+ description?: string;
121
+ triggerType: "event" | "cron" | "webhook" | "manual";
122
+ triggerConfig?: Record<string, unknown>;
123
+ flowDefinition?: {
124
+ nodes: unknown[];
125
+ edges: unknown[];
126
+ precondition?: string;
127
+ };
128
+ status?: "draft" | "active" | "paused";
129
+ }
130
+ /** automation (CP category `workflow`): `{ profiles: [], automations: [one] }`. */
131
+ export interface AutomationWire extends WireEnvelope {
132
+ profiles: unknown[];
133
+ automations: AutomationElement[];
134
+ }
135
+ /** One view, as the pod's view install and update doors read it. */
136
+ export interface ViewElement {
137
+ slug?: string;
138
+ name?: string;
139
+ displayName?: string;
140
+ description?: string;
141
+ type?: string;
142
+ config?: Record<string, unknown>;
143
+ query?: Record<string, unknown>;
144
+ metadata?: Record<string, unknown>;
145
+ scopeProfileSlugs?: string[];
146
+ scopeProfileIds?: string[];
147
+ [key: string]: unknown;
148
+ }
149
+ /** view: `{ views: [...] }`, or a legacy single view with its fields on top (has its own `type`). No catalog producer today. */
150
+ export type ViewWire = (WireEnvelope & {
151
+ views: ViewElement[];
152
+ }) | ViewElement;
153
+ /**
154
+ * What {@link unwrapPackage} returns per kind. `workspace` is the definition
155
+ * itself; `./wire` narrows it to `WorkspaceWire`.
156
+ */
157
+ export interface PackageElementByKind<W = Record<string, unknown>> {
158
+ workspace: W;
159
+ capability: CapabilityElement;
160
+ skill: SkillElement;
161
+ automation: AutomationElement[];
162
+ view: ViewElement[];
163
+ }
164
+ export type ElementOf<K extends WireKindName, W = Record<string, unknown>> = PackageElementByKind<W>[K extends WireKind ? K : K extends keyof typeof WIRE_KIND_ALIASES ? (typeof WIRE_KIND_ALIASES)[K] : never];
165
+ /**
166
+ * The installable element(s) inside a served definition:
167
+ *
168
+ * skill → the `skill` object (a legacy flat definition is the skill itself)
169
+ * capability → the `capability` object (a flat `CapabilityDefinition` — the
170
+ * pod cache / CP by-key shape — passes through)
171
+ * automation → `automations[]` (`[]` when the definition declares none)
172
+ * view → `views[]`, or a legacy flat view (top-level `type`) as `[def]`, else `[]`
173
+ * workspace → the definition itself
174
+ *
175
+ * An empty array means the definition declares none; the install doors refuse
176
+ * that themselves. A definition that is not an object is a failed read, never
177
+ * an empty one: it throws.
178
+ */
179
+ export declare function unwrapPackage<K extends WireKindName>(kind: K, definition: unknown): ElementOf<K>;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * The per-kind wire envelopes and the ONE unwrap — import-free on purpose.
3
+ *
4
+ * Re-exported (with the workspace types) by `./wire`, the public subpath
5
+ * `@synap-core/workspace-templates/wire`. It has no imports so a consumer that
6
+ * still resolves an older npm copy of this package (the CLI, the CP, the pod)
7
+ * can carry it as a BYTE-IDENTICAL mirror pinned by a tripwire until it can
8
+ * import the subpath. Edit it here; the mirror copies it.
9
+ *
10
+ * What `GET {CP}/api/packages/:slug` serves as `package.definition`, per kind:
11
+ * the outputs of this package's producers (`scripts/catalog-lib.mjs`
12
+ * `toPublishBody`; `toOfficialPublishBody` for workspaces) plus what the CP
13
+ * adds on store/serve (`_meta.slug` via `withTemplateSlug`,
14
+ * `capability.contentHash`).
15
+ *
16
+ * WHY: a skill package is served as `{ _meta, skill: {…} }`. Read flat, every
17
+ * field is `undefined`: install refused a "bodiless" skill and the update door
18
+ * reported "no drift" forever (founder pod 2026-10-13, creative-director). Each
19
+ * consumer had its own cast; this is the one place the envelope is known.
20
+ *
21
+ * Element fields are pinned to the catalog schema (`SKILL_FIELDS`,
22
+ * `CapabilitySpec`) and `AutomationElement` to `PackageAutomationWire` by
23
+ * `schema/wire.parity.test.ts` (compile time).
24
+ */
25
+ // ─── Kinds ──────────────────────────────────────────────────────────────────
26
+ /** The kinds whose served definition this module describes. */
27
+ export const WIRE_KINDS = ["workspace", "capability", "skill", "automation", "view"];
28
+ /**
29
+ * Other names the same kinds go by: the pod's `market.install` says
30
+ * `template`, the CP category for an automation is `workflow`, and a pack is
31
+ * a workspace-shaped definition.
32
+ */
33
+ export const WIRE_KIND_ALIASES = {
34
+ template: "workspace",
35
+ pack: "workspace",
36
+ workflow: "automation",
37
+ };
38
+ /** `template` → `workspace`, `workflow` → `automation`; `null` for a kind with no wire contract here (e.g. `cell`). */
39
+ export function toWireKind(kind) {
40
+ if (WIRE_KINDS.includes(kind))
41
+ return kind;
42
+ return WIRE_KIND_ALIASES[kind] ?? null;
43
+ }
44
+ // ─── The ONE unwrap ─────────────────────────────────────────────────────────
45
+ const isRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
46
+ export function unwrapPackage(kind, definition) {
47
+ const wireKind = toWireKind(kind);
48
+ if (!wireKind)
49
+ throw new Error(`unwrapPackage: "${kind}" has no wire contract`);
50
+ if (!isRecord(definition)) {
51
+ throw new TypeError(`unwrapPackage(${kind}): the definition is not an object (${definition === null ? "null" : Array.isArray(definition) ? "array" : typeof definition})`);
52
+ }
53
+ switch (wireKind) {
54
+ case "skill":
55
+ return isRecord(definition.skill) ? definition.skill : definition;
56
+ case "capability":
57
+ return isRecord(definition.capability) ? definition.capability : definition;
58
+ case "automation":
59
+ return Array.isArray(definition.automations) ? definition.automations : [];
60
+ case "view":
61
+ if (Array.isArray(definition.views) && definition.views.length > 0)
62
+ return definition.views;
63
+ return definition.type ? [definition] : [];
64
+ case "workspace":
65
+ return definition;
66
+ }
67
+ }
68
+ //# sourceMappingURL=package-wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-wire.js","sourceRoot":"","sources":["../../src/lib/package-wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,+EAA+E;AAE/E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAG9F;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,YAAY;CACqB,CAAC;AAG9C,uHAAuH;AACvH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAK,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAgB,CAAC;IAC9E,OAAQ,iBAA8C,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACvE,CAAC;AA8ID,+EAA+E;AAE/E,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAgC,EAAE,CAC5D,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAiB3D,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,UAAmB;IAC7D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,wBAAwB,CAAC,CAAC;IAChF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CACjB,iBAAiB,IAAI,uCAAuC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,UAAU,GAAG,CACtJ,CAAC;IACJ,CAAC;IACD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QACpE,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9E,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,KAAK,MAAM;YACT,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,UAAU,CAAC,KAAK,CAAC;YAC5F,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,KAAK,WAAW;YACd,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Phone pairing — the link `synap init` prints as a QR so Relay can reach this pod.
3
+ *
4
+ * Contract (Relay is the receiver; it owns the screen that consumes it):
5
+ *
6
+ * synap://pair?v=1&pod=<url-encoded pod origin>[&email=<CP account>]
7
+ *
8
+ * - `v` grammar version. A receiver that sees an unknown `v` must refuse
9
+ * and say "update Relay", never guess.
10
+ * - `pod` the pod's ORIGIN only (scheme + host + port, no path). https, or
11
+ * http for a LAN host only: a public host over plain http would
12
+ * send the phone's sign-in in the clear, so it is refused. Relay
13
+ * pre-fills its sign-in with this pod; it never trusts it for auth.
14
+ * - `email` OPTIONAL: the Synap account the CLI is signed in to. Relay
15
+ * pre-fills the sign-in email with it. Not a credential.
16
+ *
17
+ * `token` is RESERVED by Relay's parser (it ignores it) for a future
18
+ * short-lived pairing token. No pod or CP door mints one yet, so the builder
19
+ * takes none; add the parameter when that door exists.
20
+ *
21
+ * The scheme is `synap` (relay's app.json declares `["synap", "relay"]`), and a
22
+ * single-segment host (`pair`) is what relay's `useDeepLinkHandler` reads as
23
+ * `deepLinkPath === "pair"`.
24
+ */
25
+ export declare const PAIR_LINK_VERSION = "1";
26
+ export type PairLinkResult = {
27
+ ok: true;
28
+ link: string;
29
+ } | {
30
+ ok: false;
31
+ reason: "invalid-url" | "loopback" | "insecure";
32
+ };
33
+ export declare function buildPairLink(opts: {
34
+ podUrl: string;
35
+ email?: string;
36
+ }): PairLinkResult;
37
+ /** The link as a terminal QR code (half-block characters, fits ~30 rows). */
38
+ export declare function renderTerminalQr(text: string): Promise<string>;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Phone pairing — the link `synap init` prints as a QR so Relay can reach this pod.
3
+ *
4
+ * Contract (Relay is the receiver; it owns the screen that consumes it):
5
+ *
6
+ * synap://pair?v=1&pod=<url-encoded pod origin>[&email=<CP account>]
7
+ *
8
+ * - `v` grammar version. A receiver that sees an unknown `v` must refuse
9
+ * and say "update Relay", never guess.
10
+ * - `pod` the pod's ORIGIN only (scheme + host + port, no path). https, or
11
+ * http for a LAN host only: a public host over plain http would
12
+ * send the phone's sign-in in the clear, so it is refused. Relay
13
+ * pre-fills its sign-in with this pod; it never trusts it for auth.
14
+ * - `email` OPTIONAL: the Synap account the CLI is signed in to. Relay
15
+ * pre-fills the sign-in email with it. Not a credential.
16
+ *
17
+ * `token` is RESERVED by Relay's parser (it ignores it) for a future
18
+ * short-lived pairing token. No pod or CP door mints one yet, so the builder
19
+ * takes none; add the parameter when that door exists.
20
+ *
21
+ * The scheme is `synap` (relay's app.json declares `["synap", "relay"]`), and a
22
+ * single-segment host (`pair`) is what relay's `useDeepLinkHandler` reads as
23
+ * `deepLinkPath === "pair"`.
24
+ */
25
+ import QRCode from "qrcode";
26
+ export const PAIR_LINK_VERSION = "1";
27
+ /** Hosts a phone can never reach: the pod is only on this computer. */
28
+ function isLoopbackHost(h) {
29
+ return h === "localhost" || h.endsWith(".localhost") || h === "::1" || h === "0.0.0.0" || /^127\./.test(h);
30
+ }
31
+ /** A host only reachable on the local network, where plain http is tolerable. */
32
+ function isLanHost(h) {
33
+ if (h.endsWith(".local") || h.endsWith(".lan") || h.endsWith(".home.arpa"))
34
+ return true;
35
+ const m = /^(\d{1,3})\.(\d{1,3})\.\d{1,3}\.\d{1,3}$/.exec(h);
36
+ if (m) {
37
+ const a = Number(m[1]);
38
+ const b = Number(m[2]);
39
+ return a === 10 || (a === 172 && b >= 16 && b <= 31) || (a === 192 && b === 168) || (a === 169 && b === 254);
40
+ }
41
+ // IPv6 unique-local (fc00::/7) and link-local (fe80::/10).
42
+ return /^f[cd][0-9a-f]{2}:/.test(h) || /^fe[89ab][0-9a-f]:/.test(h);
43
+ }
44
+ export function buildPairLink(opts) {
45
+ let url;
46
+ try {
47
+ url = new URL(opts.podUrl);
48
+ }
49
+ catch {
50
+ return { ok: false, reason: "invalid-url" };
51
+ }
52
+ if (url.protocol !== "https:" && url.protocol !== "http:")
53
+ return { ok: false, reason: "invalid-url" };
54
+ const host = url.hostname.replace(/^\[|\]$/g, "").toLowerCase();
55
+ if (isLoopbackHost(host))
56
+ return { ok: false, reason: "loopback" };
57
+ if (url.protocol === "http:" && !isLanHost(host))
58
+ return { ok: false, reason: "insecure" };
59
+ const params = new URLSearchParams({ v: PAIR_LINK_VERSION, pod: url.origin });
60
+ if (opts.email)
61
+ params.set("email", opts.email);
62
+ return { ok: true, link: `synap://pair?${params.toString()}` };
63
+ }
64
+ /** The link as a terminal QR code (half-block characters, fits ~30 rows). */
65
+ export async function renderTerminalQr(text) {
66
+ return QRCode.toString(text, { type: "terminal", small: true });
67
+ }
68
+ //# sourceMappingURL=pair-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pair-link.js","sourceRoot":"","sources":["../../src/lib/pair-link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Pod-wide vocabulary — ONE canonical spelling for "not scoped to a workspace".
3
+ *
4
+ * The CLI had four different spellings of the pod-wide idea:
5
+ *
6
+ * 1. `--global` boolean flag on `capture` (index.ts:648 → knowledge.ts:628)
7
+ * 2. omitting `--workspace` documented as "(omit for pod-wide)" on ask/capture/
8
+ * knowledge/cell (index.ts:318, 623, 896, 1858)
9
+ * 3. omitting `--pin-workspace` documented as "(default: pod-wide lens)" (index.ts:116)
10
+ * 4. `__pod_wide__` internal sentinel in the launch picker (launch.ts:576)
11
+ *
12
+ * Only #1 is a knob the user TYPES to opt in; #2 and #3 are absences (a
13
+ * different mechanism — you cannot alias "not passing a flag"), and #4 never
14
+ * leaves the process. So the unification here is narrow and honest: canonicalise
15
+ * the typed opt-in, and leave the absences alone rather than pretend they are
16
+ * spellings of the same switch.
17
+ *
18
+ * CANONICAL: `--pod-wide`. Chosen over `--global` because "global" is already
19
+ * overloaded in this CLI to mean "durable rather than per-session" — `synap use`
20
+ * and `synap project use` both report `scope: "global"` for exactly that other
21
+ * meaning (data.ts:229,281; lens.ts:227,355,396). "Pod-wide" is the term the
22
+ * data model and every help string already use for the scope axis, so it is the
23
+ * one that cannot be misread.
24
+ *
25
+ * `--global` remains an accepted ALIAS — it is what every existing script and
26
+ * the `synap capture --global` line in CLAUDE.md types, and breaking that to win
27
+ * a naming argument would be a worse defect than the inconsistency.
28
+ */
29
+ /** Every accepted spelling of the pod-wide opt-in. First entry is canonical. */
30
+ export declare const POD_WIDE_FLAGS: readonly ["pod-wide", "global"];
31
+ /** True when a user-supplied scope value spells "pod-wide" rather than naming a workspace. */
32
+ export declare function isPodWideToken(value: string | undefined | null): boolean;
33
+ /**
34
+ * Resolve the pod-wide opt-in from parsed options, accepting every spelling.
35
+ * Commander camel-cases `--pod-wide` to `podWide`.
36
+ */
37
+ export declare function resolvePodWide(opts: {
38
+ podWide?: boolean;
39
+ global?: boolean;
40
+ }): boolean;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Pod-wide vocabulary — ONE canonical spelling for "not scoped to a workspace".
3
+ *
4
+ * The CLI had four different spellings of the pod-wide idea:
5
+ *
6
+ * 1. `--global` boolean flag on `capture` (index.ts:648 → knowledge.ts:628)
7
+ * 2. omitting `--workspace` documented as "(omit for pod-wide)" on ask/capture/
8
+ * knowledge/cell (index.ts:318, 623, 896, 1858)
9
+ * 3. omitting `--pin-workspace` documented as "(default: pod-wide lens)" (index.ts:116)
10
+ * 4. `__pod_wide__` internal sentinel in the launch picker (launch.ts:576)
11
+ *
12
+ * Only #1 is a knob the user TYPES to opt in; #2 and #3 are absences (a
13
+ * different mechanism — you cannot alias "not passing a flag"), and #4 never
14
+ * leaves the process. So the unification here is narrow and honest: canonicalise
15
+ * the typed opt-in, and leave the absences alone rather than pretend they are
16
+ * spellings of the same switch.
17
+ *
18
+ * CANONICAL: `--pod-wide`. Chosen over `--global` because "global" is already
19
+ * overloaded in this CLI to mean "durable rather than per-session" — `synap use`
20
+ * and `synap project use` both report `scope: "global"` for exactly that other
21
+ * meaning (data.ts:229,281; lens.ts:227,355,396). "Pod-wide" is the term the
22
+ * data model and every help string already use for the scope axis, so it is the
23
+ * one that cannot be misread.
24
+ *
25
+ * `--global` remains an accepted ALIAS — it is what every existing script and
26
+ * the `synap capture --global` line in CLAUDE.md types, and breaking that to win
27
+ * a naming argument would be a worse defect than the inconsistency.
28
+ */
29
+ /** Every accepted spelling of the pod-wide opt-in. First entry is canonical. */
30
+ export const POD_WIDE_FLAGS = ["pod-wide", "global"];
31
+ /** Accepted string tokens meaning "pod-wide" where a scope VALUE is parsed. */
32
+ const POD_WIDE_TOKENS = new Set(["pod", "pod-wide", "podwide", "pod_wide", "global"]);
33
+ /** True when a user-supplied scope value spells "pod-wide" rather than naming a workspace. */
34
+ export function isPodWideToken(value) {
35
+ if (!value)
36
+ return false;
37
+ return POD_WIDE_TOKENS.has(value.trim().toLowerCase());
38
+ }
39
+ /**
40
+ * Resolve the pod-wide opt-in from parsed options, accepting every spelling.
41
+ * Commander camel-cases `--pod-wide` to `podWide`.
42
+ */
43
+ export function resolvePodWide(opts) {
44
+ return Boolean(opts.podWide || opts.global);
45
+ }
46
+ //# sourceMappingURL=pod-wide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod-wide.js","sourceRoot":"","sources":["../../src/lib/pod-wide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAU,CAAC;AAE9D,+EAA+E;AAC/E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtF,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAAC,KAAgC;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAA6C;IAC1E,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC"}