@synap-core/cli 1.11.0 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -198
- package/dist/build-info.json +6 -0
- package/dist/commands/agent-run.js +3 -2
- package/dist/commands/agent-run.js.map +1 -1
- package/dist/commands/agents.d.ts +33 -17
- package/dist/commands/agents.js +203 -237
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/app.d.ts +143 -0
- package/dist/commands/app.js +523 -0
- package/dist/commands/app.js.map +1 -0
- package/dist/commands/automate.d.ts +21 -0
- package/dist/commands/automate.js +42 -0
- package/dist/commands/automate.js.map +1 -0
- package/dist/commands/automation-schema.test.d.ts +16 -0
- package/dist/commands/automation-schema.test.js +77 -0
- package/dist/commands/automation-schema.test.js.map +1 -0
- package/dist/commands/automation.d.ts +12 -0
- package/dist/commands/automation.js +80 -35
- package/dist/commands/automation.js.map +1 -1
- package/dist/commands/bridge-setup.d.ts +14 -1
- package/dist/commands/bridge-setup.js +392 -128
- package/dist/commands/bridge-setup.js.map +1 -1
- package/dist/commands/cap-connections.d.ts +4 -4
- package/dist/commands/cap-connections.js +14 -14
- package/dist/commands/cap-connections.js.map +1 -1
- package/dist/commands/capability.d.ts +2 -0
- package/dist/commands/capability.js +218 -168
- package/dist/commands/capability.js.map +1 -1
- package/dist/commands/catalog.d.ts +275 -0
- package/dist/commands/catalog.js +481 -0
- package/dist/commands/catalog.js.map +1 -0
- package/dist/commands/cell.d.ts +155 -8
- package/dist/commands/cell.js +416 -40
- package/dist/commands/cell.js.map +1 -1
- package/dist/commands/centrality.js +1 -13
- package/dist/commands/centrality.js.map +1 -1
- package/dist/commands/connect.d.ts +38 -13
- package/dist/commands/connect.js +68 -167
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/connections.d.ts +3 -2
- package/dist/commands/connections.js +95 -25
- package/dist/commands/connections.js.map +1 -1
- package/dist/commands/context.js +7 -1
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/data-extra.d.ts +34 -0
- package/dist/commands/data-extra.js +193 -23
- package/dist/commands/data-extra.js.map +1 -1
- package/dist/commands/data.d.ts +120 -2
- package/dist/commands/data.js +293 -20
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/diagnose.d.ts +66 -4
- package/dist/commands/diagnose.js +285 -28
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/doc.d.ts +11 -4
- package/dist/commands/doc.js +39 -14
- package/dist/commands/doc.js.map +1 -1
- package/dist/commands/doctor.d.ts +112 -3
- package/dist/commands/doctor.js +657 -32
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/explain.js +5 -5
- package/dist/commands/explain.js.map +1 -1
- package/dist/commands/import.d.ts +368 -13
- package/dist/commands/import.js +1064 -54
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +20 -9
- package/dist/commands/init.js +433 -973
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/keys.d.ts +1 -0
- package/dist/commands/keys.js +15 -2
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/knowledge.d.ts +22 -6
- package/dist/commands/knowledge.js +117 -55
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/lens.d.ts +37 -1
- package/dist/commands/lens.js +192 -71
- package/dist/commands/lens.js.map +1 -1
- package/dist/commands/market-authoring.d.ts +29 -2
- package/dist/commands/market-authoring.js +348 -7
- package/dist/commands/market-authoring.js.map +1 -1
- package/dist/commands/market-official.d.ts +58 -0
- package/dist/commands/market-official.js +84 -0
- package/dist/commands/market-official.js.map +1 -0
- package/dist/commands/market.d.ts +400 -16
- package/dist/commands/market.js +1802 -146
- package/dist/commands/market.js.map +1 -1
- package/dist/commands/mcp.d.ts +60 -25
- package/dist/commands/mcp.js +251 -64
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/open.d.ts +39 -9
- package/dist/commands/open.js +80 -25
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/playbook.d.ts +42 -0
- package/dist/commands/playbook.js +162 -0
- package/dist/commands/playbook.js.map +1 -0
- package/dist/commands/pod.js +1 -1
- package/dist/commands/pod.js.map +1 -1
- package/dist/commands/pods.d.ts +5 -0
- package/dist/commands/pods.js +97 -116
- package/dist/commands/pods.js.map +1 -1
- package/dist/commands/proposals-actions.d.ts +62 -0
- package/dist/commands/proposals-actions.js +143 -8
- package/dist/commands/proposals-actions.js.map +1 -1
- package/dist/commands/proposals-await.d.ts +68 -0
- package/dist/commands/proposals-await.js +248 -0
- package/dist/commands/proposals-await.js.map +1 -0
- package/dist/commands/proton-setup.d.ts +73 -0
- package/dist/commands/proton-setup.js +577 -0
- package/dist/commands/proton-setup.js.map +1 -0
- package/dist/commands/providers.d.ts +23 -0
- package/dist/commands/providers.js +126 -1
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/raycast.js +6 -2
- package/dist/commands/raycast.js.map +1 -1
- package/dist/commands/rule.d.ts +150 -0
- package/dist/commands/rule.js +447 -0
- package/dist/commands/rule.js.map +1 -0
- package/dist/commands/session-wait.d.ts +111 -0
- package/dist/commands/session-wait.js +209 -0
- package/dist/commands/session-wait.js.map +1 -0
- package/dist/commands/sessions.d.ts +52 -0
- package/dist/commands/sessions.js +478 -58
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/skill-manage.d.ts +21 -0
- package/dist/commands/skill-manage.js +136 -19
- package/dist/commands/skill-manage.js.map +1 -1
- package/dist/commands/skills.js +16 -0
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/status.d.ts +1 -4
- package/dist/commands/status.js +5 -34
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/statusline.backoff.test.d.ts +13 -0
- package/dist/commands/statusline.backoff.test.js +100 -0
- package/dist/commands/statusline.backoff.test.js.map +1 -0
- package/dist/commands/statusline.js +16 -9
- package/dist/commands/statusline.js.map +1 -1
- package/dist/commands/sync-status.d.ts +12 -0
- package/dist/commands/sync-status.js +125 -0
- package/dist/commands/sync-status.js.map +1 -0
- package/dist/commands/templates-retire.d.ts +34 -0
- package/dist/commands/templates-retire.js +192 -0
- package/dist/commands/templates-retire.js.map +1 -0
- package/dist/commands/tools.js +6 -21
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/tracks.d.ts +51 -0
- package/dist/commands/tracks.js +291 -0
- package/dist/commands/tracks.js.map +1 -0
- package/dist/commands/update.d.ts +3 -11
- package/dist/commands/update.js +5 -134
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upload.d.ts +41 -3
- package/dist/commands/upload.js +120 -18
- package/dist/commands/upload.js.map +1 -1
- package/dist/commands/vendor.d.ts +28 -0
- package/dist/commands/vendor.js +110 -0
- package/dist/commands/vendor.js.map +1 -0
- package/dist/commands/versions.js +6 -0
- package/dist/commands/versions.js.map +1 -1
- package/dist/commands/view.js +10 -5
- package/dist/commands/view.js.map +1 -1
- package/dist/commands/whoami.d.ts +23 -3
- package/dist/commands/whoami.js +169 -23
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/worker.d.ts +122 -0
- package/dist/commands/worker.js +435 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/commands/worker.test.d.ts +1 -0
- package/dist/commands/worker.test.js +116 -0
- package/dist/commands/worker.test.js.map +1 -0
- package/dist/commands/workspace-ops.d.ts +35 -0
- package/dist/commands/workspace-ops.js +153 -0
- package/dist/commands/workspace-ops.js.map +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +900 -180
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-connections.d.ts +31 -0
- package/dist/lib/agent-connections.js +33 -0
- package/dist/lib/agent-connections.js.map +1 -0
- package/dist/lib/agent-detect.d.ts +27 -0
- package/dist/lib/agent-detect.js +71 -0
- package/dist/lib/agent-detect.js.map +1 -0
- package/dist/lib/agent-door.d.ts +138 -0
- package/dist/lib/agent-door.js +426 -0
- package/dist/lib/agent-door.js.map +1 -0
- package/dist/lib/agents-config.d.ts +2 -0
- package/dist/lib/agents-config.js +4 -9
- package/dist/lib/agents-config.js.map +1 -1
- package/dist/lib/approval-poll.d.ts +31 -2
- package/dist/lib/approval-poll.js +20 -7
- package/dist/lib/approval-poll.js.map +1 -1
- package/dist/lib/atomic-file.d.ts +48 -0
- package/dist/lib/atomic-file.js +129 -0
- package/dist/lib/atomic-file.js.map +1 -0
- package/dist/lib/auth.d.ts +14 -9
- package/dist/lib/auth.js +44 -61
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/batch-approval.d.ts +85 -0
- package/dist/lib/batch-approval.js +170 -0
- package/dist/lib/batch-approval.js.map +1 -0
- package/dist/lib/capture-lane.d.ts +6 -5
- package/dist/lib/capture-lane.js +6 -5
- package/dist/lib/capture-lane.js.map +1 -1
- package/dist/lib/capture-structure.d.ts +230 -11
- package/dist/lib/capture-structure.js +251 -13
- package/dist/lib/capture-structure.js.map +1 -1
- package/dist/lib/catalog-templates.d.ts +59 -0
- package/dist/lib/catalog-templates.js +126 -0
- package/dist/lib/catalog-templates.js.map +1 -0
- package/dist/lib/cli-build.d.ts +19 -0
- package/dist/lib/cli-build.js +37 -0
- package/dist/lib/cli-build.js.map +1 -0
- package/dist/lib/conversation-headers.d.ts +18 -0
- package/dist/lib/conversation-headers.js +32 -0
- package/dist/lib/conversation-headers.js.map +1 -0
- package/dist/lib/cp-packages.d.ts +167 -11
- package/dist/lib/cp-packages.js +253 -21
- package/dist/lib/cp-packages.js.map +1 -1
- package/dist/lib/credential-class.d.ts +117 -0
- package/dist/lib/credential-class.js +116 -0
- package/dist/lib/credential-class.js.map +1 -0
- package/dist/lib/describe-lens.d.ts +35 -0
- package/dist/lib/describe-lens.js +40 -0
- package/dist/lib/describe-lens.js.map +1 -1
- package/dist/lib/device-connect.d.ts +125 -0
- package/dist/lib/device-connect.js +256 -0
- package/dist/lib/device-connect.js.map +1 -0
- package/dist/lib/directory-lens.d.ts +99 -0
- package/dist/lib/directory-lens.js +187 -0
- package/dist/lib/directory-lens.js.map +1 -0
- package/dist/lib/exporter-coverage.d.ts +71 -0
- package/dist/lib/exporter-coverage.js +97 -0
- package/dist/lib/exporter-coverage.js.map +1 -0
- package/dist/lib/hub-client.d.ts +29 -8
- package/dist/lib/hub-client.js +328 -55
- package/dist/lib/hub-client.js.map +1 -1
- package/dist/lib/init-connect.d.ts +41 -0
- package/dist/lib/init-connect.js +75 -0
- package/dist/lib/init-connect.js.map +1 -0
- package/dist/lib/init-exit.d.ts +24 -0
- package/dist/lib/init-exit.js +41 -0
- package/dist/lib/init-exit.js.map +1 -0
- package/dist/lib/init-flow.d.ts +25 -0
- package/dist/lib/init-flow.js +40 -0
- package/dist/lib/init-flow.js.map +1 -0
- package/dist/lib/init-handoff.d.ts +16 -0
- package/dist/lib/init-handoff.js +19 -0
- package/dist/lib/init-handoff.js.map +1 -0
- package/dist/lib/init-output.d.ts +18 -0
- package/dist/lib/init-output.js +43 -0
- package/dist/lib/init-output.js.map +1 -0
- package/dist/lib/init-pod.d.ts +45 -0
- package/dist/lib/init-pod.js +36 -0
- package/dist/lib/init-pod.js.map +1 -0
- package/dist/lib/installed.d.ts +210 -11
- package/dist/lib/installed.js +234 -36
- package/dist/lib/installed.js.map +1 -1
- package/dist/lib/key-approval.d.ts +57 -0
- package/dist/lib/key-approval.js +117 -0
- package/dist/lib/key-approval.js.map +1 -0
- package/dist/lib/key-diagnosis.d.ts +56 -0
- package/dist/lib/key-diagnosis.js +227 -0
- package/dist/lib/key-diagnosis.js.map +1 -0
- package/dist/lib/key-doctor.d.ts +136 -0
- package/dist/lib/key-doctor.js +286 -0
- package/dist/lib/key-doctor.js.map +1 -0
- package/dist/lib/key-locations.d.ts +120 -0
- package/dist/lib/key-locations.js +326 -0
- package/dist/lib/key-locations.js.map +1 -0
- package/dist/lib/key-source.d.ts +66 -0
- package/dist/lib/key-source.js +106 -0
- package/dist/lib/key-source.js.map +1 -0
- package/dist/lib/key-state.d.ts +70 -0
- package/dist/lib/key-state.js +115 -0
- package/dist/lib/key-state.js.map +1 -0
- package/dist/lib/kind-package.d.ts +181 -0
- package/dist/lib/kind-package.js +679 -0
- package/dist/lib/kind-package.js.map +1 -0
- package/dist/lib/knowledge-title.d.ts +24 -0
- package/dist/lib/knowledge-title.js +46 -0
- package/dist/lib/knowledge-title.js.map +1 -0
- package/dist/lib/knowledge-title.test.d.ts +1 -0
- package/dist/lib/knowledge-title.test.js +34 -0
- package/dist/lib/knowledge-title.test.js.map +1 -0
- package/dist/lib/machine-instance.d.ts +64 -0
- package/dist/lib/machine-instance.js +142 -0
- package/dist/lib/machine-instance.js.map +1 -0
- package/dist/lib/mcp-bridge.d.ts +42 -0
- package/dist/lib/mcp-bridge.js +147 -0
- package/dist/lib/mcp-bridge.js.map +1 -0
- package/dist/lib/mcp-bridge.test.d.ts +1 -0
- package/dist/lib/mcp-bridge.test.js +90 -0
- package/dist/lib/mcp-bridge.test.js.map +1 -0
- package/dist/lib/mcp-call.d.ts +30 -0
- package/dist/lib/mcp-call.js +107 -0
- package/dist/lib/mcp-call.js.map +1 -0
- package/dist/lib/mcp-snippets.d.ts +53 -0
- package/dist/lib/mcp-snippets.js +82 -0
- package/dist/lib/mcp-snippets.js.map +1 -0
- package/dist/lib/next-steps.d.ts +8 -0
- package/dist/lib/next-steps.js +31 -1
- package/dist/lib/next-steps.js.map +1 -1
- package/dist/lib/package-wire.d.ts +179 -0
- package/dist/lib/package-wire.js +68 -0
- package/dist/lib/package-wire.js.map +1 -0
- package/dist/lib/pair-link.d.ts +38 -0
- package/dist/lib/pair-link.js +68 -0
- package/dist/lib/pair-link.js.map +1 -0
- package/dist/lib/pod-wide.d.ts +40 -0
- package/dist/lib/pod-wide.js +46 -0
- package/dist/lib/pod-wide.js.map +1 -0
- package/dist/lib/pod.d.ts +66 -112
- package/dist/lib/pod.js +134 -412
- package/dist/lib/pod.js.map +1 -1
- package/dist/lib/project-ref.d.ts +9 -3
- package/dist/lib/project-ref.js +10 -4
- package/dist/lib/project-ref.js.map +1 -1
- package/dist/lib/review-credential.d.ts +119 -0
- package/dist/lib/review-credential.js +147 -0
- package/dist/lib/review-credential.js.map +1 -0
- package/dist/lib/safe-open.d.ts +49 -0
- package/dist/lib/safe-open.js +119 -0
- package/dist/lib/safe-open.js.map +1 -0
- package/dist/lib/session-lens.d.ts +40 -1
- package/dist/lib/session-lens.js +54 -4
- package/dist/lib/session-lens.js.map +1 -1
- package/dist/lib/superwhisper-import.d.ts +8 -0
- package/dist/lib/superwhisper-import.js +14 -7
- package/dist/lib/superwhisper-import.js.map +1 -1
- package/dist/lib/superwhisper-title.test.d.ts +1 -0
- package/dist/lib/superwhisper-title.test.js +18 -0
- package/dist/lib/superwhisper-title.test.js.map +1 -0
- package/dist/lib/targets.d.ts +134 -10
- package/dist/lib/targets.js +962 -258
- package/dist/lib/targets.js.map +1 -1
- package/dist/lib/template-file.d.ts +4 -0
- package/dist/lib/template-file.js.map +1 -1
- package/dist/lib/template-lifecycle.d.ts +217 -0
- package/dist/lib/template-lifecycle.js +433 -0
- package/dist/lib/template-lifecycle.js.map +1 -0
- package/dist/lib/template-steps.d.ts +88 -0
- package/dist/lib/template-steps.js +118 -0
- package/dist/lib/template-steps.js.map +1 -0
- package/dist/lib/time-ago.d.ts +2 -0
- package/dist/lib/time-ago.js +15 -0
- package/dist/lib/time-ago.js.map +1 -0
- package/dist/utils/logger.js +5 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +23 -17
- package/skills/README.md +12 -10
- package/skills/agent-os/SKILL.md +214 -99
- package/skills/manifest.json +1 -1
- package/skills/onboard/SKILL.md +55 -26
- package/skills/synap/README.md +5 -8
- package/skills/synap/SKILL.md +1086 -283
- package/skills/synap/_order.txt +7 -0
- package/skills/synap/_skill.yaml +1 -1
- package/skills/synap/automations.md +15 -0
- package/skills/synap/capture.md +5 -0
- package/skills/synap/cli-operations.md +24 -18
- package/skills/synap/concepts.md +28 -0
- package/skills/synap/content-os.md +10 -1
- package/skills/synap/creative-loop.md +15 -10
- package/skills/synap/crm.md +21 -52
- package/skills/synap/document-embeds.md +141 -47
- package/skills/synap/escalation-ladder.md +20 -10
- package/skills/synap/focus-sessions.md +47 -21
- package/skills/synap/from-intent.md +142 -0
- package/skills/synap/governance-rules.md +4 -4
- package/skills/synap/governance.md +10 -7
- package/skills/synap/hand-off.md +33 -0
- package/skills/synap/inline-patterns.md +15 -7
- package/skills/synap/lenses.md +33 -15
- package/skills/synap/linking.md +41 -40
- package/skills/synap/mcp-remote-servers.md +64 -0
- package/skills/synap/mental-model.md +17 -15
- package/skills/synap/operating-mode-rules.md +1 -1
- package/skills/synap/processes.md +118 -0
- package/skills/synap/quick-reference.md +5 -1
- package/skills/synap/reading.md +3 -1
- package/skills/synap/reflexes.md +12 -42
- package/skills/synap/viewframe-cells.md +38 -5
- package/skills/synap/work-flow.md +1 -1
- package/skills/synap/work-model.md +96 -0
- package/skills/synap/worked-examples.md +4 -5
- package/skills/synap/workspace-design.md +14 -10
- package/skills/synap/writes.md +97 -24
- package/skills/synap/writing-titles.md +63 -0
- package/skills/synap-app/SKILL.md +2 -2
- package/skills/synap-app/_skill.yaml +1 -1
- package/skills/synap-app/install-commands.md +1 -1
- package/skills/synap-design/SKILL.md +474 -0
- package/skills/synap-design/_order.txt +4 -0
- package/skills/synap-design/_skill.yaml +21 -0
- package/skills/synap-design/loop.md +134 -0
- package/skills/synap-design/overview.md +44 -0
- package/skills/synap-design/principles.md +130 -0
- package/skills/synap-design/system.md +133 -0
- package/skills/synap-market/SKILL.md +306 -16
- package/skills/synap-market/_skill.yaml +1 -1
- package/skills/synap-market/author-and-publish.md +145 -8
- package/skills/synap-market/governance-and-catalog.md +7 -0
- package/skills/synap-market/install.md +79 -1
- package/skills/synap-market/overview.md +74 -6
- package/skills/synap-schema/SKILL.md +172 -10
- package/skills/synap-schema/_order.txt +2 -0
- package/skills/synap-schema/_skill.yaml +4 -2
- package/skills/synap-schema/common-mistakes.md +4 -2
- package/skills/synap-schema/discover-profiles.md +1 -1
- package/skills/synap-schema/entity-scope.md +15 -3
- package/skills/synap-schema/extend-first.md +29 -0
- package/skills/synap-schema/extend-vs-create.md +1 -1
- package/skills/synap-schema/intent-vocabulary-ssot.md +111 -0
- package/skills/synap-schema/property-types.md +1 -1
- package/skills/synap-schema/relations.md +1 -1
- package/skills/synap-ui/SKILL.md +19 -12
- package/skills/synap-ui/_skill.yaml +1 -1
- package/skills/synap-ui/ai-companion.md +1 -1
- package/skills/synap-ui/arranging-bento.md +2 -0
- package/skills/synap-ui/bento-layouts.md +10 -10
- package/skills/synap-ui/bento-recipes.md +313 -543
- package/skills/synap-ui/four-builds.md +5 -0
- package/skills/synap-ui/view-types.md +2 -2
- package/skills/synap-ui/widget-catalog.md +22 -278
- package/templates/automations/bookmark-enrichment.automation.json +290 -13
- package/templates/automations/url-bookmark-capture.automation.json +73 -11
- package/templates/skills/authoring-playbooks/SKILL.md +6 -3
- package/templates/skills/authoring-playbooks/reference/stages-contract.md +15 -0
- package/templates/skills/authoring-playbooks/reference/worked-example.md +3 -0
- package/dist/commands/infra.d.ts +0 -21
- package/dist/commands/infra.js +0 -262
- package/dist/commands/infra.js.map +0 -1
- package/dist/commands/template.d.ts +0 -42
- package/dist/commands/template.js +0 -191
- package/dist/commands/template.js.map +0 -1
- package/dist/lib/browser-auth.d.ts +0 -35
- package/dist/lib/browser-auth.js +0 -170
- package/dist/lib/browser-auth.js.map +0 -1
- package/dist/lib/openclaw.d.ts +0 -32
- package/dist/lib/openclaw.js +0 -164
- package/dist/lib/openclaw.js.map +0 -1
- package/dist/lib/seed.d.ts +0 -13
- package/dist/lib/seed.js +0 -135
- package/dist/lib/seed.js.map +0 -1
- package/node_modules/@synap/hub-rest-client/dist/index.cjs +0 -1261
- package/node_modules/@synap/hub-rest-client/dist/index.d.cts +0 -1647
- package/node_modules/@synap/hub-rest-client/dist/index.d.ts +0 -1647
- package/node_modules/@synap/hub-rest-client/dist/index.js +0 -1231
- package/node_modules/@synap/hub-rest-client/package.json +0 -45
- package/node_modules/@synap/hub-rest-client/src/client.ts +0 -1631
- package/node_modules/@synap/hub-rest-client/src/errors.ts +0 -30
- package/node_modules/@synap/hub-rest-client/src/index.ts +0 -153
- package/node_modules/@synap/hub-rest-client/src/setup.ts +0 -133
- package/node_modules/@synap/hub-rest-client/src/types.ts +0 -1299
|
@@ -64,6 +64,17 @@ export type CpMineRow = CpPackageRow & {
|
|
|
64
64
|
* source both the merged launch catalog and the `market` command read from.
|
|
65
65
|
*/
|
|
66
66
|
export declare function fetchPublicBrowseRows(filters?: PackageFilters): Promise<CpBrowseRow[]>;
|
|
67
|
+
/**
|
|
68
|
+
* The workspace-template slugs the CP marks RETIRED (template lifecycle). The
|
|
69
|
+
* default browse route hides tombstones, so a stale bundled copy of a retired
|
|
70
|
+
* template (the npm `@synap-core/workspace-templates` this CLI ships) would
|
|
71
|
+
* otherwise survive the merge and be offered or suggested. Asks once with
|
|
72
|
+
* `includeRetired=true`.
|
|
73
|
+
* - An older CP refuses the param (400): it cannot retire anything → empty set.
|
|
74
|
+
* - Any other failure → `null` (unknown): the caller keeps today's behaviour
|
|
75
|
+
* rather than guessing which templates are retired.
|
|
76
|
+
*/
|
|
77
|
+
export declare function fetchRetiredWorkspaceSlugs(): Promise<Set<string> | null>;
|
|
67
78
|
/** GET /api/packages — public workspace templates as `RemoteEntry`. No auth. */
|
|
68
79
|
export declare function fetchPublicPackages(filters?: PackageFilters): Promise<RemoteEntry[]>;
|
|
69
80
|
/**
|
|
@@ -84,12 +95,64 @@ export declare function fetchMyPackages(token: string, filters?: PackageFilters)
|
|
|
84
95
|
*/
|
|
85
96
|
export declare function fetchAvailableSlugs(token: string, filters?: PackageFilters): Promise<Set<string>>;
|
|
86
97
|
/**
|
|
87
|
-
* GET /api/packages/:slug
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
98
|
+
* The single-package row `GET /api/packages/:slug` returns. The CP hands back
|
|
99
|
+
* the WHOLE `synap_packages` row (`getTableColumns`), so unlike the `/mine`
|
|
100
|
+
* list projection this one DOES carry `category` — which is why it is the door
|
|
101
|
+
* that can answer "what kind of package is this private thing I own?".
|
|
102
|
+
*/
|
|
103
|
+
export interface CpPackageRecord {
|
|
104
|
+
slug: string;
|
|
105
|
+
category?: string | null;
|
|
106
|
+
definition?: Record<string, unknown> | null;
|
|
107
|
+
isPublic?: boolean;
|
|
108
|
+
displayName?: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* GET /api/packages/:slug — the full row (definition + `category` + visibility).
|
|
112
|
+
* Authed when a token is given, which is REQUIRED for a private package (the
|
|
113
|
+
* author-only visibility gate 404s otherwise). Returns `null` if the package is
|
|
114
|
+
* absent / not visible / unreachable.
|
|
115
|
+
*
|
|
116
|
+
* This is the ONE authed single-package read; `fetchPackageDefinition` and the
|
|
117
|
+
* category hydration below both go through it rather than re-rolling the fetch.
|
|
118
|
+
*/
|
|
119
|
+
export declare function fetchPackageRecord(slug: string, token?: string): Promise<CpPackageRecord | null>;
|
|
120
|
+
/**
|
|
121
|
+
* GET /api/packages/:slug — just the `definition` (the install payload).
|
|
122
|
+
* Delegates to {@link fetchPackageRecord}; kept as its own name because most
|
|
123
|
+
* call sites want only the payload.
|
|
91
124
|
*/
|
|
92
125
|
export declare function fetchPackageDefinition(slug: string, token?: string): Promise<Record<string, unknown> | null>;
|
|
126
|
+
/**
|
|
127
|
+
* How many `/mine` rows will be hydrated over the network in one catalog build.
|
|
128
|
+
* Bounded so a prolific author's `synap market --list` can't fan out to 100
|
|
129
|
+
* detail requests. Beyond the cap the extra rows keep an ABSENT category —
|
|
130
|
+
* honest under-resolution, which the install refusal then catches.
|
|
131
|
+
*/
|
|
132
|
+
export declare const MINE_CATEGORY_HYDRATION_CAP = 25;
|
|
133
|
+
/**
|
|
134
|
+
* Fill in the `category` the `/mine` LIST PROJECTION does not select.
|
|
135
|
+
*
|
|
136
|
+
* `GET /api/packages/mine` projects ~15 columns and `category` is not one of
|
|
137
|
+
* them (`synap-control-plane-api/src/routes/packages.ts`), so every row the
|
|
138
|
+
* caller owns arrives type-less. Downstream that is not cosmetic: the CLI's
|
|
139
|
+
* display default turns an absent category into "workspace", which is exactly
|
|
140
|
+
* how a published CELL package was listed as a workspace, filtered out of
|
|
141
|
+
* `--type cell`, and installed as an empty "New Workspace".
|
|
142
|
+
*
|
|
143
|
+
* Resolution order per row, cheapest first:
|
|
144
|
+
* 1. the row already declares a category → untouched;
|
|
145
|
+
* 2. `fallbackBySlug` — a category already known from the PUBLIC browse rows
|
|
146
|
+
* this catalog build fetched anyway (free, no extra request);
|
|
147
|
+
* 3. `GET /api/packages/:slug` with the caller's Bearer — the only door that
|
|
148
|
+
* can see a PRIVATE row's category.
|
|
149
|
+
*
|
|
150
|
+
* A failure at step 3 leaves the category ABSENT. It never invents one: "I
|
|
151
|
+
* don't know" must stay distinguishable from "workspace".
|
|
152
|
+
*/
|
|
153
|
+
export declare function hydrateMineCategories(rows: CpMineRow[], token: string, fallbackBySlug?: Map<string, string | undefined>, deps?: {
|
|
154
|
+
fetchRecord?: typeof fetchPackageRecord;
|
|
155
|
+
}): Promise<CpMineRow[]>;
|
|
93
156
|
/** The remote half of the catalog, plus the health `mergeCatalog` needs. */
|
|
94
157
|
export interface RemoteCatalog {
|
|
95
158
|
rows: RemoteEntry[];
|
|
@@ -144,6 +207,18 @@ export interface PublishResult {
|
|
|
144
207
|
/** The `h-<hash>` version the CP derived from the definition. */
|
|
145
208
|
version: string;
|
|
146
209
|
isPublic: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Whether the package was attributed to a publisher profile. False means the
|
|
212
|
+
* author has no vendor yet, so this package will never appear on
|
|
213
|
+
* `GET /api/vendors/:slug` — the command says so and points at
|
|
214
|
+
* `synap vendor create`, because the CP never back-fills attribution later.
|
|
215
|
+
*/
|
|
216
|
+
vendorAttached: boolean;
|
|
217
|
+
/**
|
|
218
|
+
* True when the caller's vendor is `synap-official` and it was therefore NOT
|
|
219
|
+
* attached: a file publish is never an official write.
|
|
220
|
+
*/
|
|
221
|
+
officialVendorWithheld: boolean;
|
|
147
222
|
}
|
|
148
223
|
/**
|
|
149
224
|
* `POST /api/packages` — publish (upsert) a package definition under the caller's
|
|
@@ -154,22 +229,103 @@ export interface PublishResult {
|
|
|
154
229
|
* own message.
|
|
155
230
|
*
|
|
156
231
|
* The definition's identity (`slug`, `displayName`) is read off its `_meta`/
|
|
157
|
-
* `workspaceName
|
|
232
|
+
* `workspaceName` by default (the workspace-template shape); `opts.slug`/
|
|
233
|
+
* `opts.displayName` override that for a standalone (non-workspace) package —
|
|
234
|
+
* e.g. a `category: "cell"` file, which has neither field (see
|
|
235
|
+
* `lib/kind-package.ts`). `_meta.icon`/`.color`/`.domain` are hoisted onto the
|
|
158
236
|
* definition's top level because the CP reads those off `definition.icon`/… for
|
|
159
237
|
* the list DTO (it strips the unknown `_meta` key).
|
|
160
238
|
*/
|
|
239
|
+
/**
|
|
240
|
+
* The caller's vendor (publisher) profile, or null if they have never created one.
|
|
241
|
+
*
|
|
242
|
+
* `GET /api/vendors/mine` — an existing authed door; this adds no new endpoint.
|
|
243
|
+
*
|
|
244
|
+
* WHY publish needs it: the CP's publish handler is `if (body.vendorId) { … }`
|
|
245
|
+
* with NO else (`routes/packages.ts:1465`) — it never auto-creates and never
|
|
246
|
+
* infers one. The CLI has never sent the field, so every CLI-published package
|
|
247
|
+
* is permanently ORPHANED from its author's publisher profile and can never
|
|
248
|
+
* appear on `GET /api/vendors/:slug`. Vendor identity is already load-bearing
|
|
249
|
+
* elsewhere (reserved bedrock slugs gate on `isOfficialVendor`), so an orphaned
|
|
250
|
+
* package is not cosmetic.
|
|
251
|
+
*
|
|
252
|
+
* Failure is non-fatal by design: publishing must not break because a publisher
|
|
253
|
+
* profile does not exist yet. No vendor ⇒ publish exactly as before.
|
|
254
|
+
*/
|
|
255
|
+
export declare function fetchMyVendorId(base: string, token: string, fetchImpl?: typeof fetch): Promise<string | null>;
|
|
256
|
+
/**
|
|
257
|
+
* The official publisher's vendor slug. Official content has ONE door — the
|
|
258
|
+
* catalog (`synap catalog publish --official`, which validates the process
|
|
259
|
+
* contract, the lifecycle ratchet and the goal grammar first). A file publish
|
|
260
|
+
* must never carry this vendor, or `synap market publish x.yaml` run from the
|
|
261
|
+
* founder's login becomes an unvalidated official write.
|
|
262
|
+
*/
|
|
263
|
+
export declare const OFFICIAL_VENDOR_SLUG = "synap-official";
|
|
264
|
+
/** The one line shown when a file publish withholds the official vendor. */
|
|
265
|
+
export declare const OFFICIAL_USE_CATALOG_HINT = "Official templates are published from the catalog: synap catalog publish --official";
|
|
266
|
+
/**
|
|
267
|
+
* A publisher (vendor) profile — the author identity a package is attributed to.
|
|
268
|
+
* Only the fields the CLI prints; the CP returns the whole row.
|
|
269
|
+
*/
|
|
270
|
+
export interface VendorProfile {
|
|
271
|
+
id: string;
|
|
272
|
+
slug: string;
|
|
273
|
+
displayName: string;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* `POST /api/vendors` — create the caller's publisher profile.
|
|
277
|
+
*
|
|
278
|
+
* WHY the CLI needs its own verb: the endpoint is self-serve and the BROWSER
|
|
279
|
+
* already calls it inline (`PublishWizard.tsx`'s Publisher step, which blocks
|
|
280
|
+
* the wizard until a vendor exists). The CLI only ever READ one
|
|
281
|
+
* (`fetchMyVendorId`), so a CLI-only author had no way to make one and every
|
|
282
|
+
* package they published was attributed to nobody — no `/superpowers/by/<slug>`
|
|
283
|
+
* page, permanently, since the CP never auto-creates or back-fills a vendor.
|
|
284
|
+
*
|
|
285
|
+
* The contract mirrors the wizard's call exactly — same endpoint, same field
|
|
286
|
+
* names (`slug`, `displayName`, `description`, `website`) — with ONE deliberate
|
|
287
|
+
* difference: empty optionals are OMITTED rather than sent as `""`. The CP
|
|
288
|
+
* declares `website: z.string().url().optional()`, so an empty string is a 400;
|
|
289
|
+
* the wizard sends its blank fields unconditionally and hits that.
|
|
290
|
+
*
|
|
291
|
+
* Errors surface as `CpWriteError` carrying the server's own message: the CP
|
|
292
|
+
* returns 409 both for "you already have a vendor profile" and for a taken slug,
|
|
293
|
+
* and those are the two an author actually hits.
|
|
294
|
+
*/
|
|
295
|
+
export declare function createVendor(input: {
|
|
296
|
+
slug: string;
|
|
297
|
+
displayName: string;
|
|
298
|
+
description?: string;
|
|
299
|
+
website?: string;
|
|
300
|
+
}, deps?: CpWriteDeps): Promise<VendorProfile>;
|
|
161
301
|
export declare function publishPackage(def: PackageDefinitionLike, opts: {
|
|
162
302
|
isPublic: boolean;
|
|
303
|
+
category?: string;
|
|
304
|
+
slug?: string;
|
|
305
|
+
displayName?: string;
|
|
306
|
+
/**
|
|
307
|
+
* Pricing stamp for the CP row. `one_time` + `priceUsd` (USD cents) marks
|
|
308
|
+
* a paid listing. Settlement/Stripe is NOT this client — columns only.
|
|
309
|
+
*/
|
|
310
|
+
pricingModel?: "free" | "tier_included" | "one_time";
|
|
311
|
+
/** Price in USD cents. */
|
|
312
|
+
priceUsd?: number | null;
|
|
163
313
|
}, deps?: CpWriteDeps): Promise<PublishResult>;
|
|
164
314
|
/**
|
|
165
315
|
* `PATCH /api/packages/:slug` — owner-gated flip of a package to private.
|
|
166
316
|
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
317
|
+
* ✅ RESOLVED 2026-09-05 — this block used to carry a TODO saying the CP's PATCH
|
|
318
|
+
* validator accepted only `podId` and that this call therefore 400'd. That is no
|
|
319
|
+
* longer true: the handler declares `isPublic: z.boolean().optional()`
|
|
320
|
+
* (`synap-control-plane-api/src/routes/packages.ts:1618`) and the flip works.
|
|
321
|
+
* Kept as a tombstone rather than deleted because the stale warning outlived its
|
|
322
|
+
* fix and would otherwise keep sending readers to "widen the CP door" work that
|
|
323
|
+
* is already done — the same way a stale comment sent an auditor down the wrong
|
|
324
|
+
* path on `kind-package.ts` a day earlier.
|
|
325
|
+
*
|
|
326
|
+
* Note the browser uses `DELETE /api/packages/:slug` for the same act; both
|
|
327
|
+
* doors now route through the CP's shared owned-package helpers and both are a
|
|
328
|
+
* SOFT delist (`is_public = false`), never a destroy.
|
|
173
329
|
*/
|
|
174
330
|
export declare function unpublishPackage(slug: string, deps?: CpWriteDeps): Promise<{
|
|
175
331
|
slug: string;
|
package/dist/lib/cp-packages.js
CHANGED
|
@@ -59,6 +59,37 @@ export async function fetchPublicBrowseRows(filters) {
|
|
|
59
59
|
const data = (await res.json());
|
|
60
60
|
return data.packages ?? [];
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* The workspace-template slugs the CP marks RETIRED (template lifecycle). The
|
|
64
|
+
* default browse route hides tombstones, so a stale bundled copy of a retired
|
|
65
|
+
* template (the npm `@synap-core/workspace-templates` this CLI ships) would
|
|
66
|
+
* otherwise survive the merge and be offered or suggested. Asks once with
|
|
67
|
+
* `includeRetired=true`.
|
|
68
|
+
* - An older CP refuses the param (400): it cannot retire anything → empty set.
|
|
69
|
+
* - Any other failure → `null` (unknown): the caller keeps today's behaviour
|
|
70
|
+
* rather than guessing which templates are retired.
|
|
71
|
+
*/
|
|
72
|
+
export async function fetchRetiredWorkspaceSlugs() {
|
|
73
|
+
try {
|
|
74
|
+
const qs = new URLSearchParams({ category: "workspace", includeRetired: "true", limit: "100" });
|
|
75
|
+
const res = await fetch(`${packagesBase()}?${qs}`, {
|
|
76
|
+
signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
|
|
77
|
+
});
|
|
78
|
+
if (res.status === 400)
|
|
79
|
+
return new Set();
|
|
80
|
+
if (!res.ok)
|
|
81
|
+
return null;
|
|
82
|
+
const data = (await res.json());
|
|
83
|
+
const out = new Set();
|
|
84
|
+
for (const r of data.packages ?? [])
|
|
85
|
+
if (r.slug && r.retired)
|
|
86
|
+
out.add(r.slug);
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
62
93
|
/** GET /api/packages — public workspace templates as `RemoteEntry`. No auth. */
|
|
63
94
|
export async function fetchPublicPackages(filters) {
|
|
64
95
|
const rows = await fetchPublicBrowseRows(filters);
|
|
@@ -118,20 +149,101 @@ export async function fetchAvailableSlugs(token, filters) {
|
|
|
118
149
|
return new Set((data.packages ?? []).map((p) => p.slug));
|
|
119
150
|
}
|
|
120
151
|
/**
|
|
121
|
-
* GET /api/packages/:slug — the full row
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
152
|
+
* GET /api/packages/:slug — the full row (definition + `category` + visibility).
|
|
153
|
+
* Authed when a token is given, which is REQUIRED for a private package (the
|
|
154
|
+
* author-only visibility gate 404s otherwise). Returns `null` if the package is
|
|
155
|
+
* absent / not visible / unreachable.
|
|
156
|
+
*
|
|
157
|
+
* This is the ONE authed single-package read; `fetchPackageDefinition` and the
|
|
158
|
+
* category hydration below both go through it rather than re-rolling the fetch.
|
|
125
159
|
*/
|
|
126
|
-
export async function
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
160
|
+
export async function fetchPackageRecord(slug, token) {
|
|
161
|
+
let res;
|
|
162
|
+
try {
|
|
163
|
+
res = await fetch(`${packagesBase()}/${encodeURIComponent(slug)}`, {
|
|
164
|
+
headers: token ? { Authorization: `Bearer ${token}` } : {},
|
|
165
|
+
signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return null; // unreachable — "unknown", never a guessed answer
|
|
170
|
+
}
|
|
131
171
|
if (!res.ok)
|
|
132
172
|
return null;
|
|
133
|
-
const data = (await res.json());
|
|
134
|
-
return data
|
|
173
|
+
const data = (await res.json().catch(() => null));
|
|
174
|
+
return data?.package ?? null;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* GET /api/packages/:slug — just the `definition` (the install payload).
|
|
178
|
+
* Delegates to {@link fetchPackageRecord}; kept as its own name because most
|
|
179
|
+
* call sites want only the payload.
|
|
180
|
+
*/
|
|
181
|
+
export async function fetchPackageDefinition(slug, token) {
|
|
182
|
+
const rec = await fetchPackageRecord(slug, token);
|
|
183
|
+
return rec?.definition ?? null;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* How many `/mine` rows will be hydrated over the network in one catalog build.
|
|
187
|
+
* Bounded so a prolific author's `synap market --list` can't fan out to 100
|
|
188
|
+
* detail requests. Beyond the cap the extra rows keep an ABSENT category —
|
|
189
|
+
* honest under-resolution, which the install refusal then catches.
|
|
190
|
+
*/
|
|
191
|
+
export const MINE_CATEGORY_HYDRATION_CAP = 25;
|
|
192
|
+
/** Bounded-concurrency map — small, local, and only used by the hydration below. */
|
|
193
|
+
async function mapWithConcurrency(items, limit, fn) {
|
|
194
|
+
const out = new Array(items.length);
|
|
195
|
+
let next = 0;
|
|
196
|
+
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
197
|
+
for (;;) {
|
|
198
|
+
const i = next++;
|
|
199
|
+
if (i >= items.length)
|
|
200
|
+
return;
|
|
201
|
+
out[i] = await fn(items[i]);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
await Promise.all(workers);
|
|
205
|
+
return out;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Fill in the `category` the `/mine` LIST PROJECTION does not select.
|
|
209
|
+
*
|
|
210
|
+
* `GET /api/packages/mine` projects ~15 columns and `category` is not one of
|
|
211
|
+
* them (`synap-control-plane-api/src/routes/packages.ts`), so every row the
|
|
212
|
+
* caller owns arrives type-less. Downstream that is not cosmetic: the CLI's
|
|
213
|
+
* display default turns an absent category into "workspace", which is exactly
|
|
214
|
+
* how a published CELL package was listed as a workspace, filtered out of
|
|
215
|
+
* `--type cell`, and installed as an empty "New Workspace".
|
|
216
|
+
*
|
|
217
|
+
* Resolution order per row, cheapest first:
|
|
218
|
+
* 1. the row already declares a category → untouched;
|
|
219
|
+
* 2. `fallbackBySlug` — a category already known from the PUBLIC browse rows
|
|
220
|
+
* this catalog build fetched anyway (free, no extra request);
|
|
221
|
+
* 3. `GET /api/packages/:slug` with the caller's Bearer — the only door that
|
|
222
|
+
* can see a PRIVATE row's category.
|
|
223
|
+
*
|
|
224
|
+
* A failure at step 3 leaves the category ABSENT. It never invents one: "I
|
|
225
|
+
* don't know" must stay distinguishable from "workspace".
|
|
226
|
+
*/
|
|
227
|
+
export async function hydrateMineCategories(rows, token, fallbackBySlug, deps = {}) {
|
|
228
|
+
const fetchRecord = deps.fetchRecord ?? fetchPackageRecord;
|
|
229
|
+
const patched = rows.map((r) => {
|
|
230
|
+
if (r.category != null)
|
|
231
|
+
return r;
|
|
232
|
+
const fromPublic = fallbackBySlug?.get(r.slug);
|
|
233
|
+
return fromPublic != null ? { ...r, category: fromPublic } : r;
|
|
234
|
+
});
|
|
235
|
+
const needing = patched.filter((r) => r.category == null).slice(0, MINE_CATEGORY_HYDRATION_CAP);
|
|
236
|
+
if (needing.length === 0)
|
|
237
|
+
return patched;
|
|
238
|
+
const resolved = new Map();
|
|
239
|
+
await mapWithConcurrency(needing, 5, async (r) => {
|
|
240
|
+
const rec = await fetchRecord(r.slug, token);
|
|
241
|
+
if (rec?.category != null)
|
|
242
|
+
resolved.set(r.slug, rec.category);
|
|
243
|
+
});
|
|
244
|
+
return patched.map((r) => r.category == null && resolved.has(r.slug)
|
|
245
|
+
? { ...r, category: resolved.get(r.slug) }
|
|
246
|
+
: r);
|
|
135
247
|
}
|
|
136
248
|
/**
|
|
137
249
|
* Assemble the remote catalog for `launch`, degrading HONESTLY rather than
|
|
@@ -278,16 +390,113 @@ function requireToken(deps) {
|
|
|
278
390
|
* own message.
|
|
279
391
|
*
|
|
280
392
|
* The definition's identity (`slug`, `displayName`) is read off its `_meta`/
|
|
281
|
-
* `workspaceName
|
|
393
|
+
* `workspaceName` by default (the workspace-template shape); `opts.slug`/
|
|
394
|
+
* `opts.displayName` override that for a standalone (non-workspace) package —
|
|
395
|
+
* e.g. a `category: "cell"` file, which has neither field (see
|
|
396
|
+
* `lib/kind-package.ts`). `_meta.icon`/`.color`/`.domain` are hoisted onto the
|
|
282
397
|
* definition's top level because the CP reads those off `definition.icon`/… for
|
|
283
398
|
* the list DTO (it strips the unknown `_meta` key).
|
|
284
399
|
*/
|
|
400
|
+
/**
|
|
401
|
+
* The caller's vendor (publisher) profile, or null if they have never created one.
|
|
402
|
+
*
|
|
403
|
+
* `GET /api/vendors/mine` — an existing authed door; this adds no new endpoint.
|
|
404
|
+
*
|
|
405
|
+
* WHY publish needs it: the CP's publish handler is `if (body.vendorId) { … }`
|
|
406
|
+
* with NO else (`routes/packages.ts:1465`) — it never auto-creates and never
|
|
407
|
+
* infers one. The CLI has never sent the field, so every CLI-published package
|
|
408
|
+
* is permanently ORPHANED from its author's publisher profile and can never
|
|
409
|
+
* appear on `GET /api/vendors/:slug`. Vendor identity is already load-bearing
|
|
410
|
+
* elsewhere (reserved bedrock slugs gate on `isOfficialVendor`), so an orphaned
|
|
411
|
+
* package is not cosmetic.
|
|
412
|
+
*
|
|
413
|
+
* Failure is non-fatal by design: publishing must not break because a publisher
|
|
414
|
+
* profile does not exist yet. No vendor ⇒ publish exactly as before.
|
|
415
|
+
*/
|
|
416
|
+
export async function fetchMyVendorId(base, token, fetchImpl = fetch) {
|
|
417
|
+
return (await fetchMyVendorRef(base, token, fetchImpl))?.id ?? null;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* The official publisher's vendor slug. Official content has ONE door — the
|
|
421
|
+
* catalog (`synap catalog publish --official`, which validates the process
|
|
422
|
+
* contract, the lifecycle ratchet and the goal grammar first). A file publish
|
|
423
|
+
* must never carry this vendor, or `synap market publish x.yaml` run from the
|
|
424
|
+
* founder's login becomes an unvalidated official write.
|
|
425
|
+
*/
|
|
426
|
+
export const OFFICIAL_VENDOR_SLUG = "synap-official";
|
|
427
|
+
/** The one line shown when a file publish withholds the official vendor. */
|
|
428
|
+
export const OFFICIAL_USE_CATALOG_HINT = "Official templates are published from the catalog: synap catalog publish --official";
|
|
429
|
+
/** Same best-effort lookup as `fetchMyVendorId`, keeping the slug too. */
|
|
430
|
+
async function fetchMyVendorRef(base, token, fetchImpl) {
|
|
431
|
+
try {
|
|
432
|
+
const res = await fetchImpl(`${base}/api/vendors/mine`, {
|
|
433
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
434
|
+
signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
|
|
435
|
+
});
|
|
436
|
+
if (!res.ok)
|
|
437
|
+
return null;
|
|
438
|
+
const json = (await res.json());
|
|
439
|
+
const id = json?.vendor?.id;
|
|
440
|
+
return id ? { id, slug: json?.vendor?.slug } : null;
|
|
441
|
+
}
|
|
442
|
+
catch {
|
|
443
|
+
return null;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* `POST /api/vendors` — create the caller's publisher profile.
|
|
448
|
+
*
|
|
449
|
+
* WHY the CLI needs its own verb: the endpoint is self-serve and the BROWSER
|
|
450
|
+
* already calls it inline (`PublishWizard.tsx`'s Publisher step, which blocks
|
|
451
|
+
* the wizard until a vendor exists). The CLI only ever READ one
|
|
452
|
+
* (`fetchMyVendorId`), so a CLI-only author had no way to make one and every
|
|
453
|
+
* package they published was attributed to nobody — no `/superpowers/by/<slug>`
|
|
454
|
+
* page, permanently, since the CP never auto-creates or back-fills a vendor.
|
|
455
|
+
*
|
|
456
|
+
* The contract mirrors the wizard's call exactly — same endpoint, same field
|
|
457
|
+
* names (`slug`, `displayName`, `description`, `website`) — with ONE deliberate
|
|
458
|
+
* difference: empty optionals are OMITTED rather than sent as `""`. The CP
|
|
459
|
+
* declares `website: z.string().url().optional()`, so an empty string is a 400;
|
|
460
|
+
* the wizard sends its blank fields unconditionally and hits that.
|
|
461
|
+
*
|
|
462
|
+
* Errors surface as `CpWriteError` carrying the server's own message: the CP
|
|
463
|
+
* returns 409 both for "you already have a vendor profile" and for a taken slug,
|
|
464
|
+
* and those are the two an author actually hits.
|
|
465
|
+
*/
|
|
466
|
+
export async function createVendor(input, deps = {}) {
|
|
467
|
+
const fetchImpl = deps.fetchImpl ?? fetch;
|
|
468
|
+
const token = requireToken(deps);
|
|
469
|
+
const base = deps.cpUrl ?? getCpUrl();
|
|
470
|
+
const res = await fetchImpl(`${base}/api/vendors`, {
|
|
471
|
+
method: "POST",
|
|
472
|
+
headers: {
|
|
473
|
+
Authorization: `Bearer ${token}`,
|
|
474
|
+
"Content-Type": "application/json",
|
|
475
|
+
},
|
|
476
|
+
body: JSON.stringify({
|
|
477
|
+
slug: input.slug,
|
|
478
|
+
displayName: input.displayName,
|
|
479
|
+
...(input.description ? { description: input.description } : {}),
|
|
480
|
+
...(input.website ? { website: input.website } : {}),
|
|
481
|
+
}),
|
|
482
|
+
signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
|
|
483
|
+
});
|
|
484
|
+
if (!res.ok) {
|
|
485
|
+
const raw = await res.text().catch(() => "");
|
|
486
|
+
throw new CpWriteError(res.status, extractServerMessage(raw, res.status));
|
|
487
|
+
}
|
|
488
|
+
const data = (await res.json());
|
|
489
|
+
if (!data?.vendor?.id) {
|
|
490
|
+
throw new CpWriteError(0, "The control plane returned no vendor profile.");
|
|
491
|
+
}
|
|
492
|
+
return data.vendor;
|
|
493
|
+
}
|
|
285
494
|
export async function publishPackage(def, opts, deps = {}) {
|
|
286
495
|
const fetchImpl = deps.fetchImpl ?? fetch;
|
|
287
496
|
const token = requireToken(deps);
|
|
288
497
|
const base = deps.cpUrl ?? getCpUrl();
|
|
289
|
-
const slug = def._meta?.slug;
|
|
290
|
-
const displayName = def.workspaceName;
|
|
498
|
+
const slug = opts.slug ?? def._meta?.slug;
|
|
499
|
+
const displayName = opts.displayName ?? def.workspaceName;
|
|
291
500
|
if (!slug)
|
|
292
501
|
throw new CpWriteError(0, "Template has no slug (meta.slug) — cannot publish");
|
|
293
502
|
if (!displayName)
|
|
@@ -320,6 +529,14 @@ export async function publishPackage(def, opts, deps = {}) {
|
|
|
320
529
|
color: def._meta?.color ?? def.color,
|
|
321
530
|
domain: def._meta?.domain ?? def.domain,
|
|
322
531
|
};
|
|
532
|
+
// Best-effort: a package published without it is orphaned from its author's
|
|
533
|
+
// publisher profile forever (the CP has no auto-create and no back-fill).
|
|
534
|
+
// A failure here must never block a publish, so this resolves to null.
|
|
535
|
+
// The official vendor is NEVER attached here: official content goes through
|
|
536
|
+
// the catalog door only (see OFFICIAL_VENDOR_SLUG).
|
|
537
|
+
const vendor = await fetchMyVendorRef(base, token, fetchImpl);
|
|
538
|
+
const officialVendorWithheld = vendor?.slug === OFFICIAL_VENDOR_SLUG;
|
|
539
|
+
const vendorId = officialVendorWithheld ? null : (vendor?.id ?? null);
|
|
323
540
|
const res = await fetchImpl(`${base}/api/packages`, {
|
|
324
541
|
method: "POST",
|
|
325
542
|
headers: {
|
|
@@ -332,7 +549,14 @@ export async function publishPackage(def, opts, deps = {}) {
|
|
|
332
549
|
description: def.description,
|
|
333
550
|
isPublic: opts.isPublic,
|
|
334
551
|
tags: def._meta?.tags,
|
|
335
|
-
category: "workspace",
|
|
552
|
+
category: opts.category ?? "workspace",
|
|
553
|
+
// Attribute the package to the author's publisher profile when they have
|
|
554
|
+
// one. Omitted (not null) when they do not — the CP branches on presence.
|
|
555
|
+
...(vendorId ? { vendorId } : {}),
|
|
556
|
+
...(opts.pricingModel !== undefined
|
|
557
|
+
? { pricingModel: opts.pricingModel }
|
|
558
|
+
: {}),
|
|
559
|
+
...(opts.priceUsd !== undefined ? { priceUsd: opts.priceUsd } : {}),
|
|
336
560
|
definition,
|
|
337
561
|
}),
|
|
338
562
|
signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
|
|
@@ -354,17 +578,25 @@ export async function publishPackage(def, opts, deps = {}) {
|
|
|
354
578
|
displayName,
|
|
355
579
|
version,
|
|
356
580
|
isPublic: data.package?.isPublic ?? opts.isPublic,
|
|
581
|
+
vendorAttached: !!vendorId,
|
|
582
|
+
officialVendorWithheld,
|
|
357
583
|
};
|
|
358
584
|
}
|
|
359
585
|
/**
|
|
360
586
|
* `PATCH /api/packages/:slug` — owner-gated flip of a package to private.
|
|
361
587
|
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
*
|
|
367
|
-
*
|
|
588
|
+
* ✅ RESOLVED 2026-09-05 — this block used to carry a TODO saying the CP's PATCH
|
|
589
|
+
* validator accepted only `podId` and that this call therefore 400'd. That is no
|
|
590
|
+
* longer true: the handler declares `isPublic: z.boolean().optional()`
|
|
591
|
+
* (`synap-control-plane-api/src/routes/packages.ts:1618`) and the flip works.
|
|
592
|
+
* Kept as a tombstone rather than deleted because the stale warning outlived its
|
|
593
|
+
* fix and would otherwise keep sending readers to "widen the CP door" work that
|
|
594
|
+
* is already done — the same way a stale comment sent an auditor down the wrong
|
|
595
|
+
* path on `kind-package.ts` a day earlier.
|
|
596
|
+
*
|
|
597
|
+
* Note the browser uses `DELETE /api/packages/:slug` for the same act; both
|
|
598
|
+
* doors now route through the CP's shared owned-package helpers and both are a
|
|
599
|
+
* SOFT delist (`is_public = false`), never a destroy.
|
|
368
600
|
*/
|
|
369
601
|
export async function unpublishPackage(slug, deps = {}) {
|
|
370
602
|
const fetchImpl = deps.fetchImpl ?? fetch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cp-packages.js","sourceRoot":"","sources":["../../src/lib/cp-packages.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cp-packages.js","sourceRoot":"","sources":["../../src/lib/cp-packages.ts"],"names":[],"mappings":"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"}
|