@synap-core/cli 1.10.0 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +297 -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 +3 -14
- 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 +9 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/data-extra.d.ts +34 -0
- package/dist/commands/data-extra.js +198 -25
- package/dist/commands/data-extra.js.map +1 -1
- package/dist/commands/data.d.ts +120 -2
- package/dist/commands/data.js +307 -24
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/diagnose.d.ts +66 -4
- package/dist/commands/diagnose.js +329 -29
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/digest.js +2 -1
- package/dist/commands/digest.js.map +1 -1
- package/dist/commands/doc.d.ts +25 -4
- package/dist/commands/doc.js +100 -18
- package/dist/commands/doc.js.map +1 -1
- package/dist/commands/doctor.d.ts +130 -0
- package/dist/commands/doctor.js +814 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/events.js +3 -1
- package/dist/commands/events.js.map +1 -1
- package/dist/commands/explain.js +5 -5
- package/dist/commands/explain.js.map +1 -1
- package/dist/commands/graph.js +5 -3
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/import.d.ts +368 -13
- package/dist/commands/import.js +1096 -55
- 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 +28 -6
- package/dist/commands/knowledge.js +358 -73
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/launch.js +2 -2
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/lens.d.ts +37 -1
- package/dist/commands/lens.js +193 -72
- package/dist/commands/lens.js.map +1 -1
- package/dist/commands/market-authoring.d.ts +72 -0
- package/dist/commands/market-authoring.js +566 -0
- package/dist/commands/market-authoring.js.map +1 -0
- 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 +419 -20
- package/dist/commands/market.js +2124 -193
- package/dist/commands/market.js.map +1 -1
- package/dist/commands/mcp.d.ts +70 -13
- package/dist/commands/mcp.js +308 -40
- 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 +19 -0
- package/dist/commands/pods.js +220 -85
- package/dist/commands/pods.js.map +1 -1
- package/dist/commands/proposals-actions.d.ts +62 -0
- package/dist/commands/proposals-actions.js +146 -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 +479 -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 +19 -1
- 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 +68 -0
- package/dist/commands/upload.js +257 -0
- package/dist/commands/upload.js.map +1 -0
- 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 +1009 -171
- 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 +11 -8
- package/dist/lib/capture-lane.js.map +1 -1
- package/dist/lib/capture-structure.d.ts +342 -0
- package/dist/lib/capture-structure.js +295 -0
- package/dist/lib/capture-structure.js.map +1 -0
- 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 +216 -4
- package/dist/lib/cp-packages.js +414 -11
- 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 +43 -9
- package/dist/lib/hub-client.js +429 -65
- package/dist/lib/hub-client.js.map +1 -1
- package/dist/lib/id.d.ts +23 -0
- package/dist/lib/id.js +35 -0
- package/dist/lib/id.js.map +1 -0
- 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 +119 -115
- package/dist/lib/pod.js +206 -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 +78 -0
- package/dist/lib/template-file.js +140 -0
- package/dist/lib/template-file.js.map +1 -0
- 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 +25 -18
- package/skills/README.md +12 -10
- package/skills/agent-os/SKILL.md +220 -99
- package/skills/manifest.json +2 -2
- package/skills/onboard/SKILL.md +61 -25
- package/skills/synap/README.md +5 -8
- package/skills/synap/SKILL.md +1185 -301
- 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 +54 -151
- package/skills/synap/cli-operations.md +24 -18
- package/skills/synap/common-mistakes.md +1 -0
- package/skills/synap/concepts.md +28 -0
- package/skills/synap/content-os.md +92 -0
- package/skills/synap/creative-loop.md +15 -10
- package/skills/synap/crm.md +21 -52
- package/skills/synap/digesting-a-channel.md +25 -0
- 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 +24 -22
- package/skills/synap/multi-entity-capture.md +6 -4
- 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 +21 -1
- package/skills/synap/workspace-design.md +14 -10
- package/skills/synap/writes.md +165 -35
- package/skills/synap/writing-titles.md +63 -0
- package/skills/synap-app/SKILL.md +319 -0
- package/skills/synap-app/_order.txt +5 -0
- package/skills/synap-app/_skill.yaml +20 -0
- package/skills/synap-app/creating-the-base-app.md +64 -0
- package/skills/synap-app/governance.md +42 -0
- package/skills/synap-app/install-commands.md +55 -0
- package/skills/synap-app/overview.md +50 -0
- package/skills/synap-app/using-the-sdk.md +73 -0
- 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 +625 -0
- package/skills/synap-market/_order.txt +5 -0
- package/skills/synap-market/_skill.yaml +24 -0
- package/skills/synap-market/author-and-publish.md +212 -0
- package/skills/synap-market/discover-and-fetch.md +59 -0
- package/skills/synap-market/governance-and-catalog.md +63 -0
- package/skills/synap-market/install.md +133 -0
- package/skills/synap-market/overview.md +119 -0
- 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/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
|
@@ -10,12 +10,32 @@
|
|
|
10
10
|
* but a valid surface key is pinned (or vice-versa). This command:
|
|
11
11
|
* 1. resolves the winning cfg (the key every command uses),
|
|
12
12
|
* 2. independently reads env key + `claude-code` surface key and reproduces
|
|
13
|
-
* the surface-over-env preference rule
|
|
14
|
-
*
|
|
13
|
+
* the surface-over-env preference rule via `preferClaudeCodeSurfaceKey`
|
|
14
|
+
* (shared with hub-client — no drift),
|
|
15
|
+
* 3. introspects the winner via BOTH `/auth/status` (who OWNS the key) and
|
|
16
|
+
* `/users/me` (who the pod ACTS AS, + server-derived `isAgent`), and
|
|
15
17
|
* 4. when env and surface keys diverge, names the winner AND the ignored key,
|
|
16
18
|
* probing the loser too so the operator sees both states side by side.
|
|
17
19
|
*
|
|
20
|
+
* Step 3 used to show only `/auth/status`'s `userEmail`, labelled "Identity".
|
|
21
|
+
* For an agent key that is the AGENT, never the human the pod attributes its
|
|
22
|
+
* writes to — so the command answered a different question than it appeared to,
|
|
23
|
+
* and an earlier analysis concluded from it that the CLI and the MCP connector
|
|
24
|
+
* were different people. Key owner, effective user, and isAgent are now printed
|
|
25
|
+
* together; any one of them alone is misleading.
|
|
26
|
+
*
|
|
18
27
|
* It never mutates state and never relies on resolveHubConfig's stderr swap
|
|
19
28
|
* warning (hub-client.ts:398-400) — it reads the divergence itself.
|
|
20
29
|
*/
|
|
21
|
-
|
|
30
|
+
import { type AuthStatus, type EffectiveIdentity } from "../lib/credential-class.js";
|
|
31
|
+
/**
|
|
32
|
+
* Parse agentType from the synthetic agent email
|
|
33
|
+
* `agent-<type>-<8hex>@synap.agent` (agent-identity-service). AuthStatus and
|
|
34
|
+
* /users/me do not currently expose agentType as a field.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseAgentTypeFromEmail(email: string | null | undefined): string | null;
|
|
37
|
+
/** Resolve agentType when acting as an agent: email parse (AuthStatus has no field). */
|
|
38
|
+
export declare function resolveAgentType(s: AuthStatus, me: EffectiveIdentity | null): string | null;
|
|
39
|
+
export declare function whoami(opts?: {
|
|
40
|
+
json?: boolean;
|
|
41
|
+
}): Promise<void>;
|
package/dist/commands/whoami.js
CHANGED
|
@@ -10,18 +10,34 @@
|
|
|
10
10
|
* but a valid surface key is pinned (or vice-versa). This command:
|
|
11
11
|
* 1. resolves the winning cfg (the key every command uses),
|
|
12
12
|
* 2. independently reads env key + `claude-code` surface key and reproduces
|
|
13
|
-
* the surface-over-env preference rule
|
|
14
|
-
*
|
|
13
|
+
* the surface-over-env preference rule via `preferClaudeCodeSurfaceKey`
|
|
14
|
+
* (shared with hub-client — no drift),
|
|
15
|
+
* 3. introspects the winner via BOTH `/auth/status` (who OWNS the key) and
|
|
16
|
+
* `/users/me` (who the pod ACTS AS, + server-derived `isAgent`), and
|
|
15
17
|
* 4. when env and surface keys diverge, names the winner AND the ignored key,
|
|
16
18
|
* probing the loser too so the operator sees both states side by side.
|
|
17
19
|
*
|
|
20
|
+
* Step 3 used to show only `/auth/status`'s `userEmail`, labelled "Identity".
|
|
21
|
+
* For an agent key that is the AGENT, never the human the pod attributes its
|
|
22
|
+
* writes to — so the command answered a different question than it appeared to,
|
|
23
|
+
* and an earlier analysis concluded from it that the CLI and the MCP connector
|
|
24
|
+
* were different people. Key owner, effective user, and isAgent are now printed
|
|
25
|
+
* together; any one of them alone is misleading.
|
|
26
|
+
*
|
|
18
27
|
* It never mutates state and never relies on resolveHubConfig's stderr swap
|
|
19
28
|
* warning (hub-client.ts:398-400) — it reads the divergence itself.
|
|
20
29
|
*/
|
|
21
30
|
import chalk from "chalk";
|
|
31
|
+
import { fetchKeyState } from "../lib/key-state.js";
|
|
32
|
+
import { describeKeyState } from "../lib/key-diagnosis.js";
|
|
22
33
|
import { log, banner } from "../utils/logger.js";
|
|
23
|
-
import { resolveHubConfig,
|
|
34
|
+
import { resolveHubConfig, HubError } from "../lib/hub-client.js";
|
|
24
35
|
import { getSurfaceAgentKey } from "../lib/pod.js";
|
|
36
|
+
import { formatKeySource, preferClaudeCodeSurfaceKey, resolveKeySource, } from "../lib/key-source.js";
|
|
37
|
+
// `AuthStatus` + the `/auth/status` fetch moved to lib/credential-class.ts so
|
|
38
|
+
// the proposals surface classifies the calling key through the SAME door this
|
|
39
|
+
// command reports on, instead of re-deriving it.
|
|
40
|
+
import { fetchAuthStatus, fetchEffectiveIdentity, classifyReviewer, } from "../lib/credential-class.js";
|
|
25
41
|
/** Last 6+ chars of a key, for eyeballing which secret is in play without leaking it. */
|
|
26
42
|
function keyTail(apiKey) {
|
|
27
43
|
return apiKey.length <= 8 ? "…" : `…${apiKey.slice(-6)}`;
|
|
@@ -29,7 +45,7 @@ function keyTail(apiKey) {
|
|
|
29
45
|
/** Introspect a specific key by cloning the winning cfg and swapping the secret. */
|
|
30
46
|
async function probeKey(cfg, apiKey) {
|
|
31
47
|
try {
|
|
32
|
-
const status =
|
|
48
|
+
const status = await fetchAuthStatus(cfg, apiKey);
|
|
33
49
|
return { kind: "ok", status };
|
|
34
50
|
}
|
|
35
51
|
catch (err) {
|
|
@@ -41,20 +57,89 @@ async function probeKey(cfg, apiKey) {
|
|
|
41
57
|
return { kind: "error", message: err instanceof Error ? err.message : String(err) };
|
|
42
58
|
}
|
|
43
59
|
}
|
|
44
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Parse agentType from the synthetic agent email
|
|
62
|
+
* `agent-<type>-<8hex>@synap.agent` (agent-identity-service). AuthStatus and
|
|
63
|
+
* /users/me do not currently expose agentType as a field.
|
|
64
|
+
*/
|
|
65
|
+
export function parseAgentTypeFromEmail(email) {
|
|
66
|
+
if (!email)
|
|
67
|
+
return null;
|
|
68
|
+
const m = email
|
|
69
|
+
.trim()
|
|
70
|
+
.toLowerCase()
|
|
71
|
+
.match(/^agent-(.+)-([0-9a-f]{8})@synap\.agent$/);
|
|
72
|
+
return m?.[1] ?? null;
|
|
73
|
+
}
|
|
74
|
+
/** Resolve agentType when acting as an agent: email parse (AuthStatus has no field). */
|
|
75
|
+
export function resolveAgentType(s, me) {
|
|
76
|
+
if (me?.isAgent !== true)
|
|
77
|
+
return null;
|
|
78
|
+
return parseAgentTypeFromEmail(s.userEmail);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The three identity lines, printed together because any ONE of them alone is
|
|
82
|
+
* misleading.
|
|
83
|
+
*
|
|
84
|
+
* `Key owner` came from `/auth/status` and used to be the ONLY thing shown —
|
|
85
|
+
* labelled just "Identity". For an agent key that is the AGENT, so `whoami`
|
|
86
|
+
* silently answered a different question than the operator asked, and an
|
|
87
|
+
* earlier analysis read the CLI and the MCP connector as different people on
|
|
88
|
+
* the strength of it. The pod attributes an agent key's writes to the human it
|
|
89
|
+
* is linked to (`userId = keyRecord.linkedUserId`, hub-protocol-rest.ts:407),
|
|
90
|
+
* and `GET /users/me` is where that effective identity is visible.
|
|
91
|
+
*/
|
|
92
|
+
function renderIdentityTriple(s, me) {
|
|
93
|
+
const owner = s.userEmail ?? s.userName ?? s.userId ?? "unknown";
|
|
94
|
+
log.info(`Key owner : ${owner} ${chalk.dim("(who owns this key)")}`);
|
|
95
|
+
if (!me) {
|
|
96
|
+
log.info(`Effective : ${chalk.dim("could not resolve (GET /users/me failed)")}`);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const effective = me.id ?? "unknown";
|
|
100
|
+
// Same id on both lines = a plain human key: the key owner IS the actor.
|
|
101
|
+
const sameActor = Boolean(me.id) && me.id === s.userId;
|
|
102
|
+
log.info(`Effective : ${effective} ${chalk.dim(sameActor ? "(same — this key acts as its own owner)" : "(who the pod attributes writes to)")}`);
|
|
103
|
+
log.info(`Is agent : ${me.isAgent === true
|
|
104
|
+
? `${chalk.yellow("yes")} ${chalk.dim("(server-derived — writes are attributed to the effective user)")}`
|
|
105
|
+
: me.isAgent === false
|
|
106
|
+
? chalk.green("no")
|
|
107
|
+
: chalk.dim("unknown")}`);
|
|
108
|
+
// Agent principal: key owner is the agent user; effective is the human creator.
|
|
109
|
+
// Singleton is (effective human, agentType) — list with `synap agents list`.
|
|
110
|
+
if (me.isAgent === true && s.userId && me.id && s.userId !== me.id) {
|
|
111
|
+
const agentType = resolveAgentType(s, me);
|
|
112
|
+
if (agentType) {
|
|
113
|
+
log.info(`Agent type : ${agentType} ${chalk.dim("(from agent email — one principal per you×type)")}`);
|
|
114
|
+
}
|
|
115
|
+
log.info(`Agent id : ${s.userId} ${chalk.dim("(agent principal — key owner)")}`);
|
|
116
|
+
log.info(`Creator : ${me.id} ${chalk.dim("(human — singleton key with agentType)")}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function renderAuthStatus(s, me) {
|
|
45
120
|
log.info(`Key ID : ${s.keyIdPrefix ?? "unknown"}`);
|
|
46
121
|
log.info(`Key type : ${s.keyType ?? chalk.dim("unknown")}`);
|
|
47
|
-
|
|
122
|
+
renderIdentityTriple(s, me);
|
|
48
123
|
if (s.name)
|
|
49
124
|
log.info(`Key name : ${s.name}`);
|
|
50
125
|
log.info(`Workspace : ${s.workspaceId ?? chalk.dim("unknown")}`);
|
|
51
126
|
log.info(`Scopes : ${s.scopes && s.scopes.length ? s.scopes.join(", ") : chalk.dim("(none)")}`);
|
|
127
|
+
// Whether this key may perform a HUMAN review (proposal approve/revert). The
|
|
128
|
+
// pod blocks agent self-review, so say it here rather than letting
|
|
129
|
+
// `synap proposals approve` discover it as a 403.
|
|
130
|
+
const reviewer = classifyReviewer(s);
|
|
131
|
+
log.info(`Can approve: ${reviewer === "agent"
|
|
132
|
+
? `${chalk.red("no")} ${chalk.dim("(agent credential — approve is human review)")}`
|
|
133
|
+
: reviewer === "human"
|
|
134
|
+
? chalk.green("yes")
|
|
135
|
+
: chalk.dim("unknown")}`);
|
|
52
136
|
const active = s.isActive === true ? chalk.green("active") : s.isActive === false ? chalk.red("revoked") : chalk.dim("unknown");
|
|
53
137
|
log.info(`Status : ${active}`);
|
|
54
138
|
log.info(`Expires : ${s.expiresAt ?? chalk.dim("never")}`);
|
|
55
139
|
}
|
|
56
|
-
export async function whoami() {
|
|
57
|
-
|
|
140
|
+
export async function whoami(opts = {}) {
|
|
141
|
+
if (!opts.json)
|
|
142
|
+
banner();
|
|
58
143
|
// 1. The key that actually authenticates every command.
|
|
59
144
|
let cfg;
|
|
60
145
|
try {
|
|
@@ -65,37 +150,98 @@ export async function whoami() {
|
|
|
65
150
|
return;
|
|
66
151
|
}
|
|
67
152
|
// 2. Independently read the two candidate keys and reproduce the preference
|
|
68
|
-
// rule
|
|
69
|
-
//
|
|
153
|
+
// rule via preferClaudeCodeSurfaceKey (same helper hub-client uses) —
|
|
154
|
+
// do NOT depend on resolveHubConfig's stderr swap warning.
|
|
70
155
|
const envKey = process.env.SYNAP_HUB_API_KEY;
|
|
71
156
|
const envPod = process.env.SYNAP_POD_URL;
|
|
72
|
-
const
|
|
73
|
-
|
|
157
|
+
const envUser = process.env.SYNAP_USER_ID ?? "";
|
|
158
|
+
// Pod-qualified: never treat another pod's surface key as "pinned here".
|
|
159
|
+
const surfaceKey = getSurfaceAgentKey("claude-code", envPod);
|
|
160
|
+
const surfacePinnedHere = !!surfaceKey && !!surfaceKey.hubApiKey;
|
|
74
161
|
const diverges = !!envKey &&
|
|
75
162
|
surfacePinnedHere &&
|
|
76
163
|
surfaceKey.hubApiKey !== envKey;
|
|
77
|
-
// Which candidate
|
|
78
|
-
const
|
|
79
|
-
?
|
|
164
|
+
// Which candidate does the shared preference rule pick when both are present?
|
|
165
|
+
const preferred = envPod && envKey
|
|
166
|
+
? preferClaudeCodeSurfaceKey({
|
|
167
|
+
envPod,
|
|
168
|
+
envKey,
|
|
169
|
+
envUser,
|
|
170
|
+
surface: surfaceKey,
|
|
171
|
+
})
|
|
172
|
+
: null;
|
|
173
|
+
const winner = !diverges
|
|
174
|
+
? "other"
|
|
175
|
+
: preferred?.usedSurface || cfg.apiKey === surfaceKey.hubApiKey
|
|
80
176
|
? "surface"
|
|
81
|
-
: "env"
|
|
82
|
-
|
|
83
|
-
// 3. Introspect the winning key
|
|
177
|
+
: "env";
|
|
178
|
+
const keySource = resolveKeySource();
|
|
179
|
+
// 3. Introspect the winning key — BOTH questions, because "who owns this
|
|
180
|
+
// key" and "who does the pod act as" have different answers for an agent
|
|
181
|
+
// key, and showing only the first is what made this command misleading.
|
|
182
|
+
const winnerProbe = await probeKey(cfg, cfg.apiKey);
|
|
183
|
+
const effective = await fetchEffectiveIdentity(cfg).catch(() => null);
|
|
184
|
+
if (opts.json) {
|
|
185
|
+
const agentType = winnerProbe.kind === "ok"
|
|
186
|
+
? resolveAgentType(winnerProbe.status, effective)
|
|
187
|
+
: null;
|
|
188
|
+
console.log(JSON.stringify({
|
|
189
|
+
podUrl: cfg.podUrl,
|
|
190
|
+
keySource,
|
|
191
|
+
keyOwner: winnerProbe.kind === "ok"
|
|
192
|
+
? {
|
|
193
|
+
userId: winnerProbe.status.userId,
|
|
194
|
+
email: winnerProbe.status.userEmail,
|
|
195
|
+
keyId: winnerProbe.status.keyIdPrefix,
|
|
196
|
+
keyType: winnerProbe.status.keyType,
|
|
197
|
+
isActive: winnerProbe.status.isActive,
|
|
198
|
+
}
|
|
199
|
+
: null,
|
|
200
|
+
effectiveUser: effective ? { userId: effective.id, scopes: effective.scopes } : null,
|
|
201
|
+
isAgent: effective?.isAgent ?? null,
|
|
202
|
+
agentType,
|
|
203
|
+
canApprove: winnerProbe.kind === "ok" ? classifyReviewer(winnerProbe.status) : "unknown",
|
|
204
|
+
probe: winnerProbe.kind,
|
|
205
|
+
keyHealth: (await (await import("../lib/key-doctor.js")).checkKeyHealth(cfg.podUrl)).diagnoses.map((d) => ({
|
|
206
|
+
code: d.code,
|
|
207
|
+
severity: d.severity,
|
|
208
|
+
surface: d.surface,
|
|
209
|
+
title: d.title,
|
|
210
|
+
lines: d.lines,
|
|
211
|
+
command: d.command,
|
|
212
|
+
approvalUrl: d.approvalUrl,
|
|
213
|
+
locations: d.locations.map((l) => l.label),
|
|
214
|
+
})),
|
|
215
|
+
divergence: diverges
|
|
216
|
+
? { winner, envKey: keyTail(envKey), surfaceKey: keyTail(surfaceKey.hubApiKey) }
|
|
217
|
+
: null,
|
|
218
|
+
}, null, 2));
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
84
221
|
log.heading("Winning key (resolved)");
|
|
85
222
|
log.info(`Pod : ${cfg.podUrl}`);
|
|
223
|
+
// Always name the key path — even when env and surface agree — so the operator
|
|
224
|
+
// can see whether this shell is env-pinned, surface-swapped, or profile-based.
|
|
225
|
+
log.info(`Key source : ${formatKeySource(keySource)}`);
|
|
86
226
|
log.dim(`Secret : ${keyTail(cfg.apiKey)}`);
|
|
87
|
-
const winnerProbe = await probeKey(cfg, cfg.apiKey);
|
|
88
227
|
if (winnerProbe.kind === "ok") {
|
|
89
|
-
renderAuthStatus(winnerProbe.status);
|
|
228
|
+
renderAuthStatus(winnerProbe.status, effective);
|
|
90
229
|
}
|
|
91
230
|
else if (winnerProbe.kind === "revoked") {
|
|
92
|
-
|
|
93
|
-
|
|
231
|
+
// Not "revoked or expired" by guess: ask the pod WHY (a key awaiting
|
|
232
|
+
// approval was once reported revoked here, and sent the fix the wrong way).
|
|
233
|
+
const why = describeKeyState(await fetchKeyState(cfg.podUrl, cfg.apiKey));
|
|
234
|
+
log.error(`The pod refuses this key: it ${why}.`);
|
|
235
|
+
log.hint("See Key health below — or run: synap doctor --fix");
|
|
94
236
|
}
|
|
95
237
|
else {
|
|
96
238
|
log.warn(`Could not introspect key: ${winnerProbe.message}`);
|
|
97
239
|
}
|
|
98
|
-
// 4.
|
|
240
|
+
// 4. Key health — the SAME diagnosis `synap doctor` prints, one per problem.
|
|
241
|
+
const { checkKeyHealth, printKeyHealth } = await import("../lib/key-doctor.js");
|
|
242
|
+
log.heading("Key health");
|
|
243
|
+
printKeyHealth(await checkKeyHealth(cfg.podUrl), { fixHint: true });
|
|
244
|
+
// 5. Divergence report — still the headline when env vs surface disagree.
|
|
99
245
|
if (!diverges) {
|
|
100
246
|
if (envKey && surfacePinnedHere) {
|
|
101
247
|
log.dim("\nEnv key and claude-code surface key agree — no divergence.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `synap worker` — run Claude Code unattended on THIS machine for the sessions
|
|
3
|
+
* a person or an AI handed to an agent.
|
|
4
|
+
*
|
|
5
|
+
* The door it reuses: a session's roster. Putting an agent on a focus session
|
|
6
|
+
* (`synap_start_session` agentIds, `synap_update_session` addAgentId, capture
|
|
7
|
+
* "Give to agent") is how work is handed to it, and `synap_orient` lists those
|
|
8
|
+
* sessions as `handedToYou` for that agent. The worker is that agent: it polls
|
|
9
|
+
* orient with the agent's own key, claims each new session once, and launches
|
|
10
|
+
* the unmodified `claude` binary headless in the workspace with a protocol
|
|
11
|
+
* prompt. The launched Claude Code does the work and talks in the session room
|
|
12
|
+
* through the Synap MCP — so the AI that launched the session (the
|
|
13
|
+
* orchestrator) and the person read and answer it there, and relay shows it.
|
|
14
|
+
*
|
|
15
|
+
* Synap never spawns a coding agent: this process runs on the person's own
|
|
16
|
+
* machine, under their own Claude login, as an agent they connected.
|
|
17
|
+
*
|
|
18
|
+
* Which Claude subscription a run uses = which Claude config the process sees:
|
|
19
|
+
* `--claude-config-dir` sets CLAUDE_CONFIG_DIR for the launched runs (log that
|
|
20
|
+
* directory in once with `CLAUDE_CONFIG_DIR=<dir> claude login`). API-key
|
|
21
|
+
* variables are removed from the launched environment so a stray key can never
|
|
22
|
+
* silently switch billing away from the subscription.
|
|
23
|
+
*
|
|
24
|
+
* State (which sessions were launched, their Claude session ids and outcome)
|
|
25
|
+
* lives in ~/.synap/worker/<agent>/state.json; each run's stream-json goes to
|
|
26
|
+
* ~/.synap/worker/<agent>/runs/<sessionId>.jsonl.
|
|
27
|
+
*/
|
|
28
|
+
export interface WorkerOptions {
|
|
29
|
+
agent: string;
|
|
30
|
+
interval?: string;
|
|
31
|
+
once?: boolean;
|
|
32
|
+
cwd?: string;
|
|
33
|
+
maxParallel?: string;
|
|
34
|
+
claudeBin?: string;
|
|
35
|
+
claudeConfigDir?: string;
|
|
36
|
+
mcpServer?: string;
|
|
37
|
+
allowedTools?: string;
|
|
38
|
+
skipPermissions?: boolean;
|
|
39
|
+
dryRun?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface HandedItem {
|
|
42
|
+
id: string;
|
|
43
|
+
goal: string | null;
|
|
44
|
+
}
|
|
45
|
+
export type RunStatus = "running" | "done" | "failed";
|
|
46
|
+
export interface RunRecord {
|
|
47
|
+
sessionId: string;
|
|
48
|
+
status: RunStatus;
|
|
49
|
+
startedAt: string;
|
|
50
|
+
finishedAt?: string;
|
|
51
|
+
pid?: number;
|
|
52
|
+
claudeSessionId?: string;
|
|
53
|
+
exitCode?: number | null;
|
|
54
|
+
result?: string;
|
|
55
|
+
/** How many times a room follow-up resumed this Claude conversation. */
|
|
56
|
+
resumes?: number;
|
|
57
|
+
}
|
|
58
|
+
interface WorkerState {
|
|
59
|
+
runs: Record<string, RunRecord>;
|
|
60
|
+
}
|
|
61
|
+
/** "30s" | "2m" | "1h" | "45" (seconds) → milliseconds. */
|
|
62
|
+
export declare function parseInterval(raw: string | undefined, fallbackMs?: number): number;
|
|
63
|
+
/**
|
|
64
|
+
* The pod hands this agent its work through a provider binding (reach
|
|
65
|
+
* `dispatch`), so it lists nothing to pull: a worker pulling for it would run
|
|
66
|
+
* the same work a second time. The worker stops on it.
|
|
67
|
+
*/
|
|
68
|
+
export declare class AgentBoundForDispatchError extends Error {
|
|
69
|
+
constructor();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A person PAUSED this agent: it takes no new work until resumed. Not a failed
|
|
73
|
+
* read — the worker keeps polling and launches nothing.
|
|
74
|
+
*/
|
|
75
|
+
export declare class AgentPausedError extends Error {
|
|
76
|
+
constructor();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Read `handedToYou` out of `synap_orient`'s text. A missing or `unavailable`
|
|
80
|
+
* block is a FAILED read and throws — never "nothing handed to me". A `bound`
|
|
81
|
+
* block throws `AgentBoundForDispatchError`.
|
|
82
|
+
*/
|
|
83
|
+
export declare function parseHandedToYou(orientText: string): HandedItem[];
|
|
84
|
+
/** Sessions handed to the agent that this worker has not launched yet. */
|
|
85
|
+
export declare function pickNew(items: HandedItem[], state: WorkerState, slots: number): HandedItem[];
|
|
86
|
+
/**
|
|
87
|
+
* The MCP server name the local Claude Code uses for THIS pod: the entry in
|
|
88
|
+
* ~/.claude.json whose URL is `<podUrl>/mcp` (user or project scope).
|
|
89
|
+
*/
|
|
90
|
+
export declare function findMcpServerName(claudeJson: unknown, podUrl: string): string | null;
|
|
91
|
+
export declare const DEFAULT_ALLOWED_TOOLS: string[];
|
|
92
|
+
/** The protocol the launched Claude Code follows for one handed session. */
|
|
93
|
+
export declare function buildWorkerPrompt(p: {
|
|
94
|
+
sessionId: string;
|
|
95
|
+
goal: string | null;
|
|
96
|
+
agentName: string;
|
|
97
|
+
cwd: string;
|
|
98
|
+
mcpServer: string;
|
|
99
|
+
}): string;
|
|
100
|
+
/** The launched environment: the subscription, never a stray API key. */
|
|
101
|
+
export declare function workerEnv(base: NodeJS.ProcessEnv, claudeConfigDir?: string): NodeJS.ProcessEnv;
|
|
102
|
+
/** The final `WORKER-RESULT:` line of a run's result text, if present. */
|
|
103
|
+
export declare function workerVerdict(resultText: string | undefined): string | undefined;
|
|
104
|
+
export interface RoomMessage {
|
|
105
|
+
id?: string;
|
|
106
|
+
content?: string;
|
|
107
|
+
timestamp?: string;
|
|
108
|
+
authorType?: string;
|
|
109
|
+
routedTeammateId?: string | null;
|
|
110
|
+
}
|
|
111
|
+
/** At most this many follow-up resumes per session (a runaway-loop guard). */
|
|
112
|
+
export declare const MAX_RESUMES = 20;
|
|
113
|
+
/**
|
|
114
|
+
* Room messages posted after `since` by anyone but this agent — the follow-ups
|
|
115
|
+
* (an orchestrator's ANSWER, the person's reply) that should resume a finished
|
|
116
|
+
* run. The worker's own posts carry its agent id and never resume it.
|
|
117
|
+
*/
|
|
118
|
+
export declare function followUpsSince(messages: RoomMessage[], since: string, selfAgentId: string): RoomMessage[];
|
|
119
|
+
/** The prompt that resumes a finished run with the room's new messages. */
|
|
120
|
+
export declare function buildFollowUpPrompt(messages: RoomMessage[]): string;
|
|
121
|
+
export declare function workerCommand(opts: WorkerOptions): Promise<void>;
|
|
122
|
+
export {};
|