synabun 2.0.0 → 2.0.7
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 +97 -0
- package/NOTICE +5 -0
- package/README.md +2 -1
- package/THIRD-PARTY-LICENSES.md +59 -0
- package/benchmarks/fixtures/browser/README.md +1 -1
- package/benchmarks/fixtures/desktop/README.md +1 -1
- package/docs/whatsapp.md +153 -18
- package/hooks/claude-code/pre-compact.mjs +11 -0
- package/hooks/claude-code/prompt-submit.mjs +60 -184
- package/hooks/claude-code/session-start.mjs +73 -16
- package/hooks/claude-code/shared.mjs +26 -3
- package/hooks/claude-code/stop.mjs +5 -5
- package/lib/child-path.js +303 -0
- package/lib/claude-hooks.js +2 -1
- package/lib/data-home-migration.js +2 -0
- package/lib/desktop-app.js +265 -0
- package/lib/external-tools.js +7 -3
- package/lib/log-redact.js +102 -0
- package/lib/packaged-runtime.js +138 -11
- package/lib/start-launcher.js +88 -1
- package/mcp-server/dist/http.d.ts +3 -1
- package/mcp-server/dist/http.d.ts.map +1 -1
- package/mcp-server/dist/http.js +15 -4
- package/mcp-server/dist/http.js.map +1 -1
- package/mcp-server/dist/index.d.ts.map +1 -1
- package/mcp-server/dist/index.js +9 -6
- package/mcp-server/dist/index.js.map +1 -1
- package/mcp-server/dist/services/budget-judgments.d.ts +108 -0
- package/mcp-server/dist/services/budget-judgments.d.ts.map +1 -0
- package/mcp-server/dist/services/budget-judgments.js +153 -0
- package/mcp-server/dist/services/budget-judgments.js.map +1 -0
- package/mcp-server/dist/services/codex-config-heal.d.ts +5 -1
- package/mcp-server/dist/services/codex-config-heal.d.ts.map +1 -1
- package/mcp-server/dist/services/codex-config-heal.js +41 -4
- package/mcp-server/dist/services/codex-config-heal.js.map +1 -1
- package/mcp-server/dist/services/identity.d.ts +11 -0
- package/mcp-server/dist/services/identity.d.ts.map +1 -1
- package/mcp-server/dist/services/identity.js +24 -0
- package/mcp-server/dist/services/identity.js.map +1 -1
- package/mcp-server/dist/services/neural-interface.d.ts +13 -0
- package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
- package/mcp-server/dist/services/neural-interface.js +34 -2
- package/mcp-server/dist/services/neural-interface.js.map +1 -1
- package/mcp-server/dist/services/typesafe-config.d.ts +1 -1
- package/mcp-server/dist/services/typesafe-config.d.ts.map +1 -1
- package/mcp-server/dist/services/typesafe-config.js +4 -1
- package/mcp-server/dist/services/typesafe-config.js.map +1 -1
- package/mcp-server/dist/tools/agents.d.ts +10 -7
- package/mcp-server/dist/tools/agents.d.ts.map +1 -1
- package/mcp-server/dist/tools/agents.js +34 -13
- package/mcp-server/dist/tools/agents.js.map +1 -1
- package/mcp-server/dist/tools/whatsapp-send-file.d.ts +17 -0
- package/mcp-server/dist/tools/whatsapp-send-file.d.ts.map +1 -0
- package/mcp-server/dist/tools/whatsapp-send-file.js +44 -0
- package/mcp-server/dist/tools/whatsapp-send-file.js.map +1 -0
- package/mcp-server/dist/tui.js +2 -1
- package/mcp-server/dist/tui.js.map +1 -1
- package/mcp-server/dist/version.d.ts +5 -0
- package/mcp-server/dist/version.d.ts.map +1 -0
- package/mcp-server/dist/version.js +21 -0
- package/mcp-server/dist/version.js.map +1 -0
- package/mcp-server/package-lock.json +2 -2
- package/mcp-server/package.json +1 -3
- package/mcp-server/run.mjs +15 -9
- package/mcp-server/src/http.ts +18 -3
- package/mcp-server/src/index.ts +9 -6
- package/mcp-server/src/services/budget-judgments.ts +183 -0
- package/mcp-server/src/services/codex-config-heal.ts +35 -4
- package/mcp-server/src/services/identity.ts +27 -0
- package/mcp-server/src/services/neural-interface.ts +34 -2
- package/mcp-server/src/services/typesafe-config.ts +4 -1
- package/mcp-server/src/tools/agents.ts +33 -14
- package/mcp-server/src/tools/whatsapp-send-file.ts +51 -0
- package/mcp-server/src/tui.ts +2 -1
- package/mcp-server/src/version.ts +22 -0
- package/neural-interface/i18n/en.json +2126 -209
- package/neural-interface/i18n/pt-BR.json +2123 -207
- package/neural-interface/lib/account-usage.js +163 -0
- package/neural-interface/lib/assistant-api.js +316 -57
- package/neural-interface/lib/assistant-brains/claude.js +19 -2
- package/neural-interface/lib/assistant-brains/codex.js +3 -0
- package/neural-interface/lib/assistant-brains/opencode.js +17 -4
- package/neural-interface/lib/assistant-budget-planner.js +390 -0
- package/neural-interface/lib/assistant-budget-split.js +408 -0
- package/neural-interface/lib/assistant-budget.js +94 -95
- package/neural-interface/lib/assistant-catalog.js +179 -27
- package/neural-interface/lib/assistant-config.js +91 -14
- package/neural-interface/lib/assistant-dispatch.js +494 -138
- package/neural-interface/lib/assistant-hidden-models.js +393 -66
- package/neural-interface/lib/assistant-jev.js +26 -3
- package/neural-interface/lib/assistant-memory.js +24 -10
- package/neural-interface/lib/assistant-persona.js +73 -12
- package/neural-interface/lib/assistant-plan-permissions.js +8 -1
- package/neural-interface/lib/assistant-pricing.js +21 -6
- package/neural-interface/lib/assistant-route-accounts.js +14 -0
- package/neural-interface/lib/assistant-route-gate.js +19 -3
- package/neural-interface/lib/assistant-router.js +373 -42
- package/neural-interface/lib/assistant-runtime.js +488 -59
- package/neural-interface/lib/assistant-task-prompt.js +13 -3
- package/neural-interface/lib/assistant-test-density.js +142 -0
- package/neural-interface/lib/assistant-user-context-budgets.js +123 -0
- package/neural-interface/lib/assistant-user-context.js +908 -0
- package/neural-interface/lib/assistant-user-knowledge.js +328 -0
- package/neural-interface/lib/assistant-user-learn.js +404 -0
- package/neural-interface/lib/assistant-user-threads.js +226 -0
- package/neural-interface/lib/assistant-user-writer.js +183 -0
- package/neural-interface/lib/augmented-path.js +317 -53
- package/neural-interface/lib/browser-background-tab.js +134 -0
- package/neural-interface/lib/browser-screenshot.js +678 -61
- package/neural-interface/lib/claude-accounts.js +342 -31
- package/neural-interface/lib/claude-agent-bridge.js +123 -9
- package/neural-interface/lib/claude-executable.js +6 -1
- package/neural-interface/lib/claude-model-catalog.js +33 -5
- package/neural-interface/lib/claude-panel-auth.js +221 -0
- package/neural-interface/lib/claude-profile-api-key.js +62 -0
- package/neural-interface/lib/claude-temporary.js +46 -7
- package/neural-interface/lib/cli-install-api.js +137 -0
- package/neural-interface/lib/cli-install.js +797 -0
- package/neural-interface/lib/cli-path.js +130 -0
- package/neural-interface/lib/cli-resolver.js +744 -0
- package/neural-interface/lib/cli-update-planner.js +143 -7
- package/neural-interface/lib/cloudflared/install.js +533 -0
- package/neural-interface/lib/cloudflared/manager.js +545 -0
- package/neural-interface/lib/cloudflared/pins.js +115 -0
- package/neural-interface/lib/cloudflared/pins.json +63 -0
- package/neural-interface/lib/cloudflared/tunnel.js +265 -0
- package/neural-interface/lib/codex-account-auth.js +178 -0
- package/neural-interface/lib/codex-accounts.js +489 -0
- package/neural-interface/lib/codex-capabilities.js +2 -1
- package/neural-interface/lib/codex-compat-rpc.js +8 -2
- package/neural-interface/lib/codex-mcp-approvals.js +5 -1
- package/neural-interface/lib/codex-panel-auth.js +62 -0
- package/neural-interface/lib/codex-session-settings.js +1 -1
- package/neural-interface/lib/codex-settings-schema.js +120 -0
- package/neural-interface/lib/desktop/config.js +3 -0
- package/neural-interface/lib/editor-completion-endpoint.js +264 -0
- package/neural-interface/lib/editor-completion-opencode.js +436 -0
- package/neural-interface/lib/editor-completion.js +714 -0
- package/neural-interface/lib/editor-config.js +149 -0
- package/neural-interface/lib/editor-files-api.js +268 -0
- package/neural-interface/lib/editor-git-api.js +134 -0
- package/neural-interface/lib/file-explorer-api.js +1039 -0
- package/neural-interface/lib/file-explorer-system.js +355 -0
- package/neural-interface/lib/file-explorer-trash.ps1 +85 -0
- package/neural-interface/lib/file-explorer-watch.js +239 -0
- package/neural-interface/lib/git-bash/bzip2.js +339 -0
- package/neural-interface/lib/git-bash/claude-settings.js +73 -0
- package/neural-interface/lib/git-bash/extract-worker.js +34 -0
- package/neural-interface/lib/git-bash/install.js +529 -0
- package/neural-interface/lib/git-bash/licenses/COPYING +360 -0
- package/neural-interface/lib/git-bash/licenses/LGPL-2.1 +511 -0
- package/neural-interface/lib/git-bash/manager.js +268 -0
- package/neural-interface/lib/git-bash/pins.js +206 -0
- package/neural-interface/lib/git-bash/pins.json +34 -0
- package/neural-interface/lib/git-bash/resolver.js +194 -0
- package/neural-interface/lib/git-diff-api.js +103 -0
- package/neural-interface/lib/git-read.js +234 -0
- package/neural-interface/lib/greeting/api.js +89 -0
- package/neural-interface/lib/greeting/budgets.js +90 -0
- package/neural-interface/lib/greeting/engine.js +461 -0
- package/neural-interface/lib/greeting/facts.js +320 -0
- package/neural-interface/lib/greeting/sources.js +252 -0
- package/neural-interface/lib/greeting/writer.js +139 -0
- package/neural-interface/lib/http-guards.js +189 -13
- package/neural-interface/lib/install-details.js +145 -0
- package/neural-interface/lib/machine-names.js +88 -0
- package/neural-interface/lib/mcp-installer.js +14 -2
- package/neural-interface/lib/memory-api.js +31 -7
- package/neural-interface/lib/native-loop-providers.js +26 -8
- package/neural-interface/lib/native-loop-runtime.js +9 -4
- package/neural-interface/lib/os-path.js +319 -0
- package/neural-interface/lib/plugin-installer.js +4 -2
- package/neural-interface/lib/project-storage.js +5 -7
- package/neural-interface/lib/provider-panel-api-key-auth.js +92 -0
- package/neural-interface/lib/provider-panel-terminal-auth.js +95 -0
- package/neural-interface/lib/pty-host/core.js +2 -1
- package/neural-interface/lib/pty-host/manager.js +27 -2
- package/neural-interface/lib/remote-policy.js +20 -11
- package/neural-interface/lib/request-gate.js +589 -0
- package/neural-interface/lib/session-title-generator.js +4 -3
- package/neural-interface/lib/system-about.js +340 -0
- package/neural-interface/lib/system-activity.js +66 -0
- package/neural-interface/lib/terminal-env.js +11 -3
- package/neural-interface/lib/terminal-path.js +55 -0
- package/neural-interface/lib/ui-blob-api.js +108 -0
- package/neural-interface/lib/ui-blob-store.js +68 -0
- package/neural-interface/lib/virtual-socket.js +12 -1
- package/neural-interface/lib/whatsapp/baileys-adapter.js +165 -45
- package/neural-interface/lib/whatsapp/bridge.js +78 -34
- package/neural-interface/lib/whatsapp/commands.js +13 -14
- package/neural-interface/lib/whatsapp/config.js +134 -20
- package/neural-interface/lib/whatsapp/fake-baileys.js +99 -14
- package/neural-interface/lib/whatsapp/host-core.js +168 -35
- package/neural-interface/lib/whatsapp/inbound.js +5 -3
- package/neural-interface/lib/whatsapp/local-file.js +524 -0
- package/neural-interface/lib/whatsapp/manager.js +92 -32
- package/neural-interface/lib/whatsapp/paths.js +11 -1
- package/neural-interface/lib/whatsapp/protocol.js +65 -5
- package/neural-interface/lib/whatsapp/redact.js +63 -0
- package/neural-interface/lib/whatsapp/service.js +343 -91
- package/neural-interface/lib/whatsapp/transcription.js +463 -0
- package/neural-interface/package-lock.json +701 -2
- package/neural-interface/package.json +13 -2
- package/neural-interface/public/index.html +2 -0
- package/neural-interface/public/index2d.html +2 -0
- package/neural-interface/public/install-app.html +9 -6
- package/neural-interface/public/offline.html +19 -3
- package/neural-interface/public/onboarding.html +107 -2
- package/neural-interface/public/shared/account-i18n.js +7 -0
- package/neural-interface/public/shared/account-menu.js +539 -0
- package/neural-interface/public/shared/account-usage.js +19 -0
- package/neural-interface/public/shared/account-view.js +335 -0
- package/neural-interface/public/shared/agent-runtime-options.js +50 -14
- package/neural-interface/public/shared/assistant/asst-accounts.js +182 -184
- package/neural-interface/public/shared/assistant/asst-api.js +32 -2
- package/neural-interface/public/shared/assistant/asst-automation.js +286 -0
- package/neural-interface/public/shared/assistant/asst-brain-picker.js +430 -81
- package/neural-interface/public/shared/assistant/asst-budget.js +259 -303
- package/neural-interface/public/shared/assistant/asst-composer.js +11 -1
- package/neural-interface/public/shared/assistant/asst-mascot.js +140 -61
- package/neural-interface/public/shared/assistant/asst-menu.js +27 -11
- package/neural-interface/public/shared/assistant/asst-panel.js +198 -42
- package/neural-interface/public/shared/assistant/asst-render.js +197 -23
- package/neural-interface/public/shared/assistant/asst-route-models.js +108 -0
- package/neural-interface/public/shared/assistant/asst-route.js +95 -343
- package/neural-interface/public/shared/assistant/asst-routes-editor.js +534 -0
- package/neural-interface/public/shared/assistant/asst-sanitize.js +8 -1
- package/neural-interface/public/shared/assistant/asst-sidepanel.js +31 -9
- package/neural-interface/public/shared/assistant/asst-slash.js +1 -1
- package/neural-interface/public/shared/assistant/asst-state.js +186 -2
- package/neural-interface/public/shared/assistant/asst-styles.js +247 -11
- package/neural-interface/public/shared/blob-store.js +111 -22
- package/neural-interface/public/shared/cdx/cdx-commands.js +4 -1
- package/neural-interface/public/shared/cdx/cdx-features.js +22 -14
- package/neural-interface/public/shared/cdx/cdx-icons.js +2 -0
- package/neural-interface/public/shared/cdx/cdx-panel.js +80 -118
- package/neural-interface/public/shared/cdx/cdx-render.js +25 -89
- package/neural-interface/public/shared/cdx/cdx-settings.js +231 -0
- package/neural-interface/public/shared/cdx/cdx-styles.js +164 -107
- package/neural-interface/public/shared/cdx/cdx-tabs.js +348 -668
- package/neural-interface/public/shared/cdx/cdx-ws.js +2 -0
- package/neural-interface/public/shared/claude-account-view.js +3 -0
- package/neural-interface/public/shared/cli-install-view.js +392 -0
- package/neural-interface/public/shared/cli-status.js +282 -22
- package/neural-interface/public/shared/constants.js +6 -1
- package/neural-interface/public/shared/cp/cp-events.js +2 -1
- package/neural-interface/public/shared/cp/cp-rehydrate.js +2 -1
- package/neural-interface/public/shared/cp/cp-styles.js +61 -0
- package/neural-interface/public/shared/desktop-bridge.js +39 -0
- package/neural-interface/public/shared/desktop-titlebar-page.js +59 -0
- package/neural-interface/public/shared/desktop-titlebar-view.js +122 -0
- package/neural-interface/public/shared/desktop-titlebar.js +153 -0
- package/neural-interface/public/shared/desktop-update-view.js +462 -0
- package/neural-interface/public/shared/editor/editor-ai-logic.js +409 -0
- package/neural-interface/public/shared/editor/editor-ai.js +619 -0
- package/neural-interface/public/shared/editor/editor-commands.js +212 -0
- package/neural-interface/public/shared/editor/editor-compare.js +103 -0
- package/neural-interface/public/shared/editor/editor-completion-list.js +172 -0
- package/neural-interface/public/shared/editor/editor-doc.js +257 -0
- package/neural-interface/public/shared/editor/editor-git-logic.js +131 -0
- package/neural-interface/public/shared/editor/editor-git.js +95 -0
- package/neural-interface/public/shared/editor/editor-languages.js +156 -0
- package/neural-interface/public/shared/editor/editor-lint.js +229 -0
- package/neural-interface/public/shared/editor/editor-loader.js +51 -0
- package/neural-interface/public/shared/editor/editor-markdown.js +90 -0
- package/neural-interface/public/shared/editor/editor-menu.js +233 -0
- package/neural-interface/public/shared/editor/editor-minimap.js +371 -0
- package/neural-interface/public/shared/editor/editor-palette-logic.js +192 -0
- package/neural-interface/public/shared/editor/editor-palette.js +125 -0
- package/neural-interface/public/shared/editor/editor-panel-logic.js +288 -0
- package/neural-interface/public/shared/editor/editor-panel.js +2099 -0
- package/neural-interface/public/shared/editor/editor-prefs.js +224 -0
- package/neural-interface/public/shared/editor/editor-safety.js +500 -0
- package/neural-interface/public/shared/editor/editor-search.js +352 -0
- package/neural-interface/public/shared/editor/editor-statusbar.js +144 -0
- package/neural-interface/public/shared/editor/editor-tabs-logic.js +331 -0
- package/neural-interface/public/shared/editor/editor-tabs.js +233 -0
- package/neural-interface/public/shared/editor/editor-theme.js +244 -0
- package/neural-interface/public/shared/editor/editor-view.js +332 -0
- package/neural-interface/public/shared/explorer/fx-api.js +216 -0
- package/neural-interface/public/shared/explorer/fx-links.js +204 -0
- package/neural-interface/public/shared/explorer/fx-logic.js +537 -0
- package/neural-interface/public/shared/explorer/fx-main.js +865 -0
- package/neural-interface/public/shared/explorer/fx-names.js +87 -0
- package/neural-interface/public/shared/explorer/fx-ops.js +370 -0
- package/neural-interface/public/shared/explorer/fx-popups.js +490 -0
- package/neural-interface/public/shared/explorer/fx-tree.js +790 -0
- package/neural-interface/public/shared/file-links.js +339 -0
- package/neural-interface/public/shared/git-bash-view.js +145 -0
- package/neural-interface/public/shared/greeting/greeting-card.js +178 -0
- package/neural-interface/public/shared/greeting/greeting-view.js +148 -0
- package/neural-interface/public/shared/html-shell.js +161 -165
- package/neural-interface/public/shared/i18n.js +19 -1
- package/neural-interface/public/shared/install-details-view.js +86 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +4 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-greeting.js +47 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +131 -17
- package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +7 -1
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +22 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +158 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +3 -2
- package/neural-interface/public/shared/pwa-install-page.js +32 -2
- package/neural-interface/public/shared/pwa-install.css +3 -3
- package/neural-interface/public/shared/pwa-install.js +100 -1
- package/neural-interface/public/shared/settings/settings-about-pane.js +271 -0
- package/neural-interface/public/shared/settings/settings-about.js +254 -0
- package/neural-interface/public/shared/settings/settings-code-editor-pane.js +412 -0
- package/neural-interface/public/shared/settings/settings-code-editor.js +328 -0
- package/neural-interface/public/shared/settings/settings-greeting.js +133 -0
- package/neural-interface/public/shared/settings/settings-ia.js +33 -4
- package/neural-interface/public/shared/settings/settings-user-context.js +154 -0
- package/neural-interface/public/shared/showcase-privacy.js +489 -0
- package/neural-interface/public/shared/start-bridge.js +238 -19
- package/neural-interface/public/shared/storage.js +30 -3
- package/neural-interface/public/shared/styles.css +1710 -770
- package/neural-interface/public/shared/synabun-mascot.js +68 -58
- package/neural-interface/public/shared/tunnel-view.js +167 -0
- package/neural-interface/public/shared/ui-claude-panel.js +369 -229
- package/neural-interface/public/shared/ui-cli-banner.js +355 -0
- package/neural-interface/public/shared/ui-detail.js +15 -0
- package/neural-interface/public/shared/ui-explorer.js +22 -0
- package/neural-interface/public/shared/ui-file-explorer.js +481 -2496
- package/neural-interface/public/shared/ui-file-links.js +103 -0
- package/neural-interface/public/shared/ui-git-bash.js +124 -0
- package/neural-interface/public/shared/ui-help.js +26 -0
- package/neural-interface/public/shared/ui-invite.js +126 -116
- package/neural-interface/public/shared/ui-judgments.js +10 -1
- package/neural-interface/public/shared/ui-keybinds.js +4 -0
- package/neural-interface/public/shared/ui-loading.js +187 -19
- package/neural-interface/public/shared/ui-menubar.js +25 -33
- package/neural-interface/public/shared/ui-native-loop-router-state.js +11 -0
- package/neural-interface/public/shared/ui-native-loop-router.js +15 -2
- package/neural-interface/public/shared/ui-navbar.js +48 -22
- package/neural-interface/public/shared/ui-provider-auth.js +104 -0
- package/neural-interface/public/shared/ui-provider-terminal-auth.js +223 -0
- package/neural-interface/public/shared/ui-sessions.js +9 -3
- package/neural-interface/public/shared/ui-settings.js +509 -490
- package/neural-interface/public/shared/ui-sidepanel-runtime.js +2 -1
- package/neural-interface/public/shared/ui-sidepanel-sessions.js +3 -1
- package/neural-interface/public/shared/ui-sync.js +22 -0
- package/neural-interface/public/shared/ui-terminal.js +40 -5
- package/neural-interface/public/shared/ui-tool-updates.js +5 -0
- package/neural-interface/public/shared/ui-tunnel.js +130 -0
- package/neural-interface/public/shared/ui-tutorial-steps.js +6 -2
- package/neural-interface/public/shared/ui-update.js +594 -5
- package/neural-interface/public/shared/ui-whatsapp.js +21 -6
- package/neural-interface/public/shared/ui-whiteboard.js +12 -0
- package/neural-interface/public/shared/ui-worker-end.js +245 -0
- package/neural-interface/public/shared/ui-workspaces.js +41 -27
- package/neural-interface/public/shared/whatsapp/wa-view.js +51 -8
- package/neural-interface/public/shared/worker-end.js +253 -0
- package/neural-interface/public/sw.js +2 -2
- package/neural-interface/public/variant/2d/main.js +10 -1
- package/neural-interface/public/variant/3d/main.js +10 -1
- package/neural-interface/public/vendor/codemirror/chunks/apl-CSDKT72Z.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/asciiarmor-JYYPU5BM.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/asn1-NRWCZDA6.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/asterisk-5OU6D4ZQ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/brainfuck-ID4N4SYC.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-4RZWGCS2.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-ACTJM3JR.js +11 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-S6BMAXLK.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-TO2RDOHQ.js +3 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-US2GMZZQ.js +13 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-WYYO5ZAJ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-XALZTDJC.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-YRNUTRDV.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/chunk-Z3QOKH62.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/clike-OWQBSOGL.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/clojure-KV75UQWC.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/cmake-GTEP5Y3C.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/cobol-WCZ7QEGJ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/coffeescript-TGLBOT6B.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/commonlisp-WVVI432V.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/crystal-S6R6HLKQ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/css-PDA2RINP.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/cypher-HL5QPL4C.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/d-HHJH2HAJ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/diff-MN3A35BY.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-25SQLBVS.js +3 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-27ZGGJJS.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-4E52OJIF.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-6FT73XDC.js +2 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-BE6YGRMW.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-CJSGKW2O.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-CRPH2WLI.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-CTG7JEQN.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-I3FEVELX.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-IM5BBSWZ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-KERUKTIF.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-LXTMWZAM.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-MABASSET.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-MJVBUZLL.js +3 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-MNB3WZVU.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-QYWXOE3U.js +7 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-TEBOFWLZ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-UNXFROM3.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-XL2SLQO6.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-XO42Y3AP.js +6 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-Y2WWDWJK.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-YFEZKWMU.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dist-ZY7SWQO6.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dockerfile-3Y4R4NCH.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dtd-5343GJ4P.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/dylan-FI2CXSW2.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/ebnf-GNQ77YWA.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/ecl-MRPUAE2L.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/eiffel-DZROES27.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/elm-4KICRFKQ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/erlang-3IHYC263.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/factor-C6D3E5UK.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/fcl-VYTWUJMI.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/forth-ZBO2EH5M.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/fortran-5NDCRWIK.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/gas-SKRMOXFP.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/gherkin-L45YXZLW.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/groovy-GLPTLN44.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/haskell-E7NF7P4Y.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/haxe-K2NVDOB6.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/http-Q6DRQIJB.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/idl-MZYNJVLN.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/javascript-6YRYK2HR.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/julia-HXEL2T5G.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/livescript-MV7CI2JZ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/lua-E36NHOOD.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/mathematica-3XOZZCMC.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/mbox-ODYGFKS7.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/mirc-WB43AWF5.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/mllike-ZT6ET7ZH.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/modelica-LLMZPFGA.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/mscgen-2OPNNYFH.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/mumps-6P3HWJH6.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/nginx-TCGKQTRW.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/nsis-ATIGIXTJ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/ntriples-5PLBI5OV.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/octave-QF2S3NL6.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/oz-JFIVFFH2.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/pascal-JG6SW76V.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/perl-4B3IWVVO.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/pig-ABEBH4MI.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/powershell-H32XE7TL.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/properties-NN644MMA.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/protobuf-YKWQK2J3.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/pug-RIYXEKFW.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/puppet-JZQ5WPEV.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/python-EBCGGHAC.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/q-5UMH2YQY.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/r-7XMGG453.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/rpm-IEV7TSLR.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/ruby-T4SPFPNM.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/sas-GEDX67ET.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/scheme-FTLOWKPC.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/shell-HUFRKFSJ.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/sieve-P5QUDVYO.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/smalltalk-2SORJNQI.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/solr-M22TGAR5.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/sparql-4M3KL752.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/spreadsheet-3K23LA4N.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/sql-VHRFMUBI.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/stex-QZDAQUY2.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/stylus-7ZDKAKBD.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/swift-WCLCLGMR.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/tcl-JLMU6WOK.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/textile-4CHDKZ4T.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/tiddlywiki-DKMCZZQ4.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/tiki-F4JIG36Q.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/toml-BHMHTIM2.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/troff-YQ2KV5NT.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/ttcn-ZHRCVFJY.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/ttcn-cfg-KJOVTY4X.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/turtle-535P5N6I.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/vb-76UMQHOT.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/vbscript-CGNDTK6Z.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/velocity-VSJDO5T5.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/verilog-4T6ETXIP.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/vhdl-T7FNAXUN.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/webidl-P6MJSJ6J.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/xquery-UOVILRGN.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/yacas-CV2APROL.js +1 -0
- package/neural-interface/public/vendor/codemirror/chunks/z80-3KFNVM4M.js +1 -0
- package/neural-interface/public/vendor/codemirror/codemirror-6.43.14-75f05e67.min.js +2 -0
- package/neural-interface/public/vendor/codemirror/manifest.json +60 -0
- package/neural-interface/scripts/build-vendor.mjs +78 -2
- package/neural-interface/scripts/vendor-codemirror-entry.js +121 -0
- package/neural-interface/server.js +2085 -1629
- package/neural-interface/templates/rulesets/README.md +1 -1
- package/package.json +5 -8
- package/setup.js +53 -15
- package/benchmarks/browser-live-results.json +0 -79
- package/benchmarks/browser-v2-results.json +0 -258
- package/neural-interface/lib/codex-capabilities.d.ts +0 -41
- package/neural-interface/public/category-logos/claude.svg +0 -1
- package/neural-interface/public/category-logos/gemini-color.svg +0 -1
- package/neural-interface/public/category-logos/openai.svg +0 -1
- package/neural-interface/public/category-logos/synabun.png +0 -0
- package/neural-interface/public/claude.svg +0 -1
- package/neural-interface/public/gallery.svg +0 -6
- package/neural-interface/public/leonardoai.svg +0 -1
- package/neural-interface/public/mcp.svg +0 -4
- package/neural-interface/public/opencode-logo-dark-square.svg +0 -1
- package/neural-interface/public/pin-svgrepo-com.svg +0 -25
- package/neural-interface/public/sessionicon.svg +0 -8
- package/neural-interface/public/toolbar-album.svg +0 -8
- package/neural-interface/public/toolbar-question.svg +0 -6
- package/neural-interface/public/toolbar-sessions.svg +0 -6
- package/neural-interface/scripts/codex-protocol-fixture.mjs +0 -83
- package/skills/synabun/synabunicon.png +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SynaBun — secrets out of the install and start logs a person is shown
|
|
3
|
+
*
|
|
4
|
+
* What the setup wizard's Details (GET /api/setup/install-details) and the
|
|
5
|
+
* desktop app's start log show is what programs wrote: npm, the user's own
|
|
6
|
+
* npm, the supervisor and the server. Such output can carry a secret: npm
|
|
7
|
+
* prints an invalid setting with its value, an error names a URL with its
|
|
8
|
+
* password, a log line repeats a header or an environment variable. Before
|
|
9
|
+
* any of it is shown or kept, this takes out
|
|
10
|
+
*
|
|
11
|
+
* - npm auth settings (`//registry…/:_authToken=…`, `_auth`, `_password`)
|
|
12
|
+
* - the password in a URL (`https://user:pass@host`)
|
|
13
|
+
* - Authorization, Proxy-Authorization, Cookie and API-key headers
|
|
14
|
+
* - the token shapes of the usual services (OpenAI / Anthropic `sk-…`,
|
|
15
|
+
* GitHub, GitLab, npm, Slack, AWS, Google, Stripe, JWTs, Bearer tokens,
|
|
16
|
+
* private key blocks)
|
|
17
|
+
* - the value of a variable or setting whose name says it is secret
|
|
18
|
+
* (…TOKEN, …SECRET, …PASSWORD, …API_KEY, …CREDENTIALS, …)
|
|
19
|
+
*
|
|
20
|
+
* Each becomes [redacted]; the text around it stays. Redact before you cut a
|
|
21
|
+
* text short: half a secret no longer looks like one.
|
|
22
|
+
*
|
|
23
|
+
* No imports: packaging/desktop/src/log-redact.mjs is this file, byte for byte
|
|
24
|
+
* (the desktop window cannot reach the application's files), and
|
|
25
|
+
* packaging/tests/log-redact.test.mjs fails when the two differ.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
export const REDACTED = '[redacted]';
|
|
29
|
+
|
|
30
|
+
// Names whose value is a secret: a word of the name (split on _ - .) is one of these, or it ends in one.
|
|
31
|
+
const SECRET_WORDS = 'TOKEN|TOKENS|SECRET|SECRETS|PASSWORD|PASSWD|PASSPHRASE|PASS|PWD|CREDENTIAL|CREDENTIALS|APIKEY|AUTH|AUTHTOKEN|COOKIE|SESSIONID|SESSION|PRIVATEKEY|ACCESSKEY|SECRETKEY|CLIENTSECRET|SIGNATURE';
|
|
32
|
+
const SECRET_NAME = new RegExp(`(?:^|[_.-])(?:${SECRET_WORDS})$|(?:^|[_.-])(?:${SECRET_WORDS})(?:[_.-])|(?:API|ACCESS|PRIVATE|SECRET|CLIENT|SIGNING|MASTER|ENCRYPTION|SERVICE)[_.-]?KEY(?:$|[_.-])`, 'i');
|
|
33
|
+
// The shell's working folder variables are folders, not passwords.
|
|
34
|
+
const NOT_SECRET = new Set(['PWD', 'OLDPWD', 'SSH_AUTH_SOCK', 'GIT_ASKPASS', 'SSH_ASKPASS', 'SUDO_ASKPASS']);
|
|
35
|
+
|
|
36
|
+
/** Whether a variable or setting called `name` holds a secret. */
|
|
37
|
+
export function isSecretName(name) {
|
|
38
|
+
const text = String(name || '').replace(/^[-_]+/, '');
|
|
39
|
+
if (!text || NOT_SECRET.has(text.toUpperCase())) return false;
|
|
40
|
+
// camelCase names (accessToken, apiKey) as words.
|
|
41
|
+
const words = text.replace(/([a-z0-9])([A-Z])/g, '$1_$2');
|
|
42
|
+
return SECRET_NAME.test(words) || /^(?:auth|password|token|secret)$/i.test(text);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const PATTERNS = [
|
|
46
|
+
// A private key block, whole (to the end of the text when its end is not in it yet: a log read in pieces).
|
|
47
|
+
[/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----[\s\S]*?(?:-----END [A-Z0-9 ]*PRIVATE KEY-----|$)/g, () => REDACTED],
|
|
48
|
+
// The rest of such a block in the next piece: its base64 lines (upper and lower case and digits, as key material
|
|
49
|
+
// has; a hex hash or a row of one letter is not) and its end line.
|
|
50
|
+
[/^(?=[A-Za-z0-9+/]*[A-Z])(?=[A-Za-z0-9+/]*[a-z])(?=[A-Za-z0-9+/]*[0-9])[A-Za-z0-9+/]{40,}={0,2}$/gm, () => REDACTED],
|
|
51
|
+
[/-----END [A-Z0-9 ]*PRIVATE KEY-----/g, () => REDACTED],
|
|
52
|
+
// npm's auth settings: `//registry.npmjs.org/:_authToken=…`, `_auth = …`, `:_password=…` (also as npm_config__auth…).
|
|
53
|
+
[/((?:\/\/[^\s=:]*(?::\d+)?[^\s=]*?:)?_(?:authToken|auth|password)\s*[=:]\s*)("[^"]*"|'[^']*'|[^\s"',;]+)/gi, (_, head, value) => {
|
|
54
|
+
const quote = /^["']/.test(value) ? value[0] : '';
|
|
55
|
+
return `${head}${quote}${REDACTED}${quote}`;
|
|
56
|
+
}],
|
|
57
|
+
// The password in a URL's user info.
|
|
58
|
+
[/\b([a-z][a-z0-9+.-]*:\/\/[^\s/?#@:'"<>]*):([^\s/?#@'"<>]+)@/gi, (_, head) => `${head}:${REDACTED}@`],
|
|
59
|
+
// Headers: the value to the end of the line.
|
|
60
|
+
[/(^|[\s"'{,(])((?:proxy-)?authorization|x-api-key|api-key|x-auth-token|x-access-token|cookie|set-cookie)(\s*["']?\s*[:=]\s*["']?)([^\r\n"']+)/gim, (_, lead, name, sep) => `${lead}${name}${sep}${REDACTED}`],
|
|
61
|
+
// Bearer / Basic / token schemes wherever they stand.
|
|
62
|
+
[/\b(Bearer|Basic|Token)\s+(?=[A-Za-z0-9._~+/=-]*[0-9+/=_-])[A-Za-z0-9._~+/=-]{12,}/g, (_, scheme) => `${scheme} ${REDACTED}`],
|
|
63
|
+
// Token shapes of the usual services.
|
|
64
|
+
[/\b(?:sk|rk|pk)[-_](?:live|test|proj|ant|or|api|svcacct|admin)?[-_]?[A-Za-z0-9_-]{16,}/g, () => REDACTED],
|
|
65
|
+
[/\b(?:gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})/g, () => REDACTED],
|
|
66
|
+
[/\bglpat-[A-Za-z0-9_-]{16,}/g, () => REDACTED],
|
|
67
|
+
[/\bnpm_[A-Za-z0-9]{30,}/g, () => REDACTED],
|
|
68
|
+
[/\bxox[abprs]-[A-Za-z0-9-]{10,}/g, () => REDACTED],
|
|
69
|
+
[/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g, () => REDACTED],
|
|
70
|
+
[/\bAIza[0-9A-Za-z_-]{30,}/g, () => REDACTED],
|
|
71
|
+
[/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g, () => REDACTED],
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
// NAME=value, NAME: value, "NAME": "value", --name=value: the value when the name is a secret's.
|
|
75
|
+
const ASSIGNMENT = /(^|[\s,;{(\[]|--)(["']?)([A-Za-z_][A-Za-z0-9_.-]*)\2(\s*[=:]\s*)(\[redacted\]|"[^"]*"|'[^']*'|[^\s"',;)}\]]+)/gm;
|
|
76
|
+
|
|
77
|
+
/** `text` with every secret this file knows replaced by [redacted]. */
|
|
78
|
+
export function redactSecrets(text) {
|
|
79
|
+
let out = String(text ?? '');
|
|
80
|
+
if (!out) return out;
|
|
81
|
+
for (const [pattern, replace] of PATTERNS) out = out.replace(pattern, replace);
|
|
82
|
+
out = out.replace(ASSIGNMENT, (whole, lead, quote, name, sep, value) => {
|
|
83
|
+
if (!isSecretName(name)) return whole;
|
|
84
|
+
const bare = value.replace(/^["']|["']$/g, '');
|
|
85
|
+
if (!bare || bare === REDACTED) return whole;
|
|
86
|
+
const q = /^["']/.test(value) ? value[0] : '';
|
|
87
|
+
return `${lead}${quote}${name}${quote}${sep}${q}${REDACTED}${q}`;
|
|
88
|
+
});
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** redactSecrets() over every string inside `value` (objects and arrays copied, at most `depth` levels). */
|
|
93
|
+
export function redactDeep(value, depth = 8) {
|
|
94
|
+
if (typeof value === 'string') return redactSecrets(value);
|
|
95
|
+
if (!value || typeof value !== 'object' || depth <= 0) return value;
|
|
96
|
+
if (Array.isArray(value)) return value.map(item => redactDeep(item, depth - 1));
|
|
97
|
+
const out = {};
|
|
98
|
+
for (const [key, item] of Object.entries(value)) {
|
|
99
|
+
out[key] = isSecretName(key) && typeof item === 'string' && item ? REDACTED : redactDeep(item, depth - 1);
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
package/lib/packaged-runtime.js
CHANGED
|
@@ -14,10 +14,16 @@
|
|
|
14
14
|
* says so and nothing changes for it.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
18
|
-
import {
|
|
17
|
+
import { accessSync, constants, existsSync, readFileSync } from 'node:fs';
|
|
18
|
+
import { homedir } from 'node:os';
|
|
19
|
+
import { basename, dirname, isAbsolute, join, posix, resolve, win32 } from 'node:path';
|
|
20
|
+
import {
|
|
21
|
+
bundledNpmrcPath, effectiveNpmPrefix, npmGlobalBinFor, packagedPathLast, pathEnvValue, resolveNpmPrefix, withPathEnv,
|
|
22
|
+
} from './child-path.js';
|
|
19
23
|
import { PACKAGE_ROOT } from './paths.js';
|
|
20
24
|
|
|
25
|
+
export { npmGlobalBinFor };
|
|
26
|
+
|
|
21
27
|
export const PACKAGE_MANIFEST = 'synabun-package.json';
|
|
22
28
|
|
|
23
29
|
/**
|
|
@@ -54,6 +60,8 @@ export function readPackagedRuntime({ packageRoot = PACKAGE_ROOT, env = process.
|
|
|
54
60
|
artifact: manifest.artifact ? String(manifest.artifact) : null,
|
|
55
61
|
entry,
|
|
56
62
|
runtimeBin: resolve(resources, String(manifest.runtime?.bin || 'runtime/bin')),
|
|
63
|
+
// The desktop app's window around this payload ('electron'), or null for a build without one.
|
|
64
|
+
shell: manifest.shell?.kind ? String(manifest.shell.kind) : null,
|
|
57
65
|
});
|
|
58
66
|
}
|
|
59
67
|
|
|
@@ -79,10 +87,25 @@ export function isTransientPath(path, env = process.env) {
|
|
|
79
87
|
return Boolean(mount) && value.startsWith(`${mount}/`);
|
|
80
88
|
}
|
|
81
89
|
|
|
90
|
+
const volumeWritable = (folder) => {
|
|
91
|
+
try { accessSync(folder, constants.W_OK); return true; } catch { return false; }
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* macOS: a copy started from the disk image it came in. The image is a
|
|
96
|
+
* read-only volume under /Volumes, gone once it is ejected; an external drive
|
|
97
|
+
* someone keeps applications on is writable, and counts as a place.
|
|
98
|
+
*/
|
|
99
|
+
export function isReadOnlyVolumePath(path, { platform = process.platform, writable = volumeWritable } = {}) {
|
|
100
|
+
if (platform !== 'darwin') return false;
|
|
101
|
+
const volume = /^\/Volumes\/[^/]+\//.exec(String(path || ''));
|
|
102
|
+
return !!volume && !writable(volume[0]);
|
|
103
|
+
}
|
|
104
|
+
|
|
82
105
|
/** The entry executable when it outlives this run, otherwise null. */
|
|
83
|
-
export function durableEntry(runtime = packagedRuntime(), env = process.env) {
|
|
106
|
+
export function durableEntry(runtime = packagedRuntime(), env = process.env, { platform = process.platform, writable } = {}) {
|
|
84
107
|
const entry = runtime?.entry || null;
|
|
85
|
-
return entry && !isTransientPath(entry, env) ? entry : null;
|
|
108
|
+
return entry && !isTransientPath(entry, env) && !isReadOnlyVolumePath(entry, { platform, writable }) ? entry : null;
|
|
86
109
|
}
|
|
87
110
|
|
|
88
111
|
/**
|
|
@@ -98,13 +121,117 @@ export function mcpStdioCommand(scriptPath, { packageRoot = PACKAGE_ROOT, env =
|
|
|
98
121
|
}
|
|
99
122
|
|
|
100
123
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
124
|
+
* The global prefix of the npm that comes with the packaged runtime, as npm
|
|
125
|
+
* reads it from that npm's own settings file (its builtin npmrc, which the
|
|
126
|
+
* build writes: packaging/lib/bundle.mjs). `npm i -g` through it lands in a
|
|
127
|
+
* per-user folder SynaBun owns, never inside the application: that folder is
|
|
128
|
+
* read-only, replaced by every update and, on macOS, signed. A prefix the
|
|
129
|
+
* user set (npm_config_prefix, `prefix=` in their config file or the global
|
|
130
|
+
* one) comes before this file for npm, so the user's own stays in charge. The folder is in the data home's
|
|
131
|
+
* runtime/ (outside every backup and data-home move), where the default data
|
|
132
|
+
* home is: npm expands `~/` with HOME and `${APPDATA}` from the environment.
|
|
133
|
+
*/
|
|
134
|
+
export const BUNDLED_NPM_PREFIX = Object.freeze({
|
|
135
|
+
win32: '${APPDATA}\\synabun\\runtime\\npm-global',
|
|
136
|
+
posix: '~/.synabun/runtime/npm-global',
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
/** The builtin npmrc of the npm a packaged build ships for `platform` (the whole file). */
|
|
140
|
+
export function bundledNpmrc(platform) {
|
|
141
|
+
return `prefix=${platform === 'win32' ? BUNDLED_NPM_PREFIX.win32 : BUNDLED_NPM_PREFIX.posix}\n`;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* The folder BUNDLED_NPM_PREFIX names on this machine, the way npm expands it
|
|
146
|
+
* (HOME first, then the account's home; APPDATA on Windows), or null when it
|
|
147
|
+
* names none (no APPDATA).
|
|
148
|
+
*/
|
|
149
|
+
export function defaultBundledNpmPrefix({ platform = process.platform, env = process.env, home = homedir() } = {}) {
|
|
150
|
+
if (platform === 'win32') return env.APPDATA ? win32.join(env.APPDATA, 'synabun', 'runtime', 'npm-global') : null;
|
|
151
|
+
const base = env.HOME || home;
|
|
152
|
+
return base ? posix.join(base, '.synabun', 'runtime', 'npm-global') : null;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Where `npm i -g` through the npm of a packaged build puts packages: npm's
|
|
157
|
+
* own settings over the builtin npmrc the build wrote (lib/child-path.js
|
|
158
|
+
* resolveNpmPrefix: npm_config_prefix, the user's config file, the global
|
|
159
|
+
* one, then that builtin file), else, when that file cannot be read, the
|
|
160
|
+
* folder BUNDLED_NPM_PREFIX names. { prefix, bin, source, from }, or null
|
|
161
|
+
* without a runtime (an npm or Git install). Cached for seconds when asked
|
|
162
|
+
* about this process (the options are for tests).
|
|
163
|
+
*/
|
|
164
|
+
export function packagedNpmPrefix(runtime = packagedRuntime(), { env = process.env, readFile, home, cwd } = {}) {
|
|
165
|
+
if (!runtime) return null;
|
|
166
|
+
const platform = runtime.platform || process.platform;
|
|
167
|
+
const builtin = bundledNpmrcPath(runtime.runtimeBin, platform);
|
|
168
|
+
const injected = readFile || home || cwd || env !== process.env || platform !== process.platform;
|
|
169
|
+
const found = injected
|
|
170
|
+
? resolveNpmPrefix({ env, platform, builtin, ...(readFile ? { readFile } : {}), ...(home ? { home } : {}), ...(cwd ? { cwd } : {}) })
|
|
171
|
+
: effectiveNpmPrefix({ builtin });
|
|
172
|
+
if (found.prefix) return { prefix: found.prefix, bin: found.bin, source: found.source, from: found.from };
|
|
173
|
+
const fallback = defaultBundledNpmPrefix({ platform, env, ...(home ? { home } : {}) });
|
|
174
|
+
return fallback ? { prefix: fallback, bin: npmGlobalBinFor(fallback, platform), source: 'builtin', from: builtin } : { prefix: null, bin: null, source: null, from: null };
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const insideFolder = (file, folder, platform) => {
|
|
178
|
+
if (!file || !folder) return false;
|
|
179
|
+
const impl = platform === 'win32' ? win32 : posix;
|
|
180
|
+
const id = (value) => (platform === 'win32' ? impl.resolve(value).toLowerCase() : impl.resolve(value));
|
|
181
|
+
const [a, b] = [id(file), id(folder)];
|
|
182
|
+
return a === b || a.startsWith(b.endsWith(impl.sep) ? b : b + impl.sep);
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* A packaged build's own folders on the PATH of what it starts
|
|
187
|
+
* (lib/child-path.js packagedPathLast): `last`, its runtime (and the folder of
|
|
188
|
+
* the Node this process runs on when that is the packaged one), and `extra`,
|
|
189
|
+
* npm's global bin (packagedNpmPrefix). Nothing without a runtime.
|
|
190
|
+
*/
|
|
191
|
+
export function packagedPathFolders(runtime = packagedRuntime(), { env = process.env, execPath = process.execPath, ...options } = {}) {
|
|
192
|
+
if (!runtime) return { last: [], extra: [] };
|
|
193
|
+
const platform = runtime.platform || process.platform;
|
|
194
|
+
const impl = platform === 'win32' ? win32 : posix;
|
|
195
|
+
const last = [runtime.runtimeBin];
|
|
196
|
+
if (insideFolder(execPath, runtime.resources, platform)) {
|
|
197
|
+
const own = impl.dirname(execPath);
|
|
198
|
+
if (!last.some(entry => (platform === 'win32' ? entry.toLowerCase() === own.toLowerCase() : entry === own))) last.push(own);
|
|
199
|
+
}
|
|
200
|
+
const bin = packagedNpmPrefix(runtime, { env, ...options })?.bin;
|
|
201
|
+
return { last, extra: bin ? [bin] : [] };
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* `env` for a process a packaged build starts: PATH as the user's own, then
|
|
206
|
+
* npm's global bin, then the packaged runtime last (lib/child-path.js). The
|
|
207
|
+
* user's Node, npm and npx stay first; SynaBun's are the fallback on a machine
|
|
208
|
+
* without any. SynaBun's own Node is never found through this PATH: the entry,
|
|
209
|
+
* the bootstrap and the supervisor start it by its absolute path
|
|
210
|
+
* (packaging/launcher/launcher.c, packaging/runtime/bootstrap.mjs, setup.js).
|
|
211
|
+
* The same object when the order is already right; `env` itself without a runtime.
|
|
103
212
|
*/
|
|
104
|
-
export function
|
|
213
|
+
export function packagedChildEnv(env = process.env, runtime = packagedRuntime(), options = {}) {
|
|
105
214
|
if (!runtime) return env;
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
215
|
+
const platform = runtime.platform || process.platform;
|
|
216
|
+
const { last, extra } = packagedPathFolders(runtime, { env, ...options });
|
|
217
|
+
const current = pathEnvValue(env);
|
|
218
|
+
const value = packagedPathLast(current, { platform, last, extra });
|
|
219
|
+
if (value === current && Object.keys(env).filter(name => name.toUpperCase() === 'PATH').length === 1) return env;
|
|
220
|
+
return withPathEnv(env, value, platform);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* packagedChildEnv() on `target` itself (process.env by default), for an entry
|
|
225
|
+
* point whose every child inherits its environment: the headless MCP server,
|
|
226
|
+
* a hook handler. Whether anything changed.
|
|
227
|
+
*/
|
|
228
|
+
export function applyPackagedChildPath(target = process.env, runtime = packagedRuntime(), options = {}) {
|
|
229
|
+
if (!runtime) return false;
|
|
230
|
+
const ordered = packagedChildEnv(target, runtime, { env: target, ...options });
|
|
231
|
+
if (ordered === target) return false;
|
|
232
|
+
const keys = Object.keys(target).filter(name => name.toUpperCase() === 'PATH');
|
|
233
|
+
const key = keys[0] || (runtime.platform === 'win32' ? 'Path' : 'PATH');
|
|
234
|
+
for (const alias of keys) if (alias !== key) delete target[alias];
|
|
235
|
+
target[key] = pathEnvValue(ordered);
|
|
236
|
+
return true;
|
|
110
237
|
}
|
package/lib/start-launcher.js
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
* running, the Terminal asked to open, the supervisor's own
|
|
19
19
|
* phases, the server answering) on a loopback beacon the
|
|
20
20
|
* offline page reads, because that page has no server to ask.
|
|
21
|
+
* A restart is reported the same way, by the supervisor that
|
|
22
|
+
* brings the server back (`openRestartReport`).
|
|
21
23
|
*
|
|
22
24
|
* Nothing here stays running: the OS starts the launcher per click and it
|
|
23
25
|
* exits once the server answers.
|
|
@@ -823,6 +825,9 @@ export function publicSupervisorState(record) {
|
|
|
823
825
|
* rebinding a name), gives the answer only to a page of this server's own
|
|
824
826
|
* loopback origin, and changes nothing. A port it cannot have is not an
|
|
825
827
|
* error: the launch goes on unreported and the page says less.
|
|
828
|
+
*
|
|
829
|
+
* `reason: 'restart'` is a supervisor bringing its server back, not a launcher
|
|
830
|
+
* starting one: the answer then says so, and its first step is 'restart'.
|
|
826
831
|
*/
|
|
827
832
|
export function createStartBeacon({
|
|
828
833
|
port,
|
|
@@ -830,12 +835,14 @@ export function createStartBeacon({
|
|
|
830
835
|
now = () => Date.now(),
|
|
831
836
|
launchId = randomBytes(8).toString('hex'),
|
|
832
837
|
logPath = null,
|
|
838
|
+
reason = 'start',
|
|
833
839
|
createServerImpl = createServer,
|
|
834
840
|
} = {}) {
|
|
841
|
+
const restart = reason === 'restart';
|
|
835
842
|
const beaconPort = startBeaconPort(port);
|
|
836
843
|
const hosts = new Set([`127.0.0.1:${beaconPort}`, `localhost:${beaconPort}`]);
|
|
837
844
|
const origins = new Set([`http://localhost:${port}`, `http://127.0.0.1:${port}`, `http://[::1]:${port}`]);
|
|
838
|
-
const status = { state: 'starting', steps: [{ id: 'received', at: startedAt }], supervisor: null, error: null };
|
|
845
|
+
const status = { state: 'starting', steps: [{ id: restart ? 'restart' : 'received', at: startedAt }], supervisor: null, error: null };
|
|
839
846
|
let server = null;
|
|
840
847
|
let listening = false;
|
|
841
848
|
let closed = false;
|
|
@@ -858,6 +865,7 @@ export function createStartBeacon({
|
|
|
858
865
|
supervisor: status.supervisor,
|
|
859
866
|
error: status.error,
|
|
860
867
|
log: logPath,
|
|
868
|
+
...(restart ? { reason: 'restart' } : {}),
|
|
861
869
|
});
|
|
862
870
|
|
|
863
871
|
function handle(req, res) {
|
|
@@ -991,6 +999,85 @@ export function createStartBeacon({
|
|
|
991
999
|
};
|
|
992
1000
|
}
|
|
993
1001
|
|
|
1002
|
+
// ═══════════════════════════════════════════
|
|
1003
|
+
// Progress: a restart
|
|
1004
|
+
// ═══════════════════════════════════════════
|
|
1005
|
+
|
|
1006
|
+
/** Set by a server that had no supervisor for the one it starts to restart it: that start is a restart's. */
|
|
1007
|
+
export const RESTART_REPORT_ENV = 'SYNABUN_RESTART_REPORT';
|
|
1008
|
+
/** How long a restart's report stays once the server said it is listening: a page polls every 300 ms. */
|
|
1009
|
+
export const RESTART_REPORT_SETTLE_MS = 3000;
|
|
1010
|
+
|
|
1011
|
+
/**
|
|
1012
|
+
* A restart reports itself the way a launch does, on the start beacon, for as
|
|
1013
|
+
* long as the server is away: the page that asked has no server to ask. Opened
|
|
1014
|
+
* by the supervisor (setup.js) when the server it runs exits to be restarted
|
|
1015
|
+
* (`exited: true`: it saw that process end), and by a supervisor that a server
|
|
1016
|
+
* without one started in its place.
|
|
1017
|
+
*
|
|
1018
|
+
* phase() — the supervisor's record changed: pass on what it says now
|
|
1019
|
+
* failed(error) — it ended without a server; resolves once a page has read
|
|
1020
|
+
* why (`lingerMs` at the most), so the caller can exit then
|
|
1021
|
+
* close() — over
|
|
1022
|
+
*
|
|
1023
|
+
* Only what the supervisor writes after the report began goes out: a record
|
|
1024
|
+
* from before it (the server that just stopped was 'listening') is not news.
|
|
1025
|
+
* The report ends by itself a moment after the server says it is listening.
|
|
1026
|
+
* Never throws; a beacon it cannot have leaves the restart unreported.
|
|
1027
|
+
*/
|
|
1028
|
+
export function openRestartReport({
|
|
1029
|
+
port,
|
|
1030
|
+
dataHome,
|
|
1031
|
+
exited = false,
|
|
1032
|
+
now = () => Date.now(),
|
|
1033
|
+
settleMs = RESTART_REPORT_SETTLE_MS,
|
|
1034
|
+
lingerMs = BEACON_LINGER_MS,
|
|
1035
|
+
beacon = createStartBeacon,
|
|
1036
|
+
} = {}) {
|
|
1037
|
+
const startedAt = now();
|
|
1038
|
+
let report = null;
|
|
1039
|
+
try { report = beacon({ port, startedAt, now, reason: 'restart' }); } catch {}
|
|
1040
|
+
let over = !report;
|
|
1041
|
+
let settle = null;
|
|
1042
|
+
const close = () => {
|
|
1043
|
+
if (over) return;
|
|
1044
|
+
over = true;
|
|
1045
|
+
if (settle) clearTimeout(settle);
|
|
1046
|
+
settle = null;
|
|
1047
|
+
try { report.close(); } catch {}
|
|
1048
|
+
};
|
|
1049
|
+
// An earlier report (a restart right before this one) may still be letting go.
|
|
1050
|
+
let listening = Promise.resolve(false);
|
|
1051
|
+
if (report) {
|
|
1052
|
+
try { listening = Promise.resolve(report.listen({ retryMs: 5000 })).catch(() => false); } catch {}
|
|
1053
|
+
if (exited) report.step('exited');
|
|
1054
|
+
}
|
|
1055
|
+
return {
|
|
1056
|
+
get open() { return !over; },
|
|
1057
|
+
phase() {
|
|
1058
|
+
if (over) return;
|
|
1059
|
+
let record = null;
|
|
1060
|
+
try { record = readJson(launcherStatePaths(dataHome).supervisor); } catch {}
|
|
1061
|
+
if (!record || !(Number(record.phaseAt) >= startedAt)) return;
|
|
1062
|
+
report.supervisor(record);
|
|
1063
|
+
if (record.phase === 'listening' && !settle) {
|
|
1064
|
+
settle = setTimeout(close, settleMs);
|
|
1065
|
+
settle.unref?.();
|
|
1066
|
+
}
|
|
1067
|
+
},
|
|
1068
|
+
async failed(error) {
|
|
1069
|
+
if (over) return;
|
|
1070
|
+
if (settle) clearTimeout(settle);
|
|
1071
|
+
settle = null;
|
|
1072
|
+
report.finish('failed', error);
|
|
1073
|
+
await listening; // a failure right after it opened: let it be reachable first
|
|
1074
|
+
try { await report.linger(lingerMs); } catch {}
|
|
1075
|
+
close();
|
|
1076
|
+
},
|
|
1077
|
+
close,
|
|
1078
|
+
};
|
|
1079
|
+
}
|
|
1080
|
+
|
|
994
1081
|
const LOGIN_ENV_SHELLS = new Set(['zsh', 'bash', 'sh', 'dash', 'ksh', 'mksh', 'yash', 'fish']);
|
|
995
1082
|
/** What a launch decides for itself. A profile may export its own; the launch's values stand. */
|
|
996
1083
|
const LAUNCH_SETTINGS = ['SYNABUN_DATA_HOME', 'NEURAL_PORT', 'SYNABUN_OPEN_BROWSER'];
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Mount on any Express app or run standalone.
|
|
16
16
|
*/
|
|
17
|
-
import { type Router } from 'express';
|
|
17
|
+
import { type Request, type Router } from 'express';
|
|
18
|
+
/** The X-Synabun-Brain-Token of one request (whatsapp_send_file); none for a tunnel caller (a remote MCP-key holder). */
|
|
19
|
+
export declare function requestBrainCredential(req: Pick<Request, 'get'>): string | null;
|
|
18
20
|
/**
|
|
19
21
|
* Initialize DB, categories, and warm up the embedding model.
|
|
20
22
|
* Safe to call multiple times — only runs once.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAGH,OAAgB,
|
|
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;AAuH7D,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;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CA0GxC"}
|
package/mcp-server/dist/http.js
CHANGED
|
@@ -22,7 +22,7 @@ import { ensureDatabase } from './services/sqlite.js';
|
|
|
22
22
|
import { initCategoryCache } from './services/categories.js';
|
|
23
23
|
import { warmupEmbeddings } from './services/local-embeddings.js';
|
|
24
24
|
import { createMcpServer, refreshServerSchemas, onSchemaRefresh, setServerRole, setServerCapabilities } from './index.js';
|
|
25
|
-
import { markHttpMode, obtainIdentity, sanitizeDesktopGrant, sanitizePin, sanitizeRole, runWithIdentity, releaseIdentity, startIdentitySweeper, } from './services/identity.js';
|
|
25
|
+
import { markHttpMode, obtainIdentity, sanitizeBrainCredential, sanitizeDesktopGrant, sanitizePin, sanitizeRole, runWithBrainCredential, runWithIdentity, releaseIdentity, startIdentitySweeper, } from './services/identity.js';
|
|
26
26
|
let initialized = false;
|
|
27
27
|
let initPromise = null;
|
|
28
28
|
// Warm-server pool: registering 100+ tools (with Zod schema construction)
|
|
@@ -116,6 +116,17 @@ function deriveIdentity(req, sid) {
|
|
|
116
116
|
identity.memoryContext = { ...identity.memoryContext, ...Object.fromEntries(Object.entries(memoryContext).filter(([, v]) => v !== undefined)) };
|
|
117
117
|
return identity;
|
|
118
118
|
}
|
|
119
|
+
/** The X-Synabun-Brain-Token of one request (whatsapp_send_file); none for a tunnel caller (a remote MCP-key holder). */
|
|
120
|
+
export function requestBrainCredential(req) {
|
|
121
|
+
return req.get('cf-connecting-ip') ? null : sanitizeBrainCredential(req.get('x-synabun-brain-token'));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Handle one request inside its caller identity and its own brain-credential context: the
|
|
125
|
+
* X-Synabun-Brain-Token of THIS request, never one another request left on a shared identity.
|
|
126
|
+
*/
|
|
127
|
+
function runRequest(req, sid, fn) {
|
|
128
|
+
return runWithBrainCredential(requestBrainCredential(req), () => runWithIdentity(deriveIdentity(req, sid), fn));
|
|
129
|
+
}
|
|
119
130
|
function jsonRpcError(res, status, code, message) {
|
|
120
131
|
res.status(status).json({ jsonrpc: '2.0', error: { code, message }, id: null });
|
|
121
132
|
}
|
|
@@ -165,7 +176,7 @@ export function createMcpRoutes() {
|
|
|
165
176
|
return jsonRpcError(res, 404, -32001, 'Session not found');
|
|
166
177
|
}
|
|
167
178
|
entry.lastSeen = Date.now();
|
|
168
|
-
await
|
|
179
|
+
await runRequest(req, sid, () => entry.transport.handleRequest(req, res, req.body));
|
|
169
180
|
return;
|
|
170
181
|
}
|
|
171
182
|
// New client — must be an initialize request.
|
|
@@ -216,7 +227,7 @@ export function createMcpRoutes() {
|
|
|
216
227
|
catch { /* already closed */ }
|
|
217
228
|
};
|
|
218
229
|
await server.connect(transport);
|
|
219
|
-
await
|
|
230
|
+
await runRequest(req, undefined, () => transport.handleRequest(req, res, req.body));
|
|
220
231
|
}
|
|
221
232
|
catch (error) {
|
|
222
233
|
console.error('MCP HTTP error:', error);
|
|
@@ -235,7 +246,7 @@ export function createMcpRoutes() {
|
|
|
235
246
|
}
|
|
236
247
|
entry.lastSeen = Date.now();
|
|
237
248
|
try {
|
|
238
|
-
await
|
|
249
|
+
await runRequest(req, sid, () => entry.transport.handleRequest(req, res));
|
|
239
250
|
}
|
|
240
251
|
catch (error) {
|
|
241
252
|
console.error('MCP HTTP error:', error);
|
|
@@ -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":"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"}
|
|
@@ -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;AAkCpE,OAAO,EACL,eAAe,EAAE,YAAY,EAAE,cAAc,EAC7C,oBAAoB,EAAsB,cAAc,EAEzD,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC;AAgC/F,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,cAAyD;;;;;;EAmElH;AA+BD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,QAK9C;AAOD,wBAAgB,gBAAgB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAE9E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,uDAE/C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,cAAmC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAkDrL;AAWD,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAAO,aAUvI;AAOD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,IAAI,CAEhF;AAED;;;;;;;GAOG;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;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAO5D;AA2BD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAEpD;AAID,wBAAgB,sBAAsB,SASrC"}
|
package/mcp-server/dist/index.js
CHANGED
|
@@ -27,6 +27,7 @@ import { registerYoutubeTools } from './tools/youtube.js';
|
|
|
27
27
|
import { registerStyleGuideTools } from './tools/style-guide.js';
|
|
28
28
|
import { registerMoreLoginTools } from './tools/morelogin.js';
|
|
29
29
|
import { registerAgentTools } from './tools/agents.js';
|
|
30
|
+
import { registerWhatsAppSendFileTool } from './tools/whatsapp-send-file.js';
|
|
30
31
|
import { registerComputerTools } from './tools/computer.js';
|
|
31
32
|
import { profileSchema, profileDescription, handleProfile } from './tools/profile.js';
|
|
32
33
|
import { choiceSchema, choiceDescription, handleChoice } from './tools/choice.js';
|
|
@@ -34,6 +35,7 @@ import { PROFILE_PRESETS, VALID_GROUPS, ProfileRuntime, resolveProfileGroups, re
|
|
|
34
35
|
import { invalidateCategoryCache, setOnExternalChange, startWatchingCategories, stopWatchingCategories, initCategoryCache } from './services/categories.js';
|
|
35
36
|
import { healCodexConfig } from './services/codex-config-heal.js';
|
|
36
37
|
import { getEnvPath, config } from './config.js';
|
|
38
|
+
import { SERVER_VERSION } from './version.js';
|
|
37
39
|
import { readFileSync, writeFileSync, watch, existsSync, mkdirSync } from 'fs';
|
|
38
40
|
import { join } from 'path';
|
|
39
41
|
// Re-export profile API for external consumers (http.ts, etc.)
|
|
@@ -102,8 +104,9 @@ export function registerTools(server, runtime = new ProfileRuntime(readInitialPr
|
|
|
102
104
|
runtime.setToolGroup('styleguide', registerStyleGuideTools(server));
|
|
103
105
|
runtime.setToolGroup('morelogin', registerMoreLoginTools(server));
|
|
104
106
|
// Role-gated: advertised only while the runtime's role is 'assistant'
|
|
105
|
-
// (profiles.ts ROLE_GATED_GROUPS), never by profile selection.
|
|
106
|
-
|
|
107
|
+
// (profiles.ts ROLE_GATED_GROUPS), never by profile selection. whatsapp_send_file
|
|
108
|
+
// rides here: only an assistant brain sees it (and only a WhatsApp one may use it).
|
|
109
|
+
runtime.setToolGroup('agents', [...registerAgentTools(server), registerWhatsAppSendFileTool(server)]);
|
|
107
110
|
// Capability-gated: advertised only to callers holding a desktop grant
|
|
108
111
|
// (profiles.ts CAPABILITY_GATED_GROUPS), macOS only.
|
|
109
112
|
runtime.setToolGroup('computer', registerComputerTools(server));
|
|
@@ -201,7 +204,7 @@ export function getToolUsageSummary(runtime = mainProfileRuntime) {
|
|
|
201
204
|
image: ['image_staged'],
|
|
202
205
|
gsc: ['gsc_'],
|
|
203
206
|
styleguide: ['style_guide'],
|
|
204
|
-
agents: ['agent_'],
|
|
207
|
+
agents: ['agent_', 'whatsapp_send_file'],
|
|
205
208
|
computer: ['computer'],
|
|
206
209
|
};
|
|
207
210
|
const usedGroups = new Set();
|
|
@@ -237,7 +240,7 @@ loadUsageCounts();
|
|
|
237
240
|
export function createMcpServer(forceProfile, options = {}) {
|
|
238
241
|
const initialProfile = forceProfile ?? readInitialProfile();
|
|
239
242
|
const runtime = new ProfileRuntime(initialProfile, options);
|
|
240
|
-
const server = new McpServer({ name: 'claude-memory', version:
|
|
243
|
+
const server = new McpServer({ name: 'claude-memory', version: SERVER_VERSION }, { instructions: buildServerInstructions(runtime) });
|
|
241
244
|
const refs = registerTools(server, runtime);
|
|
242
245
|
serverToolRefs.set(server, refs);
|
|
243
246
|
return server;
|
|
@@ -299,7 +302,7 @@ export function refreshServerSchemas(target) {
|
|
|
299
302
|
// ── Main stdio server instance ──
|
|
300
303
|
const _initialProfile = readInitialProfile();
|
|
301
304
|
mainProfileRuntime = new ProfileRuntime(_initialProfile);
|
|
302
|
-
const server = new McpServer({ name: 'claude-memory', version:
|
|
305
|
+
const server = new McpServer({ name: 'claude-memory', version: SERVER_VERSION }, { instructions: buildServerInstructions(mainProfileRuntime) });
|
|
303
306
|
const { rememberTool, recallTool, reflectTool, memoriesTool } = registerTools(server, mainProfileRuntime);
|
|
304
307
|
// ── Wire tool usage tracking into low-level server ──
|
|
305
308
|
// Intercept tool call notifications to count usage per tool name.
|
|
@@ -338,7 +341,7 @@ async function main() {
|
|
|
338
341
|
// anything else. If the file doesn't exist or is already clean, this is a
|
|
339
342
|
// fast no-op. Atomic write — original is preserved on any failure.
|
|
340
343
|
if (!isClaudeCode()) {
|
|
341
|
-
const codexConfigPath = join(process.env.USERPROFILE || process.env.HOME || '', '.codex', 'config.toml');
|
|
344
|
+
const codexConfigPath = join(process.env.CODEX_HOME || join(process.env.USERPROFILE || process.env.HOME || '', '.codex'), 'config.toml');
|
|
342
345
|
try {
|
|
343
346
|
const result = healCodexConfig(codexConfigPath);
|
|
344
347
|
if (result.healed) {
|