@synap-core/cli 1.11.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +40 -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 +32 -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 +524 -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 +116 -66
- package/dist/commands/automation.js.map +1 -1
- package/dist/commands/box.d.ts +42 -0
- package/dist/commands/box.js +89 -0
- package/dist/commands/box.js.map +1 -0
- package/dist/commands/bridge-setup.d.ts +14 -1
- package/dist/commands/bridge-setup.js +395 -129
- 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 +3 -1
- package/dist/commands/capability.js +249 -176
- 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/close-questions.d.ts +27 -0
- package/dist/commands/close-questions.js +49 -0
- package/dist/commands/close-questions.js.map +1 -0
- package/dist/commands/close-questions.test.d.ts +1 -0
- package/dist/commands/close-questions.test.js +52 -0
- package/dist/commands/close-questions.test.js.map +1 -0
- package/dist/commands/connect.d.ts +36 -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 +79 -44
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/data-extra.d.ts +34 -0
- package/dist/commands/data-extra.js +203 -25
- package/dist/commands/data-extra.js.map +1 -1
- package/dist/commands/data.d.ts +120 -2
- package/dist/commands/data.js +295 -21
- 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 +133 -3
- package/dist/commands/doctor.js +761 -41
- 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/hooks.d.ts +19 -0
- package/dist/commands/hooks.js +70 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/import.d.ts +393 -13
- package/dist/commands/import.js +1150 -54
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +34 -9
- package/dist/commands/init.js +481 -981
- 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 +121 -57
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/lens.d.ts +37 -1
- package/dist/commands/lens.js +194 -72
- 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/observe.category.test.d.ts +1 -0
- package/dist/commands/observe.category.test.js +59 -0
- package/dist/commands/observe.category.test.js.map +1 -0
- package/dist/commands/observe.d.ts +3 -0
- package/dist/commands/observe.js +7 -5
- package/dist/commands/observe.js.map +1 -1
- package/dist/commands/observe.title.test.d.ts +1 -0
- package/dist/commands/observe.title.test.js +37 -0
- package/dist/commands/observe.title.test.js.map +1 -0
- 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 +171 -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 +11 -1
- package/dist/commands/pods.js +129 -131
- 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 +579 -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-feed-wait.d.ts +48 -0
- package/dist/commands/session-feed-wait.js +261 -0
- package/dist/commands/session-feed-wait.js.map +1 -0
- package/dist/commands/session-post.d.ts +40 -0
- package/dist/commands/session-post.js +96 -0
- package/dist/commands/session-post.js.map +1 -0
- package/dist/commands/session-wait.d.ts +116 -0
- package/dist/commands/session-wait.js +224 -0
- package/dist/commands/session-wait.js.map +1 -0
- package/dist/commands/sessions.d.ts +54 -0
- package/dist/commands/sessions.js +501 -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-commands.d.ts +2 -0
- package/dist/commands/skills-commands.js +9 -1
- package/dist/commands/skills-commands.js.map +1 -1
- package/dist/commands/skills-commands.test.d.ts +1 -0
- package/dist/commands/skills-commands.test.js +57 -0
- package/dist/commands/skills-commands.test.js.map +1 -0
- 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 +6 -35
- 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 +112 -0
- package/dist/commands/tracks.js +543 -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 +30 -3
- package/dist/commands/whoami.js +186 -23
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/worker-accounts.d.ts +149 -0
- package/dist/commands/worker-accounts.js +339 -0
- package/dist/commands/worker-accounts.js.map +1 -0
- package/dist/commands/worker-accounts.test.d.ts +1 -0
- package/dist/commands/worker-accounts.test.js +224 -0
- package/dist/commands/worker-accounts.test.js.map +1 -0
- package/dist/commands/worker.d.ts +331 -0
- package/dist/commands/worker.js +1067 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/commands/worker.test.d.ts +1 -0
- package/dist/commands/worker.test.js +427 -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 +1043 -186
- 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 +136 -0
- package/dist/lib/agent-door.js +429 -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 +17 -11
- package/dist/lib/auth.js +47 -64
- 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/box/egress.d.ts +82 -0
- package/dist/lib/box/egress.js +264 -0
- package/dist/lib/box/egress.js.map +1 -0
- package/dist/lib/box/evidence.d.ts +86 -0
- package/dist/lib/box/evidence.js +121 -0
- package/dist/lib/box/evidence.js.map +1 -0
- package/dist/lib/box/job-server.d.ts +72 -0
- package/dist/lib/box/job-server.js +246 -0
- package/dist/lib/box/job-server.js.map +1 -0
- package/dist/lib/box/provisioner.d.ts +83 -0
- package/dist/lib/box/provisioner.js +312 -0
- package/dist/lib/box/provisioner.js.map +1 -0
- package/dist/lib/box/proxmox.d.ts +112 -0
- package/dist/lib/box/proxmox.js +211 -0
- package/dist/lib/box/proxmox.js.map +1 -0
- package/dist/lib/box/wire.d.ts +98 -0
- package/dist/lib/box/wire.js +70 -0
- package/dist/lib/box/wire.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/client-header.test.d.ts +1 -0
- package/dist/lib/client-header.test.js +85 -0
- package/dist/lib/client-header.test.js.map +1 -0
- package/dist/lib/conversation-headers.d.ts +33 -0
- package/dist/lib/conversation-headers.js +69 -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 +144 -0
- package/dist/lib/credential-class.js +138 -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/goal-words.d.ts +38 -0
- package/dist/lib/goal-words.js +112 -0
- package/dist/lib/goal-words.js.map +1 -0
- package/dist/lib/hub-client.d.ts +57 -15
- package/dist/lib/hub-client.js +396 -82
- 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 +24 -0
- package/dist/lib/init-handoff.js +26 -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 +68 -0
- package/dist/lib/key-source.js +109 -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 +25 -0
- package/dist/lib/knowledge-title.js +47 -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 +49 -0
- package/dist/lib/mcp-bridge.js +180 -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 +118 -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/openclaw.js +3 -2
- package/dist/lib/openclaw.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-moved.d.ts +70 -0
- package/dist/lib/pod-moved.js +146 -0
- package/dist/lib/pod-moved.js.map +1 -0
- package/dist/lib/pod-reach.d.ts +39 -0
- package/dist/lib/pod-reach.js +117 -0
- package/dist/lib/pod-reach.js.map +1 -0
- package/dist/lib/pod-reach.test.d.ts +1 -0
- package/dist/lib/pod-reach.test.js +67 -0
- package/dist/lib/pod-reach.test.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 +74 -112
- package/dist/lib/pod.js +146 -415
- 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/register-claude-code-mcp.test.d.ts +1 -0
- package/dist/lib/register-claude-code-mcp.test.js +78 -0
- package/dist/lib/register-claude-code-mcp.test.js.map +1 -0
- package/dist/lib/review-credential.d.ts +119 -0
- package/dist/lib/review-credential.js +149 -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-feed.d.ts +185 -0
- package/dist/lib/session-feed.js +257 -0
- package/dist/lib/session-feed.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 +152 -10
- package/dist/lib/targets.js +974 -325
- 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/lib/wake-hook-settings.d.ts +57 -0
- package/dist/lib/wake-hook-settings.js +153 -0
- package/dist/lib/wake-hook-settings.js.map +1 -0
- package/dist/lib/wake-state.d.ts +65 -0
- package/dist/lib/wake-state.js +122 -0
- package/dist/lib/wake-state.js.map +1 -0
- package/dist/utils/logger.js +5 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +26 -17
- package/skills/README.md +13 -11
- 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 +1149 -289
- 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/code-skills.md +70 -0
- package/skills/synap/concepts.md +36 -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 +143 -47
- package/skills/synap/escalation-ladder.md +20 -10
- package/skills/synap/focus-sessions.md +56 -21
- package/skills/synap/from-intent.md +158 -0
- package/skills/synap/governance-rules.md +5 -5
- 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 +34 -16
- package/skills/synap/linking.md +42 -41
- package/skills/synap/mcp-remote-servers.md +64 -0
- package/skills/synap/mental-model.md +17 -15
- package/skills/synap/operating-mode-rules.md +2 -2
- package/skills/synap/processes.md +118 -0
- package/skills/synap/quick-reference.md +7 -2
- 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 +110 -0
- package/skills/synap/worked-examples.md +4 -5
- package/skills/synap/workspace-design.md +15 -11
- package/skills/synap/writes.md +105 -25
- package/skills/synap/writing-titles.md +63 -0
- package/skills/synap-app/SKILL.md +149 -67
- package/skills/synap-app/_skill.yaml +1 -1
- package/skills/synap-app/creating-the-base-app.md +12 -7
- package/skills/synap-app/governance.md +27 -16
- package/skills/synap-app/install-commands.md +18 -9
- package/skills/synap-app/overview.md +16 -9
- package/skills/synap-app/using-the-sdk.md +75 -25
- 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/box/runner.py +206 -0
- 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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"centrality.js","sourceRoot":"","sources":["../../src/commands/centrality.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"centrality.js","sourceRoot":"","sources":["../../src/commands/centrality.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CloseQuestionDisposition {
|
|
2
|
+
messageId: string;
|
|
3
|
+
disposition: "withdrawn" | "keep_as_owed";
|
|
4
|
+
note?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface OpenQuestionAtClose {
|
|
7
|
+
messageId: string;
|
|
8
|
+
shortId?: string;
|
|
9
|
+
text: string;
|
|
10
|
+
slotLabel?: string | null;
|
|
11
|
+
}
|
|
12
|
+
/** The flags as the pod's `questionDispositions`, or the first malformed flag. Pure. */
|
|
13
|
+
export declare function closeQuestionDispositions(flags: {
|
|
14
|
+
withdraw?: readonly string[];
|
|
15
|
+
keepOwed?: readonly string[];
|
|
16
|
+
}): {
|
|
17
|
+
ok: true;
|
|
18
|
+
dispositions: CloseQuestionDisposition[];
|
|
19
|
+
} | {
|
|
20
|
+
ok: false;
|
|
21
|
+
error: string;
|
|
22
|
+
};
|
|
23
|
+
/** The pod's open-questions refusal of a close, or null for any other error. Pure. */
|
|
24
|
+
export declare function openQuestionsRefusal(err: unknown): {
|
|
25
|
+
error: string;
|
|
26
|
+
openQuestions: OpenQuestionAtClose[];
|
|
27
|
+
} | null;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `synap session close` and the agent's open questions. The pod refuses an
|
|
3
|
+
* agent's close while a question it asked in the session's room is still open
|
|
4
|
+
* (409, `reasonCode: "OPEN_QUESTIONS"`), unless the close carries the agent's
|
|
5
|
+
* word on each one (`questionDispositions`, POST /focus-sessions/:id/complete):
|
|
6
|
+
* --withdraw <messageId>=<note> the work overtook it
|
|
7
|
+
* --keep-owed <messageId> the person still owes the answer after this session
|
|
8
|
+
* An answer the person gave in chat is relayed first (relay_answer), not here.
|
|
9
|
+
*/
|
|
10
|
+
import { HubError } from "../lib/hub-client.js";
|
|
11
|
+
/** The flags as the pod's `questionDispositions`, or the first malformed flag. Pure. */
|
|
12
|
+
export function closeQuestionDispositions(flags) {
|
|
13
|
+
const dispositions = [];
|
|
14
|
+
for (const raw of flags.withdraw ?? []) {
|
|
15
|
+
const at = raw.indexOf("=");
|
|
16
|
+
const messageId = (at === -1 ? raw : raw.slice(0, at)).trim();
|
|
17
|
+
const note = at === -1 ? "" : raw.slice(at + 1).trim();
|
|
18
|
+
if (!messageId || !note) {
|
|
19
|
+
return {
|
|
20
|
+
ok: false,
|
|
21
|
+
error: `--withdraw takes <messageId>=<why it is no longer needed> (got "${raw}")`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
dispositions.push({ messageId, disposition: "withdrawn", note });
|
|
25
|
+
}
|
|
26
|
+
for (const raw of flags.keepOwed ?? []) {
|
|
27
|
+
const messageId = raw.trim();
|
|
28
|
+
if (!messageId)
|
|
29
|
+
return { ok: false, error: "--keep-owed takes a messageId" };
|
|
30
|
+
dispositions.push({ messageId, disposition: "keep_as_owed" });
|
|
31
|
+
}
|
|
32
|
+
return { ok: true, dispositions };
|
|
33
|
+
}
|
|
34
|
+
/** The pod's open-questions refusal of a close, or null for any other error. Pure. */
|
|
35
|
+
export function openQuestionsRefusal(err) {
|
|
36
|
+
if (!(err instanceof HubError) || err.status !== 409)
|
|
37
|
+
return null;
|
|
38
|
+
const body = err.body;
|
|
39
|
+
if (body?.status !== "refused" || body.reasonCode !== "OPEN_QUESTIONS") {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
error: typeof body.error === "string" ? body.error : err.message,
|
|
44
|
+
openQuestions: Array.isArray(body.openQuestions)
|
|
45
|
+
? body.openQuestions
|
|
46
|
+
: [],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=close-questions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-questions.js","sourceRoot":"","sources":["../../src/commands/close-questions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAehD,wFAAwF;AACxF,MAAM,UAAU,yBAAyB,CAAC,KAGzC;IAGC,MAAM,YAAY,GAA+B,EAAE,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,mEAAmE,GAAG,IAAI;aAClF,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;QAC7E,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAClC,GAAY;IAEZ,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,IAKT,CAAC;IACT,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO;QAChE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YAC9C,CAAC,CAAE,IAAI,CAAC,aAAuC;YAC/C,CAAC,CAAC,EAAE;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { HubError } from "../lib/hub-client.js";
|
|
3
|
+
import { closeQuestionDispositions, openQuestionsRefusal, } from "./close-questions.js";
|
|
4
|
+
const Q = "5f3a1c88-1111-4bbb-8ccc-444444444444";
|
|
5
|
+
const Q2 = "5f3a1c88-1111-4bbb-8ccc-555555555555";
|
|
6
|
+
const hubError = (status, body) => new HubError({
|
|
7
|
+
message: `HTTP ${status}`,
|
|
8
|
+
status,
|
|
9
|
+
body,
|
|
10
|
+
rawBody: JSON.stringify(body),
|
|
11
|
+
path: `/focus-sessions/x/complete`,
|
|
12
|
+
method: "POST",
|
|
13
|
+
});
|
|
14
|
+
describe("closeQuestionDispositions", () => {
|
|
15
|
+
it("turns the flags into the pod's dispositions, the note after the first =", () => {
|
|
16
|
+
expect(closeQuestionDispositions({
|
|
17
|
+
withdraw: [`${Q}=plan changed = no deploy`],
|
|
18
|
+
keepOwed: [Q2],
|
|
19
|
+
})).toEqual({
|
|
20
|
+
ok: true,
|
|
21
|
+
dispositions: [
|
|
22
|
+
{ messageId: Q, disposition: "withdrawn", note: "plan changed = no deploy" },
|
|
23
|
+
{ messageId: Q2, disposition: "keep_as_owed" },
|
|
24
|
+
],
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
it("refuses a withdraw with no note, never sends it as keep-owed", () => {
|
|
28
|
+
const r = closeQuestionDispositions({ withdraw: [Q] });
|
|
29
|
+
expect(r.ok).toBe(false);
|
|
30
|
+
expect(closeQuestionDispositions({ withdraw: [`${Q}= `] }).ok).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it("no flags: no dispositions", () => {
|
|
33
|
+
expect(closeQuestionDispositions({})).toEqual({ ok: true, dispositions: [] });
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe("openQuestionsRefusal", () => {
|
|
37
|
+
const open = [{ messageId: Q, shortId: "Q-5f3a1c88", text: "Deploy?", slotLabel: null }];
|
|
38
|
+
it("reads the pod's open-questions refusal with its list", () => {
|
|
39
|
+
expect(openQuestionsRefusal(hubError(409, {
|
|
40
|
+
status: "refused",
|
|
41
|
+
reasonCode: "OPEN_QUESTIONS",
|
|
42
|
+
error: "Not closed: 1 question(s) …",
|
|
43
|
+
openQuestions: open,
|
|
44
|
+
}))).toEqual({ error: "Not closed: 1 question(s) …", openQuestions: open });
|
|
45
|
+
});
|
|
46
|
+
it("any other error is not this refusal", () => {
|
|
47
|
+
expect(openQuestionsRefusal(hubError(409, { error: "already closed" }))).toBeNull();
|
|
48
|
+
expect(openQuestionsRefusal(hubError(403, { status: "refused", reasonCode: "OPEN_QUESTIONS" }))).toBeNull();
|
|
49
|
+
expect(openQuestionsRefusal(new Error("boom"))).toBeNull();
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=close-questions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-questions.test.js","sourceRoot":"","sources":["../../src/commands/close-questions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,53 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* synap connect
|
|
2
|
+
* synap connect [thing]
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* The umbrella for "plug something into my pod". It owns no logic of its own:
|
|
5
|
+
* an agent goes through `synap agents add` (lib/agent-door.ts), a tool or
|
|
6
|
+
* account through `synap cap connect`.
|
|
6
7
|
*
|
|
7
8
|
* Usage:
|
|
8
|
-
* synap connect
|
|
9
|
-
* synap connect
|
|
10
|
-
* synap connect
|
|
11
|
-
* synap connect --
|
|
12
|
-
* synap connect --
|
|
13
|
-
* synap connect
|
|
14
|
-
* synap connect --target=claude-code --name=team (use specific pod profile)
|
|
9
|
+
* synap connect (interactive: an AI agent, or a tool/account?)
|
|
10
|
+
* synap connect cursor (a client → synap agents add cursor)
|
|
11
|
+
* synap connect gmail (anything else → synap cap connect gmail)
|
|
12
|
+
* synap connect gmail --tool (force the tool reading when a name is both)
|
|
13
|
+
* synap connect claude-code --project <id> (scope; default pod-wide)
|
|
14
|
+
* synap connect raycast (extension key + Raycast AI's HTTP MCP entry)
|
|
15
15
|
*
|
|
16
16
|
* Escape hatch for scripting:
|
|
17
|
-
* synap connect --pod-url <url> --api-key <key>
|
|
17
|
+
* synap connect cursor --pod-url <url> --api-key <key>
|
|
18
18
|
*/
|
|
19
|
+
import { type TargetName } from "../lib/targets.js";
|
|
19
20
|
interface ConnectOptions {
|
|
20
21
|
podUrl?: string;
|
|
21
22
|
apiKey?: string;
|
|
23
|
+
/** Legacy spelling of the positional. */
|
|
22
24
|
target?: string;
|
|
23
25
|
list?: boolean;
|
|
26
|
+
/** Pod profile to use. */
|
|
24
27
|
name?: string;
|
|
25
|
-
|
|
28
|
+
/** Force the tool reading of a name that is also an agent client. */
|
|
29
|
+
tool?: boolean;
|
|
30
|
+
workspace?: string;
|
|
31
|
+
project?: string;
|
|
32
|
+
/** Legacy spellings of --workspace / --project. */
|
|
26
33
|
pinWorkspace?: string;
|
|
27
34
|
pinProject?: string;
|
|
28
35
|
}
|
|
29
|
-
export
|
|
36
|
+
export type ConnectRoute = {
|
|
37
|
+
kind: "agent";
|
|
38
|
+
target: TargetName;
|
|
39
|
+
} | {
|
|
40
|
+
kind: "tool";
|
|
41
|
+
name?: string;
|
|
42
|
+
} | {
|
|
43
|
+
kind: "pick";
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* A known agent client wins a name; everything else is a tool. `--tool`
|
|
47
|
+
* forces the tool reading (and, with no name, opens the tool picker).
|
|
48
|
+
*/
|
|
49
|
+
export declare function routeConnect(thing: string | undefined, opts?: {
|
|
50
|
+
tool?: boolean;
|
|
51
|
+
}): ConnectRoute;
|
|
52
|
+
export declare function connect(thing: string | undefined, opts?: ConnectOptions): Promise<void>;
|
|
30
53
|
export {};
|
package/dist/commands/connect.js
CHANGED
|
@@ -1,189 +1,90 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* synap connect
|
|
2
|
+
* synap connect [thing]
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* The umbrella for "plug something into my pod". It owns no logic of its own:
|
|
5
|
+
* an agent goes through `synap agents add` (lib/agent-door.ts), a tool or
|
|
6
|
+
* account through `synap cap connect`.
|
|
6
7
|
*
|
|
7
8
|
* Usage:
|
|
8
|
-
* synap connect
|
|
9
|
-
* synap connect
|
|
10
|
-
* synap connect
|
|
11
|
-
* synap connect --
|
|
12
|
-
* synap connect --
|
|
13
|
-
* synap connect
|
|
14
|
-
* synap connect --target=claude-code --name=team (use specific pod profile)
|
|
9
|
+
* synap connect (interactive: an AI agent, or a tool/account?)
|
|
10
|
+
* synap connect cursor (a client → synap agents add cursor)
|
|
11
|
+
* synap connect gmail (anything else → synap cap connect gmail)
|
|
12
|
+
* synap connect gmail --tool (force the tool reading when a name is both)
|
|
13
|
+
* synap connect claude-code --project <id> (scope; default pod-wide)
|
|
14
|
+
* synap connect raycast (extension key + Raycast AI's HTTP MCP entry)
|
|
15
15
|
*
|
|
16
16
|
* Escape hatch for scripting:
|
|
17
|
-
* synap connect --pod-url <url> --api-key <key>
|
|
17
|
+
* synap connect cursor --pod-url <url> --api-key <key>
|
|
18
18
|
*/
|
|
19
19
|
import prompts from "prompts";
|
|
20
|
-
import ora from "ora";
|
|
21
|
-
import chalk from "chalk";
|
|
22
20
|
import { log, banner } from "../utils/logger.js";
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
import { isTargetName, listTargets } from "../lib/targets.js";
|
|
22
|
+
import { connectKnownAgent, resolveAgentPod } from "../lib/agent-door.js";
|
|
23
|
+
/**
|
|
24
|
+
* A known agent client wins a name; everything else is a tool. `--tool`
|
|
25
|
+
* forces the tool reading (and, with no name, opens the tool picker).
|
|
26
|
+
*/
|
|
27
|
+
export function routeConnect(thing, opts = {}) {
|
|
28
|
+
const t = thing?.trim() || undefined;
|
|
29
|
+
if (opts.tool)
|
|
30
|
+
return { kind: "tool", name: t };
|
|
31
|
+
if (!t)
|
|
32
|
+
return { kind: "pick" };
|
|
33
|
+
if (isTargetName(t))
|
|
34
|
+
return { kind: "agent", target: t };
|
|
35
|
+
return { kind: "tool", name: t };
|
|
36
|
+
}
|
|
37
|
+
export async function connect(thing, opts = {}) {
|
|
27
38
|
banner();
|
|
28
39
|
if (opts.list) {
|
|
40
|
+
log.heading("Agents");
|
|
29
41
|
listTargets();
|
|
42
|
+
log.dim("Any other agent: synap agents add --name <name> (prints a URL + key to paste)");
|
|
43
|
+
log.heading("Tools & accounts");
|
|
44
|
+
log.dim("synap connect --tool lists the services this pod can connect");
|
|
30
45
|
return;
|
|
31
46
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
let
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
const scope = {
|
|
48
|
+
workspaceId: opts.workspace ?? opts.pinWorkspace,
|
|
49
|
+
projectId: opts.project ?? opts.pinProject,
|
|
50
|
+
};
|
|
51
|
+
let route = routeConnect(thing ?? opts.target, { tool: opts.tool });
|
|
52
|
+
if (route.kind === "pick") {
|
|
53
|
+
if (!process.stdin.isTTY) {
|
|
54
|
+
log.error("Say what to connect: synap connect <client|tool> (synap connect --list)");
|
|
55
|
+
process.exitCode = 1;
|
|
41
56
|
return;
|
|
42
|
-
podUrl = resolved.podUrl;
|
|
43
|
-
apiKey = resolved.hubApiKey;
|
|
44
|
-
workspaceId = resolved.workspaceId || undefined;
|
|
45
|
-
agentUserId = resolved.agentUserId || undefined;
|
|
46
|
-
}
|
|
47
|
-
// ── Step 2: Health check ────────────────────────────────────────────────
|
|
48
|
-
const spinner = ora("Checking pod health...").start();
|
|
49
|
-
const health = await checkPodHealth(podUrl);
|
|
50
|
-
if (!health.healthy) {
|
|
51
|
-
spinner.fail(`Pod not reachable at ${podUrl}`);
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
spinner.succeed(`Pod healthy at ${podUrl}`);
|
|
55
|
-
// ── Step 3: Target (AI surface) ─────────────────────────────────────────
|
|
56
|
-
const target = await resolveTarget(opts.target);
|
|
57
|
-
if (!target)
|
|
58
|
-
return;
|
|
59
|
-
// ── Step 4: Install ─────────────────────────────────────────────────────
|
|
60
|
-
log.heading(`Connecting ${TARGETS[target].label} → ${podUrl}`);
|
|
61
|
-
// Default pod-wide: a workspace is a lens, not a container — don't weld the
|
|
62
|
-
// profile's workspace into the connection. Pin only when explicitly asked
|
|
63
|
-
// (`--pin-workspace` / `--pin-project`, composable). With no pin, the agent
|
|
64
|
-
// is enrolled across ALL the user's workspaces and scopes consciously per call.
|
|
65
|
-
void workspaceId; // profile default no longer scopes the connection
|
|
66
|
-
const ok = await installForTarget(target, {
|
|
67
|
-
podUrl,
|
|
68
|
-
apiKey,
|
|
69
|
-
workspaceId: opts.pinWorkspace,
|
|
70
|
-
projectId: opts.pinProject,
|
|
71
|
-
agentUserId,
|
|
72
|
-
});
|
|
73
|
-
log.blank();
|
|
74
|
-
if (ok) {
|
|
75
|
-
log.success(`${TARGETS[target].label} connected to ${podUrl}`);
|
|
76
|
-
// For MCP targets, surface the provider pull option — lets users get real
|
|
77
|
-
// AI provider credentials from the pod vault into their local tool config.
|
|
78
|
-
if (TARGETS[target].supports.mcp) {
|
|
79
|
-
log.blank();
|
|
80
|
-
log.dim("To also configure an AI provider (opencode, aider, etc.) from the pod:");
|
|
81
|
-
log.dim(" synap providers pull");
|
|
82
57
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
let profiles = listPodProfiles();
|
|
92
|
-
// No pods yet — offer to add one inline instead of dead-ending
|
|
93
|
-
if (profiles.length === 0) {
|
|
94
|
-
log.blank();
|
|
95
|
-
log.info("No pods configured yet.");
|
|
96
|
-
const { shouldAdd } = await prompts({
|
|
97
|
-
type: "confirm",
|
|
98
|
-
name: "shouldAdd",
|
|
99
|
-
message: "Add a pod now?",
|
|
100
|
-
initial: true,
|
|
58
|
+
const { what } = await prompts({
|
|
59
|
+
type: "select",
|
|
60
|
+
name: "what",
|
|
61
|
+
message: "What are you connecting?",
|
|
62
|
+
choices: [
|
|
63
|
+
{ title: "An AI agent", description: "Claude Code, Cursor, Codex, … or your own", value: "agent" },
|
|
64
|
+
{ title: "A tool or account", description: "Gmail, GitHub, Notion, …", value: "tool" },
|
|
65
|
+
],
|
|
101
66
|
});
|
|
102
|
-
if (!
|
|
103
|
-
return
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return null; // user bailed out of add flow
|
|
109
|
-
}
|
|
110
|
-
// --name flag: use that profile directly
|
|
111
|
-
if (preferredName) {
|
|
112
|
-
const match = profiles.find((p) => p.name === preferredName);
|
|
113
|
-
if (!match) {
|
|
114
|
-
log.error(podNotFoundMessage(preferredName));
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
log.info(`Using pod: ${chalk.bold(match.name)} ${chalk.dim(match.config.podUrl)}`);
|
|
118
|
-
return match.config;
|
|
119
|
-
}
|
|
120
|
-
// Single profile: show it so the user knows what they're connecting to
|
|
121
|
-
if (profiles.length === 1) {
|
|
122
|
-
const p = profiles[0];
|
|
123
|
-
log.info(`Pod: ${chalk.bold(p.name)} ${chalk.dim(p.config.podUrl)}`);
|
|
124
|
-
return p.config;
|
|
125
|
-
}
|
|
126
|
-
// Multiple profiles: let user pick
|
|
127
|
-
const active = profiles.find((p) => p.active);
|
|
128
|
-
const { profileName } = await prompts({
|
|
129
|
-
type: "select",
|
|
130
|
-
name: "profileName",
|
|
131
|
-
message: "Which pod?",
|
|
132
|
-
choices: [
|
|
133
|
-
...profiles.map((p) => ({
|
|
134
|
-
title: `${chalk.bold(p.name)}${p.active ? chalk.green(" ← active") : ""} ${chalk.dim(p.config.podUrl)}`,
|
|
135
|
-
value: p.name,
|
|
136
|
-
})),
|
|
137
|
-
{ title: chalk.dim("Add a new pod…"), value: "__add__" },
|
|
138
|
-
],
|
|
139
|
-
initial: active ? profiles.indexOf(active) : 0,
|
|
140
|
-
});
|
|
141
|
-
if (!profileName)
|
|
142
|
-
return null;
|
|
143
|
-
if (profileName === "__add__") {
|
|
144
|
-
log.blank();
|
|
145
|
-
await podsAdd();
|
|
146
|
-
const updated = listPodProfiles();
|
|
147
|
-
// Return the most recently added profile (last in list)
|
|
148
|
-
const newest = updated.filter((p) => !profiles.some((o) => o.name === p.name));
|
|
149
|
-
if (newest.length > 0) {
|
|
150
|
-
log.info(`Using pod: ${chalk.bold(newest[0].name)} ${chalk.dim(newest[0].config.podUrl)}`);
|
|
151
|
-
return newest[0].config;
|
|
67
|
+
if (!what)
|
|
68
|
+
return;
|
|
69
|
+
if (what === "agent") {
|
|
70
|
+
const { agentsAdd } = await import("./agents.js");
|
|
71
|
+
await agentsAdd(undefined, { workspace: scope.workspaceId, project: scope.projectId });
|
|
72
|
+
return;
|
|
152
73
|
}
|
|
153
|
-
|
|
74
|
+
route = { kind: "tool" };
|
|
154
75
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
log.dim("Run `synap connect --list` to see supported targets.");
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
return raw;
|
|
76
|
+
if (route.kind === "tool") {
|
|
77
|
+
if (scope.projectId)
|
|
78
|
+
log.warn("--project doesn't apply to a tool connection; ignored.");
|
|
79
|
+
const { capabilityConnect } = await import("./capability.js");
|
|
80
|
+
await capabilityConnect(route.name, { workspace: scope.workspaceId });
|
|
81
|
+
return;
|
|
165
82
|
}
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
value: t.name,
|
|
173
|
-
})),
|
|
174
|
-
});
|
|
175
|
-
if (!target || !isTargetName(target))
|
|
176
|
-
return null;
|
|
177
|
-
return target;
|
|
178
|
-
}
|
|
179
|
-
function describeCaps(supports) {
|
|
180
|
-
const parts = [];
|
|
181
|
-
if (supports.skills)
|
|
182
|
-
parts.push("skills");
|
|
183
|
-
if (supports.mcp)
|
|
184
|
-
parts.push("MCP");
|
|
185
|
-
return parts.length ? ` ${chalk.dim(`(${parts.join(" + ")})`)}` : "";
|
|
83
|
+
const pod = await resolveAgentPod({ podUrl: opts.podUrl, apiKey: opts.apiKey, profileName: opts.name });
|
|
84
|
+
if (!pod)
|
|
85
|
+
return;
|
|
86
|
+
const ok = await connectKnownAgent(route.target, pod, scope);
|
|
87
|
+
if (!ok)
|
|
88
|
+
process.exitCode = 1;
|
|
186
89
|
}
|
|
187
|
-
// (detectAndSaveAgentWorkspaceRouting removed — agents are pod-wide now; there
|
|
188
|
-
// is no "memory workspace" to auto-detect and pin. Memory is automatic.)
|
|
189
90
|
//# sourceMappingURL=connect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* synap connections
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* and which
|
|
4
|
+
* Everything plugged into your pods, in two sections:
|
|
5
|
+
* Agents — which pod each agent client points at, and which profile it matches.
|
|
6
|
+
* Tools — which services (Gmail, GitHub, …) the active pod has connected.
|
|
6
7
|
*
|
|
7
8
|
* synap connections
|
|
8
9
|
*/
|