@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
package/dist/commands/mcp.js
CHANGED
|
@@ -1,32 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `synap mcp` — the MCP front door.
|
|
2
|
+
* `synap mcp` — the MCP front door. Two lanes:
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* 1. Web AI (Cloud MCP / OAuth) — control plane `${cp}/mcp` (managed:
|
|
5
|
+
* https://api.synap.live/mcp). claude.ai's connector UI is OAuth-only; use
|
|
6
|
+
* `synap mcp connect-claude` to print the URL (no key mint, no file write).
|
|
7
|
+
* 2. IDE / file-configurable — pod `${podUrl}/mcp` (Bearer). Needs a pod +
|
|
8
|
+
* key. `synap mcp connect <client>` writes client config; `synap mcp url`
|
|
9
|
+
* prints URL + key for header-based UIs (ChatGPT, Raycast, …).
|
|
6
10
|
*
|
|
7
|
-
* synap mcp url
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* currently accept a bearer token here — see the note
|
|
12
|
-
* printed by this command.
|
|
13
|
-
* synap mcp verify — health-check: is /mcp reachable and is the key valid?
|
|
14
|
-
* synap mcp connect — alias of `synap connect` for file-configurable clients
|
|
15
|
-
* (Claude Code, Cursor, Desktop, …) — writes the config.
|
|
16
|
-
* synap mcp connect-claude — print the claude.ai (web) OAuth connection
|
|
17
|
-
* steps. claude.ai's connector UI is OAuth-only (no
|
|
18
|
-
* header field), so this prints paste-ready values
|
|
19
|
-
* instead of writing a file — claude.ai + the control
|
|
20
|
-
* plane drive the actual OAuth handshake.
|
|
21
|
-
*
|
|
22
|
-
* For file-configurable clients, prefer `synap mcp connect <client>` (it mints a
|
|
23
|
-
* dedicated agent key + writes the client's config). `synap mcp url` is the
|
|
24
|
-
* escape hatch for clients you must configure by hand in a UI.
|
|
11
|
+
* synap mcp url — paste-ready pod MCP connection (URL + key)
|
|
12
|
+
* synap mcp verify — health-check pod /mcp + key
|
|
13
|
+
* synap mcp connect — write MCP config for IDE/desktop clients
|
|
14
|
+
* synap mcp connect-claude — print Cloud MCP OAuth URL for claude.ai (web)
|
|
25
15
|
*/
|
|
26
16
|
import chalk from "chalk";
|
|
27
17
|
import { resolveHubConfig } from "../lib/hub-client.js";
|
|
28
18
|
import { buildMcpUrl, provisionAgentKey, enrollAgentIfNeeded, } from "../lib/targets.js";
|
|
29
19
|
import { log } from "../utils/logger.js";
|
|
20
|
+
import { printMcpConnection, redactKey, writeMcpSnippetFiles, MCP_KEY_ENV } from "../lib/mcp-snippets.js";
|
|
30
21
|
/** Resolve the scoped MCP URL + the lenses from flags.
|
|
31
22
|
*
|
|
32
23
|
* Default is POD-WIDE: a workspace is a lens, not a container, so we do NOT
|
|
@@ -93,35 +84,7 @@ export async function mcpUrl(opts) {
|
|
|
93
84
|
}, null, 2));
|
|
94
85
|
return;
|
|
95
86
|
}
|
|
96
|
-
|
|
97
|
-
mcpServers: {
|
|
98
|
-
synap: { url, headers: { Authorization: `Bearer ${hubApiKey}` } },
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
const mcpRemote = {
|
|
102
|
-
mcpServers: {
|
|
103
|
-
synap: {
|
|
104
|
-
command: "npx",
|
|
105
|
-
args: ["mcp-remote", url, "--header", `Authorization: Bearer ${hubApiKey}`],
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
log.heading("\nSynap MCP connection");
|
|
110
|
-
console.log(` ${chalk.dim("URL")} ${url}`);
|
|
111
|
-
console.log(` ${chalk.dim("Header")} Authorization: Bearer ${hubApiKey}`);
|
|
112
|
-
console.log(` ${chalk.dim("Agent")} ${agentUserId}${workspaceId ? chalk.dim(` · workspace ${workspaceId}`) : chalk.dim(" · pod-wide")}${projectId ? chalk.dim(` · project ${projectId}`) : ""}`);
|
|
113
|
-
console.log(chalk.bold("\nClaude Code"));
|
|
114
|
-
console.log(chalk.cyan(` claude mcp add --transport http synap ${url} \\\n --header "Authorization: Bearer ${hubApiKey}" --scope user`));
|
|
115
|
-
console.log(chalk.bold("\nCursor / VS Code / native-HTTP clients (mcp.json)"));
|
|
116
|
-
console.log(chalk.dim(JSON.stringify(mcpServers, null, 2)));
|
|
117
|
-
console.log(chalk.bold("\nClaude Desktop / stdio-only clients (mcp-remote bridge)"));
|
|
118
|
-
console.log(chalk.dim(JSON.stringify(mcpRemote, null, 2)));
|
|
119
|
-
console.log(chalk.bold("\nUI clients that accept an API key / custom header (ChatGPT, Raycast, …)"));
|
|
120
|
-
console.log(` Paste the URL above and add the Authorization header.`);
|
|
121
|
-
console.log(chalk.dim(" Raycast: run “Install MCP Server” → transport HTTP → paste the URL + a “Authorization: Bearer …” header."));
|
|
122
|
-
console.log(chalk.dim(" ChatGPT: Settings → enable Developer mode → add a connector → paste the URL and choose API-key auth."));
|
|
123
|
-
console.log(chalk.yellow("\nclaude.ai (web/desktop/mobile connectors) can't take a custom header yet — its connector UI has no field for one. OAuth support is planned; until then, use Claude Code, Cursor, or another file-configurable client above."));
|
|
124
|
-
console.log(chalk.dim("\nTip: for file-configurable clients, `synap mcp connect <client>` writes the config for you."));
|
|
87
|
+
printMcpConnection({ url, hubApiKey, agentUserId, workspaceId, projectId });
|
|
125
88
|
}
|
|
126
89
|
catch (e) {
|
|
127
90
|
log.error(`Could not build MCP connection: ${e.message}`);
|
|
@@ -200,7 +163,7 @@ export async function mcpVerify(opts) {
|
|
|
200
163
|
* starts with `pod.` — anything else (localhost, a custom domain, …) can't be
|
|
201
164
|
* derived confidently, so the caller falls back to a placeholder + `--cp-url`.
|
|
202
165
|
*/
|
|
203
|
-
function deriveCpOrigin(podUrl) {
|
|
166
|
+
export function deriveCpOrigin(podUrl) {
|
|
204
167
|
try {
|
|
205
168
|
const host = new URL(podUrl).hostname;
|
|
206
169
|
const labels = host.split(".");
|
|
@@ -223,43 +186,267 @@ function deriveCpOrigin(podUrl) {
|
|
|
223
186
|
* claude.ai's "Add custom connector" UI is OAuth-only (Dynamic Client
|
|
224
187
|
* Registration) — it has no field for a bearer header, so the file/header
|
|
225
188
|
* based flows (`mcp connect`, `mcp url`) don't apply. The control plane's
|
|
226
|
-
* `/mcp` endpoint
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
189
|
+
* `/mcp` endpoint speaks OAuth: paste a URL, approve in the browser. This
|
|
190
|
+
* command does not mint keys or write client config — it only prints the URL.
|
|
191
|
+
*
|
|
192
|
+
* Stranger-safe: if no pod is configured, falls back to `--cp-url` or the
|
|
193
|
+
* managed control plane `https://api.synap.live`.
|
|
230
194
|
*/
|
|
231
195
|
export async function mcpConnectClaudeWeb(opts) {
|
|
232
196
|
try {
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
197
|
+
const MANAGED_CP = "https://api.synap.live";
|
|
198
|
+
/** How we chose the CP origin — for --json + user-facing notes. */
|
|
199
|
+
let source = "managed-fallback";
|
|
200
|
+
let cpOrigin = MANAGED_CP;
|
|
201
|
+
if (opts.cpUrl) {
|
|
202
|
+
cpOrigin = opts.cpUrl.replace(/\/$/, "");
|
|
203
|
+
source = "override";
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
try {
|
|
207
|
+
const cfg = await resolveHubConfig(opts);
|
|
208
|
+
const fromPod = deriveCpOrigin(cfg.podUrl);
|
|
209
|
+
if (fromPod.derived) {
|
|
210
|
+
cpOrigin = fromPod.cpOrigin;
|
|
211
|
+
source = "derived";
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
// Non-pod.* host — can't derive confidently; managed + tip to --cp-url.
|
|
215
|
+
cpOrigin = MANAGED_CP;
|
|
216
|
+
source = "managed-fallback";
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
// No pod config — stranger path: print managed Cloud MCP (no key mint).
|
|
221
|
+
cpOrigin = MANAGED_CP;
|
|
222
|
+
source = "managed-fallback";
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
const finalCpOrigin = cpOrigin.replace(/\/$/, "");
|
|
236
226
|
const url = `${finalCpOrigin}/mcp`;
|
|
237
|
-
const wasDerived = opts.cpUrl ? "override" : derived;
|
|
238
227
|
const steps = [
|
|
239
228
|
"Open claude.ai → Settings → Connectors → Add custom connector",
|
|
240
229
|
"Name: Synap",
|
|
241
230
|
`URL: ${url}`,
|
|
242
231
|
"Leave Advanced settings (OAuth Client ID/Secret) blank",
|
|
243
232
|
"Click Add → you'll be redirected to sign in to Synap Cloud and approve → done",
|
|
244
|
-
'Then ask Claude to "list my Synap pods"
|
|
233
|
+
'Then ask Claude to "list my Synap pods" (list_pods) and connect one (connect_pod)',
|
|
245
234
|
];
|
|
246
235
|
if (opts.json) {
|
|
247
|
-
console.log(JSON.stringify({ url, cpOrigin: finalCpOrigin, derived:
|
|
236
|
+
console.log(JSON.stringify({ url, cpOrigin: finalCpOrigin, derived: source, steps }, null, 2));
|
|
248
237
|
return;
|
|
249
238
|
}
|
|
250
239
|
log.heading("\nConnect claude.ai (web) to Synap");
|
|
251
|
-
if (
|
|
252
|
-
log.
|
|
240
|
+
if (source === "managed-fallback" && !opts.cpUrl) {
|
|
241
|
+
console.log(chalk.dim(" Using managed Cloud MCP (https://api.synap.live). Pass --cp-url for a self-hosted control plane. No key minted."));
|
|
253
242
|
}
|
|
254
243
|
console.log(` ${chalk.dim("URL")} ${url}`);
|
|
255
244
|
console.log();
|
|
256
245
|
steps.forEach((step, i) => console.log(` ${chalk.bold(`${i + 1}.`)} ${step}`));
|
|
257
246
|
console.log();
|
|
258
|
-
console.log(chalk.dim("
|
|
247
|
+
console.log(chalk.dim("Cloud MCP does not store your data. After OAuth, list_pods then connect_pod (you still need a pod for useful work)."));
|
|
259
248
|
}
|
|
260
249
|
catch (e) {
|
|
261
250
|
log.error(`Could not build the claude.ai connection: ${e.message}`);
|
|
262
251
|
process.exit(1);
|
|
263
252
|
}
|
|
264
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* `synap mcp ui-setup <client>` — print the exact form fields to fill in a
|
|
256
|
+
* client's MCP/Connector UI. Supports ChatGPT (API key), Codex, Cursor,
|
|
257
|
+
* VS Code, Claude Desktop, and generic clients.
|
|
258
|
+
*/
|
|
259
|
+
export async function mcpUiSetup(client, opts) {
|
|
260
|
+
try {
|
|
261
|
+
const hubCfg = await resolveHubConfig({ podUrl: opts.podUrl, apiKey: opts.apiKey });
|
|
262
|
+
const { url, workspaceId, projectId } = resolveMcpTarget(hubCfg, { workspace: opts.workspace, project: opts.project });
|
|
263
|
+
const { hubApiKey, agentUserId } = await provisionAgentKey(hubCfg.podUrl, hubCfg.apiKey, "generic", { requireApproval: false });
|
|
264
|
+
const normalizedClient = client.toLowerCase().replace(/-/g, "");
|
|
265
|
+
let output = "";
|
|
266
|
+
// The key never reaches stdout or argv: fields show it redacted; the full
|
|
267
|
+
// material is written 0600 and clients reference it through an env var.
|
|
268
|
+
const keyShown = redactKey(hubApiKey);
|
|
269
|
+
const snippetFiles = writeMcpSnippetFiles(url, hubApiKey, agentUserId);
|
|
270
|
+
const clientConfigs = {
|
|
271
|
+
chatgpt: {
|
|
272
|
+
name: "ChatGPT (API key)",
|
|
273
|
+
format: "http",
|
|
274
|
+
fields: {
|
|
275
|
+
"Connector Name": "Synap",
|
|
276
|
+
"URL": url,
|
|
277
|
+
"Auth Type": "API Key",
|
|
278
|
+
"API Key": `${keyShown} (full key: ${snippetFiles.envFile})`,
|
|
279
|
+
},
|
|
280
|
+
notes: [
|
|
281
|
+
"ChatGPT → Settings → Connectors → Add custom connector",
|
|
282
|
+
"Paste the URL and API Key exactly as shown above",
|
|
283
|
+
`If your build shows a Header field instead: Authorization: Bearer <key> (full key in ${snippetFiles.envFile}, 0600)`,
|
|
284
|
+
],
|
|
285
|
+
},
|
|
286
|
+
chatgptoauth: {
|
|
287
|
+
name: "ChatGPT (OAuth via Control Plane)",
|
|
288
|
+
format: "http",
|
|
289
|
+
fields: {
|
|
290
|
+
"Connector Name": "Synap (Control Plane)",
|
|
291
|
+
"URL": "https://api.synap.live/mcp",
|
|
292
|
+
"Auth Type": "OAuth",
|
|
293
|
+
"API Key": "(leave blank — OAuth flow)",
|
|
294
|
+
},
|
|
295
|
+
notes: [
|
|
296
|
+
"ChatGPT → Settings → Connectors → Add custom connector",
|
|
297
|
+
"Use the Control Plane OAuth URL (multi-pod support)",
|
|
298
|
+
"After connecting, ask ChatGPT: 'list my Synap pods' then 'connect pod <name>'",
|
|
299
|
+
],
|
|
300
|
+
},
|
|
301
|
+
codex: {
|
|
302
|
+
name: "OpenAI Codex (config.toml)",
|
|
303
|
+
format: "file",
|
|
304
|
+
fields: {
|
|
305
|
+
"Config file": "~/.codex/config.toml",
|
|
306
|
+
"Section to add": `[mcp_servers.synap]`,
|
|
307
|
+
"url": url,
|
|
308
|
+
"http_headers": `{ Authorization = "Bearer ${keyShown}" }`,
|
|
309
|
+
"startup_timeout_sec": "30",
|
|
310
|
+
"enabled": "true",
|
|
311
|
+
},
|
|
312
|
+
notes: [
|
|
313
|
+
`Open ~/.codex/config.toml and add the [mcp_servers.synap] section (replace ${keyShown} with the full key from ${snippetFiles.envFile}, 0600)`,
|
|
314
|
+
"Restart Codex CLI to pick up the new MCP server",
|
|
315
|
+
"The synap tool set will appear in agent mode",
|
|
316
|
+
],
|
|
317
|
+
},
|
|
318
|
+
cursor: {
|
|
319
|
+
name: "Cursor (mcp.json)",
|
|
320
|
+
format: "http",
|
|
321
|
+
fields: {
|
|
322
|
+
"Config file": "~/.cursor/mcp.json",
|
|
323
|
+
"mcpServers.synap.url": url,
|
|
324
|
+
"mcpServers.synap.headers.Authorization": `Bearer \${env:${MCP_KEY_ENV}}`,
|
|
325
|
+
},
|
|
326
|
+
notes: [
|
|
327
|
+
"Cursor reads native HTTP MCP format from ~/.cursor/mcp.json",
|
|
328
|
+
"Restart Cursor. The synap tool set will appear in agent mode.",
|
|
329
|
+
],
|
|
330
|
+
},
|
|
331
|
+
vscode: {
|
|
332
|
+
name: "VS Code (Kilo Code / Cline / Continue / Copilot)",
|
|
333
|
+
format: "http",
|
|
334
|
+
fields: {
|
|
335
|
+
"Config file": "~/Library/Application Support/Code/User/mcp.json (macOS)",
|
|
336
|
+
"servers.synap.type": "http",
|
|
337
|
+
"servers.synap.url": url,
|
|
338
|
+
"servers.synap.headers.Authorization": `Bearer \${env:${MCP_KEY_ENV}}`,
|
|
339
|
+
},
|
|
340
|
+
notes: [
|
|
341
|
+
"VS Code 1.99+ uses 'servers' format (not mcpServers)",
|
|
342
|
+
"Picked up automatically by Kilo Code, Cline, Continue, and GitHub Copilot",
|
|
343
|
+
"Reload VS Code (or open the MCP panel) to activate",
|
|
344
|
+
],
|
|
345
|
+
},
|
|
346
|
+
"claude-desktop": {
|
|
347
|
+
name: "Claude Desktop (stdio bridge)",
|
|
348
|
+
format: "stdio",
|
|
349
|
+
fields: {
|
|
350
|
+
"Config file": "~/Library/Application Support/Claude/claude_desktop_config.json (macOS)",
|
|
351
|
+
"mcpServers.synap.command": "npx",
|
|
352
|
+
"mcpServers.synap.args": `-y mcp-remote ${url} --header "Authorization:\${SYNAP_AUTH}"`,
|
|
353
|
+
"mcpServers.synap.env.SYNAP_AUTH": `Bearer ${keyShown} (real value: "mcpRemote" block in ${snippetFiles.jsonFile})`,
|
|
354
|
+
},
|
|
355
|
+
notes: [
|
|
356
|
+
"Claude Desktop only supports stdio MCP — uses mcp-remote bridge",
|
|
357
|
+
"Fully quit Claude Desktop (Cmd+Q), then relaunch",
|
|
358
|
+
"Look for the MCP tools icon under the input box — 'synap' should appear",
|
|
359
|
+
],
|
|
360
|
+
},
|
|
361
|
+
"claude-code": {
|
|
362
|
+
name: "Claude Code (native HTTP MCP)",
|
|
363
|
+
format: "http",
|
|
364
|
+
fields: {
|
|
365
|
+
"Command": `source ${snippetFiles.envFile} && claude mcp add --transport http synap-${new URL(hubCfg.podUrl).hostname.split(".")[1] || "pod"} ${url} --header 'Authorization: Bearer \${${MCP_KEY_ENV}}' --scope user`,
|
|
366
|
+
},
|
|
367
|
+
notes: [
|
|
368
|
+
`The key stays out of the command: it is read from $${MCP_KEY_ENV} when Claude Code starts — launch it from a shell that sourced ${snippetFiles.envFile}`,
|
|
369
|
+
"Relaunch Claude Code to load the tools",
|
|
370
|
+
],
|
|
371
|
+
},
|
|
372
|
+
generic: {
|
|
373
|
+
name: "Generic MCP Client (HTTP)",
|
|
374
|
+
format: "http",
|
|
375
|
+
fields: {
|
|
376
|
+
"URL": url,
|
|
377
|
+
"Headers": `Authorization: Bearer ${keyShown}`,
|
|
378
|
+
},
|
|
379
|
+
notes: [
|
|
380
|
+
"Paste URL and add Authorization header in your client's MCP config",
|
|
381
|
+
"Supports any MCP-compatible client with HTTP transport",
|
|
382
|
+
],
|
|
383
|
+
},
|
|
384
|
+
};
|
|
385
|
+
const clientConfig = clientConfigs[normalizedClient] || clientConfigs.generic;
|
|
386
|
+
if (opts.json) {
|
|
387
|
+
console.log(JSON.stringify({ client: clientConfig.name, format: clientConfig.format, fields: clientConfig.fields, notes: clientConfig.notes }, null, 2));
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
log.heading(`MCP UI Setup — ${clientConfig.name}`);
|
|
391
|
+
log.blank();
|
|
392
|
+
log.info("Form fields to fill in your client's MCP/Connector settings:");
|
|
393
|
+
log.blank();
|
|
394
|
+
for (const [key, value] of Object.entries(clientConfig.fields)) {
|
|
395
|
+
console.log(` ${chalk.bold(key)}: ${chalk.cyan(value)}`);
|
|
396
|
+
}
|
|
397
|
+
log.blank();
|
|
398
|
+
log.info("Notes:");
|
|
399
|
+
for (const note of clientConfig.notes) {
|
|
400
|
+
console.log(` • ${note}`);
|
|
401
|
+
}
|
|
402
|
+
log.blank();
|
|
403
|
+
log.dim("Agent key provisioned for this session. Re-run with --name to target another pod.");
|
|
404
|
+
}
|
|
405
|
+
catch (e) {
|
|
406
|
+
log.error(`Could not build UI setup: ${e.message}`);
|
|
407
|
+
process.exit(1);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* `synap mcp bridge` — the stdio MCP server Claude Code spawns when it is
|
|
412
|
+
* connected through the bridge (`synap mcp use-bridge`). Forwards every
|
|
413
|
+
* message to the pod's /mcp and names the Claude Code conversation it runs in,
|
|
414
|
+
* so the work it does can be reopened there. See lib/mcp-bridge.ts.
|
|
415
|
+
*
|
|
416
|
+
* stdout IS the protocol — nothing but JSON-RPC may be written to it.
|
|
417
|
+
*/
|
|
418
|
+
export async function mcpBridge(opts) {
|
|
419
|
+
const { runMcpBridge } = await import("../lib/mcp-bridge.js");
|
|
420
|
+
const { conversationHeaders } = await import("../lib/conversation-headers.js");
|
|
421
|
+
const fromEnv = process.env.SYNAP_MCP_API_KEY || process.env.SYNAP_HUB_API_KEY;
|
|
422
|
+
const cfg = fromEnv && opts.url ? null : await resolveHubConfig();
|
|
423
|
+
const apiKey = fromEnv || cfg?.apiKey;
|
|
424
|
+
const url = opts.url || (cfg ? buildMcpUrl(cfg.podUrl) : undefined);
|
|
425
|
+
if (!apiKey || !url) {
|
|
426
|
+
process.stderr.write("[synap mcp bridge] no pod key or URL — run `synap init`\n");
|
|
427
|
+
process.exit(1);
|
|
428
|
+
}
|
|
429
|
+
// The spawn-time id (a stdio server's env), never a lens fallback.
|
|
430
|
+
await runMcpBridge({
|
|
431
|
+
url,
|
|
432
|
+
apiKey,
|
|
433
|
+
headers: conversationHeaders(process.env.CLAUDE_CODE_SESSION_ID),
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* `synap mcp use-bridge [--off]` — switch Claude Code's MCP connection to the
|
|
438
|
+
* stdio bridge (or back to direct http), re-using the key `synap init` stored.
|
|
439
|
+
*/
|
|
440
|
+
export async function mcpUseBridge(opts) {
|
|
441
|
+
const { setClaudeCodeMcpTransport } = await import("../lib/targets.js");
|
|
442
|
+
const name = setClaudeCodeMcpTransport(opts.off ? "http" : "bridge");
|
|
443
|
+
if (!name) {
|
|
444
|
+
log.error("Claude Code is not connected to a pod yet — run `synap init` first.");
|
|
445
|
+
process.exitCode = 1;
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
log.dim(opts.off
|
|
449
|
+
? "Claude Code talks to the pod directly again; conversations are no longer named on MCP calls."
|
|
450
|
+
: "Each Claude Code conversation is now named on its MCP calls, so its work can be reopened with `claude --resume <id>`.");
|
|
451
|
+
}
|
|
265
452
|
//# sourceMappingURL=mcp.js.map
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/open.d.ts
CHANGED
|
@@ -6,27 +6,57 @@
|
|
|
6
6
|
* synap open document <id>
|
|
7
7
|
* synap open <id> ← resolves type automatically
|
|
8
8
|
*
|
|
9
|
-
* Sends a synap:// deep link to the Electron browser app
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
* Sends a synap:// deep link to the Electron browser app. The OS routes the
|
|
10
|
+
* URL to the registered handler. On macOS we target the installed Synap.app
|
|
11
|
+
* by bundle id / path so leftover electron-vite (`com.github.electron`)
|
|
12
|
+
* cannot steal the click.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Object kind, as a free string. The browser's `object-nav.ts` is the ONE
|
|
16
|
+
* route table for what's openable (21 kinds and growing) — the CLI does not
|
|
17
|
+
* duplicate it. An unroutable kind still opens the app; `objectNavTarget`
|
|
18
|
+
* decides there and returns `null` silently, so this command always prints
|
|
19
|
+
* the emitted link so the user can see what was sent.
|
|
15
20
|
*/
|
|
16
|
-
export type OpenKind =
|
|
21
|
+
export type OpenKind = string;
|
|
17
22
|
export interface OpenOpts {
|
|
18
23
|
kind: OpenKind;
|
|
19
24
|
id: string;
|
|
25
|
+
/** Address parameters the kind needs to be resolvable (a run's flowType). */
|
|
26
|
+
params?: Record<string, string>;
|
|
20
27
|
}
|
|
21
28
|
export interface ResolveResult {
|
|
22
|
-
|
|
29
|
+
/**
|
|
30
|
+
* A browser-routable label, or "unknown". FREE STRING on purpose: the pod's
|
|
31
|
+
* `/resolve/:id` projects onto `object-nav.ts`'s route table (~21 kinds) and
|
|
32
|
+
* pins that with a tripwire. A hand-written union here was a second, smaller
|
|
33
|
+
* table — it listed four kinds, so every capability-substrate object the pod
|
|
34
|
+
* could resolve was still unopenable on this side.
|
|
35
|
+
*/
|
|
36
|
+
type: string;
|
|
37
|
+
/** The id to OPEN — not always the id queried (a correlationId resolves to
|
|
38
|
+
* the proposal/skill row it belongs to, and THAT is what opens). */
|
|
23
39
|
id: string;
|
|
24
40
|
displayName: string | null;
|
|
25
41
|
workspaceId: string | null;
|
|
26
42
|
profileSlug?: string | null;
|
|
43
|
+
/** False when the thing resolved but has no browser surface at all. */
|
|
44
|
+
openable?: boolean;
|
|
45
|
+
/** Address params the deep link must carry (only runs use one today). */
|
|
46
|
+
params?: Record<string, string>;
|
|
27
47
|
}
|
|
48
|
+
/** Lock-step with browser/electron-builder.yml `appId`. */
|
|
49
|
+
export declare const DESKTOP_BUNDLE_ID = "live.synap.browser";
|
|
50
|
+
export declare function desktopAppPaths(home?: string): string[];
|
|
51
|
+
export declare function buildDeepLink(kind: OpenKind, id: string, params?: Record<string, string>): string;
|
|
52
|
+
/**
|
|
53
|
+
* Ordered `open` argv lists for macOS. Prefer the installed .app so we do
|
|
54
|
+
* not depend on Launch Services still pointing at electron-vite.
|
|
55
|
+
*/
|
|
56
|
+
export declare function darwinOpenArgvCandidates(url: string, exists?: (path: string) => boolean): string[][];
|
|
57
|
+
export declare function openUrl(url: string): void;
|
|
28
58
|
export declare function openInBrowser(opts: OpenOpts): Promise<void>;
|
|
29
59
|
/**
|
|
30
|
-
* Resolve a bare ID then open in
|
|
60
|
+
* Resolve a bare ID then open in the desktop app.
|
|
31
61
|
*/
|
|
32
62
|
export declare function resolveAndOpen(id: string): Promise<void>;
|
package/dist/commands/open.js
CHANGED
|
@@ -6,33 +6,67 @@
|
|
|
6
6
|
* synap open document <id>
|
|
7
7
|
* synap open <id> ← resolves type automatically
|
|
8
8
|
*
|
|
9
|
-
* Sends a synap:// deep link to the Electron browser app
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* Works from any terminal — the OS routes the URL to the registered synap://
|
|
14
|
-
* protocol handler. Requires the Synap desktop app to be running.
|
|
9
|
+
* Sends a synap:// deep link to the Electron browser app. The OS routes the
|
|
10
|
+
* URL to the registered handler. On macOS we target the installed Synap.app
|
|
11
|
+
* by bundle id / path so leftover electron-vite (`com.github.electron`)
|
|
12
|
+
* cannot steal the click.
|
|
15
13
|
*/
|
|
16
|
-
import {
|
|
14
|
+
import { execFileSync } from "child_process";
|
|
15
|
+
import { existsSync } from "fs";
|
|
16
|
+
import { homedir } from "os";
|
|
17
|
+
import { join } from "path";
|
|
18
|
+
import { openAppUrl } from "@synap-core/hub-rest-client";
|
|
17
19
|
import { resolveHubConfig } from "../lib/hub-client.js";
|
|
18
20
|
import { log } from "../utils/logger.js";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
/** Lock-step with browser/electron-builder.yml `appId`. */
|
|
22
|
+
export const DESKTOP_BUNDLE_ID = "live.synap.browser";
|
|
23
|
+
export function desktopAppPaths(home = homedir()) {
|
|
24
|
+
return [
|
|
25
|
+
"/Applications/Synap.app",
|
|
26
|
+
join(home, "Applications", "Synap.app"),
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
export function buildDeepLink(kind, id, params) {
|
|
30
|
+
return openAppUrl(kind, id, params);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ordered `open` argv lists for macOS. Prefer the installed .app so we do
|
|
34
|
+
* not depend on Launch Services still pointing at electron-vite.
|
|
35
|
+
*/
|
|
36
|
+
export function darwinOpenArgvCandidates(url, exists = existsSync) {
|
|
37
|
+
const candidates = [];
|
|
38
|
+
const installed = desktopAppPaths().find(exists);
|
|
39
|
+
if (installed)
|
|
40
|
+
candidates.push(["-a", installed, url]);
|
|
41
|
+
candidates.push(["-b", DESKTOP_BUNDLE_ID, url]);
|
|
42
|
+
candidates.push([url]);
|
|
43
|
+
return candidates;
|
|
21
44
|
}
|
|
22
|
-
function openUrl(url) {
|
|
45
|
+
export function openUrl(url) {
|
|
23
46
|
const platform = process.platform;
|
|
24
47
|
if (platform === "darwin") {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
48
|
+
let lastErr;
|
|
49
|
+
for (const args of darwinOpenArgvCandidates(url)) {
|
|
50
|
+
try {
|
|
51
|
+
execFileSync("open", args, { stdio: "pipe" });
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
lastErr = e;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
throw lastErr instanceof Error ? lastErr : new Error("open failed");
|
|
29
59
|
}
|
|
30
|
-
|
|
31
|
-
|
|
60
|
+
if (platform === "linux") {
|
|
61
|
+
execFileSync("xdg-open", [url], { stdio: "pipe" });
|
|
62
|
+
return;
|
|
32
63
|
}
|
|
33
|
-
|
|
34
|
-
|
|
64
|
+
if (platform === "win32") {
|
|
65
|
+
// argv only: `start "" "<url>"` went through cmd.exe, where `&` in a link runs a command.
|
|
66
|
+
execFileSync("rundll32", ["url.dll,FileProtocolHandler", url], { stdio: "pipe" });
|
|
67
|
+
return;
|
|
35
68
|
}
|
|
69
|
+
throw new Error(`Unsupported platform: ${platform}`);
|
|
36
70
|
}
|
|
37
71
|
/**
|
|
38
72
|
* Resolve a bare ID by calling the pod's /resolve endpoint.
|
|
@@ -51,22 +85,26 @@ async function resolveId(id) {
|
|
|
51
85
|
return res.json();
|
|
52
86
|
}
|
|
53
87
|
export async function openInBrowser(opts) {
|
|
54
|
-
const url = buildDeepLink(opts.kind, opts.id);
|
|
88
|
+
const url = buildDeepLink(opts.kind, opts.id, opts.params);
|
|
55
89
|
try {
|
|
56
90
|
openUrl(url);
|
|
57
|
-
log.success(`Opened ${opts.kind} in
|
|
91
|
+
log.success(`Opened ${opts.kind} in the Synap app: ${opts.id.slice(0, 8)}…`);
|
|
58
92
|
log.dim(` (${url})`);
|
|
59
93
|
}
|
|
60
94
|
catch (e) {
|
|
61
|
-
log.error(`Could not open
|
|
62
|
-
`
|
|
95
|
+
log.error(`Could not open the Synap desktop app: ${e.message}\n` +
|
|
96
|
+
` Install Synap.app (or run the desktop app once) so it can claim synap://.`);
|
|
63
97
|
process.exit(1);
|
|
64
98
|
}
|
|
65
99
|
}
|
|
66
100
|
/**
|
|
67
|
-
* Resolve a bare ID then open in
|
|
101
|
+
* Resolve a bare ID then open in the desktop app.
|
|
68
102
|
*/
|
|
69
103
|
export async function resolveAndOpen(id) {
|
|
104
|
+
if (id.startsWith("generated:")) {
|
|
105
|
+
await openInBrowser({ kind: "cell", id });
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
70
108
|
try {
|
|
71
109
|
const resolved = await resolveId(id);
|
|
72
110
|
if (resolved.type === "unknown") {
|
|
@@ -74,11 +112,28 @@ export async function resolveAndOpen(id) {
|
|
|
74
112
|
return;
|
|
75
113
|
}
|
|
76
114
|
log.info(`Resolved: ${resolved.type} — ${resolved.displayName ?? id.slice(0, 8)}`);
|
|
77
|
-
|
|
115
|
+
// RESOLVED BUT NOT OPENABLE. Some things the pod can identify have no
|
|
116
|
+
// browser surface at all (an external send is a correlationId-keyed audit
|
|
117
|
+
// event: no row, no page). Say what it is and stop — minting
|
|
118
|
+
// `synap://open/<kind>/<id>` for a kind the route table has no arm for
|
|
119
|
+
// opens the app onto nothing, which is worse than an honest refusal.
|
|
120
|
+
if (resolved.openable === false) {
|
|
121
|
+
log.warn(`A ${resolved.type} has no page in the Synap app — nothing to open.\n` +
|
|
122
|
+
` Inspect it instead: synap diagnose ${id}`);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
// `resolved.id`, not `id`: a correlationId handed back by a capability run
|
|
126
|
+
// resolves to the proposal (or skill) row it belongs to, and that ROW id is
|
|
127
|
+
// what the deep link must carry. For every direct row-id hit they are equal.
|
|
128
|
+
await openInBrowser({
|
|
129
|
+
kind: resolved.type,
|
|
130
|
+
id: resolved.id ?? id,
|
|
131
|
+
...(resolved.params ? { params: resolved.params } : {}),
|
|
132
|
+
});
|
|
78
133
|
}
|
|
79
134
|
catch (e) {
|
|
80
135
|
log.error(`Could not resolve/open: ${e.message}\n` +
|
|
81
|
-
` Make sure the Synap desktop app is
|
|
136
|
+
` Make sure the Synap desktop app is installed and your pod is reachable.`);
|
|
82
137
|
process.exit(1);
|
|
83
138
|
}
|
|
84
139
|
}
|