@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxmox.js","sourceRoot":"","sources":["../../../src/lib/box/proxmox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pod side of a box run, as the provisioner sees it: lease, heartbeat,
|
|
3
|
+
* upload, finish. ONE module, so the wire shape lives in one place. Contract:
|
|
4
|
+
* lanes/code-runtime/BOX-CONTRACT.md v2 (2026-10-26, owned by the pod lane),
|
|
5
|
+
* Hub routes `/api/hub/box-runs/*`.
|
|
6
|
+
*
|
|
7
|
+
* Every call carries the COMPUTER's own key (device flow, scope `box.runner`):
|
|
8
|
+
* the provisioner is a computer that pulls runs, never an agent.
|
|
9
|
+
*/
|
|
10
|
+
import type { HubConfig } from "../hub-client.js";
|
|
11
|
+
import type { BlockedEgress } from "./egress.js";
|
|
12
|
+
import type { InstalledPackage, RunLog } from "./evidence.js";
|
|
13
|
+
export type BoxLanguage = "python" | "node";
|
|
14
|
+
export interface BoxLimits {
|
|
15
|
+
wallSeconds: number;
|
|
16
|
+
cpus: number;
|
|
17
|
+
memoryMb: number;
|
|
18
|
+
diskMb: number;
|
|
19
|
+
outMb: number;
|
|
20
|
+
}
|
|
21
|
+
export interface BoxScript {
|
|
22
|
+
skillId: string;
|
|
23
|
+
name: string;
|
|
24
|
+
language: BoxLanguage;
|
|
25
|
+
entrypoint: string;
|
|
26
|
+
code: string;
|
|
27
|
+
packages: Array<{
|
|
28
|
+
name: string;
|
|
29
|
+
version: string;
|
|
30
|
+
}>;
|
|
31
|
+
/** Run-phase egress allowlist: host names, optionally `host:port`. */
|
|
32
|
+
hosts: string[];
|
|
33
|
+
limits: BoxLimits;
|
|
34
|
+
}
|
|
35
|
+
export interface LeasedRun {
|
|
36
|
+
id: string;
|
|
37
|
+
leaseId: string;
|
|
38
|
+
leaseExpiresAt: string;
|
|
39
|
+
heartbeatIntervalSeconds: number;
|
|
40
|
+
script: BoxScript;
|
|
41
|
+
parameters: unknown;
|
|
42
|
+
queuedAt: string;
|
|
43
|
+
attempt: number;
|
|
44
|
+
}
|
|
45
|
+
export interface HeartbeatReply {
|
|
46
|
+
leaseExpiresAt: string;
|
|
47
|
+
stopRequested: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface UploadTicket {
|
|
50
|
+
uploadUrl: string;
|
|
51
|
+
method: string;
|
|
52
|
+
headers: Record<string, string>;
|
|
53
|
+
uploadToken: string;
|
|
54
|
+
expiresAt: string;
|
|
55
|
+
maxBytes: number;
|
|
56
|
+
}
|
|
57
|
+
/** BOX-CONTRACT v2: timeout and infra are stored as failed with the verdict kept. */
|
|
58
|
+
export type FinishStatus = "done" | "failed" | "stopped" | "timeout" | "infra";
|
|
59
|
+
export interface FinishedFile {
|
|
60
|
+
path: string;
|
|
61
|
+
size: number;
|
|
62
|
+
sha256: string;
|
|
63
|
+
/** Absent when the file could not be uploaded: it is recorded in the evidence only. */
|
|
64
|
+
uploadToken?: string;
|
|
65
|
+
title?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface FinishBody {
|
|
68
|
+
leaseId: string;
|
|
69
|
+
status: FinishStatus;
|
|
70
|
+
exitCode: number | null;
|
|
71
|
+
durationMs: number;
|
|
72
|
+
/** Required when status = infra. */
|
|
73
|
+
infraReason?: string;
|
|
74
|
+
log: RunLog;
|
|
75
|
+
files: FinishedFile[];
|
|
76
|
+
blockedEgress: BlockedEgress[];
|
|
77
|
+
installedPackages: InstalledPackage[];
|
|
78
|
+
}
|
|
79
|
+
/** 404 / 409: the pod no longer holds this lease for us. Stop, destroy, never finish. */
|
|
80
|
+
export declare class LeaseLostError extends Error {
|
|
81
|
+
constructor(runId: string, status: number);
|
|
82
|
+
}
|
|
83
|
+
/** The run has no workspace: its files cannot be stored (record them `stored: false`). */
|
|
84
|
+
export declare class WorkspaceRequiredError extends Error {
|
|
85
|
+
constructor();
|
|
86
|
+
}
|
|
87
|
+
export interface BoxHub {
|
|
88
|
+
lease(): Promise<LeasedRun | null>;
|
|
89
|
+
heartbeat(run: LeasedRun, phase: "setup" | "running"): Promise<HeartbeatReply>;
|
|
90
|
+
upload(run: LeasedRun, file: {
|
|
91
|
+
filename: string;
|
|
92
|
+
mimeType: string;
|
|
93
|
+
bytes: Buffer;
|
|
94
|
+
}): Promise<string>;
|
|
95
|
+
finish(run: LeasedRun, body: FinishBody): Promise<unknown>;
|
|
96
|
+
}
|
|
97
|
+
export type FetchLike = (url: string, init: RequestInit) => Promise<Response>;
|
|
98
|
+
export declare function createBoxHub(cfg: Pick<HubConfig, "podUrl" | "apiKey">, fetchImpl?: FetchLike): BoxHub;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pod side of a box run, as the provisioner sees it: lease, heartbeat,
|
|
3
|
+
* upload, finish. ONE module, so the wire shape lives in one place. Contract:
|
|
4
|
+
* lanes/code-runtime/BOX-CONTRACT.md v2 (2026-10-26, owned by the pod lane),
|
|
5
|
+
* Hub routes `/api/hub/box-runs/*`.
|
|
6
|
+
*
|
|
7
|
+
* Every call carries the COMPUTER's own key (device flow, scope `box.runner`):
|
|
8
|
+
* the provisioner is a computer that pulls runs, never an agent.
|
|
9
|
+
*/
|
|
10
|
+
/** 404 / 409: the pod no longer holds this lease for us. Stop, destroy, never finish. */
|
|
11
|
+
export class LeaseLostError extends Error {
|
|
12
|
+
constructor(runId, status) {
|
|
13
|
+
super(`lease on box run ${runId} lost (HTTP ${status})`);
|
|
14
|
+
this.name = "LeaseLostError";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** The run has no workspace: its files cannot be stored (record them `stored: false`). */
|
|
18
|
+
export class WorkspaceRequiredError extends Error {
|
|
19
|
+
constructor() {
|
|
20
|
+
super("the run has no workspace: its files cannot be stored");
|
|
21
|
+
this.name = "WorkspaceRequiredError";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function createBoxHub(cfg, fetchImpl = fetch) {
|
|
25
|
+
const base = `${cfg.podUrl.replace(/\/+$/, "")}/api/hub/box-runs`;
|
|
26
|
+
async function post(path, body, runId) {
|
|
27
|
+
const res = await fetchImpl(`${base}${path}`, {
|
|
28
|
+
method: "POST",
|
|
29
|
+
headers: { Authorization: `Bearer ${cfg.apiKey}`, "Content-Type": "application/json" },
|
|
30
|
+
body: JSON.stringify(body),
|
|
31
|
+
signal: AbortSignal.timeout(30_000),
|
|
32
|
+
});
|
|
33
|
+
if (runId && (res.status === 404 || res.status === 409))
|
|
34
|
+
throw new LeaseLostError(runId, res.status);
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
const text = await res.text().catch(() => "");
|
|
37
|
+
if (res.status === 400 && /WORKSPACE_REQUIRED/.test(text))
|
|
38
|
+
throw new WorkspaceRequiredError();
|
|
39
|
+
throw new Error(`POST box-runs${path} failed (HTTP ${res.status})${text ? `: ${text.slice(0, 300)}` : ""}`);
|
|
40
|
+
}
|
|
41
|
+
return res.json();
|
|
42
|
+
}
|
|
43
|
+
const runPath = (run, verb) => `/${encodeURIComponent(run.id)}/${verb}`;
|
|
44
|
+
return {
|
|
45
|
+
async lease() {
|
|
46
|
+
const body = (await post("/lease", {}));
|
|
47
|
+
return body.run ?? null;
|
|
48
|
+
},
|
|
49
|
+
async heartbeat(run, phase) {
|
|
50
|
+
return (await post(runPath(run, "heartbeat"), { leaseId: run.leaseId, phase }, run.id));
|
|
51
|
+
},
|
|
52
|
+
async upload(run, file) {
|
|
53
|
+
const ticket = (await post(runPath(run, "uploads"), { leaseId: run.leaseId, filename: file.filename, mimeType: file.mimeType, size: file.bytes.length }, run.id));
|
|
54
|
+
// Straight to object storage with exactly the headers the pod signed.
|
|
55
|
+
const put = await fetchImpl(ticket.uploadUrl, {
|
|
56
|
+
method: ticket.method || "PUT",
|
|
57
|
+
headers: ticket.headers,
|
|
58
|
+
body: new Uint8Array(file.bytes),
|
|
59
|
+
signal: AbortSignal.timeout(10 * 60_000),
|
|
60
|
+
});
|
|
61
|
+
if (!put.ok)
|
|
62
|
+
throw new Error(`storing ${file.filename} failed (HTTP ${put.status})`);
|
|
63
|
+
return ticket.uploadToken;
|
|
64
|
+
},
|
|
65
|
+
async finish(run, body) {
|
|
66
|
+
return post(runPath(run, "finish"), body, run.id);
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=wire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/lib/box/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,12 +31,13 @@ export interface LaneReport {
|
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Derive the lane from the workspace-routing `source` returned by
|
|
34
|
-
* `resolveKnowledgeWorkspace`.
|
|
35
|
-
*
|
|
36
|
-
*
|
|
34
|
+
* `resolveKnowledgeWorkspace`. Domain capture is the Work lane (even when
|
|
35
|
+
* workspaceId is omitted for server-derived / pod-wide preferred placement).
|
|
36
|
+
* (The backend routing endpoint P7b is the SSoT for resolving user/global
|
|
37
|
+
* lanes; the CLI's lane detection is a best-effort hint.)
|
|
37
38
|
*
|
|
38
|
-
* source
|
|
39
|
-
* "explicit" / "team" / "
|
|
39
|
+
* source → lane
|
|
40
|
+
* "explicit" / "team" / "server-derived …" → work
|
|
40
41
|
*/
|
|
41
42
|
export declare function laneFromSource(_source: string): CaptureLane;
|
|
42
43
|
/** Best-effort resolve a workspace name from the pod. Never throws. */
|
package/dist/lib/capture-lane.js
CHANGED
|
@@ -22,12 +22,13 @@ import { hubGet } from "./hub-client.js";
|
|
|
22
22
|
import { unwrapList } from "./unwrapList.js";
|
|
23
23
|
/**
|
|
24
24
|
* Derive the lane from the workspace-routing `source` returned by
|
|
25
|
-
* `resolveKnowledgeWorkspace`.
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* `resolveKnowledgeWorkspace`. Domain capture is the Work lane (even when
|
|
26
|
+
* workspaceId is omitted for server-derived / pod-wide preferred placement).
|
|
27
|
+
* (The backend routing endpoint P7b is the SSoT for resolving user/global
|
|
28
|
+
* lanes; the CLI's lane detection is a best-effort hint.)
|
|
28
29
|
*
|
|
29
|
-
* source
|
|
30
|
-
* "explicit" / "team" / "
|
|
30
|
+
* source → lane
|
|
31
|
+
* "explicit" / "team" / "server-derived …" → work
|
|
31
32
|
*/
|
|
32
33
|
export function laneFromSource(_source) {
|
|
33
34
|
return "work";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-lane.js","sourceRoot":"","sources":["../../src/lib/capture-lane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAkB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmB7C
|
|
1
|
+
{"version":3,"file":"capture-lane.js","sourceRoot":"","sources":["../../src/lib/capture-lane.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* ACTUALLY returned (applied vs proposed vs nothing-created) instead of guessing
|
|
14
14
|
* off the planned proposal count.
|
|
15
15
|
*
|
|
16
|
-
* Kept local to the CLI (not imported from @synap/hub-rest-client) because the
|
|
16
|
+
* Kept local to the CLI (not imported from @synap-core/hub-rest-client) because the
|
|
17
17
|
* CLI resolves the SDK via its built dist — the same reason the previous local
|
|
18
18
|
* mirrors existed. This is now the ONE mirror instead of two.
|
|
19
19
|
*/
|
|
@@ -42,20 +42,157 @@ export interface FollowUp {
|
|
|
42
42
|
question: string;
|
|
43
43
|
suggestions?: FollowUpChip[];
|
|
44
44
|
}
|
|
45
|
+
/** The distribution behind an AI workspace pick (see the shared type). */
|
|
46
|
+
export interface WorkspaceDecisionRecord {
|
|
47
|
+
decider: "jev" | "llm";
|
|
48
|
+
model?: string;
|
|
49
|
+
probabilities?: Record<string, number>;
|
|
50
|
+
candidates?: Array<{
|
|
51
|
+
id: string;
|
|
52
|
+
name: string;
|
|
53
|
+
}>;
|
|
54
|
+
}
|
|
55
|
+
/** The placement advice a `capture.structure` result carries (a subset). */
|
|
56
|
+
export interface CaptureStructureRouting {
|
|
57
|
+
targetWorkspaceId?: string | null;
|
|
58
|
+
targetWorkspaceReason?: string | null;
|
|
59
|
+
targetWorkspaceConfidence?: number | null;
|
|
60
|
+
targetWorkspaceDecision?: WorkspaceDecisionRecord | null;
|
|
61
|
+
targetProjectId?: string | null;
|
|
62
|
+
targetProjectReason?: string | null;
|
|
63
|
+
targetProjectConfidence?: number | null;
|
|
64
|
+
}
|
|
65
|
+
/** The advisory routing fields `capture.execute` accepts. */
|
|
66
|
+
export interface CaptureExecuteRoutingHints {
|
|
67
|
+
aiWorkspaceId?: string | null;
|
|
68
|
+
aiWorkspaceConfidence?: number | null;
|
|
69
|
+
aiWorkspaceReason?: string | null;
|
|
70
|
+
aiWorkspaceDecision?: WorkspaceDecisionRecord | null;
|
|
71
|
+
aiProjectId?: string | null;
|
|
72
|
+
aiProjectConfidence?: number | null;
|
|
73
|
+
aiProjectReason?: string | null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* ADVISORY hints only — an AI pick proposes, it never places data. A user's
|
|
77
|
+
* deliberate choice (`--workspace` / `--project`) is NOT a hint.
|
|
78
|
+
*/
|
|
79
|
+
export declare function captureExecuteRoutingHints(structured: CaptureStructureRouting): CaptureExecuteRoutingHints;
|
|
80
|
+
/** The AI's workspace-side hints only (drop them when the user pinned a workspace). */
|
|
81
|
+
export declare function workspaceRoutingHints(structured: CaptureStructureRouting): {
|
|
82
|
+
aiWorkspaceId: string | null | undefined;
|
|
83
|
+
aiWorkspaceConfidence: number | null | undefined;
|
|
84
|
+
aiWorkspaceReason: string | null | undefined;
|
|
85
|
+
aiWorkspaceDecision: WorkspaceDecisionRecord | null | undefined;
|
|
86
|
+
};
|
|
87
|
+
/** The AI's project-side hints only (drop them when the user pinned a project). */
|
|
88
|
+
export declare function projectRoutingHints(structured: CaptureStructureRouting): {
|
|
89
|
+
aiProjectId: string | null | undefined;
|
|
90
|
+
aiProjectConfidence: number | null | undefined;
|
|
91
|
+
aiProjectReason: string | null | undefined;
|
|
92
|
+
};
|
|
93
|
+
/** Where a capture will land, as `capture.structure` resolved it. */
|
|
94
|
+
export interface CapturePlacement {
|
|
95
|
+
workspaceId: string | null;
|
|
96
|
+
workspaceName: string | null;
|
|
97
|
+
/** A deterministic rung placed it — never an AI guess. */
|
|
98
|
+
deterministic: boolean;
|
|
99
|
+
suggestion?: {
|
|
100
|
+
workspaceId: string;
|
|
101
|
+
workspaceName: string;
|
|
102
|
+
reason: string | null;
|
|
103
|
+
alternatives: Array<{
|
|
104
|
+
workspaceId: string;
|
|
105
|
+
workspaceName: string;
|
|
106
|
+
weight: number;
|
|
107
|
+
}>;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** What the person did with the destination field before saving. */
|
|
111
|
+
export type WorkspaceSelection = {
|
|
112
|
+
kind: "default";
|
|
113
|
+
} | {
|
|
114
|
+
kind: "chosen";
|
|
115
|
+
workspaceId: string;
|
|
116
|
+
workspaceName: string;
|
|
117
|
+
} | {
|
|
118
|
+
kind: "removed";
|
|
119
|
+
};
|
|
120
|
+
export type WorkspaceChoice = "accepted" | "changed" | "removed" | "ignored";
|
|
121
|
+
export interface WorkspacePlacementView {
|
|
122
|
+
destination: {
|
|
123
|
+
workspaceId: string | null;
|
|
124
|
+
workspaceName: string | null;
|
|
125
|
+
};
|
|
126
|
+
aiSuggested: boolean;
|
|
127
|
+
alternatives: NonNullable<CapturePlacement["suggestion"]>["alternatives"];
|
|
128
|
+
canRemove: boolean;
|
|
129
|
+
execute: {
|
|
130
|
+
targetWorkspaceId?: string;
|
|
131
|
+
workspaceChoice?: WorkspaceChoice;
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/** THE destination rule — see the shared type's docblock. */
|
|
135
|
+
export declare function deriveWorkspacePlacementView(placement: CapturePlacement | null | undefined, selection: WorkspaceSelection, opts: {
|
|
136
|
+
interactive: boolean;
|
|
137
|
+
}): WorkspacePlacementView;
|
|
138
|
+
/**
|
|
139
|
+
* The headless placement fields the CLI sends to `/capture/execute` — the ONE
|
|
140
|
+
* door, so the CLI can never hand-roll a destination. Headless ⇒ an AI
|
|
141
|
+
* suggestion stays a proposal; a deterministic placement is pinned explicitly.
|
|
142
|
+
*/
|
|
143
|
+
export declare function headlessPlacementFields(structured: Pick<StructureResult, "placement">): {
|
|
144
|
+
targetWorkspaceId?: string;
|
|
145
|
+
workspaceChoice?: WorkspaceChoice;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* The workspace line for a structure result: the NAME the pod resolved (never
|
|
149
|
+
* a raw id when a name is known) and the confidence percent, once.
|
|
150
|
+
*/
|
|
151
|
+
export declare function formatWorkspaceRouting(result: {
|
|
152
|
+
targetWorkspaceId?: string | null;
|
|
153
|
+
targetWorkspaceName?: string | null;
|
|
154
|
+
targetWorkspaceConfidence?: number | null;
|
|
155
|
+
}): string | null;
|
|
45
156
|
/** Response of POST /capture/structure (the AI plan — writes NOTHING). */
|
|
46
157
|
export interface StructureResult {
|
|
47
158
|
proposals?: StructureProposal[];
|
|
48
159
|
relations?: StructureRelation[];
|
|
49
160
|
followUp?: string | FollowUp | null;
|
|
50
161
|
targetWorkspaceId?: string | null;
|
|
162
|
+
/** The pod's display name for `targetWorkspaceId` — what the CLI prints. */
|
|
163
|
+
targetWorkspaceName?: string | null;
|
|
51
164
|
targetWorkspaceConfidence?: number | null;
|
|
52
165
|
targetWorkspaceReason?: string | null;
|
|
166
|
+
targetWorkspaceDecision?: WorkspaceDecisionRecord | null;
|
|
53
167
|
targetProjectId?: string | null;
|
|
54
168
|
targetProjectConfidence?: number | null;
|
|
55
169
|
targetProjectReason?: string | null;
|
|
170
|
+
/**
|
|
171
|
+
* The honest destination block — where the capture lands and, separately,
|
|
172
|
+
* what the AI would SUGGEST. Read it through `headlessPlacementFields` /
|
|
173
|
+
* `deriveWorkspacePlacementView`, never by digging at `targetWorkspaceId`
|
|
174
|
+
* (which mixes a deterministic placement and an AI guess into one field).
|
|
175
|
+
* Absent on an older pod.
|
|
176
|
+
*/
|
|
177
|
+
placement?: CapturePlacement | null;
|
|
56
178
|
/** True when the IS structurer is down and the server returned a raw fallback. */
|
|
57
179
|
degraded?: boolean;
|
|
58
|
-
degradedReason?:
|
|
180
|
+
degradedReason?: DegradedReason;
|
|
181
|
+
/**
|
|
182
|
+
* Summary of the extraction pass, present when a `file` input was normalized
|
|
183
|
+
* to text before structuring. `text` is what the pod needs echoed back on
|
|
184
|
+
* execute (as `file.extractedText`) so a kept original lands with a real
|
|
185
|
+
* document body instead of an empty one — the pod cannot re-derive it,
|
|
186
|
+
* because extraction runs in the Intelligence Service.
|
|
187
|
+
*/
|
|
188
|
+
extraction?: {
|
|
189
|
+
kind: string;
|
|
190
|
+
extractor: string;
|
|
191
|
+
metadata?: Record<string, unknown>;
|
|
192
|
+
warnings?: string[];
|
|
193
|
+
text?: string;
|
|
194
|
+
textTruncated?: boolean;
|
|
195
|
+
};
|
|
59
196
|
}
|
|
60
197
|
/** One materialized entity row in a /capture/execute response. */
|
|
61
198
|
export interface ExecuteCreated {
|
|
@@ -87,8 +224,33 @@ export interface ExecuteResult {
|
|
|
87
224
|
proposalId?: string;
|
|
88
225
|
reviewUrl?: string;
|
|
89
226
|
reviewPath?: string;
|
|
90
|
-
|
|
227
|
+
/**
|
|
228
|
+
* The AI's outstanding "move to X?" suggestion. NOTHING was moved — the
|
|
229
|
+
* capture landed where it would have without the AI; re-file with an
|
|
230
|
+
* explicit workspace to accept it. (This replaced `movedToWorkspace`, which
|
|
231
|
+
* claimed a move the ladder never performs.)
|
|
232
|
+
*/
|
|
233
|
+
pendingWorkspaceSwitch?: {
|
|
234
|
+
suggestedWorkspaceId: string;
|
|
235
|
+
suggestedWorkspaceName: string | null;
|
|
236
|
+
reason: string | null;
|
|
237
|
+
confidence: number | null;
|
|
238
|
+
} | null;
|
|
91
239
|
message?: string;
|
|
240
|
+
/**
|
|
241
|
+
* Disposition of the ORIGINAL file, present only when the caller sent
|
|
242
|
+
* `keepRaw: true` + `file`. Four honest outcomes — the blob can be stored,
|
|
243
|
+
* parked behind governance, denied by policy, or fail on storage — and a
|
|
244
|
+
* caller that prints "kept" for all four is back to false success.
|
|
245
|
+
*/
|
|
246
|
+
sourceFile?: {
|
|
247
|
+
status: "stored" | "proposed" | "denied" | "failed";
|
|
248
|
+
entityId?: string;
|
|
249
|
+
documentId?: string;
|
|
250
|
+
proposalId?: string;
|
|
251
|
+
reviewUrl?: string;
|
|
252
|
+
reason?: string;
|
|
253
|
+
};
|
|
92
254
|
}
|
|
93
255
|
/** The honest outcome of a /capture/execute call, derived from the response. */
|
|
94
256
|
export interface CaptureExecuteOutcome {
|
|
@@ -101,7 +263,16 @@ export interface CaptureExecuteOutcome {
|
|
|
101
263
|
relationsCreated: number;
|
|
102
264
|
proposalId?: string;
|
|
103
265
|
reviewUrl?: string;
|
|
104
|
-
|
|
266
|
+
/**
|
|
267
|
+
* The AI suggested another workspace and the pod did NOT move anything —
|
|
268
|
+
* a proposal for the caller to confirm, never a receipt of a move.
|
|
269
|
+
*/
|
|
270
|
+
pendingWorkspaceSwitch?: {
|
|
271
|
+
suggestedWorkspaceId: string;
|
|
272
|
+
suggestedWorkspaceName: string | null;
|
|
273
|
+
reason: string | null;
|
|
274
|
+
confidence: number | null;
|
|
275
|
+
};
|
|
105
276
|
}
|
|
106
277
|
/**
|
|
107
278
|
* Interpret a /capture/execute response HONESTLY. Distinguishes applied vs
|
|
@@ -110,14 +281,62 @@ export interface CaptureExecuteOutcome {
|
|
|
110
281
|
* only linked existing entities.
|
|
111
282
|
*/
|
|
112
283
|
export declare function readCaptureExecute(res: ExecuteResult): CaptureExecuteOutcome;
|
|
113
|
-
/**
|
|
284
|
+
/**
|
|
285
|
+
* The one line every CLI surface prints for an outstanding workspace
|
|
286
|
+
* suggestion. It says what to DO (re-file with `--workspace`), because the pod
|
|
287
|
+
* moved nothing — the old "→ filed into workspace X" line reported a move that
|
|
288
|
+
* never happened.
|
|
289
|
+
*/
|
|
290
|
+
export declare function formatPendingWorkspaceSwitch(outcome: Pick<CaptureExecuteOutcome, "pendingWorkspaceSwitch">): string | null;
|
|
291
|
+
/** True when the structure step degraded (nothing usable came back). */
|
|
114
292
|
export declare function isDegraded(res: StructureResult): boolean;
|
|
115
293
|
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
294
|
+
* WHY a capture degraded. Two families, and the difference is the whole point:
|
|
295
|
+
*
|
|
296
|
+
* • pod plumbing (`is_*`) — the structurer itself failed. Retrying is sensible.
|
|
297
|
+
* • Intelligence Service extraction honesty (everything else) — the INPUT
|
|
298
|
+
* could not be read. Several of these are PERMANENT CONFIGURATION states
|
|
299
|
+
* (`vision_provider_not_configured`, `transcription_provider_not_configured`)
|
|
300
|
+
* where "retry when it's back" is simply a lie: nothing is coming back.
|
|
301
|
+
*
|
|
302
|
+
* Open-ended (`string & {}`) because the IS owns this vocabulary and may add to
|
|
303
|
+
* it. An unknown value must humanize, never leak, never crash.
|
|
304
|
+
*/
|
|
305
|
+
export type DegradedReason = "is_auth_error" | "is_invalid_response" | "is_empty_result" | "llm_budget_exceeded" | "pdf_scanned_needs_ocr" | "pdf_missing_binary" | "vision_provider_not_configured" | "vision_provider_failed" | "image_missing_binary" | "transcription_provider_not_configured" | "audio_missing_binary" | "docx_missing_binary" | "docx_empty" | "html_empty" | "unsupported_type" | (string & {});
|
|
306
|
+
/**
|
|
307
|
+
* One line of honest copy for a degraded reason: WHAT happened, and WHAT TO DO.
|
|
308
|
+
*
|
|
309
|
+
* ── Why this is a second table, deliberately ────────────────────────────────
|
|
310
|
+
* `@synap-core/capture-pipeline`'s `describeDegradedReason` is the existing
|
|
311
|
+
* one-door for this copy, and it is the RIGHT door — but the CLI is a separate
|
|
312
|
+
* pnpm workspace whose only Synap runtime dependencies are
|
|
313
|
+
* `@synap-core/hub-rest-client` (a file: link into synap-backend) and
|
|
314
|
+
* `@synap-core/workspace-templates`. It cannot reach a `synap-app` package
|
|
315
|
+
* without a package.json/lockfile change. Same reason the `StructureResult`
|
|
316
|
+
* mirror above is local.
|
|
317
|
+
*
|
|
318
|
+
* So: the `title` half is COPIED VERBATIM from `describeDegradedReason` and
|
|
319
|
+
* pinned by a parity test (`test/degraded-message-honesty.test.ts`) that reads
|
|
320
|
+
* the sibling repo's source, so the two can never drift on WHAT happened.
|
|
321
|
+
* The `detail` half is deliberately DIFFERENT, because the app's
|
|
322
|
+
* details end in "saved as a note in the meantime" and the CLI creates nothing
|
|
323
|
+
* at all — repeating the app's sentence here would be a new lie in place of the
|
|
324
|
+
* old one.
|
|
325
|
+
*/
|
|
326
|
+
export declare function describeDegradedReason(reason: DegradedReason | undefined): {
|
|
327
|
+
title: string;
|
|
328
|
+
detail: string;
|
|
329
|
+
};
|
|
330
|
+
/**
|
|
331
|
+
* The ONE degraded message. The CLI does NOT materialize the server's generic
|
|
332
|
+
* `item` stand-in (the browser does the same via `offlineFallback:false`), so a
|
|
333
|
+
* captured note is never silently downgraded to an unstructured blob behind a
|
|
334
|
+
* "success" line.
|
|
335
|
+
*
|
|
336
|
+
* It used to print a single sentence for every cause — "AI structuring
|
|
337
|
+
* unavailable (is_empty_result) — nothing was created. Retry when it's back."
|
|
338
|
+
* — which leaked a raw machine token AND told users to retry states that never
|
|
339
|
+
* change (a pod with no vision provider is not going to come back). Now each
|
|
340
|
+
* reason says what actually happened and what to do about it.
|
|
122
341
|
*/
|
|
123
342
|
export declare function degradedMessage(res: StructureResult): string;
|