synabun 2.0.10 → 2.1.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/CHANGELOG.md +86 -0
- package/README.md +25 -2
- package/THIRD-PARTY-LICENSES.md +22 -0
- package/bin/synabun.js +71 -24
- package/docs/whatsapp.md +2 -2
- package/hooks/claude-code/pre-websearch.mjs +12 -1
- package/hooks/claude-code/shared.mjs +5 -0
- package/hooks/claude-code/stop.mjs +1 -1
- package/lib/claude-hooks.js +172 -18
- package/lib/client-config-repair.js +17 -8
- package/lib/desktop-app.js +7 -1
- package/lib/external-tools.js +1 -1
- package/lib/first-launch-protection.js +57 -12
- package/lib/mcp-dist.js +176 -0
- package/lib/release-npm-ci.mjs +138 -0
- package/lib/release-publish.mjs +91 -0
- package/lib/release-scan.mjs +50 -0
- package/lib/server-crash-record.js +123 -0
- package/lib/server-exit.js +318 -0
- package/lib/server-supervisor.js +508 -0
- package/lib/start-launcher.js +37 -4
- package/lib/tools-cli.js +45 -0
- package/lib/update-snapshot.js +228 -0
- package/lib/virustotal.mjs +192 -0
- package/lib/windows-crash-event.js +269 -0
- package/mcp-server/dist/http.d.ts +20 -1
- package/mcp-server/dist/http.d.ts.map +1 -1
- package/mcp-server/dist/http.js +59 -12
- package/mcp-server/dist/http.js.map +1 -1
- package/mcp-server/dist/index.d.ts +33 -27
- package/mcp-server/dist/index.d.ts.map +1 -1
- package/mcp-server/dist/index.js +128 -143
- package/mcp-server/dist/index.js.map +1 -1
- package/mcp-server/dist/preload.js +1 -1
- package/mcp-server/dist/preload.js.map +1 -1
- package/mcp-server/dist/services/codex-config-heal.d.ts +6 -2
- package/mcp-server/dist/services/codex-config-heal.d.ts.map +1 -1
- package/mcp-server/dist/services/codex-config-heal.js +81 -28
- package/mcp-server/dist/services/codex-config-heal.js.map +1 -1
- package/mcp-server/dist/services/memory-judge-backfill.d.ts +6 -0
- package/mcp-server/dist/services/memory-judge-backfill.d.ts.map +1 -1
- package/mcp-server/dist/services/memory-judge-backfill.js +7 -1
- package/mcp-server/dist/services/memory-judge-backfill.js.map +1 -1
- package/mcp-server/dist/services/neural-interface.d.ts +16 -10
- package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
- package/mcp-server/dist/services/neural-interface.js +67 -11
- package/mcp-server/dist/services/neural-interface.js.map +1 -1
- package/mcp-server/dist/services/server-instructions.d.ts +7 -2
- package/mcp-server/dist/services/server-instructions.d.ts.map +1 -1
- package/mcp-server/dist/services/server-instructions.js +20 -62
- package/mcp-server/dist/services/server-instructions.js.map +1 -1
- package/mcp-server/dist/services/tool-catalog.d.ts +120 -0
- package/mcp-server/dist/services/tool-catalog.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-catalog.js +339 -0
- package/mcp-server/dist/services/tool-catalog.js.map +1 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.d.ts +12 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.js +40 -0
- package/mcp-server/dist/services/tool-list-refresh-barrier.js.map +1 -0
- package/mcp-server/dist/services/tool-list.d.ts +108 -0
- package/mcp-server/dist/services/tool-list.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-list.js +334 -0
- package/mcp-server/dist/services/tool-list.js.map +1 -0
- package/mcp-server/dist/services/tool-runtime.d.ts +161 -0
- package/mcp-server/dist/services/tool-runtime.d.ts.map +1 -0
- package/mcp-server/dist/services/tool-runtime.js +400 -0
- package/mcp-server/dist/services/tool-runtime.js.map +1 -0
- package/mcp-server/dist/services/whiteboard-geometry.d.ts +26 -2
- package/mcp-server/dist/services/whiteboard-geometry.d.ts.map +1 -1
- package/mcp-server/dist/services/whiteboard-geometry.js +91 -8
- package/mcp-server/dist/services/whiteboard-geometry.js.map +1 -1
- package/mcp-server/dist/tools/agents.d.ts +10 -10
- package/mcp-server/dist/tools/agents.d.ts.map +1 -1
- package/mcp-server/dist/tools/agents.js +22 -13
- package/mcp-server/dist/tools/agents.js.map +1 -1
- package/mcp-server/dist/tools/browser-batch.d.ts +3 -3
- package/mcp-server/dist/tools/image-tools.d.ts +1 -1
- package/mcp-server/dist/tools/image-tools.js +1 -1
- package/mcp-server/dist/tools/skill-tools.d.ts +505 -0
- package/mcp-server/dist/tools/skill-tools.d.ts.map +1 -0
- package/mcp-server/dist/tools/skill-tools.js +639 -0
- package/mcp-server/dist/tools/skill-tools.js.map +1 -0
- package/mcp-server/dist/tools/skill.d.ts +7 -0
- package/mcp-server/dist/tools/skill.d.ts.map +1 -0
- package/mcp-server/dist/tools/skill.js +11 -0
- package/mcp-server/dist/tools/skill.js.map +1 -0
- package/mcp-server/dist/tools/tool-groups.d.ts +68 -0
- package/mcp-server/dist/tools/tool-groups.d.ts.map +1 -0
- package/mcp-server/dist/tools/tool-groups.js +147 -0
- package/mcp-server/dist/tools/tool-groups.js.map +1 -0
- package/mcp-server/dist/tools/whiteboard-format.d.ts.map +1 -1
- package/mcp-server/dist/tools/whiteboard-format.js +7 -4
- package/mcp-server/dist/tools/whiteboard-format.js.map +1 -1
- package/mcp-server/dist/tools/whiteboard-tools.d.ts +64 -13
- package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/whiteboard-tools.js +30 -5
- package/mcp-server/dist/tools/whiteboard-tools.js.map +1 -1
- package/mcp-server/package-lock.json +2 -2
- package/mcp-server/package.json +1 -1
- package/mcp-server/src/http.ts +75 -12
- package/mcp-server/src/index.ts +147 -154
- package/mcp-server/src/preload.ts +12 -12
- package/mcp-server/src/services/codex-config-heal.ts +80 -29
- package/mcp-server/src/services/memory-judge-backfill.ts +7 -1
- package/mcp-server/src/services/neural-interface.ts +79 -20
- package/mcp-server/src/services/server-instructions.ts +27 -63
- package/mcp-server/src/services/tool-catalog.ts +403 -0
- package/mcp-server/src/services/tool-list-refresh-barrier.ts +33 -0
- package/mcp-server/src/services/tool-list.ts +410 -0
- package/mcp-server/src/services/tool-runtime.ts +457 -0
- package/mcp-server/src/services/whiteboard-geometry.ts +94 -9
- package/mcp-server/src/tools/agents.ts +22 -14
- package/mcp-server/src/tools/image-tools.ts +1 -1
- package/mcp-server/src/tools/skill-tools.ts +589 -0
- package/mcp-server/src/tools/skill.ts +13 -0
- package/mcp-server/src/tools/tool-groups.ts +164 -0
- package/mcp-server/src/tools/whiteboard-format.ts +9 -3
- package/mcp-server/src/tools/whiteboard-tools.ts +39 -5
- package/neural-interface/i18n/en.json +3463 -200
- package/neural-interface/i18n/pt-BR.json +3411 -151
- package/neural-interface/lib/assistant-api.js +127 -28
- package/neural-interface/lib/assistant-brains/claude.js +4 -3
- package/neural-interface/lib/assistant-brains/codex-browser-policy-hook.mjs +12 -2
- package/neural-interface/lib/assistant-brains/codex-route-gate-hook.mjs +32 -9
- package/neural-interface/lib/assistant-brains/codex.js +9 -5
- package/neural-interface/lib/assistant-brains/opencode.js +120 -54
- package/neural-interface/lib/assistant-brains/opencode2-browser-policy/index.js +28 -13
- package/neural-interface/lib/assistant-brains/opencode2-route-gate/index.js +59 -19
- package/neural-interface/lib/assistant-catalog.js +6 -7
- package/neural-interface/lib/assistant-dispatch.js +871 -156
- package/neural-interface/lib/assistant-envelope.js +3 -1
- package/neural-interface/lib/assistant-persona.js +80 -11
- package/neural-interface/lib/assistant-plan-permissions.js +10 -9
- package/neural-interface/lib/assistant-route-gate-codex.js +3 -0
- package/neural-interface/lib/assistant-route-gate.js +6 -4
- package/neural-interface/lib/assistant-router.js +13 -8
- package/neural-interface/lib/assistant-runtime.js +56 -18
- package/neural-interface/lib/assistant-task-prompt.js +78 -14
- package/neural-interface/lib/assistant-tools.js +51 -0
- package/neural-interface/lib/backup-service.js +620 -3
- package/neural-interface/lib/backup-zip-reader.js +10 -5
- package/neural-interface/lib/backup-zip-writer.js +257 -0
- package/neural-interface/lib/browser-execution.js +10 -2
- package/neural-interface/lib/browser-guard-cdp.js +83 -0
- package/neural-interface/lib/browser-network-guard.js +284 -0
- package/neural-interface/lib/browser-policy-roots.js +64 -0
- package/neural-interface/lib/browser-tool-policy.js +186 -31
- package/neural-interface/lib/claude-agent-bridge.js +4 -2
- package/neural-interface/lib/claude-hooks-status.js +103 -0
- package/neural-interface/lib/claude-temporary.js +5 -11
- package/neural-interface/lib/cli-install.js +18 -138
- package/neural-interface/lib/cli-resolver.js +4 -1
- package/neural-interface/lib/cli-update-planner.js +32 -31
- package/neural-interface/lib/cloudflared/tunnel.js +42 -2
- package/neural-interface/lib/codex-mcp-approvals.js +11 -0
- package/neural-interface/lib/codex-worker-app-server.js +172 -0
- package/neural-interface/lib/confined-fs.js +30 -3
- package/neural-interface/lib/crash-notice-api.js +98 -0
- package/neural-interface/lib/editor-completion-opencode.js +68 -68
- package/neural-interface/lib/exec-loop-command.js +4 -8
- package/neural-interface/lib/http-guards.js +8 -2
- package/neural-interface/lib/install-details.js +4 -1
- package/neural-interface/lib/mcp-agent-servers.js +67 -0
- package/neural-interface/lib/mcp-client-config.js +0 -29
- package/neural-interface/lib/mcp-external-servers.js +323 -0
- package/neural-interface/lib/{mcp-profile-refresh-coordinator.js → mcp-tools-refresh-coordinator.js} +4 -4
- package/neural-interface/lib/morelogin.js +30 -0
- package/neural-interface/lib/native-loop-providers.js +547 -47
- package/neural-interface/lib/native-loop-runtime.js +268 -41
- package/neural-interface/lib/opencode-config.js +557 -0
- package/neural-interface/lib/opencode-db-schema.js +17 -34
- package/neural-interface/lib/opencode-history.js +48 -218
- package/neural-interface/lib/opencode-mcp-ready.js +108 -0
- package/neural-interface/lib/opencode-native-boundary.js +44 -0
- package/neural-interface/lib/opencode-protocol.js +249 -112
- package/neural-interface/lib/opencode-runtime-config.js +32 -22
- package/neural-interface/lib/opencode-serve-records.js +39 -21
- package/neural-interface/lib/opencode-v2-client.js +48 -153
- package/neural-interface/lib/opencode-v2-ws-requests.js +36 -210
- package/neural-interface/lib/opencode-worker-data.js +27 -0
- package/neural-interface/lib/opencode2-client.js +73 -37
- package/neural-interface/lib/opencode2-proxy.js +23 -63
- package/neural-interface/lib/opencode2-translate.js +51 -2
- package/neural-interface/lib/owner-authority.js +249 -0
- package/neural-interface/lib/page-session.js +275 -0
- package/neural-interface/lib/peer-identity.js +763 -0
- package/neural-interface/lib/request-gate.js +17 -2
- package/neural-interface/lib/rulesets/api.js +1 -1
- package/neural-interface/lib/rulesets/fs-safe.js +1 -1
- package/neural-interface/lib/rulesets/installer.js +92 -27
- package/neural-interface/lib/rulesets/json-edit.js +1 -1
- package/neural-interface/lib/session-cache-builder.js +17 -30
- package/neural-interface/lib/session-title-generator.js +58 -36
- package/neural-interface/lib/skills/api-v2.js +495 -0
- package/neural-interface/lib/skills/bundle.js +418 -0
- package/neural-interface/lib/skills/catalog.js +294 -0
- package/neural-interface/lib/skills/creation-api.js +191 -0
- package/neural-interface/lib/skills/creation-brief.js +247 -0
- package/neural-interface/lib/skills/creation-sources.js +267 -0
- package/neural-interface/lib/skills/creation.js +843 -0
- package/neural-interface/lib/skills/deploy.js +564 -0
- package/neural-interface/lib/skills/digest.js +119 -0
- package/neural-interface/lib/skills/discover.js +111 -0
- package/neural-interface/lib/skills/draft-confinement.js +214 -0
- package/neural-interface/lib/skills/eval-confinement.js +397 -0
- package/neural-interface/lib/skills/eval-sandbox.js +280 -0
- package/neural-interface/lib/skills/eval-trace.js +119 -0
- package/neural-interface/lib/skills/evals-api.js +212 -0
- package/neural-interface/lib/skills/evals.js +1573 -0
- package/neural-interface/lib/skills/export.js +200 -0
- package/neural-interface/lib/skills/frontmatter.js +64 -0
- package/neural-interface/lib/skills/health.js +75 -0
- package/neural-interface/lib/skills/json-edit.js +165 -0
- package/neural-interface/lib/skills/known-bridge-digests.json +387 -0
- package/neural-interface/lib/skills/known-bridges.js +96 -0
- package/neural-interface/lib/skills/library.js +823 -0
- package/neural-interface/lib/skills/local-store.js +21 -0
- package/neural-interface/lib/skills/migration.js +433 -0
- package/neural-interface/lib/skills/operations.js +45 -0
- package/neural-interface/lib/skills/ownership.js +427 -0
- package/neural-interface/lib/skills/packages.js +88 -0
- package/neural-interface/lib/skills/reviews.js +212 -0
- package/neural-interface/lib/skills/revision.js +80 -0
- package/neural-interface/lib/skills/roots.js +262 -0
- package/neural-interface/lib/skills/runtime-checks.js +355 -0
- package/neural-interface/lib/skills/scan-assets.js +252 -0
- package/neural-interface/lib/skills/scan-context.js +26 -0
- package/neural-interface/lib/skills/scan-shell.js +324 -0
- package/neural-interface/lib/skills/scan.js +364 -0
- package/neural-interface/lib/skills/scanners.js +54 -0
- package/neural-interface/lib/skills/service.js +522 -0
- package/neural-interface/lib/skills/telemetry.js +113 -0
- package/neural-interface/lib/sqlite-integrity-worker.js +22 -0
- package/neural-interface/lib/tool-lists.js +124 -0
- package/neural-interface/lib/whatsapp/bridge.js +6 -3
- package/neural-interface/lib/worker-confinement.js +1192 -0
- package/neural-interface/lib/worker-guard-setting.js +56 -0
- package/neural-interface/lib/worker-mcp-channel.js +175 -0
- package/neural-interface/lib/worker-relay-ports.js +227 -0
- package/neural-interface/lib/worker-resume.js +229 -0
- package/neural-interface/lib/worker-sandbox.js +299 -0
- package/neural-interface/package-lock.json +18 -12
- package/neural-interface/package.json +2 -2
- package/neural-interface/public/index.html +3 -1
- package/neural-interface/public/index2d.html +19 -11
- package/neural-interface/public/onboarding.html +2 -2
- package/neural-interface/public/shared/account-menu.js +8 -5
- package/neural-interface/public/shared/agent-runtime-options.js +35 -19
- package/neural-interface/public/shared/api.js +1527 -1336
- package/neural-interface/public/shared/app-frame.js +192 -0
- package/neural-interface/public/shared/assistant/asst-agents-dock.js +33 -2
- package/neural-interface/public/shared/assistant/asst-ask-styles.js +270 -0
- package/neural-interface/public/shared/assistant/asst-ask-tail.js +118 -0
- package/neural-interface/public/shared/assistant/asst-ask.js +397 -0
- package/neural-interface/public/shared/assistant/asst-brain-picker.js +49 -35
- package/neural-interface/public/shared/assistant/asst-control.js +157 -26
- package/neural-interface/public/shared/assistant/asst-followups-card.js +383 -0
- package/neural-interface/public/shared/assistant/asst-followups.js +417 -0
- package/neural-interface/public/shared/assistant/asst-limit-dock.js +40 -0
- package/neural-interface/public/shared/assistant/asst-limit-wait.js +294 -0
- package/neural-interface/public/shared/assistant/asst-limit.js +168 -0
- package/neural-interface/public/shared/assistant/asst-mascot.js +49 -12
- package/neural-interface/public/shared/assistant/asst-menu.js +7 -6
- package/neural-interface/public/shared/assistant/asst-panel.js +106 -11
- package/neural-interface/public/shared/assistant/asst-rack-styles.js +66 -49
- package/neural-interface/public/shared/assistant/asst-render.js +401 -77
- package/neural-interface/public/shared/assistant/asst-route.js +83 -12
- package/neural-interface/public/shared/assistant/asst-scenes.js +2 -0
- package/neural-interface/public/shared/assistant/asst-sidepanel.js +67 -4
- package/neural-interface/public/shared/assistant/asst-slash.js +9 -7
- package/neural-interface/public/shared/assistant/asst-state.js +11 -15
- package/neural-interface/public/shared/assistant/asst-stop.js +127 -0
- package/neural-interface/public/shared/assistant/asst-styles.js +59 -21
- package/neural-interface/public/shared/assistant/asst-tool-kinds.js +156 -16
- package/neural-interface/public/shared/automation-context.js +5 -2
- package/neural-interface/public/shared/cc-dropdown.js +89 -19
- package/neural-interface/public/shared/cdx/cdx-context-menu.js +10 -9
- package/neural-interface/public/shared/cdx/cdx-copy.js +16 -0
- package/neural-interface/public/shared/cdx/cdx-output-model.js +22 -1
- package/neural-interface/public/shared/cdx/cdx-output.js +8 -7
- package/neural-interface/public/shared/cdx/cdx-panel.js +45 -149
- package/neural-interface/public/shared/cdx/cdx-protocol.js +28 -1
- package/neural-interface/public/shared/cdx/cdx-render.js +47 -29
- package/neural-interface/public/shared/cdx/cdx-requests.js +3 -3
- package/neural-interface/public/shared/cdx/cdx-skill-hints.js +54 -0
- package/neural-interface/public/shared/cdx/cdx-styles.js +11 -3
- package/neural-interface/public/shared/cdx/cdx-tabs.js +52 -39
- package/neural-interface/public/shared/cdx/cdx-ws.js +0 -1
- package/neural-interface/public/shared/cli-install-view.js +4 -8
- package/neural-interface/public/shared/cli-status.js +2 -2
- package/neural-interface/public/shared/constants.js +2 -2
- package/neural-interface/public/shared/context-menu-areas.js +34 -0
- package/neural-interface/public/shared/context-menu-logic.js +243 -0
- package/neural-interface/public/shared/context-menu-model.js +366 -0
- package/neural-interface/public/shared/context-menu.js +372 -0
- package/neural-interface/public/shared/cp/cp-context-menu.js +10 -9
- package/neural-interface/public/shared/crash-notice-view.js +168 -0
- package/neural-interface/public/shared/desktop-update-view.js +20 -0
- package/neural-interface/public/shared/editor/editor-panel-logic.js +2 -2
- package/neural-interface/public/shared/html-shell.js +9 -11
- package/neural-interface/public/shared/i18n.js +2 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-approvals.js +7 -7
- package/neural-interface/public/shared/ocp-v2/ocp-v2-binding.js +4 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-changes-logic.js +3 -101
- package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +2 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-compact-button.js +1 -3
- package/neural-interface/public/shared/ocp-v2/ocp-v2-composer-logic.js +2 -6
- package/neural-interface/public/shared/ocp-v2/ocp-v2-context-menu.js +11 -11
- package/neural-interface/public/shared/ocp-v2/ocp-v2-context-model.js +0 -3
- package/neural-interface/public/shared/ocp-v2/ocp-v2-events.js +8 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-manager.js +7 -7
- package/neural-interface/public/shared/ocp-v2/ocp-v2-outcome-notifications.js +16 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +47 -252
- package/neural-interface/public/shared/ocp-v2/ocp-v2-plan.js +1 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-projectbar.js +95 -202
- package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +6 -21
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +4 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-session-actions.js +8 -61
- package/neural-interface/public/shared/ocp-v2/ocp-v2-sessions-logic.js +2 -91
- package/neural-interface/public/shared/ocp-v2/ocp-v2-slash-hints.js +16 -15
- package/neural-interface/public/shared/ocp-v2/ocp-v2-state.js +8 -21
- package/neural-interface/public/shared/ocp-v2/ocp-v2-status-logic.js +1 -99
- package/neural-interface/public/shared/ocp-v2/ocp-v2-status.js +5 -35
- package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +0 -21
- package/neural-interface/public/shared/ocp-v2/{ocp-v2-profile-inheritance.js → ocp-v2-tools-inheritance.js} +16 -16
- package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +14 -47
- package/neural-interface/public/shared/page-session.js +96 -0
- package/neural-interface/public/shared/registry.js +5 -3
- package/neural-interface/public/shared/retired-2d.js +3 -0
- package/neural-interface/public/shared/schedules-view.js +195 -61
- package/neural-interface/public/shared/settings/settings-claude-hooks.js +135 -0
- package/neural-interface/public/shared/settings/settings-data.js +3 -1
- package/neural-interface/public/shared/settings/settings-ia.js +6 -6
- package/neural-interface/public/shared/settings/settings-opencode.js +89 -0
- package/neural-interface/public/shared/settings/settings-skill-folders-pane.js +265 -0
- package/neural-interface/public/shared/settings/settings-skill-folders.js +130 -0
- package/neural-interface/public/shared/settings/settings-worker-guard.js +72 -0
- package/neural-interface/public/shared/skills/ss-args.js +96 -0
- package/neural-interface/public/shared/skills/ss-creation.js +219 -0
- package/neural-interface/public/shared/skills/ss-dialog.js +130 -0
- package/neural-interface/public/shared/skills/ss-doc.js +173 -0
- package/neural-interface/public/shared/skills/ss-eval-adapters.js +269 -0
- package/neural-interface/public/shared/skills/ss-eval-grade.js +359 -0
- package/neural-interface/public/shared/skills/ss-eval-optimise.js +153 -0
- package/neural-interface/public/shared/skills/ss-eval-plan.js +315 -0
- package/neural-interface/public/shared/skills/ss-evals.js +417 -0
- package/neural-interface/public/shared/skills/ss-form.js +159 -0
- package/neural-interface/public/shared/skills/ss-frontmatter.js +376 -0
- package/neural-interface/public/shared/skills/ss-ids.js +32 -0
- package/neural-interface/public/shared/skills/ss-lint.js +141 -0
- package/neural-interface/public/shared/skills/ss-presets.js +117 -0
- package/neural-interface/public/shared/skills/ss-profiles.js +475 -0
- package/neural-interface/public/shared/skills/ss-resources.js +165 -0
- package/neural-interface/public/shared/skills/ss-review-view.js +190 -0
- package/neural-interface/public/shared/skills/ss-tabs.js +79 -0
- package/neural-interface/public/shared/skills/ss-unicode.js +135 -0
- package/neural-interface/public/shared/skills/studio/sx-actions.js +222 -0
- package/neural-interface/public/shared/skills/studio/sx-cm.js +101 -0
- package/neural-interface/public/shared/skills/studio/sx-create-ai-view.js +749 -0
- package/neural-interface/public/shared/skills/studio/sx-create-ai.js +236 -0
- package/neural-interface/public/shared/skills/studio/sx-create-view.js +254 -0
- package/neural-interface/public/shared/skills/studio/sx-create.js +126 -0
- package/neural-interface/public/shared/skills/studio/sx-diff-view.js +43 -0
- package/neural-interface/public/shared/skills/studio/sx-diff.js +133 -0
- package/neural-interface/public/shared/skills/studio/sx-docs.js +480 -0
- package/neural-interface/public/shared/skills/studio/sx-dom.js +229 -0
- package/neural-interface/public/shared/skills/studio/sx-edit-view.js +848 -0
- package/neural-interface/public/shared/skills/studio/sx-editor-model.js +193 -0
- package/neural-interface/public/shared/skills/studio/sx-errors.js +22 -0
- package/neural-interface/public/shared/skills/studio/sx-geometry.js +82 -0
- package/neural-interface/public/shared/skills/studio/sx-import.js +262 -0
- package/neural-interface/public/shared/skills/studio/sx-inspector.js +308 -0
- package/neural-interface/public/shared/skills/studio/sx-install-flow.js +279 -0
- package/neural-interface/public/shared/skills/studio/sx-install.js +296 -0
- package/neural-interface/public/shared/skills/studio/sx-library-view.js +639 -0
- package/neural-interface/public/shared/skills/studio/sx-library.js +475 -0
- package/neural-interface/public/shared/skills/studio/sx-main.js +681 -0
- package/neural-interface/public/shared/skills/studio/sx-operations-view.js +98 -0
- package/neural-interface/public/shared/skills/studio/sx-operations.js +11 -0
- package/neural-interface/public/shared/skills/studio/sx-plan.js +158 -0
- package/neural-interface/public/shared/skills/studio/sx-publish-view.js +621 -0
- package/neural-interface/public/shared/skills/studio/sx-review-view.js +369 -0
- package/neural-interface/public/shared/skills/studio/sx-review.js +148 -0
- package/neural-interface/public/shared/skills/studio/sx-scan.js +35 -0
- package/neural-interface/public/shared/skills/studio/sx-snippets.js +96 -0
- package/neural-interface/public/shared/skills/studio/sx-subject.js +248 -0
- package/neural-interface/public/shared/skills/studio/sx-test-view.js +994 -0
- package/neural-interface/public/shared/skills/studio/sx-test.js +328 -0
- package/neural-interface/public/shared/skills/studio/sx-versions-view.js +241 -0
- package/neural-interface/public/shared/skills/studio/sx-workspace-view.js +425 -0
- package/neural-interface/public/shared/styleguide/sg-panel.js +4 -2
- package/neural-interface/public/shared/styles.css +1525 -1779
- package/neural-interface/public/shared/synabun-mascot.js +1115 -9
- package/neural-interface/public/shared/tool-list-picker.js +55 -0
- package/neural-interface/public/shared/tool-list-storage.js +24 -0
- package/neural-interface/public/shared/tool-list-view.js +112 -0
- package/neural-interface/public/shared/tour/tour-actor.js +268 -0
- package/neural-interface/public/shared/tour/tour-beats.js +336 -0
- package/neural-interface/public/shared/tour/tour-engine.js +884 -0
- package/neural-interface/public/shared/tour/tour-ink.js +390 -0
- package/neural-interface/public/shared/tour/tour-stage.js +440 -0
- package/neural-interface/public/shared/tour/tour-state.js +40 -0
- package/neural-interface/public/shared/tour/tour-tips.js +99 -0
- package/neural-interface/public/shared/tour/tour.css +144 -0
- package/neural-interface/public/shared/ui-automation-studio.js +91 -128
- package/neural-interface/public/shared/ui-claude-panel.js +77 -5
- package/neural-interface/public/shared/ui-command-runner.js +6 -3
- package/neural-interface/public/shared/ui-context-menu.js +295 -0
- package/neural-interface/public/shared/ui-cost-widget.js +57 -59
- package/neural-interface/public/shared/ui-crash-notice.js +187 -0
- package/neural-interface/public/shared/ui-detail.js +15 -3
- package/neural-interface/public/shared/ui-image-gallery.js +50 -47
- package/neural-interface/public/shared/ui-keybinds.js +26 -1
- package/neural-interface/public/shared/ui-menubar.js +8 -18
- package/neural-interface/public/shared/ui-native-loop-router-state.js +5 -0
- package/neural-interface/public/shared/ui-native-loop-router.js +7 -1
- package/neural-interface/public/shared/ui-navbar.js +4 -24
- package/neural-interface/public/shared/ui-panels.js +96 -65
- package/neural-interface/public/shared/ui-schedules-studio.js +507 -423
- package/neural-interface/public/shared/ui-sessions.js +5 -3
- package/neural-interface/public/shared/ui-settings.js +594 -462
- package/neural-interface/public/shared/ui-sidepanel-sessions.js +1 -1
- package/neural-interface/public/shared/ui-sidepanel-state.js +23 -12
- package/neural-interface/public/shared/ui-sidepanel-windows.js +16 -11
- package/neural-interface/public/shared/ui-skills.js +33 -2830
- package/neural-interface/public/shared/ui-styleguide.js +5 -2
- package/neural-interface/public/shared/ui-sync.js +15 -5
- package/neural-interface/public/shared/ui-terminal.js +124 -180
- package/neural-interface/public/shared/ui-tool-updates.js +3 -1
- package/neural-interface/public/shared/ui-tooltip.js +10 -5
- package/neural-interface/public/shared/ui-trash.js +6 -4
- package/neural-interface/public/shared/ui-tutorial-layout.js +3 -117
- package/neural-interface/public/shared/ui-tutorial-preview.js +103 -0
- package/neural-interface/public/shared/ui-tutorial-steps.js +3 -65
- package/neural-interface/public/shared/ui-tutorial.css +47 -100
- package/neural-interface/public/shared/ui-tutorial.js +285 -509
- package/neural-interface/public/shared/ui-update.js +38 -2
- package/neural-interface/public/shared/ui-whiteboard.js +311 -58
- package/neural-interface/public/shared/ui-worker-end.js +4 -0
- package/neural-interface/public/shared/ui-workspaces.js +3 -2
- package/neural-interface/public/shared/view-variant.js +66 -0
- package/neural-interface/public/shared/whatsapp/wa-view.js +1 -1
- package/neural-interface/public/shared/whiteboard-list.js +172 -0
- package/neural-interface/public/shared/worker-end.js +10 -3
- package/neural-interface/public/shared/worker-restart.js +12 -0
- package/neural-interface/public/sidepanel-session.html +1 -1
- package/neural-interface/public/variant/2d/background.js +2 -1
- package/neural-interface/public/variant/2d/context-menu.js +8 -2
- package/neural-interface/public/variant/2d/graph.js +42 -20
- package/neural-interface/public/variant/2d/hulls.js +14 -9
- package/neural-interface/public/variant/2d/lasso.js +11 -7
- package/neural-interface/public/variant/2d/main.js +32 -1
- package/neural-interface/public/variant/2d/minimap.js +11 -13
- package/neural-interface/public/variant/3d/main.js +69 -6
- package/neural-interface/public/variant/3d/map-controls.js +24 -9
- package/neural-interface/public/vendor/caveat/OFL.txt +93 -0
- package/neural-interface/public/vendor/caveat/caveat-latin-400-normal.woff2 +0 -0
- package/neural-interface/public/vendor/caveat/caveat-latin-700-normal.woff2 +0 -0
- package/neural-interface/public/vendor/caveat/caveat.css +17 -0
- package/neural-interface/public/vendor/caveat/manifest.json +12 -0
- package/neural-interface/public/vendor/yaml/LICENSE +13 -0
- package/neural-interface/public/vendor/yaml/manifest.json +4 -0
- package/neural-interface/public/vendor/yaml/yaml-2.9.1.min.js +137 -0
- package/neural-interface/scripts/build-vendor.mjs +32 -0
- package/neural-interface/server.js +3934 -2454
- package/neural-interface/templates/rulesets/core.md +1 -1
- package/neural-interface/templates/rulesets/legacy-hashes.json +18 -0
- package/neural-interface/templates/rulesets/manifest.json +8 -8
- package/npm-shrinkwrap.json +18 -12
- package/package.json +16 -3
- package/postinstall.js +9 -4
- package/preuninstall.js +1 -1
- package/setup.js +97 -322
- package/skills/skill-forge/SKILL.md +177 -0
- package/skills/skill-forge/evals/evals.json +54 -0
- package/skills/skill-forge/references/package.md +105 -0
- package/skills/skill-forge/references/review-and-recovery.md +63 -0
- package/skills/skill-forge/references/runtime-profiles.md +20 -0
- package/skills/skill-forge/references/sources-and-capabilities.md +51 -0
- package/skills/synabun/SKILL.md +10 -7
- package/skills/synabun/modules/audit.md +1 -5
- package/skills/synabun/modules/changelog.md +1 -5
- package/skills/synabun/modules/idea.md +1 -1
- package/skills/synabun/modules/memorize.md +6 -9
- package/skills/synabun/modules/schedule.md +4 -4
- package/mcp-server/dist/services/profiles.d.ts +0 -120
- package/mcp-server/dist/services/profiles.d.ts.map +0 -1
- package/mcp-server/dist/services/profiles.js +0 -387
- package/mcp-server/dist/services/profiles.js.map +0 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +0 -97
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +0 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.js +0 -228
- package/mcp-server/dist/tools/leonardo-browser-tools.js.map +0 -1
- package/mcp-server/dist/tools/leonardo.d.ts +0 -13
- package/mcp-server/dist/tools/leonardo.d.ts.map +0 -1
- package/mcp-server/dist/tools/leonardo.js +0 -21
- package/mcp-server/dist/tools/leonardo.js.map +0 -1
- package/mcp-server/dist/tools/profile.d.ts +0 -17
- package/mcp-server/dist/tools/profile.d.ts.map +0 -1
- package/mcp-server/dist/tools/profile.js +0 -114
- package/mcp-server/dist/tools/profile.js.map +0 -1
- package/mcp-server/src/services/profiles.ts +0 -428
- package/mcp-server/src/tools/leonardo-browser-tools.ts +0 -291
- package/mcp-server/src/tools/leonardo.ts +0 -30
- package/mcp-server/src/tools/profile.ts +0 -122
- package/neural-interface/lib/assistant-brains/opencode-browser-policy.js +0 -47
- package/neural-interface/lib/assistant-brains/opencode-route-gate.js +0 -62
- package/neural-interface/lib/mcp-profile-servers.js +0 -120
- package/neural-interface/public/shared/ui-tutorial-draw.js +0 -311
- package/skills/leonardo/SKILL.md +0 -168
- package/skills/leonardo/icon.svg +0 -1
- package/skills/leonardo/modules/browser-guide.md +0 -378
- package/skills/leonardo/modules/image-prompter.md +0 -283
- package/skills/leonardo/modules/model-advisor.md +0 -100
- package/skills/leonardo/modules/prompt-library.md +0 -110
- package/skills/leonardo/modules/style-guide.md +0 -186
- package/skills/leonardo/modules/video-prompter.md +0 -317
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SynaBun — what Windows recorded about a server that crashed
|
|
3
|
+
*
|
|
4
|
+
* A native crash ends the server with an NTSTATUS and no words of its own:
|
|
5
|
+
* 0xC0000409 is abort() (an uncaught C++ exception, a failed native
|
|
6
|
+
* assertion), a failed /GS or Control Flow Guard check, or another fail-fast.
|
|
7
|
+
* Windows Error Reporting records which: an "Application Error" event (ID
|
|
8
|
+
* 1000: the faulting module, its version, the offset, the process id) and,
|
|
9
|
+
* a moment later, a "Windows Error Reporting" event (ID 1001) whose BEX
|
|
10
|
+
* bucket carries the fail-fast code (7 is abort(), 2 a /GS stack cookie,
|
|
11
|
+
* 10 a Control Flow Guard check, 5 an invalid argument) and the folder of
|
|
12
|
+
* the report. After such a crash the supervisor reads both from the
|
|
13
|
+
* Application log once (`wevtutil`, an argument array, never a shell,
|
|
14
|
+
* bounded) and writes them to its log, which the user can send.
|
|
15
|
+
*
|
|
16
|
+
* Windows only, best effort: no event (Windows Error Reporting turned off,
|
|
17
|
+
* the log not readable) is no line. Parsing is pure and tested with recorded
|
|
18
|
+
* events; nothing here ever throws.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { execFile as nodeExecFile } from 'node:child_process';
|
|
22
|
+
|
|
23
|
+
export const APPLICATION_ERROR_QUERY = "*[System[Provider[@Name='Application Error'] and (EventID=1000)]]";
|
|
24
|
+
export const WER_REPORT_QUERY = "*[System[Provider[@Name='Windows Error Reporting'] and (EventID=1001)]]";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The fail-fast codes a BEX / BEX64 bucket names (winnt.h FAST_FAIL_*), in
|
|
28
|
+
* words. Only the ones a crash of node.exe or a DLL in it is expected to show;
|
|
29
|
+
* any other is logged by number.
|
|
30
|
+
*/
|
|
31
|
+
export const FAST_FAIL_CODES = Object.freeze({
|
|
32
|
+
0: 'a legacy /GS violation',
|
|
33
|
+
1: 'a vtable guard check',
|
|
34
|
+
2: 'a /GS stack cookie check (a stack buffer overrun)',
|
|
35
|
+
3: 'a corrupt list entry (corrupted native memory)',
|
|
36
|
+
4: 'an incorrect stack',
|
|
37
|
+
5: 'an invalid argument (the C runtime\'s invalid parameter check)',
|
|
38
|
+
6: 'a /GS cookie initialization check',
|
|
39
|
+
7: 'abort(): an uncaught C++ exception, a failed native assertion or a fatal error',
|
|
40
|
+
8: 'a range check',
|
|
41
|
+
9: 'an unsafe registry access',
|
|
42
|
+
10: 'a Control Flow Guard check (an indirect call to a bad address)',
|
|
43
|
+
11: 'a Control Flow Guard write check',
|
|
44
|
+
12: 'an invalid fiber switch',
|
|
45
|
+
13: 'an invalid thread context',
|
|
46
|
+
14: 'an invalid reference count',
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
/** wevtutil's arguments: the newest `count` events of `query` in the Application log, as XML. */
|
|
50
|
+
export function wevtutilArgs(query = APPLICATION_ERROR_QUERY, { count = 20 } = {}) {
|
|
51
|
+
return ['qe', 'Application', `/q:${query}`, `/c:${Math.max(1, Math.min(100, Math.floor(Number(count) || 20)))}`, '/rd:true', '/f:xml'];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** wevtutil by its full path: a launch with a short PATH still finds it, and nothing else of that name is run. */
|
|
55
|
+
export function wevtutilPath(env = process.env) {
|
|
56
|
+
const root = String(env.SystemRoot || env.SYSTEMROOT || env.windir || env.WINDIR || 'C:\\Windows').replace(/[\\/]+$/, '');
|
|
57
|
+
return `${root}\\System32\\wevtutil.exe`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** What wevtutil printed, as text: UTF-8, or UTF-16 (with or without its byte order mark) as some Windows tools write to a pipe. */
|
|
61
|
+
export function decodeOutput(output) {
|
|
62
|
+
if (typeof output === 'string') return output;
|
|
63
|
+
const buffer = Buffer.isBuffer(output) ? output : Buffer.from(output || []);
|
|
64
|
+
if (buffer.length >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) return buffer.subarray(2).toString('utf16le');
|
|
65
|
+
if (buffer.length >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) return buffer.subarray(3).toString('utf8');
|
|
66
|
+
let zeros = 0;
|
|
67
|
+
for (let i = 1; i < Math.min(buffer.length, 4096); i += 2) if (buffer[i] === 0) zeros++;
|
|
68
|
+
return zeros > Math.min(buffer.length, 4096) / 4 ? buffer.toString('utf16le') : buffer.toString('utf8');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const ENTITIES = { amp: '&', lt: '<', gt: '>', quot: '"', apos: '\'' };
|
|
72
|
+
function decodeXml(text) {
|
|
73
|
+
return String(text).replace(/&(#x[0-9a-f]+|#\d+|amp|lt|gt|quot|apos);/gi, (whole, name) => {
|
|
74
|
+
if (name[0] === '#') {
|
|
75
|
+
const value = name[1] === 'x' || name[1] === 'X' ? Number.parseInt(name.slice(2), 16) : Number.parseInt(name.slice(1), 10);
|
|
76
|
+
return Number.isFinite(value) && value >= 0 && value <= 0x10FFFF ? String.fromCodePoint(value) : whole;
|
|
77
|
+
}
|
|
78
|
+
return ENTITIES[name.toLowerCase()] ?? whole;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Every `<Event>` of wevtutil's XML output: { provider, id, time (ms), data: [{ name, value }] }. */
|
|
83
|
+
export function parseEvents(xml) {
|
|
84
|
+
const events = [];
|
|
85
|
+
for (const match of String(xml || '').matchAll(/<Event\b[\s\S]*?<\/Event>/g)) {
|
|
86
|
+
const block = match[0];
|
|
87
|
+
const provider = /<Provider\b[^>]*\bName=(['"])(.*?)\1/.exec(block)?.[2] || '';
|
|
88
|
+
const id = Number(/<EventID\b[^>]*>(\d+)<\/EventID>/.exec(block)?.[1]);
|
|
89
|
+
const stamp = /<TimeCreated\b[^>]*\bSystemTime=(['"])(.*?)\1/.exec(block)?.[2] || '';
|
|
90
|
+
const time = Date.parse(stamp);
|
|
91
|
+
const eventData = /<EventData\b[^>]*>([\s\S]*?)<\/EventData>/.exec(block)?.[1] || '';
|
|
92
|
+
const data = [];
|
|
93
|
+
for (const item of eventData.matchAll(/<Data\b([^>]*?)(?:\/>|>([\s\S]*?)<\/Data>)/g)) {
|
|
94
|
+
const name = /\bName=(['"])(.*?)\1/.exec(item[1] || '')?.[2] || null;
|
|
95
|
+
data.push({ name, value: decodeXml(item[2] ?? '').trim() });
|
|
96
|
+
}
|
|
97
|
+
events.push({ provider: decodeXml(provider), id: Number.isFinite(id) ? id : null, time: Number.isFinite(time) ? time : null, data });
|
|
98
|
+
}
|
|
99
|
+
return events;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// The fields of an Application Error event, by name (Windows 10 and later) or by position (older Windows).
|
|
103
|
+
const APPLICATION_ERROR_FIELDS = ['AppName', 'AppVersion', 'AppTimeStamp', 'ModuleName', 'ModuleVersion', 'ModuleTimeStamp', 'ExceptionCode', 'FaultingOffset', 'ProcessId', 'ProcessCreationTime', 'AppPath', 'ModulePath', 'IntegratorReportId', 'PackageFullName', 'PackageRelativeAppId'];
|
|
104
|
+
|
|
105
|
+
const hexValue = (text) => {
|
|
106
|
+
const clean = String(text || '').trim().replace(/^0x/i, '');
|
|
107
|
+
return /^[0-9a-f]+$/i.test(clean) ? Number.parseInt(clean, 16) : null;
|
|
108
|
+
};
|
|
109
|
+
const sameHex = (a, b) => {
|
|
110
|
+
const x = String(a || '').trim().replace(/^0x/i, '').replace(/^0+(?=.)/, '').toLowerCase();
|
|
111
|
+
const y = String(b || '').trim().replace(/^0x/i, '').replace(/^0+(?=.)/, '').toLowerCase();
|
|
112
|
+
return !!x && x === y;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/** An Application Error event (ID 1000) as fields, or null when `event` is not one. */
|
|
116
|
+
export function applicationErrorOf(event) {
|
|
117
|
+
if (!event || event.provider !== 'Application Error' || event.id !== 1000) return null;
|
|
118
|
+
const named = event.data.some(item => item.name);
|
|
119
|
+
const field = (key) => {
|
|
120
|
+
if (named) return event.data.find(item => item.name === key)?.value ?? '';
|
|
121
|
+
return event.data[APPLICATION_ERROR_FIELDS.indexOf(key)]?.value ?? '';
|
|
122
|
+
};
|
|
123
|
+
return {
|
|
124
|
+
time: event.time,
|
|
125
|
+
app: field('AppName'),
|
|
126
|
+
appVersion: field('AppVersion'),
|
|
127
|
+
module: field('ModuleName'),
|
|
128
|
+
moduleVersion: field('ModuleVersion'),
|
|
129
|
+
exceptionCode: field('ExceptionCode').replace(/^0x/i, '').toLowerCase(),
|
|
130
|
+
offset: field('FaultingOffset'),
|
|
131
|
+
pid: hexValue(field('ProcessId')),
|
|
132
|
+
appPath: field('AppPath'),
|
|
133
|
+
modulePath: field('ModulePath'),
|
|
134
|
+
reportId: field('IntegratorReportId'),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* The crash of process `pid` (started at `since`, in ms) among `events`: the
|
|
140
|
+
* newest Application Error event for that process id, no older than `since`
|
|
141
|
+
* less a minute. Null when there is none.
|
|
142
|
+
*/
|
|
143
|
+
export function findApplicationError(events, { pid, since = 0 } = {}) {
|
|
144
|
+
if (!Number.isInteger(pid) || pid <= 0) return null;
|
|
145
|
+
const floor = Number(since) - 60_000;
|
|
146
|
+
const found = (events || []).map(applicationErrorOf)
|
|
147
|
+
.filter(item => item && item.pid === pid && (!Number.isFinite(item.time) || item.time >= floor))
|
|
148
|
+
.sort((a, b) => (b.time || 0) - (a.time || 0));
|
|
149
|
+
return found[0] || null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* The Windows Error Reporting event (ID 1001) of that crash, when its bucket
|
|
154
|
+
* is there: its kind, the fail-fast code of a BEX bucket and the report's
|
|
155
|
+
* folder. Its parameters carry no field names, so it is matched by the
|
|
156
|
+
* module, the offset and the exception code in the order its bucket gives
|
|
157
|
+
* them: a BEX / BEX64 bucket (a fail-fast, 0xC0000409) has the module (P4),
|
|
158
|
+
* the offset (P7), the exception code (P8) and the fail-fast code (P9); an
|
|
159
|
+
* APPCRASH bucket the module (P4), the exception code (P7) and the offset (P8).
|
|
160
|
+
*/
|
|
161
|
+
export function findWerReport(events, crash) {
|
|
162
|
+
if (!crash?.module || !crash.exceptionCode) return null;
|
|
163
|
+
const sameModule = (value) => String(value || '').toLowerCase() === crash.module.toLowerCase();
|
|
164
|
+
for (const event of events || []) {
|
|
165
|
+
if (!event || event.provider !== 'Windows Error Reporting' || event.id !== 1001) continue;
|
|
166
|
+
if (Number.isFinite(event.time) && Number.isFinite(crash.time) && event.time < crash.time - 60_000) continue;
|
|
167
|
+
const values = event.data.map(item => item.value);
|
|
168
|
+
const bucket = values.find(value => /^(?:BEX(?:64)?|APPCRASH|MoAppCrash)$/i.test(value)) || '';
|
|
169
|
+
const folder = values.find(value => /\\WER\\Report(?:Archive|Queue)\\/i.test(value)) || '';
|
|
170
|
+
for (let i = 3; i < values.length; i++) {
|
|
171
|
+
if (!sameHex(values[i], crash.exceptionCode)) continue;
|
|
172
|
+
// BEX: module, version, time stamp, offset, exception code, fail-fast code.
|
|
173
|
+
if (i >= 4 && sameHex(values[i - 1], crash.offset) && sameModule(values[i - 4])) {
|
|
174
|
+
const fastFail = /^BEX/i.test(bucket) ? hexValue(values[i + 1]) : null;
|
|
175
|
+
return { bucket, fastFail: Number.isInteger(fastFail) ? fastFail : null, folder };
|
|
176
|
+
}
|
|
177
|
+
// APPCRASH: module, version, time stamp, exception code, offset.
|
|
178
|
+
if (sameHex(values[i + 1], crash.offset) && sameModule(values[i - 3])) return { bucket, fastFail: null, folder };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** The crash in one line for the supervisor's log. */
|
|
185
|
+
export function describeWindowsCrash(crash, report = null) {
|
|
186
|
+
if (!crash) return '';
|
|
187
|
+
const module = [crash.module || 'an unknown module', crash.moduleVersion].filter(Boolean).join(' ');
|
|
188
|
+
const parts = [`Windows recorded the crash of ${crash.app || 'the server'} (pid ${crash.pid}) in ${module}`];
|
|
189
|
+
if (crash.offset) parts.push(`at offset ${crash.offset.startsWith('0x') ? crash.offset : `0x${crash.offset}`}`);
|
|
190
|
+
if (crash.exceptionCode) parts.push(`exception 0x${crash.exceptionCode}`);
|
|
191
|
+
let line = parts.join(', ');
|
|
192
|
+
if (report && Number.isInteger(report.fastFail)) {
|
|
193
|
+
line += `; fail-fast code ${report.fastFail}${FAST_FAIL_CODES[report.fastFail] ? ` (${FAST_FAIL_CODES[report.fastFail]})` : ''}`;
|
|
194
|
+
}
|
|
195
|
+
if (crash.modulePath) line += `. Module: ${crash.modulePath}`;
|
|
196
|
+
if (report?.folder) line += `. Report: ${report.folder}`;
|
|
197
|
+
return `${line}.`;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** The pauses before each look (the Application Error event is written while Windows handles the crash, the bucket event a little later). */
|
|
201
|
+
export const LOOKUP_WAITS_MS = Object.freeze([1500, 6000, 15000]);
|
|
202
|
+
/** One wevtutil query, at most. */
|
|
203
|
+
export const LOOKUP_QUERY_TIMEOUT_MS = 8000;
|
|
204
|
+
/** The whole lookup, waits and queries together, at most: a supervisor that waits for it (30 s) never cuts it off. */
|
|
205
|
+
export const LOOKUP_BUDGET_MS = 28_000;
|
|
206
|
+
/** A query is not started with less time than this left. */
|
|
207
|
+
const MIN_QUERY_MS = 1000;
|
|
208
|
+
|
|
209
|
+
function runWevtutil(execFile, file, query, { count, timeoutMs }) {
|
|
210
|
+
return new Promise((done) => {
|
|
211
|
+
try {
|
|
212
|
+
execFile(file, wevtutilArgs(query, { count }), { windowsHide: true, timeout: timeoutMs, maxBuffer: 4 * 1024 * 1024, encoding: 'buffer' }, (error, stdout) => {
|
|
213
|
+
done(error ? '' : decodeOutput(stdout));
|
|
214
|
+
});
|
|
215
|
+
} catch {
|
|
216
|
+
done('');
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Look the crash of process `pid` up in the Application log. Resolves
|
|
223
|
+
* { crash, report } (report null when its bucket has not been written yet) or
|
|
224
|
+
* null. Never rejects. `waits` are the pauses before each attempt: the
|
|
225
|
+
* Application Error event is written while Windows handles the crash, the
|
|
226
|
+
* bucket event once the report is filed, a little later. `onFound` hears each
|
|
227
|
+
* step as it is found ({ crash, report: null }, then { crash, report }), so a
|
|
228
|
+
* caller that cannot wait for the last attempt still has what came first.
|
|
229
|
+
* Waits and queries together end within `budgetMs`: a query gets what is left
|
|
230
|
+
* of it (`timeoutMs` at most), a wait is cut to leave a query room, and nothing
|
|
231
|
+
* is started with less than a second left.
|
|
232
|
+
*/
|
|
233
|
+
export async function lookupWindowsCrash({
|
|
234
|
+
pid, since = 0, platform = process.platform, execFile = nodeExecFile, env = process.env, onFound = null,
|
|
235
|
+
waits = LOOKUP_WAITS_MS, timeoutMs = LOOKUP_QUERY_TIMEOUT_MS, budgetMs = LOOKUP_BUDGET_MS, now = () => Date.now(),
|
|
236
|
+
sleep = (ms) => new Promise(done => { const t = setTimeout(done, ms); t.unref?.(); }),
|
|
237
|
+
} = {}) {
|
|
238
|
+
if (platform !== 'win32' || !Number.isInteger(pid) || pid <= 0) return null;
|
|
239
|
+
const file = wevtutilPath(env);
|
|
240
|
+
const tell = (found) => { try { onFound?.(found); } catch {} };
|
|
241
|
+
const deadline = now() + Math.max(0, Number(budgetMs) || 0);
|
|
242
|
+
const left = () => deadline - now();
|
|
243
|
+
// A query, given what is left of the budget; '' (nothing found) when too little is left to start one.
|
|
244
|
+
const query = (which) => {
|
|
245
|
+
const ms = Math.min(timeoutMs, left());
|
|
246
|
+
return ms < MIN_QUERY_MS ? Promise.resolve('') : runWevtutil(execFile, file, which, { count: 30, timeoutMs: ms });
|
|
247
|
+
};
|
|
248
|
+
let crash = null;
|
|
249
|
+
let report = null;
|
|
250
|
+
try {
|
|
251
|
+
for (const wait of waits) {
|
|
252
|
+
const pause = Math.min(wait, left() - MIN_QUERY_MS);
|
|
253
|
+
if (pause < 0) break;
|
|
254
|
+
await sleep(pause);
|
|
255
|
+
if (!crash) {
|
|
256
|
+
crash = findApplicationError(parseEvents(await query(APPLICATION_ERROR_QUERY)), { pid, since });
|
|
257
|
+
if (crash) tell({ crash, report: null });
|
|
258
|
+
}
|
|
259
|
+
if (crash && !report) {
|
|
260
|
+
report = findWerReport(parseEvents(await query(WER_REPORT_QUERY)), crash);
|
|
261
|
+
if (report) tell({ crash, report });
|
|
262
|
+
}
|
|
263
|
+
if (crash && report) break;
|
|
264
|
+
}
|
|
265
|
+
} catch {
|
|
266
|
+
// Best effort: what was found so far.
|
|
267
|
+
}
|
|
268
|
+
return crash ? { crash, report } : null;
|
|
269
|
+
}
|
|
@@ -15,6 +15,24 @@
|
|
|
15
15
|
* Mount on any Express app or run standalone.
|
|
16
16
|
*/
|
|
17
17
|
import { type Request, type Router } from 'express';
|
|
18
|
+
import { type ToolMode, type ToolSelection } from './services/tool-runtime.js';
|
|
19
|
+
/** A selection the worker channel resolves for its run: group ids, strict unless it says focus. */
|
|
20
|
+
export interface McpSessionSelection {
|
|
21
|
+
groups: readonly string[];
|
|
22
|
+
mode?: ToolMode;
|
|
23
|
+
}
|
|
24
|
+
export interface McpRoutesOptions {
|
|
25
|
+
/**
|
|
26
|
+
* The worker channel's resolver: a request's selection from its own run-token map, never from a header. When it
|
|
27
|
+
* answers, the session has exactly that selection and X-Synabun-Tools is ignored.
|
|
28
|
+
*/
|
|
29
|
+
selectionFor?: (req: Request) => McpSessionSelection | null | undefined;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A session's tools, decided once, at initialize: the resolver's answer (strict), else the X-Synabun-Tools header
|
|
33
|
+
* (focus only: it steers the instructions, never what the session can reach), else focus on every group.
|
|
34
|
+
*/
|
|
35
|
+
export declare function sessionSelection(req: Request, options?: McpRoutesOptions): ToolSelection;
|
|
18
36
|
/** The X-Synabun-Brain-Token of one request (whatsapp_send_file); none for a tunnel caller (a remote MCP-key holder). */
|
|
19
37
|
export declare function requestBrainCredential(req: Pick<Request, 'get'>): string | null;
|
|
20
38
|
/**
|
|
@@ -27,6 +45,7 @@ export declare function ensureInit(): Promise<void>;
|
|
|
27
45
|
* Create Express routes for the MCP HTTP endpoint.
|
|
28
46
|
* Auth is handled externally (URL-embedded key in server.js).
|
|
29
47
|
* Can be mounted on an existing Express app: app.use('/mcp', createMcpRoutes());
|
|
48
|
+
* The worker channel passes `selectionFor`, so its sessions are strict to their run's list.
|
|
30
49
|
*/
|
|
31
|
-
export declare function createMcpRoutes(): Router;
|
|
50
|
+
export declare function createMcpRoutes(options?: McpRoutesOptions): Router;
|
|
32
51
|
//# sourceMappingURL=http.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAGH,OAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAGH,OAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAU7D,OAAO,EAA0C,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAuCvH,mGAAmG;AACnG,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;CACzE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,aAAa,CAsB5F;AAgFD,yHAAyH;AACzH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,CAE/E;AAcD;;;;GAIG;AACH,wBAAsB,UAAU,kBAU/B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAsHtE"}
|
package/mcp-server/dist/http.js
CHANGED
|
@@ -21,7 +21,10 @@ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
|
21
21
|
import { ensureDatabase } from './services/sqlite.js';
|
|
22
22
|
import { initCategoryCache } from './services/categories.js';
|
|
23
23
|
import { warmupEmbeddings } from './services/local-embeddings.js';
|
|
24
|
-
import { createMcpServer, refreshServerSchemas, onSchemaRefresh, setServerRole, setServerCapabilities } from './index.js';
|
|
24
|
+
import { createMcpServer, refreshServerSchemas, onSchemaRefresh, setServerRole, setServerCapabilities, setServerSelection, httpDefaultSelection, getServerToolRuntime, } from './index.js';
|
|
25
|
+
import { ToolListRefreshBarrier } from './services/tool-list-refresh-barrier.js';
|
|
26
|
+
import { selectionFromList, unreadableSelection } from './services/tool-runtime.js';
|
|
27
|
+
import { TOOL_LIST_LIMITS } from './services/tool-catalog.js';
|
|
25
28
|
import { markHttpMode, obtainIdentity, sanitizeBrainCredential, sanitizeDesktopGrant, sanitizePin, sanitizeRole, runWithBrainCredential, runWithIdentity, releaseIdentity, startIdentitySweeper, } from './services/identity.js';
|
|
26
29
|
let initialized = false;
|
|
27
30
|
let initPromise = null;
|
|
@@ -30,18 +33,50 @@ let initPromise = null;
|
|
|
30
33
|
// drop it when category schemas change. With stateful sessions this is
|
|
31
34
|
// consumed once per CLIENT SESSION (initialize), not per request.
|
|
32
35
|
let warmServer = null;
|
|
36
|
+
const toolListBarriers = new WeakMap();
|
|
37
|
+
// Built with focus on every group: Claude Code reaches every SynaBun tool
|
|
38
|
+
// through ToolSearch. Each session's own selection is bound at initialize.
|
|
33
39
|
function takeServer() {
|
|
34
|
-
const server = warmServer ?? createMcpServer(
|
|
40
|
+
const server = warmServer ?? createMcpServer({ selection: httpDefaultSelection() });
|
|
35
41
|
warmServer = null;
|
|
36
42
|
setImmediate(() => {
|
|
37
43
|
try {
|
|
38
44
|
if (!warmServer)
|
|
39
|
-
warmServer = createMcpServer(
|
|
45
|
+
warmServer = createMcpServer({ selection: httpDefaultSelection() });
|
|
40
46
|
}
|
|
41
47
|
catch { /* next request builds inline */ }
|
|
42
48
|
});
|
|
43
49
|
return server;
|
|
44
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* A session's tools, decided once, at initialize: the resolver's answer (strict), else the X-Synabun-Tools header
|
|
53
|
+
* (focus only: it steers the instructions, never what the session can reach), else focus on every group.
|
|
54
|
+
*/
|
|
55
|
+
export function sessionSelection(req, options = {}) {
|
|
56
|
+
if (options.selectionFor) {
|
|
57
|
+
let answer;
|
|
58
|
+
try {
|
|
59
|
+
answer = options.selectionFor(req);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
return unreadableSelection('channel', `its run's tool list could not be resolved (${err instanceof Error ? err.message : String(err)})`, 'strict');
|
|
63
|
+
}
|
|
64
|
+
if (answer) {
|
|
65
|
+
const mode = answer.mode === 'focus' ? 'focus' : 'strict';
|
|
66
|
+
return Array.isArray(answer.groups)
|
|
67
|
+
? selectionFromList([...answer.groups], mode, 'channel')
|
|
68
|
+
: unreadableSelection('channel', 'its run names no tool list', mode);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const header = req.get('x-synabun-tools');
|
|
72
|
+
if (header === undefined || !header.trim())
|
|
73
|
+
return httpDefaultSelection();
|
|
74
|
+
const selection = Buffer.byteLength(header, 'utf8') > TOOL_LIST_LIMITS.maxSerializedBytes
|
|
75
|
+
? unreadableSelection('header', `longer than ${TOOL_LIST_LIMITS.maxSerializedBytes} bytes`, 'focus')
|
|
76
|
+
: selectionFromList(header, 'focus', 'header');
|
|
77
|
+
// A header that cannot be read narrows nothing: the session keeps reaching every tool and is told why.
|
|
78
|
+
return selection.listError ? { ...selection, mode: 'focus', hostMode: 'focus' } : selection;
|
|
79
|
+
}
|
|
45
80
|
const mcpSessions = new Map();
|
|
46
81
|
const MCP_SESSION_TTL_MS = parseInt(process.env.SYNABUN_MCP_SESSION_TTL_MS || '', 10) || 60 * 60 * 1000;
|
|
47
82
|
let sessionSweeperStarted = false;
|
|
@@ -157,8 +192,9 @@ export async function ensureInit() {
|
|
|
157
192
|
* Create Express routes for the MCP HTTP endpoint.
|
|
158
193
|
* Auth is handled externally (URL-embedded key in server.js).
|
|
159
194
|
* Can be mounted on an existing Express app: app.use('/mcp', createMcpRoutes());
|
|
195
|
+
* The worker channel passes `selectionFor`, so its sessions are strict to their run's list.
|
|
160
196
|
*/
|
|
161
|
-
export function createMcpRoutes() {
|
|
197
|
+
export function createMcpRoutes(options = {}) {
|
|
162
198
|
markHttpMode();
|
|
163
199
|
startIdentitySweeper();
|
|
164
200
|
startSessionSweeper();
|
|
@@ -176,6 +212,11 @@ export function createMcpRoutes() {
|
|
|
176
212
|
return jsonRpcError(res, 404, -32001, 'Session not found');
|
|
177
213
|
}
|
|
178
214
|
entry.lastSeen = Date.now();
|
|
215
|
+
if (req.body?.method === 'tools/list' && req.body.id !== undefined) {
|
|
216
|
+
// finish means the fresh schemas have left this session's HTTP response.
|
|
217
|
+
res.once('finish', () => { if (res.statusCode === 200)
|
|
218
|
+
toolListBarriers.get(entry.server)?.listed(); });
|
|
219
|
+
}
|
|
179
220
|
await runRequest(req, sid, () => entry.transport.handleRequest(req, res, req.body));
|
|
180
221
|
return;
|
|
181
222
|
}
|
|
@@ -184,16 +225,21 @@ export function createMcpRoutes() {
|
|
|
184
225
|
return jsonRpcError(res, 400, -32000, 'Bad Request: no valid session ID provided');
|
|
185
226
|
}
|
|
186
227
|
const server = takeServer();
|
|
228
|
+
const barrier = new ToolListRefreshBarrier();
|
|
229
|
+
toolListBarriers.set(server, barrier);
|
|
230
|
+
getServerToolRuntime(server)?.setInBandRefresh(() => barrier.refresh(() => server.server.notification({ method: 'notifications/tools/list_changed' })));
|
|
187
231
|
const transport = new StreamableHTTPServerTransport({
|
|
188
232
|
sessionIdGenerator: () => randomUUID(),
|
|
189
233
|
onsessioninitialized: (newSid) => {
|
|
190
234
|
mcpSessions.set(newSid, { transport, server, lastSeen: Date.now() });
|
|
191
235
|
deriveIdentity(req, newSid);
|
|
192
236
|
const terminal = sanitizePin(req.get('x-synabun-terminal'));
|
|
193
|
-
// The warm server was built role-less. The SDK awaits this
|
|
194
|
-
// BEFORE dispatching the initialize request, so binding the
|
|
195
|
-
// here makes the handshake instructions and
|
|
196
|
-
// tools/list already
|
|
237
|
+
// The warm server was built role-less, on focus. The SDK awaits this
|
|
238
|
+
// hook BEFORE dispatching the initialize request, so binding the
|
|
239
|
+
// selection and the role here makes the handshake instructions and
|
|
240
|
+
// the client's first tools/list already right.
|
|
241
|
+
const selection = sessionSelection(req, options);
|
|
242
|
+
setServerSelection(server, selection);
|
|
197
243
|
const remote = !!req.get('cf-connecting-ip');
|
|
198
244
|
const role = remote ? null : sanitizeRole(req.get('x-synabun-role'));
|
|
199
245
|
if (role)
|
|
@@ -203,7 +249,8 @@ export function createMcpRoutes() {
|
|
|
203
249
|
const grant = remote ? null : sanitizeDesktopGrant(req.get('x-synabun-desktop-grant'));
|
|
204
250
|
if (grant)
|
|
205
251
|
setServerCapabilities(server, { computer: true });
|
|
206
|
-
|
|
252
|
+
const tools = selection.source === 'http' ? '' : `, tools=${selection.mode}:${selection.groups.join(',') || 'memory'}${selection.listError ? ' (unreadable)' : ''}`;
|
|
253
|
+
console.error(`[mcp-http] session ${newSid} init (terminal=${terminal || 'none'}${role ? `, role=${role}` : ''}${grant ? ', computer' : ''}${tools}, sessions=${mcpSessions.size})`);
|
|
207
254
|
},
|
|
208
255
|
});
|
|
209
256
|
// Re-entry guard: server.close() closes its transport, which fires
|
|
@@ -259,9 +306,9 @@ export function createMcpRoutes() {
|
|
|
259
306
|
router.delete('/', handleSessionRequest);
|
|
260
307
|
return router;
|
|
261
308
|
}
|
|
262
|
-
// If run directly, start a standalone HTTP server
|
|
263
|
-
|
|
264
|
-
|
|
309
|
+
// If run directly, start a standalone HTTP server: `node dist/http.js`, or `npm run start:http` / `dev:http`, whose
|
|
310
|
+
// preload-http entry loads the data home's .env and then this module (argv[1] names the preload then).
|
|
311
|
+
const isMain = /\/(?:preload-)?http\.[jt]s$/.test(process.argv[1]?.replace(/\\/g, '/') || '');
|
|
265
312
|
if (isMain) {
|
|
266
313
|
const PORT = parseInt(process.env.MCP_HTTP_PORT || '3345', 10);
|
|
267
314
|
const app = express();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,OAAsC,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,GAC7J,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAqC,MAAM,4BAA4B,CAAC;AACvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAEL,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C,0EAA0E;AAC1E,0EAA0E;AAC1E,uEAAuE;AACvE,kEAAkE;AAClE,IAAI,UAAU,GAA8C,IAAI,CAAC;AACjE,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA8D,CAAC;AAEnG,0EAA0E;AAC1E,2EAA2E;AAC3E,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,UAAU,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACpF,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU;gBAAE,UAAU,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;QAAC,MAAM,CAAC,CAAC,gCAAgC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY,EAAE,UAA4B,EAAE;IAC3E,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,IAAI,MAA8C,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,8CAA8C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrJ,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC;gBACxD,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,4BAA4B,EAAE,IAAI,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,oBAAoB,EAAE,CAAC;IAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC,kBAAkB;QACvF,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,gBAAgB,CAAC,kBAAkB,QAAQ,EAAE,OAAO,CAAC;QACpG,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,uGAAuG;IACvG,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9F,CAAC;AAQD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEtD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAExG,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAClC,SAAS,mBAAmB;IAC1B,IAAI,qBAAqB;QAAE,OAAO;IAClC,qBAAqB,GAAG,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;YACvC,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,kBAAkB,EAAE,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,aAAa,WAAW,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChJ,kFAAkF;gBAClF,IAAI,CAAC;oBAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,uEAAuE;AACvE,6EAA6E;AAC7E,0CAA0C;AAC1C,eAAe,CAAC,GAAG,EAAE;IACnB,UAAU,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC;YAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IACrF,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,cAAc,CAAC,GAAY,EAAE,GAAuB;IAC3D,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC;QACnD,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC;QAC1D,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAE,KAAK,CAAC,CAAC,EAAC,GAAG,CAAC;KAClE,CAAC;IACF,0EAA0E;IAC1E,qEAAqE;IACrE,2EAA2E;IAC3E,iCAAiC;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC9F,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAClE,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc,EAAE;YAC9C,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE;gBACJ,iBAAiB,EAAE,cAAc;gBACjC,gBAAgB,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACnE,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;aAC5D;YACD,IAAI;YACJ,YAAY;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,aAAa,GAAG,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC;QAC7I,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,oEAAoE;IACpE,0EAA0E;IAC1E,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,IAAI,QAAQ,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9G,QAAQ,CAAC,aAAa,GAAG,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC;IAC7I,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,sBAAsB,CAAC,GAAyB;IAC9D,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACxG,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAI,GAAY,EAAE,GAAuB,EAAE,EAAW;IACvE,OAAO,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClH,CAAC;AAED,SAAS,YAAY,CAAC,GAAqB,EAAE,MAAc,EAAE,IAAY,EAAE,OAAe;IACxF,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,WAAW;QAAE,OAAO;IACxB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,cAAc,EAAE,CAAC;QACvB,MAAM,iBAAiB,EAAE,CAAC;QAC1B,gBAAgB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA,EAAE,CAAA,OAAO,CAAC,KAAK,CAAC,qEAAqE,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACpI,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC;IACL,IAAI,CAAC;QAAC,MAAM,WAAW,CAAC;IAAC,CAAC;YAAS,CAAC;QAAC,WAAW,GAAG,IAAI,CAAC;IAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAA4B,EAAE;IAC5D,YAAY,EAAE,CAAC;IACf,oBAAoB,EAAE,CAAC;IACvB,mBAAmB,EAAE,CAAC;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC;YAEnD,oDAAoD;YACpD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,qEAAqE;oBACrE,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;gBAC7D,CAAC;gBACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBACnE,yEAAyE;oBACzE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG;wBAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1G,CAAC;gBACD,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAC9B,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAClD,CAAC;gBACF,OAAO;YACT,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,2CAA2C,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtC,oBAAoB,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CACxE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAC3E,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;gBACtC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;oBAC/B,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACrE,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBAC5D,qEAAqE;oBACrE,iEAAiE;oBACjE,mEAAmE;oBACnE,+CAA+C;oBAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBACjD,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBACtC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACrE,IAAI,IAAI;wBAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBACtC,uEAAuE;oBACvE,qEAAqE;oBACrE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;oBACvF,IAAI,KAAK;wBAAE,qBAAqB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACpK,OAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,mBAAmB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,cAAc,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;gBACvL,CAAC;aACF,CAAC,CAAC;YACH,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACvB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;gBACtC,IAAI,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5C,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC9B,sEAAsE;oBACtE,oEAAoE;oBACpE,eAAe,CAAC,SAAS,CAAC,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,YAAY,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC;gBACvF,CAAC;gBACD,IAAI,CAAC;oBAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACxD,CAAC,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CACpC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAC5C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,mFAAmF;IACnF,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;QACjF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC;QACnD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC;QAC5I,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAC9B,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CACxC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oHAAoH;AACpH,uGAAuG;AACvG,MAAM,MAAM,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAE9F,IAAI,MAAM,EAAE,CAAC;IACX,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,6CAA6C,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,gFAAgF;IAChF,iFAAiF;IACjF,6EAA6E;IAC7E,8EAA8E;IAC9E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,38 +1,34 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import {
|
|
2
|
+
import { ToolRuntime, type CallerCapability, type ToolMode, type ToolSelection } from './services/tool-runtime.js';
|
|
3
3
|
import type { CallerRole } from './services/identity.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
import type { RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
/** The group ids this server has a registrar for (tests/tool-catalog.test.ts compares them with the catalog). */
|
|
6
|
+
export declare function registeredGroupIds(): string[];
|
|
7
|
+
export declare function registerTools(server: McpServer, runtime?: ToolRuntime): {
|
|
8
|
+
rememberTool: RegisteredTool;
|
|
9
|
+
recallTool: RegisteredTool;
|
|
10
|
+
reflectTool: RegisteredTool;
|
|
11
|
+
memoriesTool: RegisteredTool;
|
|
12
|
+
runtime: ToolRuntime;
|
|
11
13
|
};
|
|
12
14
|
export declare function trackToolUsage(toolName: string): void;
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
profile: string;
|
|
21
|
-
activeGroups: string[];
|
|
22
|
-
recommendation: string;
|
|
23
|
-
};
|
|
24
|
-
export declare function createMcpServer(forceProfile?: string, options?: {
|
|
25
|
-
catalogMode?: 'profiled' | 'deferred';
|
|
15
|
+
export interface CreateMcpServerOptions {
|
|
16
|
+
/** The server's tools. Without it the server reads its runtime's own list (readInitialTools). */
|
|
17
|
+
selection?: ToolSelection;
|
|
18
|
+
/** Or a list of group ids, resolved like a runtime's own (strict unless `mode` says focus). */
|
|
19
|
+
tools?: readonly string[] | string;
|
|
20
|
+
/** The mode for `tools`, or for the list the runtime reads by itself. */
|
|
21
|
+
mode?: ToolMode;
|
|
26
22
|
role?: CallerRole | null;
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
capabilities?: CallerCapability[] | null;
|
|
24
|
+
platform?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function createMcpServer(options?: CreateMcpServerOptions): McpServer;
|
|
27
|
+
export declare function getServerToolRuntime(target: McpServer): ToolRuntime | null;
|
|
29
28
|
/**
|
|
30
29
|
* Bind a caller role to a live server built by createMcpServer. Role-gated
|
|
31
30
|
* groups (agents) are advertised only while the role matches, so the runtime
|
|
32
|
-
* re-applies its
|
|
33
|
-
* refreshed in place: the SDK reads Server._instructions when it answers the
|
|
34
|
-
* initialize request, and the HTTP transport calls this from
|
|
35
|
-
* onsessioninitialized, which runs before that request is dispatched.
|
|
31
|
+
* re-applies its selection and the instructions follow.
|
|
36
32
|
*/
|
|
37
33
|
export declare function setServerRole(target: McpServer, role: CallerRole | null): boolean;
|
|
38
34
|
/**
|
|
@@ -42,6 +38,16 @@ export declare function setServerRole(target: McpServer, role: CallerRole | null
|
|
|
42
38
|
export declare function setServerCapabilities(target: McpServer, caps: {
|
|
43
39
|
computer?: boolean;
|
|
44
40
|
}): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Bind a session's tool selection to a live server: the X-Synabun-Tools focus
|
|
43
|
+
* of the main HTTP mount, or the strict list the worker channel resolves for
|
|
44
|
+
* its run. Same mechanics as setServerRole. Focus never changes what a server
|
|
45
|
+
* advertises, so a header can neither widen nor narrow it; the gates stay with
|
|
46
|
+
* the role and the grant.
|
|
47
|
+
*/
|
|
48
|
+
export declare function setServerSelection(target: McpServer, selection: ToolSelection): boolean;
|
|
49
|
+
/** The selection an HTTP session starts from before its own is bound: focus on every group. */
|
|
50
|
+
export declare function httpDefaultSelection(): ToolSelection;
|
|
45
51
|
export declare function refreshServerSchemas(target: McpServer): void;
|
|
46
52
|
export declare function onSchemaRefresh(fn: () => void): void;
|
|
47
53
|
export declare function refreshCategorySchemas(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCpE,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EACzD,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AA+D9E,iHAAiH;AACjH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,WAAiD;;;;;;EAiD1G;AA+BD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,QAK9C;AAKD,MAAM,WAAW,sBAAsB;IACrC,iGAAiG;IACjG,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,+FAA+F;IAC/F,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IACnC,yEAAyE;IACzE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAeD,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,aASnE;AAOD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,IAAI,CAE1E;AAYD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAQjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAU9F;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAMvF;AAED,+FAA+F;AAC/F,wBAAgB,oBAAoB,IAAI,aAAa,CAEpD;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAO5D;AA0BD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAEpD;AAID,wBAAgB,sBAAsB,SASrC"}
|