synabun 2.0.7 → 2.0.10
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 +67 -0
- package/README.md +1 -1
- package/THIRD-PARTY-LICENSES.md +46 -4
- package/hooks/claude-code/post-plan.mjs +6 -30
- package/hooks/claude-code/session-start.mjs +1 -4
- package/hooks/claude-code/shared.mjs +106 -72
- package/launcher.mjs +9 -3
- package/lib/package-processes.js +670 -0
- package/lib/runtime-dependencies.js +225 -0
- package/lib/start-launcher.js +6 -1
- package/mcp-server/dist/services/browser-bench.d.ts +1 -1
- package/mcp-server/dist/services/browser-bench.d.ts.map +1 -1
- package/mcp-server/dist/services/browser-bench.js +1 -1
- package/mcp-server/dist/services/browser-bench.js.map +1 -1
- package/mcp-server/dist/services/categories.d.ts +35 -2
- package/mcp-server/dist/services/categories.d.ts.map +1 -1
- package/mcp-server/dist/services/categories.js +77 -33
- package/mcp-server/dist/services/categories.js.map +1 -1
- package/mcp-server/dist/services/desktop-bench.d.ts +7 -7
- package/mcp-server/dist/services/desktop-bench.d.ts.map +1 -1
- package/mcp-server/dist/services/desktop-bench.js +1 -1
- package/mcp-server/dist/services/desktop-bench.js.map +1 -1
- package/mcp-server/dist/tools/agents.d.ts +1 -1
- package/mcp-server/dist/tools/agents.d.ts.map +1 -1
- package/mcp-server/dist/tools/agents.js +1 -1
- package/mcp-server/dist/tools/agents.js.map +1 -1
- package/mcp-server/dist/tools/bluesky.js +1 -1
- package/mcp-server/dist/tools/bluesky.js.map +1 -1
- package/mcp-server/dist/tools/browser-advanced.d.ts +1 -1
- package/mcp-server/dist/tools/browser-advanced.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-advanced.js +1 -1
- package/mcp-server/dist/tools/browser-advanced.js.map +1 -1
- package/mcp-server/dist/tools/browser-batch.d.ts +1 -1
- package/mcp-server/dist/tools/browser-batch.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-batch.js +1 -1
- package/mcp-server/dist/tools/browser-batch.js.map +1 -1
- package/mcp-server/dist/tools/browser-cheatsheet.d.ts +1 -1
- package/mcp-server/dist/tools/browser-cheatsheet.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-cheatsheet.js +1 -1
- package/mcp-server/dist/tools/browser-cheatsheet.js.map +1 -1
- package/mcp-server/dist/tools/browser-interact.d.ts +1 -1
- package/mcp-server/dist/tools/browser-interact.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-interact.js +1 -1
- package/mcp-server/dist/tools/browser-interact.js.map +1 -1
- package/mcp-server/dist/tools/browser-navigate.d.ts +1 -1
- package/mcp-server/dist/tools/browser-navigate.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-navigate.js +1 -1
- package/mcp-server/dist/tools/browser-navigate.js.map +1 -1
- package/mcp-server/dist/tools/browser-observe.d.ts +1 -1
- package/mcp-server/dist/tools/browser-observe.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-observe.js +1 -1
- package/mcp-server/dist/tools/browser-observe.js.map +1 -1
- package/mcp-server/dist/tools/card-tools.d.ts +1 -1
- package/mcp-server/dist/tools/card-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/card-tools.js +1 -1
- package/mcp-server/dist/tools/card-tools.js.map +1 -1
- package/mcp-server/dist/tools/category.d.ts +1 -1
- package/mcp-server/dist/tools/category.d.ts.map +1 -1
- package/mcp-server/dist/tools/category.js +5 -1
- package/mcp-server/dist/tools/category.js.map +1 -1
- package/mcp-server/dist/tools/choice.d.ts +1 -1
- package/mcp-server/dist/tools/choice.d.ts.map +1 -1
- package/mcp-server/dist/tools/choice.js +1 -1
- package/mcp-server/dist/tools/choice.js.map +1 -1
- package/mcp-server/dist/tools/computer.d.ts +1 -1
- package/mcp-server/dist/tools/computer.d.ts.map +1 -1
- package/mcp-server/dist/tools/computer.js +1 -1
- package/mcp-server/dist/tools/computer.js.map +1 -1
- package/mcp-server/dist/tools/discord-channel.d.ts +1 -1
- package/mcp-server/dist/tools/discord-channel.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-channel.js +1 -1
- package/mcp-server/dist/tools/discord-channel.js.map +1 -1
- package/mcp-server/dist/tools/discord-guild.d.ts +1 -1
- package/mcp-server/dist/tools/discord-guild.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-guild.js +1 -1
- package/mcp-server/dist/tools/discord-guild.js.map +1 -1
- package/mcp-server/dist/tools/discord-member.d.ts +1 -1
- package/mcp-server/dist/tools/discord-member.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-member.js +1 -1
- package/mcp-server/dist/tools/discord-member.js.map +1 -1
- package/mcp-server/dist/tools/discord-message.d.ts +1 -1
- package/mcp-server/dist/tools/discord-message.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-message.js +1 -1
- package/mcp-server/dist/tools/discord-message.js.map +1 -1
- package/mcp-server/dist/tools/discord-onboarding.d.ts +1 -1
- package/mcp-server/dist/tools/discord-onboarding.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-onboarding.js +1 -1
- package/mcp-server/dist/tools/discord-onboarding.js.map +1 -1
- package/mcp-server/dist/tools/discord-role.d.ts +1 -1
- package/mcp-server/dist/tools/discord-role.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-role.js +1 -1
- package/mcp-server/dist/tools/discord-role.js.map +1 -1
- package/mcp-server/dist/tools/discord-thread.d.ts +1 -1
- package/mcp-server/dist/tools/discord-thread.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-thread.js +1 -1
- package/mcp-server/dist/tools/discord-thread.js.map +1 -1
- package/mcp-server/dist/tools/discord-webhook.d.ts +1 -1
- package/mcp-server/dist/tools/discord-webhook.d.ts.map +1 -1
- package/mcp-server/dist/tools/discord-webhook.js +1 -1
- package/mcp-server/dist/tools/discord-webhook.js.map +1 -1
- package/mcp-server/dist/tools/fb-groups.d.ts +1 -1
- package/mcp-server/dist/tools/fb-groups.d.ts.map +1 -1
- package/mcp-server/dist/tools/fb-groups.js +1 -1
- package/mcp-server/dist/tools/fb-groups.js.map +1 -1
- package/mcp-server/dist/tools/forget.d.ts +1 -1
- package/mcp-server/dist/tools/forget.d.ts.map +1 -1
- package/mcp-server/dist/tools/forget.js +1 -1
- package/mcp-server/dist/tools/forget.js.map +1 -1
- package/mcp-server/dist/tools/git-tools.d.ts +1 -1
- package/mcp-server/dist/tools/git-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/git-tools.js +1 -1
- package/mcp-server/dist/tools/git-tools.js.map +1 -1
- package/mcp-server/dist/tools/gsc/experience.d.ts +1 -1
- package/mcp-server/dist/tools/gsc/experience.d.ts.map +1 -1
- package/mcp-server/dist/tools/gsc/experience.js +1 -1
- package/mcp-server/dist/tools/gsc/experience.js.map +1 -1
- package/mcp-server/dist/tools/gsc/indexing.d.ts +1 -1
- package/mcp-server/dist/tools/gsc/indexing.d.ts.map +1 -1
- package/mcp-server/dist/tools/gsc/indexing.js +1 -1
- package/mcp-server/dist/tools/gsc/indexing.js.map +1 -1
- package/mcp-server/dist/tools/gsc/inspect.d.ts +1 -1
- package/mcp-server/dist/tools/gsc/inspect.d.ts.map +1 -1
- package/mcp-server/dist/tools/gsc/inspect.js +1 -1
- package/mcp-server/dist/tools/gsc/inspect.js.map +1 -1
- package/mcp-server/dist/tools/gsc/navigate.d.ts +1 -1
- package/mcp-server/dist/tools/gsc/navigate.d.ts.map +1 -1
- package/mcp-server/dist/tools/gsc/navigate.js +1 -1
- package/mcp-server/dist/tools/gsc/navigate.js.map +1 -1
- package/mcp-server/dist/tools/gsc/performance.d.ts +1 -1
- package/mcp-server/dist/tools/gsc/performance.d.ts.map +1 -1
- package/mcp-server/dist/tools/gsc/performance.js +1 -1
- package/mcp-server/dist/tools/gsc/performance.js.map +1 -1
- package/mcp-server/dist/tools/gsc/settings.d.ts +1 -1
- package/mcp-server/dist/tools/gsc/settings.d.ts.map +1 -1
- package/mcp-server/dist/tools/gsc/settings.js +1 -1
- package/mcp-server/dist/tools/gsc/settings.js.map +1 -1
- package/mcp-server/dist/tools/image-tools.d.ts +1 -1
- package/mcp-server/dist/tools/image-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/image-tools.js +1 -1
- package/mcp-server/dist/tools/image-tools.js.map +1 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +1 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.js +1 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.js.map +1 -1
- package/mcp-server/dist/tools/loop.d.ts +1 -1
- package/mcp-server/dist/tools/loop.d.ts.map +1 -1
- package/mcp-server/dist/tools/loop.js +1 -1
- package/mcp-server/dist/tools/loop.js.map +1 -1
- package/mcp-server/dist/tools/memories.d.ts +1 -1
- package/mcp-server/dist/tools/memories.d.ts.map +1 -1
- package/mcp-server/dist/tools/memories.js +1 -1
- package/mcp-server/dist/tools/memories.js.map +1 -1
- package/mcp-server/dist/tools/morelogin.d.ts +1 -1
- package/mcp-server/dist/tools/morelogin.d.ts.map +1 -1
- package/mcp-server/dist/tools/morelogin.js +1 -1
- package/mcp-server/dist/tools/morelogin.js.map +1 -1
- package/mcp-server/dist/tools/profile.d.ts +1 -1
- package/mcp-server/dist/tools/profile.d.ts.map +1 -1
- package/mcp-server/dist/tools/profile.js +1 -1
- package/mcp-server/dist/tools/profile.js.map +1 -1
- package/mcp-server/dist/tools/recall.d.ts +1 -1
- package/mcp-server/dist/tools/recall.d.ts.map +1 -1
- package/mcp-server/dist/tools/recall.js +1 -1
- package/mcp-server/dist/tools/recall.js.map +1 -1
- package/mcp-server/dist/tools/reflect.d.ts +1 -1
- package/mcp-server/dist/tools/reflect.d.ts.map +1 -1
- package/mcp-server/dist/tools/reflect.js +1 -1
- package/mcp-server/dist/tools/reflect.js.map +1 -1
- package/mcp-server/dist/tools/remember.d.ts +1 -1
- package/mcp-server/dist/tools/remember.d.ts.map +1 -1
- package/mcp-server/dist/tools/remember.js +13 -11
- package/mcp-server/dist/tools/remember.js.map +1 -1
- package/mcp-server/dist/tools/restore.d.ts +1 -1
- package/mcp-server/dist/tools/restore.d.ts.map +1 -1
- package/mcp-server/dist/tools/restore.js +1 -1
- package/mcp-server/dist/tools/restore.js.map +1 -1
- package/mcp-server/dist/tools/style-guide-tools.d.ts +1 -1
- package/mcp-server/dist/tools/style-guide-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/style-guide-tools.js +1 -1
- package/mcp-server/dist/tools/style-guide-tools.js.map +1 -1
- package/mcp-server/dist/tools/sync.d.ts +1 -1
- package/mcp-server/dist/tools/sync.d.ts.map +1 -1
- package/mcp-server/dist/tools/sync.js +1 -1
- package/mcp-server/dist/tools/sync.js.map +1 -1
- package/mcp-server/dist/tools/tictactoe-tools.d.ts +1 -1
- package/mcp-server/dist/tools/tictactoe-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/tictactoe-tools.js +1 -1
- package/mcp-server/dist/tools/tictactoe-tools.js.map +1 -1
- package/mcp-server/dist/tools/utils.d.ts +1 -1
- package/mcp-server/dist/tools/utils.d.ts.map +1 -1
- package/mcp-server/dist/tools/utils.js +1 -1
- package/mcp-server/dist/tools/utils.js.map +1 -1
- package/mcp-server/dist/tools/whatsapp-send-file.d.ts +1 -1
- package/mcp-server/dist/tools/whatsapp-send-file.d.ts.map +1 -1
- package/mcp-server/dist/tools/whatsapp-send-file.js +1 -1
- package/mcp-server/dist/tools/whatsapp-send-file.js.map +1 -1
- package/mcp-server/dist/tools/whiteboard-tools.d.ts +3 -3
- package/mcp-server/dist/tools/whiteboard-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/whiteboard-tools.js +1 -1
- package/mcp-server/dist/tools/whiteboard-tools.js.map +1 -1
- package/mcp-server/dist/tools/youtube/analytics.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/analytics.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/analytics.js +1 -1
- package/mcp-server/dist/tools/youtube/analytics.js.map +1 -1
- package/mcp-server/dist/tools/youtube/download.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/download.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/download.js +1 -1
- package/mcp-server/dist/tools/youtube/download.js.map +1 -1
- package/mcp-server/dist/tools/youtube/media.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/media.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/media.js +1 -1
- package/mcp-server/dist/tools/youtube/media.js.map +1 -1
- package/mcp-server/dist/tools/youtube/metadata.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/metadata.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/metadata.js +1 -1
- package/mcp-server/dist/tools/youtube/metadata.js.map +1 -1
- package/mcp-server/dist/tools/youtube/navigate.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/navigate.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/navigate.js +1 -1
- package/mcp-server/dist/tools/youtube/navigate.js.map +1 -1
- package/mcp-server/dist/tools/youtube/playlist.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/playlist.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/playlist.js +1 -1
- package/mcp-server/dist/tools/youtube/playlist.js.map +1 -1
- package/mcp-server/dist/tools/youtube/schedule.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/schedule.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/schedule.js +1 -1
- package/mcp-server/dist/tools/youtube/schedule.js.map +1 -1
- package/mcp-server/dist/tools/youtube/source.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/source.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/source.js +1 -1
- package/mcp-server/dist/tools/youtube/source.js.map +1 -1
- package/mcp-server/dist/tools/youtube/upload.d.ts +1 -1
- package/mcp-server/dist/tools/youtube/upload.d.ts.map +1 -1
- package/mcp-server/dist/tools/youtube/upload.js +4 -9
- package/mcp-server/dist/tools/youtube/upload.js.map +1 -1
- package/mcp-server/dist/tui.js +16 -4
- package/mcp-server/dist/tui.js.map +1 -1
- package/mcp-server/package-lock.json +3 -3
- package/mcp-server/package.json +3 -3
- package/mcp-server/src/services/browser-bench.ts +1 -1
- package/mcp-server/src/services/categories.ts +77 -32
- package/mcp-server/src/services/desktop-bench.ts +1 -1
- package/mcp-server/src/tools/agents.ts +1 -1
- package/mcp-server/src/tools/bluesky.ts +1 -1
- package/mcp-server/src/tools/browser-advanced.ts +1 -1
- package/mcp-server/src/tools/browser-batch.ts +1 -1
- package/mcp-server/src/tools/browser-cheatsheet.ts +1 -1
- package/mcp-server/src/tools/browser-interact.ts +1 -1
- package/mcp-server/src/tools/browser-navigate.ts +1 -1
- package/mcp-server/src/tools/browser-observe.ts +1 -1
- package/mcp-server/src/tools/card-tools.ts +1 -1
- package/mcp-server/src/tools/category.ts +6 -1
- package/mcp-server/src/tools/choice.ts +1 -1
- package/mcp-server/src/tools/computer.ts +1 -1
- package/mcp-server/src/tools/discord-channel.ts +1 -1
- package/mcp-server/src/tools/discord-guild.ts +1 -1
- package/mcp-server/src/tools/discord-member.ts +1 -1
- package/mcp-server/src/tools/discord-message.ts +1 -1
- package/mcp-server/src/tools/discord-onboarding.ts +1 -1
- package/mcp-server/src/tools/discord-role.ts +1 -1
- package/mcp-server/src/tools/discord-thread.ts +1 -1
- package/mcp-server/src/tools/discord-webhook.ts +1 -1
- package/mcp-server/src/tools/fb-groups.ts +1 -1
- package/mcp-server/src/tools/forget.ts +1 -1
- package/mcp-server/src/tools/git-tools.ts +1 -1
- package/mcp-server/src/tools/gsc/experience.ts +1 -1
- package/mcp-server/src/tools/gsc/indexing.ts +1 -1
- package/mcp-server/src/tools/gsc/inspect.ts +1 -1
- package/mcp-server/src/tools/gsc/navigate.ts +1 -1
- package/mcp-server/src/tools/gsc/performance.ts +1 -1
- package/mcp-server/src/tools/gsc/settings.ts +1 -1
- package/mcp-server/src/tools/image-tools.ts +1 -1
- package/mcp-server/src/tools/leonardo-browser-tools.ts +1 -1
- package/mcp-server/src/tools/loop.ts +1 -1
- package/mcp-server/src/tools/memories.ts +1 -1
- package/mcp-server/src/tools/morelogin.ts +1 -1
- package/mcp-server/src/tools/profile.ts +1 -1
- package/mcp-server/src/tools/recall.ts +1 -1
- package/mcp-server/src/tools/reflect.ts +1 -1
- package/mcp-server/src/tools/remember.ts +13 -12
- package/mcp-server/src/tools/restore.ts +1 -1
- package/mcp-server/src/tools/style-guide-tools.ts +1 -1
- package/mcp-server/src/tools/sync.ts +1 -1
- package/mcp-server/src/tools/tictactoe-tools.ts +1 -1
- package/mcp-server/src/tools/utils.ts +1 -1
- package/mcp-server/src/tools/whatsapp-send-file.ts +1 -1
- package/mcp-server/src/tools/whiteboard-tools.ts +1 -1
- package/mcp-server/src/tools/youtube/analytics.ts +1 -1
- package/mcp-server/src/tools/youtube/download.ts +1 -1
- package/mcp-server/src/tools/youtube/media.ts +1 -1
- package/mcp-server/src/tools/youtube/metadata.ts +1 -1
- package/mcp-server/src/tools/youtube/navigate.ts +1 -1
- package/mcp-server/src/tools/youtube/playlist.ts +1 -1
- package/mcp-server/src/tools/youtube/schedule.ts +1 -1
- package/mcp-server/src/tools/youtube/source.ts +1 -1
- package/mcp-server/src/tools/youtube/upload.ts +4 -12
- package/mcp-server/src/tui.ts +22 -9
- package/neural-interface/i18n/en.json +236 -7
- package/neural-interface/i18n/pt-BR.json +238 -9
- package/neural-interface/lib/account-usage.js +5 -3
- package/neural-interface/lib/agent-sandbox-elevation.js +102 -0
- package/neural-interface/lib/agent-sandbox-setting.js +57 -0
- package/neural-interface/lib/app-controls-api.js +161 -0
- package/neural-interface/lib/assistant-api.js +40 -7
- package/neural-interface/lib/assistant-brains/opencode.js +13 -1
- package/neural-interface/lib/assistant-brains/opencode2-browser-policy/index.js +44 -0
- package/neural-interface/lib/assistant-brains/opencode2-route-gate/index.js +57 -0
- package/neural-interface/lib/assistant-catalog.js +17 -2
- package/neural-interface/lib/assistant-dispatch.js +3 -0
- package/neural-interface/lib/assistant-envelope.js +19 -1
- package/neural-interface/lib/assistant-route-gate-codex.js +3 -1
- package/neural-interface/lib/assistant-runtime.js +131 -8
- package/neural-interface/lib/claude-model-catalog.js +64 -14
- package/neural-interface/lib/codex-account-auth.js +4 -2
- package/neural-interface/lib/codex-accounts.js +14 -1
- package/neural-interface/lib/codex-settings-schema.js +111 -47
- package/neural-interface/lib/editor-completion-opencode.js +132 -35
- package/neural-interface/lib/exec-loop-command.js +11 -2
- package/neural-interface/lib/install-details.js +23 -5
- package/neural-interface/lib/launch-cache.js +293 -0
- package/neural-interface/lib/login-start.js +524 -0
- package/neural-interface/lib/native-loop-providers.js +24 -4
- package/neural-interface/lib/native-loop-runtime.js +19 -0
- package/neural-interface/lib/opencode-db-schema.js +75 -0
- package/neural-interface/lib/opencode-history.js +16 -1
- package/neural-interface/lib/opencode-protocol.js +173 -0
- package/neural-interface/lib/opencode-provider-view.js +81 -0
- package/neural-interface/lib/opencode-runtime-config.js +10 -3
- package/neural-interface/lib/opencode-serve-records.js +606 -0
- package/neural-interface/lib/opencode-v2-client.js +33 -6
- package/neural-interface/lib/opencode-v2-ws-requests.js +19 -5
- package/neural-interface/lib/opencode-worker-activity.js +229 -0
- package/neural-interface/lib/opencode2-client.js +760 -0
- package/neural-interface/lib/opencode2-proxy.js +116 -0
- package/neural-interface/lib/opencode2-translate.js +1008 -0
- package/neural-interface/lib/process-identity.js +361 -0
- package/neural-interface/lib/provider-panel-terminal-auth.js +3 -2
- package/neural-interface/lib/session-cache-builder.js +26 -5
- package/neural-interface/lib/session-indexer.js +3 -1
- package/neural-interface/lib/session-title-generator.js +20 -0
- package/neural-interface/lib/style-guide/api.js +4 -3
- package/neural-interface/lib/untrusted-file-headers.js +27 -0
- package/neural-interface/package-lock.json +1342 -44
- package/neural-interface/package.json +5 -1
- package/neural-interface/public/index.html +2 -2
- package/neural-interface/public/shared/account-menu.js +4 -1
- package/neural-interface/public/shared/account-usage.js +62 -2
- package/neural-interface/public/shared/account-view.js +2 -1
- package/neural-interface/public/shared/agent-runtime-options.js +55 -11
- package/neural-interface/public/shared/assistant/asst-account-menu.js +298 -0
- package/neural-interface/public/shared/assistant/asst-agents-dock.js +172 -17
- package/neural-interface/public/shared/assistant/asst-api.js +18 -3
- package/neural-interface/public/shared/assistant/asst-brain-picker.js +424 -152
- package/neural-interface/public/shared/assistant/asst-composer.js +1 -1
- package/neural-interface/public/shared/assistant/asst-hosts.js +49 -2
- package/neural-interface/public/shared/assistant/asst-menu.js +275 -77
- package/neural-interface/public/shared/assistant/asst-model-chip.js +135 -0
- package/neural-interface/public/shared/assistant/asst-panel.js +236 -35
- package/neural-interface/public/shared/assistant/asst-rack-styles.js +28 -10
- package/neural-interface/public/shared/assistant/asst-redact.js +186 -0
- package/neural-interface/public/shared/assistant/asst-render.js +382 -36
- package/neural-interface/public/shared/assistant/asst-run-stage.js +231 -0
- package/neural-interface/public/shared/assistant/asst-sanitize.js +193 -3
- package/neural-interface/public/shared/assistant/asst-scene-styles.js +273 -0
- package/neural-interface/public/shared/assistant/asst-scenes.js +528 -0
- package/neural-interface/public/shared/assistant/asst-sidepanel-styles.js +3 -15
- package/neural-interface/public/shared/assistant/asst-state.js +14 -0
- package/neural-interface/public/shared/assistant/asst-styles.js +109 -17
- package/neural-interface/public/shared/assistant/asst-tool-kinds.js +13 -1
- package/neural-interface/public/shared/cc-dropdown.js +480 -0
- package/neural-interface/public/shared/cdx/cdx-panel.js +14 -2
- package/neural-interface/public/shared/cdx/cdx-render.js +15 -3
- package/neural-interface/public/shared/cdx/cdx-styles.js +49 -5
- package/neural-interface/public/shared/cdx/cdx-tabs.js +152 -35
- package/neural-interface/public/shared/cp/cp-markdown.js +4 -57
- package/neural-interface/public/shared/data-cache.js +223 -0
- package/neural-interface/public/shared/desktop-bridge.js +11 -0
- package/neural-interface/public/shared/desktop-titlebar-view.js +78 -1
- package/neural-interface/public/shared/desktop-titlebar.js +214 -28
- package/neural-interface/public/shared/desktop-update-view.js +15 -5
- package/neural-interface/public/shared/file-links.js +73 -8
- package/neural-interface/public/shared/html-shell.js +74 -80
- package/neural-interface/public/shared/launch-prefetch.js +59 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-caps.js +3 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +11 -3
- package/neural-interface/public/shared/ocp-v2/ocp-v2-modelpicker.js +54 -17
- package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +97 -3
- package/neural-interface/public/shared/ocp-v2/ocp-v2-projectbar.js +3 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-providers.js +11 -9
- package/neural-interface/public/shared/ocp-v2/ocp-v2-rehydrate.js +15 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +1 -1
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send-logic.js +401 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +16 -9
- package/neural-interface/public/shared/ocp-v2/ocp-v2-sessions-logic.js +60 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +83 -5
- package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +195 -19
- package/neural-interface/public/shared/opencode-providers.js +39 -0
- package/neural-interface/public/shared/schedules-view.js +318 -0
- package/neural-interface/public/shared/settings/settings-app-pane.js +335 -0
- package/neural-interface/public/shared/settings/settings-app.js +243 -0
- package/neural-interface/public/shared/settings/settings-data.js +88 -0
- package/neural-interface/public/shared/settings/settings-ia.js +17 -0
- package/neural-interface/public/shared/showcase-privacy.js +2 -1
- package/neural-interface/public/shared/sidepanel-session-status.js +49 -0
- package/neural-interface/public/shared/styles.css +543 -372
- package/neural-interface/public/shared/ui-assistant.js +27 -5
- package/neural-interface/public/shared/ui-automation-studio.js +67 -27
- package/neural-interface/public/shared/ui-bookmarks.js +2 -1
- package/neural-interface/public/shared/ui-claude-panel.js +126 -12
- package/neural-interface/public/shared/ui-codex-panel.js +1 -0
- package/neural-interface/public/shared/ui-detail.js +6 -6
- package/neural-interface/public/shared/ui-explorer.js +2 -0
- package/neural-interface/public/shared/ui-file-links.js +1 -0
- package/neural-interface/public/shared/ui-image-gallery.js +6 -5
- package/neural-interface/public/shared/ui-invite.js +18 -2
- package/neural-interface/public/shared/ui-link.js +9 -9
- package/neural-interface/public/shared/ui-menubar.js +232 -33
- package/neural-interface/public/shared/ui-native-loop-router.js +2 -0
- package/neural-interface/public/shared/ui-opencode-panel-v2.js +1 -0
- package/neural-interface/public/shared/ui-schedules-studio.js +2099 -869
- package/neural-interface/public/shared/ui-sessions.js +15 -4
- package/neural-interface/public/shared/ui-settings.js +87 -36
- package/neural-interface/public/shared/ui-sidebar.js +4 -4
- package/neural-interface/public/shared/ui-sidepanel-session-entry.js +13 -0
- package/neural-interface/public/shared/ui-sidepanel-sessions.js +55 -4
- package/neural-interface/public/shared/ui-sidepanel-tray.js +84 -8
- package/neural-interface/public/shared/ui-skills.js +70 -12
- package/neural-interface/public/shared/ui-sync.js +9 -0
- package/neural-interface/public/shared/ui-terminal.js +36 -20
- package/neural-interface/public/shared/ui-trash.js +8 -1
- package/neural-interface/public/shared/ui-tutorial-steps.js +7 -3
- package/neural-interface/public/shared/ui-tutorial.js +15 -5
- package/neural-interface/public/shared/ui-update.js +87 -16
- package/neural-interface/public/shared/ui-whiteboard.js +2 -1
- package/neural-interface/public/variant/2d/main.js +4 -1
- package/neural-interface/public/variant/3d/main.js +3 -0
- package/neural-interface/public/vendor/highlight/LICENSE +29 -0
- package/neural-interface/public/vendor/highlight/github-dark-dimmed-11.12.0.min.css +9 -0
- package/neural-interface/public/vendor/highlight/highlight-11.12.0.min.js +1262 -0
- package/neural-interface/public/vendor/highlight/manifest.json +5 -0
- package/neural-interface/public/vendor/html2canvas/LICENSE +22 -0
- package/neural-interface/public/vendor/html2canvas/html2canvas-1.4.1.min.js +20 -0
- package/neural-interface/public/vendor/html2canvas/manifest.json +4 -0
- package/neural-interface/public/vendor/marked/LICENSE.md +44 -0
- package/neural-interface/public/vendor/marked/manifest.json +4 -0
- package/neural-interface/public/vendor/marked/marked-14.1.4.esm.js +2502 -0
- package/neural-interface/public/vendor/mermaid/LICENSE +21 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/abnfDiagram-PAR5IXJI.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architecture-7GRP2DOG-M7G3SWCO.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architectureDiagram-2PNWDENW.mjs +36 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/blockDiagram-PUWGUBOA.mjs +129 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/c4Diagram-3NLNHZP5.mjs +38 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-2NMSUPJH.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-32MCUW2P.mjs +206 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3NPNU5GP.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3SMGFRGC.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4CAJECRU.mjs +14 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4OADUZ5Q.mjs +10 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IMINLNL.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IQCK5RY.mjs +3 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5MVFYWFU.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AQ6EADP3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AZZRMDJM.mjs +15 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-CLS4B6BI.mjs +168 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-DZP67EKU.mjs +70 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-EICP7K5X.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-GDY2UAB4.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-H7VHZCWX.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-IJBDOHL6.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JFFVMJIA.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JQRUD6KW.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JZGDI5JK.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-KD6SPIPN.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NF366YI6.mjs +231 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NUDPKBEF.mjs +32 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-OJINMHTS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Q6NGPIAH.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-QJSWEUOL.mjs +132 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-R7JDMUKV.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RCXAM2GK.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RT4MAWR3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SFMINX4W.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SLDQ463B.mjs +88 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-STOV2HOB.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-T5OCTHI4.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-TCEHX7R3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VQC2EELJ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VRZKL3EH.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VTHDQ7BV.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VY2OSTJR.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-WUBWJARI.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YBMQ5JGJ.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YDMLL4PJ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Z6V44ARX.mjs +62 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZJJ7VQJP.mjs +339 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZNLK7HRR.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZQN7UHIL.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZS6VBONO.mjs +174 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZUNWM646.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-FGAMPOII.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-v2-AI5RJEK4.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cose-bilkent-Q72C2OJ3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefin-OW5HDTMX-6OCTWOGG.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefinDiagram-2OOWUY4M.mjs +62 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/dagre-MPVFI544.mjs +4 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-AE4NWXFW.mjs +24 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-BUJID5UG.mjs +41 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-C44CZ5NI.mjs +24 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-EYOLEXXS.mjs +30 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-P7B6PWOJ.mjs +3 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ebnfDiagram-FTPZ3PV6.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/erDiagram-H3ERR26V.mjs +99 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/eventmodeling-NTZA5JFV-WKSWQHFS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/flowDiagram-YHGXBVSY.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ganttDiagram-RWFTB7ED.mjs +292 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraph-4MIJSDKK-JH2HKYUO.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraphDiagram-MAR6GKOP.mjs +106 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/info-A6RAGUB7-3TX3OFWW.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/infoDiagram-LV547AFH.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ishikawaDiagram-PUJQGNDS.mjs +70 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/journeyDiagram-EW5QJT4W.mjs +139 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/kanban-definition-JSQERAZB.mjs +89 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/katex-CZ4GXH2S.mjs +257 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/mindmap-definition-VBJCLQLM.mjs +96 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/packet-AYTQ26CC-MKII6P3Y.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pegDiagram-7WILOQTJ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pie-WAS4IAKB-6B4OPMJ5.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pieDiagram-EFA7CBSB.mjs +39 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/quadrantDiagram-WARVYA7P.mjs +7 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/radar-RG4KPBEZ-UPTR3XUL.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-74A4TZTK-MEFUPFMS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-abnf-HS5TGJTU-R5YG2S5D.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-ebnf-LZEXJU2U-G5QEX2L6.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-peg-WCYAUIDC-H5I2ZRY2.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroadDiagram-5NIQVNLQ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/requirementDiagram-SXREGOKZ.mjs +84 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sankeyDiagram-VV74M2VP.mjs +40 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sequenceDiagram-52ZFIFDL.mjs +162 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sizeCapture-FGA5AGYP.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-3QAKPIVI.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-v2-HN2P4RDZ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanes-QLVP42QD.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanesDiagram-JKPDBFCN.mjs +8 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/timeline-definition-GS45XAXW.mjs +120 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treeView-Q6P3EWNA-ZRJGANNQ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treemap-WGGIJYW6-K64VN5AS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/vennDiagram-QIQU2ZRJ.mjs +34 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardley-WFR3VGLG-D67OWCCH.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardleyDiagram-U6YNM66N.mjs +78 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/xychartDiagram-XJAZEDNM.mjs +7 -0
- package/neural-interface/public/vendor/mermaid/manifest.json +4 -0
- package/neural-interface/public/vendor/mermaid/mermaid-11.17.2.esm.min.mjs +14 -0
- package/neural-interface/scripts/build-vendor.mjs +84 -3
- package/neural-interface/scripts/rebuild-pty.js +14 -2
- package/neural-interface/server.js +1279 -372
- package/npm-shrinkwrap.json +4424 -0
- package/package.json +54 -2
- package/postinstall.js +61 -47
- package/preuninstall.js +8 -35
- package/setup.js +76 -44
- package/skills/synabun/modules/idea.md +1 -1
- package/skills/synabun/modules/schedule.md +2 -2
- package/updater.cmd +2 -2
- package/updater.mjs +97 -3
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"graph": "Grafo",
|
|
50
50
|
"skills": "Skills",
|
|
51
51
|
"automations": "Automações",
|
|
52
|
+
"schedules": "Agendamentos",
|
|
52
53
|
"games": "Jogos",
|
|
53
54
|
"apps": "Aplicativos",
|
|
54
55
|
"bookmarks": "Favoritos",
|
|
@@ -96,6 +97,7 @@
|
|
|
96
97
|
"openCode": "OpenCode",
|
|
97
98
|
"shell": "Terminal shell",
|
|
98
99
|
"browser": "Navegador",
|
|
100
|
+
"browserApps": "Apps do navegador",
|
|
99
101
|
"youtube": "YouTube",
|
|
100
102
|
"showTerminal": "Mostrar terminal"
|
|
101
103
|
}
|
|
@@ -1357,6 +1359,10 @@
|
|
|
1357
1359
|
"about": {
|
|
1358
1360
|
"label": "Sobre",
|
|
1359
1361
|
"help": "Versão, links e licenças"
|
|
1362
|
+
},
|
|
1363
|
+
"app": {
|
|
1364
|
+
"label": "App",
|
|
1365
|
+
"help": "Atualizações, inicialização e janela"
|
|
1360
1366
|
}
|
|
1361
1367
|
},
|
|
1362
1368
|
"page": {
|
|
@@ -1411,6 +1417,10 @@
|
|
|
1411
1417
|
"about": {
|
|
1412
1418
|
"title": "Sobre",
|
|
1413
1419
|
"purpose": "A versão que você usa, onde ela roda e o software de código aberto com que o SynaBun é feito."
|
|
1420
|
+
},
|
|
1421
|
+
"app": {
|
|
1422
|
+
"title": "App",
|
|
1423
|
+
"purpose": "Como o SynaBun se atualiza, inicia e funciona neste computador."
|
|
1414
1424
|
}
|
|
1415
1425
|
},
|
|
1416
1426
|
"section": {
|
|
@@ -1751,6 +1761,24 @@
|
|
|
1751
1761
|
"title": "Dependências",
|
|
1752
1762
|
"purpose": "Cada pacote que acompanha o SynaBun, a versão instalada aqui e a licença dele."
|
|
1753
1763
|
}
|
|
1764
|
+
},
|
|
1765
|
+
"app": {
|
|
1766
|
+
"updates": {
|
|
1767
|
+
"title": "Atualizações",
|
|
1768
|
+
"purpose": "A versão que você usa e como o SynaBun recebe as novas."
|
|
1769
|
+
},
|
|
1770
|
+
"startup": {
|
|
1771
|
+
"title": "Inicialização",
|
|
1772
|
+
"purpose": "Se o SynaBun inicia quando você entra na sua conta."
|
|
1773
|
+
},
|
|
1774
|
+
"window": {
|
|
1775
|
+
"title": "Janela",
|
|
1776
|
+
"purpose": "O que a janela do app SynaBun faz."
|
|
1777
|
+
},
|
|
1778
|
+
"maintenance": {
|
|
1779
|
+
"title": "Manutenção",
|
|
1780
|
+
"purpose": "As pastas do SynaBun e um reinício quando algo precisar."
|
|
1781
|
+
}
|
|
1754
1782
|
}
|
|
1755
1783
|
},
|
|
1756
1784
|
"common": {
|
|
@@ -3411,6 +3439,50 @@
|
|
|
3411
3439
|
"abt003": {
|
|
3412
3440
|
"label": "Filtrar dependências",
|
|
3413
3441
|
"help": "Mostra só os pacotes cujo nome contém o que você digitar."
|
|
3442
|
+
},
|
|
3443
|
+
"sys001": {
|
|
3444
|
+
"label": "Procurar atualizações",
|
|
3445
|
+
"help": "Procura agora uma versão mais nova do SynaBun."
|
|
3446
|
+
},
|
|
3447
|
+
"sys002": {
|
|
3448
|
+
"label": "Atualizações automáticas",
|
|
3449
|
+
"help": "Procura novas versões sozinho. No app para desktop, também as instala quando o SynaBun está ocioso."
|
|
3450
|
+
},
|
|
3451
|
+
"sys003": {
|
|
3452
|
+
"label": "Instalar atualização",
|
|
3453
|
+
"help": "Abre a atualização com as notas da versão e, se você quiser, um backup antes."
|
|
3454
|
+
},
|
|
3455
|
+
"sys004": {
|
|
3456
|
+
"label": "Iniciar ao entrar",
|
|
3457
|
+
"help": "Inicia o SynaBun quando você entra na sua conta neste computador."
|
|
3458
|
+
},
|
|
3459
|
+
"sys005": {
|
|
3460
|
+
"label": "Iniciar em segundo plano",
|
|
3461
|
+
"help": "Ao entrar, o SynaBun inicia sem abrir a janela. Abra o SynaBun para mostrá-la."
|
|
3462
|
+
},
|
|
3463
|
+
"sys006": {
|
|
3464
|
+
"label": "Continuar em execução ao fechar a janela",
|
|
3465
|
+
"help": "Fechar a janela deixa o SynaBun na bandeja, e suas ferramentas de IA mantêm a memória. Desligado: fechar a janela encerra o SynaBun."
|
|
3466
|
+
},
|
|
3467
|
+
"sys007": {
|
|
3468
|
+
"label": "Aceleração de hardware",
|
|
3469
|
+
"help": "Desenha a janela com a placa de vídeo. Desligue se a janela piscar ou ficar em branco. Vale depois de reiniciar."
|
|
3470
|
+
},
|
|
3471
|
+
"sys008": {
|
|
3472
|
+
"label": "Reiniciar agora",
|
|
3473
|
+
"help": "Fecha o SynaBun e o abre de novo."
|
|
3474
|
+
},
|
|
3475
|
+
"sys009": {
|
|
3476
|
+
"label": "Abrir pasta de dados",
|
|
3477
|
+
"help": "Mostra a pasta com suas memórias, configurações e backups."
|
|
3478
|
+
},
|
|
3479
|
+
"sys010": {
|
|
3480
|
+
"label": "Abrir pasta de logs",
|
|
3481
|
+
"help": "Mostra a pasta com os logs do SynaBun, para relatar um problema."
|
|
3482
|
+
},
|
|
3483
|
+
"sys011": {
|
|
3484
|
+
"label": "Reiniciar o SynaBun",
|
|
3485
|
+
"help": "Reinicia o servidor do SynaBun: o mesmo que Restart Server no menu Apps."
|
|
3414
3486
|
}
|
|
3415
3487
|
},
|
|
3416
3488
|
"pane": {
|
|
@@ -5661,7 +5733,8 @@
|
|
|
5661
5733
|
"notifications": "alertas, som, volume, banner, toast, silenciar, notificação do sistema",
|
|
5662
5734
|
"appearance": "tema, modo escuro, dark mode, skin, cor, fonte, tamanho do texto, idioma, ícones, zoom, visual",
|
|
5663
5735
|
"code_editor": "editor, código, fonte, tamanho do texto, quebra de linha, minimapa, espaços em branco, indentação, tabulações, autocompletar, completar, sugestões, copilot, texto fantasma, inline, ia, modelo, ollama, arquivo",
|
|
5664
|
-
"about": "versão, GitHub, licença, dependências, Node, Electron, Chromium, sistema, atualização, créditos, copyright, notas de versão, changelog"
|
|
5736
|
+
"about": "versão, GitHub, licença, dependências, Node, Electron, Chromium, sistema, atualização, créditos, copyright, notas de versão, changelog",
|
|
5737
|
+
"app": "atualizações, atualização automática, inicialização, iniciar ao entrar, iniciar com o sistema, itens de início, boot, autostart, segundo plano, bandeja, barra de menus, fechar janela, sair, aceleração de hardware, GPU, pasta de dados, logs, reiniciar, versão"
|
|
5665
5738
|
},
|
|
5666
5739
|
"section": {
|
|
5667
5740
|
"ai_connections": {
|
|
@@ -5767,6 +5840,12 @@
|
|
|
5767
5840
|
"links": "GitHub, repositório, versões publicadas, changelog, problema, relatar bug, site, documentação, npm, licença, Discord, comunidade",
|
|
5768
5841
|
"system": "versão, Node, Node.js, Electron, Chromium, SQLite, sistema operacional, SO, macOS, Windows, Linux, arquitetura, pasta de dados, porta, instalação, diagnóstico",
|
|
5769
5842
|
"dependencies": "pacotes, bibliotecas, npm, licenças, código aberto, terceiros, versões, node_modules"
|
|
5843
|
+
},
|
|
5844
|
+
"app": {
|
|
5845
|
+
"updates": "atualizar, atualização automática, automático, procurar, versão, upgrade, lançamento, baixar, instalar, selo",
|
|
5846
|
+
"startup": "iniciar ao entrar, inicialização, boot, itens de início, autostart, abrir, segundo plano, oculto, bandeja, minimizado, LaunchAgent, systemd",
|
|
5847
|
+
"window": "fechar, bandeja, barra de menus, sair, continuar em execução, aceleração de hardware, GPU, gráficos, piscar, janela em branco",
|
|
5848
|
+
"maintenance": "pasta de dados, logs, arquivos de log, reiniciar, solução de problemas, diagnóstico, pasta, Finder, Explorer"
|
|
5770
5849
|
}
|
|
5771
5850
|
},
|
|
5772
5851
|
"control": {
|
|
@@ -5953,6 +6032,70 @@
|
|
|
5953
6032
|
"builtWith": "Feito com software de código aberto"
|
|
5954
6033
|
},
|
|
5955
6034
|
"afterRestart": "Aparece depois que o SynaBun reiniciar."
|
|
6035
|
+
},
|
|
6036
|
+
"app": {
|
|
6037
|
+
"version": "SynaBun {version}",
|
|
6038
|
+
"update": {
|
|
6039
|
+
"checking": "Procurando atualizações…",
|
|
6040
|
+
"upToDate": "Atualizado",
|
|
6041
|
+
"available": "A versão {version} está disponível",
|
|
6042
|
+
"downloading": "Baixando a versão {version} ({percent}%)",
|
|
6043
|
+
"ready": "A versão {version} está pronta para instalar",
|
|
6044
|
+
"installing": "Instalando a versão {version}",
|
|
6045
|
+
"failed": "A última verificação falhou",
|
|
6046
|
+
"notChecked": "Ainda não verificado",
|
|
6047
|
+
"unsupported": "Esta cópia não se atualiza sozinha",
|
|
6048
|
+
"checkedAt": "verificado às {time}",
|
|
6049
|
+
"autoHelpDesktop": "Baixa as novas versões e as instala quando o SynaBun está ocioso, depois de um aviso de um minuto. Desligado: o SynaBun continua verificando e avisa, e você instala com um clique.",
|
|
6050
|
+
"autoHelpServer": "Procura novas versões quando o SynaBun inicia e a cada meia hora, e mostra o selo de atualização. Desligado: só procura quando você pedir. A instalação sempre pergunta antes."
|
|
6051
|
+
},
|
|
6052
|
+
"startup": {
|
|
6053
|
+
"helpDesktop": "Abre o SynaBun quando você entra na sua conta, para que o servidor esteja pronto para suas ferramentas de IA.",
|
|
6054
|
+
"helpServer": "Inicia o servidor do SynaBun em segundo plano quando você entra na sua conta, sem janela nem terminal.",
|
|
6055
|
+
"hiddenNeedsLogin": "Vale quando o SynaBun inicia ao entrar.",
|
|
6056
|
+
"requiresApproval": "O macOS espera que você permita o SynaBun em Ajustes do Sistema > Geral > Itens de Início.",
|
|
6057
|
+
"disabledInSystem": {
|
|
6058
|
+
"darwin": "Desligado em Ajustes do Sistema > Geral > Itens de Início.",
|
|
6059
|
+
"win32": "Desligado em Configurações do Windows > Aplicativos > Inicialização.",
|
|
6060
|
+
"linux": "Desligado nos aplicativos de inicialização do seu ambiente."
|
|
6061
|
+
},
|
|
6062
|
+
"openSettings": {
|
|
6063
|
+
"darwin": "Abrir Itens de Início",
|
|
6064
|
+
"win32": "Abrir Inicialização"
|
|
6065
|
+
},
|
|
6066
|
+
"reason": {
|
|
6067
|
+
"unpackaged": "Só uma cópia instalada do SynaBun pode iniciar ao entrar.",
|
|
6068
|
+
"move-to-applications": "Mova o SynaBun para a pasta Aplicativos antes.",
|
|
6069
|
+
"no-appimage": "Inicie o SynaBun pelo arquivo AppImage para usar isto.",
|
|
6070
|
+
"not-here": "Indisponível em uma execução de teste ou em uma pasta de dados temporária.",
|
|
6071
|
+
"unsupported": "Indisponível neste sistema.",
|
|
6072
|
+
"desktop": "O app SynaBun cuida disto. Atualize o app para mudar aqui."
|
|
6073
|
+
},
|
|
6074
|
+
"owner": "O app SynaBun abre ao entrar com esta pasta de dados. Desligue no app antes.",
|
|
6075
|
+
"replaced": "A instalação npm não inicia mais ao entrar: agora quem inicia é este app.",
|
|
6076
|
+
"error": {
|
|
6077
|
+
"refused": "O sistema não aceitou a mudança.",
|
|
6078
|
+
"write-failed": "O SynaBun não conseguiu gravar a entrada de inicialização.",
|
|
6079
|
+
"no-wscript": "O Windows Script Host (wscript.exe) não está disponível, então o SynaBun não consegue iniciar sem janela.",
|
|
6080
|
+
"bad-path": "O SynaBun não consegue iniciar ao entrar a partir de uma pasta cujo nome tem %.",
|
|
6081
|
+
"desktop-app": "O app SynaBun abre ao entrar com esta pasta de dados. Desligue no app antes.",
|
|
6082
|
+
"npm-entry": "Não foi possível remover a inicialização da instalação npm. Desligue lá e tente de novo.",
|
|
6083
|
+
"save-failed": "O SynaBun não conseguiu salvar esta configuração.",
|
|
6084
|
+
"network": "O SynaBun não respondeu. Tente de novo."
|
|
6085
|
+
}
|
|
6086
|
+
},
|
|
6087
|
+
"window": {
|
|
6088
|
+
"desktopOnly": "Só no app SynaBun para desktop.",
|
|
6089
|
+
"macDock": "No macOS, o SynaBun fica no Dock quando a janela fecha. Saia pelo menu.",
|
|
6090
|
+
"noTray": "Este ambiente não mostra o ícone na bandeja: abra o SynaBun de novo para mostrar a janela.",
|
|
6091
|
+
"restartNeeded": "Vale depois que o SynaBun reiniciar."
|
|
6092
|
+
},
|
|
6093
|
+
"maintenance": {
|
|
6094
|
+
"openFailed": "Não foi possível abrir a pasta."
|
|
6095
|
+
},
|
|
6096
|
+
"remote": "Abra o SynaBun no computador em que ele roda para mudar isto.",
|
|
6097
|
+
"serverOld": "Estes controles chegam com um reinício do servidor do SynaBun.",
|
|
6098
|
+
"saveFailed": "Não foi possível salvar a configuração."
|
|
5956
6099
|
}
|
|
5957
6100
|
}
|
|
5958
6101
|
},
|
|
@@ -6307,6 +6450,12 @@
|
|
|
6307
6450
|
"left": "{percent}% disponível",
|
|
6308
6451
|
"resets": "renova em {time}"
|
|
6309
6452
|
},
|
|
6453
|
+
"accountMenu": {
|
|
6454
|
+
"uses": "{label} usa",
|
|
6455
|
+
"workers": "Workers usam",
|
|
6456
|
+
"workersHint": "Usada quando o despacho não indica uma conta.",
|
|
6457
|
+
"switchNote": "Outra conta inicia uma nova conversa."
|
|
6458
|
+
},
|
|
6310
6459
|
"usage": {
|
|
6311
6460
|
"task": "Tarefa atual",
|
|
6312
6461
|
"tokens": "tokens",
|
|
@@ -6438,7 +6587,14 @@
|
|
|
6438
6587
|
"sessions": {
|
|
6439
6588
|
"empty": "Nenhuma outra sessão",
|
|
6440
6589
|
"recent": "Recentes",
|
|
6441
|
-
"filter": "Filtrar sessões…"
|
|
6590
|
+
"filter": "Filtrar sessões…",
|
|
6591
|
+
"remove": "Remover sessão",
|
|
6592
|
+
"removeNamed": "Remover “{title}”",
|
|
6593
|
+
"removeAsk": "Remover “{title}” de vez?",
|
|
6594
|
+
"removeStopsTurn": "O turno em andamento será interrompido.",
|
|
6595
|
+
"removeStopsAgents": "Os agentes em execução serão interrompidos ({count}).",
|
|
6596
|
+
"removeConfirm": "Remover",
|
|
6597
|
+
"removeFailed": "Não foi possível remover “{title}”: {error}"
|
|
6442
6598
|
},
|
|
6443
6599
|
"work": {
|
|
6444
6600
|
"agents": "{count} agentes",
|
|
@@ -7091,6 +7247,7 @@
|
|
|
7091
7247
|
"awaitingRoute": "aguardando sua escolha de modelo",
|
|
7092
7248
|
"needsApproval": "precisa de aprovação",
|
|
7093
7249
|
"needsInput": "precisa de informações",
|
|
7250
|
+
"waitingInput": "aguardando sua resposta",
|
|
7094
7251
|
"queued": "na fila",
|
|
7095
7252
|
"strongerModel": "um modelo mais capaz",
|
|
7096
7253
|
"escalateTo": "Transferir para {label}",
|
|
@@ -7124,12 +7281,65 @@
|
|
|
7124
7281
|
"showAll": "Mostrar tudo",
|
|
7125
7282
|
"stopAll": "Parar tudo",
|
|
7126
7283
|
"empty": "Ainda não há agentes despachados. Experimente /dispatch codex \"…\"",
|
|
7127
|
-
"running":
|
|
7128
|
-
|
|
7129
|
-
|
|
7284
|
+
"running": {
|
|
7285
|
+
"one": "{count} em execução",
|
|
7286
|
+
"other": "{count} em execução"
|
|
7287
|
+
},
|
|
7288
|
+
"needsApproval": {
|
|
7289
|
+
"one": "{count} precisa de aprovação",
|
|
7290
|
+
"other": "{count} precisam de aprovação"
|
|
7291
|
+
},
|
|
7292
|
+
"needsAnswer": {
|
|
7293
|
+
"one": "{count} aguardando sua resposta",
|
|
7294
|
+
"other": "{count} aguardando sua resposta"
|
|
7295
|
+
},
|
|
7296
|
+
"done": {
|
|
7297
|
+
"one": "{count} concluído",
|
|
7298
|
+
"other": "{count} concluídos"
|
|
7299
|
+
},
|
|
7130
7300
|
"emptyShort": "Ainda não há agentes despachados.",
|
|
7131
7301
|
"clearFinished": "Limpar concluídos",
|
|
7132
|
-
"idle":
|
|
7302
|
+
"idle": {
|
|
7303
|
+
"one": "{count} ocioso",
|
|
7304
|
+
"other": "{count} ociosos"
|
|
7305
|
+
},
|
|
7306
|
+
"reveal": "{label}. Mostrar na conversa",
|
|
7307
|
+
"working": "Agentes trabalhando",
|
|
7308
|
+
"more": {
|
|
7309
|
+
"one": "Mais {count} agente trabalhando: mostrar a lista",
|
|
7310
|
+
"other": "Mais {count} agentes trabalhando: mostrar a lista"
|
|
7311
|
+
}
|
|
7312
|
+
},
|
|
7313
|
+
"stage": {
|
|
7314
|
+
"scene": {
|
|
7315
|
+
"quick": "Ajuste rápido",
|
|
7316
|
+
"code": "Programando",
|
|
7317
|
+
"complex": "Tarefa complexa",
|
|
7318
|
+
"review": "Revisando",
|
|
7319
|
+
"research": "Pesquisando",
|
|
7320
|
+
"browser": "Navegando",
|
|
7321
|
+
"computer": "Usando o computador",
|
|
7322
|
+
"automation": "Automatizando",
|
|
7323
|
+
"design": "Criando o design",
|
|
7324
|
+
"image_gen": "Gerando uma imagem",
|
|
7325
|
+
"video_gen": "Gerando um vídeo",
|
|
7326
|
+
"generic": "Trabalhando"
|
|
7327
|
+
},
|
|
7328
|
+
"doing": "{scene}…",
|
|
7329
|
+
"queued": "Na fila",
|
|
7330
|
+
"queuedAt": "Na fila · posição {n}",
|
|
7331
|
+
"starting": "Iniciando…",
|
|
7332
|
+
"waitingApproval": "Aguardando sua aprovação",
|
|
7333
|
+
"waitingInput": "Aguardando sua resposta",
|
|
7334
|
+
"waitingRoute": "Aguardando sua escolha de modelo",
|
|
7335
|
+
"done": "Concluído",
|
|
7336
|
+
"failed": "Falhou",
|
|
7337
|
+
"stopped": "Parado",
|
|
7338
|
+
"underMinute": "menos de um minuto",
|
|
7339
|
+
"minutes": {
|
|
7340
|
+
"one": "{count} min",
|
|
7341
|
+
"other": "{count} min"
|
|
7342
|
+
}
|
|
7133
7343
|
},
|
|
7134
7344
|
"composer": {
|
|
7135
7345
|
"aria": "Enviar mensagem ao assistente",
|
|
@@ -7267,6 +7477,8 @@
|
|
|
7267
7477
|
"variant": "Variante do modelo",
|
|
7268
7478
|
"variantDefault": "variante padrão",
|
|
7269
7479
|
"account": "Perfil da conta",
|
|
7480
|
+
"accountShort": "Conta",
|
|
7481
|
+
"accountAutoShort": "Auto",
|
|
7270
7482
|
"accountHint": "como",
|
|
7271
7483
|
"project": "Projeto de trabalho",
|
|
7272
7484
|
"projectHint": "entrada",
|
|
@@ -7317,6 +7529,16 @@
|
|
|
7317
7529
|
"thorough": "Cobertura completa, suíte inteira, verificações ao vivo."
|
|
7318
7530
|
}
|
|
7319
7531
|
},
|
|
7532
|
+
"adminSandbox": {
|
|
7533
|
+
"group": "Todos os agentes",
|
|
7534
|
+
"label": "Sandbox de administrador",
|
|
7535
|
+
"on": "Ativado",
|
|
7536
|
+
"off": "Desativado",
|
|
7537
|
+
"hint": "Só muda algo quando o SynaBun roda no Windows. Ativado: o Codex pode configurar seu sandbox mais forte, que pede aprovação de administrador uma vez por conta. Desativado: nenhum pedido de administrador; o Codex usa um sandbox que não precisa de administrador, com isolamento mais fraco.",
|
|
7538
|
+
"aria": "{label}: {value}. Só muda algo quando o SynaBun roda no Windows.",
|
|
7539
|
+
"statusOn": "Sandbox de administrador: ativado. No Windows, o Codex pode pedir aprovação de administrador uma vez por conta para configurar seu sandbox.",
|
|
7540
|
+
"statusOff": "Sandbox de administrador: desativado. Nenhum agente iniciado pelo SynaBun pede aprovação de administrador para um sandbox."
|
|
7541
|
+
},
|
|
7320
7542
|
"accounts": {
|
|
7321
7543
|
"signInAccount": "Entrar em {label}…",
|
|
7322
7544
|
"title": "Contas de {provider}",
|
|
@@ -8467,7 +8689,7 @@
|
|
|
8467
8689
|
"selectionMissing": "Escolha primeiro uma CLI e um projeto: Voltar leva você até eles.",
|
|
8468
8690
|
"names": {
|
|
8469
8691
|
"explorer": "Memory Explorer",
|
|
8470
|
-
"schedules": "
|
|
8692
|
+
"schedules": "Agendamentos",
|
|
8471
8693
|
"keybinds": "Keybinds"
|
|
8472
8694
|
},
|
|
8473
8695
|
"chapters": {
|
|
@@ -8513,7 +8735,7 @@
|
|
|
8513
8735
|
},
|
|
8514
8736
|
"explain-graph": {
|
|
8515
8737
|
"title": "Veja sua memória como um mapa",
|
|
8516
|
-
"body": "Cada memória é um ponto no mapa, e as categorias formam ilhas. O
|
|
8738
|
+
"body": "Cada memória é um ponto no mapa, e as categorias formam ilhas. O submenu {menu} de {apps} enquadra o mapa, mostra os vizinhos de uma memória e reconstrói o layout.",
|
|
8517
8739
|
"body2d": "Cada memória é um nó, com vínculos para as memórias relacionadas. O menu {menu} escolhe quais vínculos aparecem e quantas memórias carregam, e redefine o layout."
|
|
8518
8740
|
},
|
|
8519
8741
|
"explain-focus": {
|
|
@@ -8543,7 +8765,7 @@
|
|
|
8543
8765
|
},
|
|
8544
8766
|
"explain-schedules": {
|
|
8545
8767
|
"title": "Rode o trabalho na hora certa",
|
|
8546
|
-
"body": "{schedules}
|
|
8768
|
+
"body": "Em {schedules}, suas automações rodam com um timer ou uma agenda cron. Cada execução abre sua própria sessão de agente."
|
|
8547
8769
|
},
|
|
8548
8770
|
"assistant-start": {
|
|
8549
8771
|
"title": "Conheça o Assistente SynaBun",
|
|
@@ -8740,6 +8962,7 @@
|
|
|
8740
8962
|
"tooltip": "Atualização do SynaBun disponível: v{current} → v{latest}",
|
|
8741
8963
|
"tooltipDownloading": "Baixando o SynaBun v{latest}",
|
|
8742
8964
|
"tooltipReady": "O SynaBun v{latest} está pronto: ele é instalado quando o SynaBun estiver ocioso",
|
|
8965
|
+
"tooltipReadyOff": "O SynaBun v{latest} está pronto para instalar",
|
|
8743
8966
|
"titleAvailable": "Atualização disponível",
|
|
8744
8967
|
"titleDownloading": "Baixando a atualização",
|
|
8745
8968
|
"titleDownloaded": "Atualização pronta",
|
|
@@ -8762,6 +8985,8 @@
|
|
|
8762
8985
|
"hide": "Ocultar",
|
|
8763
8986
|
"hideHint": "O download continua com esta janela oculta. O SynaBun instala a atualização sozinho quando nada estiver em execução.",
|
|
8764
8987
|
"readyBody": "O SynaBun v{version} foi baixado. Ele é instalado sozinho quando nada estiver em execução: o SynaBun mostra um aviso de um minuto e reinicia já atualizado. Ele também é instalado quando você sai do SynaBun.",
|
|
8988
|
+
"offBody": "As atualizações automáticas estão desligadas. Instalar agora baixa a versão e reinicia o SynaBun nela assim que nada estiver em execução.",
|
|
8989
|
+
"readyBodyOff": "O SynaBun v{version} foi baixado. As atualizações automáticas estão desligadas: ele é instalado quando você escolher Instalar agora.",
|
|
8765
8990
|
"waitingBody": "Aguardando: {list}.",
|
|
8766
8991
|
"countdownBody": "O SynaBun reinicia na v{version} em {seconds} s.",
|
|
8767
8992
|
"postponedBody": "Adiado até {time}. Ele também é instalado quando você sai do SynaBun.",
|
|
@@ -8778,12 +9003,14 @@
|
|
|
8778
9003
|
"errorFallback": "O SynaBun não conseguiu procurar atualizações. Verifique a conexão e tente novamente.",
|
|
8779
9004
|
"errorNext": "O SynaBun mantém a versão em execução e tenta de novo na próxima verificação. Você pode tentar agora ou baixar a nova versão manualmente.",
|
|
8780
9005
|
"manualLink": "Baixar manualmente",
|
|
9006
|
+
"settingsLink": "Configurações de atualização",
|
|
8781
9007
|
"close": "Fechar",
|
|
8782
9008
|
"retry": "Tentar novamente",
|
|
8783
9009
|
"testFeed": "feed de teste",
|
|
8784
9010
|
"metaAvailable": "Pelo app do SynaBun",
|
|
8785
9011
|
"metaDownloading": "Baixando: {percent}%",
|
|
8786
9012
|
"metaDownloaded": "Pronta: é instalada quando o SynaBun estiver ocioso",
|
|
9013
|
+
"metaReadyOff": "Pronta para instalar",
|
|
8787
9014
|
"metaCountdown": "Reiniciando para instalá-la",
|
|
8788
9015
|
"metaPostponed": "Adiada: é instalada ao sair ou mais tarde"
|
|
8789
9016
|
},
|
|
@@ -8830,6 +9057,8 @@
|
|
|
8830
9057
|
"updateAvailableManualDetail": "Esta cópia não consegue se substituir onde está. Baixe a nova imagem de disco e instale-a do jeito que você instalou o SynaBun.",
|
|
8831
9058
|
"updateDownloading": "O SynaBun v{version} está sendo baixado",
|
|
8832
9059
|
"updateAutoDetail": "O SynaBun a instala sozinho assim que nada estiver em execução, depois de um aviso de um minuto que você pode adiar. Ela também é instalada quando você sai do SynaBun.",
|
|
9060
|
+
"updateAvailableOffDetail": "As atualizações automáticas estão desligadas. Instalar agora baixa a versão e reinicia o SynaBun nela assim que nada estiver em execução.",
|
|
9061
|
+
"updateReadyOffDetail": "As atualizações automáticas estão desligadas: ela é instalada quando você escolher Instalar agora.",
|
|
8833
9062
|
"installNow": "Instalar agora",
|
|
8834
9063
|
"downloadYourself": "Baixar manualmente",
|
|
8835
9064
|
"countdownTitle": "Atualizando o SynaBun para a v{version}",
|
|
@@ -91,11 +91,13 @@ export function createAccountUsage({ accounts = {}, readCodex = null, fetchImpl
|
|
|
91
91
|
combined.fetchedAt = new Date(Math.max(...fresh.map(w => w.at), value.windows.length ? Date.parse(value.fetchedAt) : 0)).toISOString();
|
|
92
92
|
return combined;
|
|
93
93
|
}
|
|
94
|
-
|
|
94
|
+
// `stale`: a reading older than ttlMs still counts (a display that refreshes in the background); the
|
|
95
|
+
// account's own state must still match it, and a window past its reset is still unknown.
|
|
96
|
+
function peek(provider, id, { stale = false } = {}) {
|
|
95
97
|
const row = rowOf(provider, id);
|
|
96
98
|
if (row?.mode === 'apiKey' || row?.mode === 'api') return unknown('not_applicable', now());
|
|
97
99
|
const item = cache.get(keyOf(provider, id));
|
|
98
|
-
const value = item?.signature === signature(row) && now() - item.at < ttlMs ? summarize(item.value.windows, item.value.source, Date.parse(item.value.fetchedAt), item.value.limited && !item.value.windows.some(w => w.usedPercent >= 100)) : unknown('unknown', now());
|
|
100
|
+
const value = item?.signature === signature(row) && (stale || now() - item.at < ttlMs) ? summarize(item.value.windows, item.value.source, Date.parse(item.value.fetchedAt), item.value.limited && !item.value.windows.some(w => w.usedPercent >= 100)) : unknown('unknown', now());
|
|
99
101
|
// Do not keep a limited window alive after its reset.
|
|
100
102
|
if (value.windows.some(w => w.resetsAt && Date.parse(w.resetsAt) <= now())) return overlay(provider, id, unknown('unknown', now()));
|
|
101
103
|
return overlay(provider, id, value);
|
|
@@ -137,7 +139,7 @@ export function createAccountUsage({ accounts = {}, readCodex = null, fetchImpl
|
|
|
137
139
|
await Promise.all(Object.entries(accounts).filter(([p]) => !provider || p === provider).flatMap(([p, service]) => service.list().map(row => read(p, row.id))));
|
|
138
140
|
return list();
|
|
139
141
|
}
|
|
140
|
-
function list() { return Object.fromEntries(Object.entries(accounts).map(([p, service]) => [p, service.listForClient().map(row => ({ ...row, usage: peek(p, row.id) }))])); }
|
|
142
|
+
function list({ stale = false } = {}) { return Object.fromEntries(Object.entries(accounts).map(([p, service]) => [p, service.listForClient().map(row => ({ ...row, usage: peek(p, row.id, { stale }) }))])); }
|
|
141
143
|
function invalidate(p, id) { const key = keyOf(p, id); generations.set(key, (generations.get(key) || 0) + 1); cache.delete(key); overlays.delete(key); }
|
|
142
144
|
return { read, peek, note, refresh, list, invalidate };
|
|
143
145
|
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════
|
|
2
|
+
// SynaBun — Admin sandbox: what it means for each agent (pure)
|
|
3
|
+
// ═══════════════════════════════════════════
|
|
4
|
+
//
|
|
5
|
+
// One global setting (lib/agent-sandbox-setting.js, the Assistant's permission
|
|
6
|
+
// menu) decides whether an agent SynaBun starts may use a sandbox whose setup
|
|
7
|
+
// needs Windows administrator approval (a UAC prompt). Off is the default:
|
|
8
|
+
// then nothing SynaBun starts can ask for one. Each provider says here what
|
|
9
|
+
// the setting means for it; a launcher asks this module and never decides by
|
|
10
|
+
// itself. A provider SynaBun can start must have an entry
|
|
11
|
+
// (tests/agent-sandbox-elevation.test.mjs fails otherwise).
|
|
12
|
+
//
|
|
13
|
+
// The setting never changes a provider's sandbox policy (read-only,
|
|
14
|
+
// workspace-write, full access): only which implementation of it may need an
|
|
15
|
+
// administrator. It is a launch override, never written into a config file.
|
|
16
|
+
|
|
17
|
+
export const ADMIN_SANDBOX_DEFAULT = false;
|
|
18
|
+
|
|
19
|
+
const CODEX_SETTING = 'windows.sandbox';
|
|
20
|
+
|
|
21
|
+
export const SANDBOX_ELEVATION = Object.freeze({
|
|
22
|
+
// `windows.sandbox` (Codex 0.163: "elevated" | "unelevated" | "mxc"): "elevated"
|
|
23
|
+
// provisions two local sandbox accounts with codex-windows-sandbox-setup.exe, a
|
|
24
|
+
// UAC prompt once per CODEX_HOME (SynaBun's accounts each have one);
|
|
25
|
+
// "unelevated" is Codex's restricted-token sandbox: no administrator, weaker isolation.
|
|
26
|
+
codex: Object.freeze({
|
|
27
|
+
changes: true,
|
|
28
|
+
setting: CODEX_SETTING,
|
|
29
|
+
off: 'unelevated',
|
|
30
|
+
on: 'elevated',
|
|
31
|
+
reason: 'Codex picks its Windows sandbox with windows.sandbox: "elevated" needs a one-time administrator setup per account, "unelevated" needs none.',
|
|
32
|
+
}),
|
|
33
|
+
// Claude Code 2.1.303 has a Windows sandbox whose one-time install asks for
|
|
34
|
+
// administrator approval, but only `claude sandbox install` or `/sandbox install`
|
|
35
|
+
// starts it: a session never does, and SynaBun never runs either command.
|
|
36
|
+
'claude-code': Object.freeze({
|
|
37
|
+
changes: false,
|
|
38
|
+
reason: 'Claude Code installs its Windows sandbox only through `claude sandbox install` or `/sandbox install`, which SynaBun never runs; a session never asks for administrator approval by itself.',
|
|
39
|
+
}),
|
|
40
|
+
// OpenCode has no operating-system sandbox: permission rules only (its
|
|
41
|
+
// "sandboxes" are worktree folders).
|
|
42
|
+
opencode: Object.freeze({
|
|
43
|
+
changes: false,
|
|
44
|
+
reason: 'OpenCode has no operating-system sandbox, only permission rules, so nothing it starts needs administrator approval.',
|
|
45
|
+
}),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
/** Only `true` turns it on: anything else (missing, a string, null) is the default, off. */
|
|
49
|
+
export function normalizeAdminSandbox(value) {
|
|
50
|
+
return value === true;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Providers the setting changes (['codex']): what the panel's copy may name. */
|
|
54
|
+
export function adminSandboxProviders() {
|
|
55
|
+
return Object.keys(SANDBOX_ELEVATION).filter((provider) => SANDBOX_ELEVATION[provider].changes);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* What a launcher of `provider` adds for the setting: `args` (CLI words, before
|
|
60
|
+
* the subcommand or anywhere an override is taken), `config` (the same as an
|
|
61
|
+
* SDK config object) and `value`. A provider the setting does not change gets
|
|
62
|
+
* nothing to add and its reason. An unknown provider throws: it must declare
|
|
63
|
+
* its mapping in SANDBOX_ELEVATION first.
|
|
64
|
+
*/
|
|
65
|
+
export function sandboxElevationFor(provider, adminSandbox) {
|
|
66
|
+
const entry = SANDBOX_ELEVATION[provider];
|
|
67
|
+
if (!entry) throw new Error(`No admin sandbox mapping for provider "${provider}": add it to SANDBOX_ELEVATION.`);
|
|
68
|
+
const on = normalizeAdminSandbox(adminSandbox);
|
|
69
|
+
if (!entry.changes) return { provider, changes: false, adminSandbox: on, value: null, args: [], config: {}, reason: entry.reason };
|
|
70
|
+
const value = on ? entry.on : entry.off;
|
|
71
|
+
return { provider, changes: true, adminSandbox: on, value, args: ['-c', `${entry.setting}=${JSON.stringify(value)}`], config: configAt(entry.setting, value), reason: entry.reason };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function configAt(dotted, value) {
|
|
75
|
+
const keys = dotted.split('.');
|
|
76
|
+
const out = {};
|
|
77
|
+
let node = out;
|
|
78
|
+
keys.forEach((key, index) => { node[key] = index === keys.length - 1 ? value : {}; node = node[key]; });
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** 'elevated' when the setting is on, else 'unelevated'. */
|
|
83
|
+
export function codexWindowsSandbox(adminSandbox) {
|
|
84
|
+
return sandboxElevationFor('codex', adminSandbox).value;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/** ['-c', 'windows.sandbox="unelevated"'] (or "elevated"): a Codex launch override. */
|
|
88
|
+
export function codexWindowsSandboxArgs(adminSandbox) {
|
|
89
|
+
return sandboxElevationFor('codex', adminSandbox).args;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** { windows: { sandbox: 'unelevated' } } (or 'elevated'): the same for the Codex SDK's `config`. */
|
|
93
|
+
export function codexWindowsSandboxConfig(adminSandbox) {
|
|
94
|
+
return sandboxElevationFor('codex', adminSandbox).config;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* A Codex process that runs no command and no turn (a probe in a throwaway
|
|
99
|
+
* home: hooks, settings schema, feature switches) needs no sandbox at all: it
|
|
100
|
+
* is always started with the one that needs no administrator, whatever the setting.
|
|
101
|
+
*/
|
|
102
|
+
export const CODEX_PROBE_SANDBOX_ARGS = Object.freeze([...codexWindowsSandboxArgs(false)]);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// ═══════════════════════════════════════════
|
|
2
|
+
// SynaBun — Admin sandbox: the one global value
|
|
3
|
+
// ═══════════════════════════════════════════
|
|
4
|
+
//
|
|
5
|
+
// DATA_HOME/data/agent-sandbox.json ({ adminSandbox, updatedAt }), read live:
|
|
6
|
+
// one value for every agent SynaBun starts, not per session or tab. No file
|
|
7
|
+
// (or one that cannot be read) is the default, off. What the value means for
|
|
8
|
+
// each provider is lib/agent-sandbox-elevation.js. Only the UI changes it
|
|
9
|
+
// (PUT /api/assistant/admin-sandbox answers UI_ONLY to agents); a change
|
|
10
|
+
// reaches every window as `agents:admin-sandbox-changed` and every listener
|
|
11
|
+
// (server.js restarts the idle Codex app-servers there).
|
|
12
|
+
|
|
13
|
+
import { mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from 'node:fs';
|
|
14
|
+
import { dirname } from 'node:path';
|
|
15
|
+
import { ADMIN_SANDBOX_DEFAULT, adminSandboxProviders, normalizeAdminSandbox } from './agent-sandbox-elevation.js';
|
|
16
|
+
|
|
17
|
+
export const ADMIN_SANDBOX_EVENT = 'agents:admin-sandbox-changed';
|
|
18
|
+
|
|
19
|
+
export function createAdminSandboxSetting({ path, broadcast = () => {}, log = () => {}, now = Date.now } = {}) {
|
|
20
|
+
if (!path) throw new Error('createAdminSandboxSetting requires a path');
|
|
21
|
+
const listeners = new Set();
|
|
22
|
+
let cache = null; // { mtimeMs, value }
|
|
23
|
+
|
|
24
|
+
function read() {
|
|
25
|
+
try {
|
|
26
|
+
const stat = statSync(path);
|
|
27
|
+
if (cache && cache.mtimeMs === stat.mtimeMs) return cache.value;
|
|
28
|
+
const data = JSON.parse(readFileSync(path, 'utf8'));
|
|
29
|
+
const value = normalizeAdminSandbox(data?.adminSandbox);
|
|
30
|
+
cache = { mtimeMs: stat.mtimeMs, value };
|
|
31
|
+
return value;
|
|
32
|
+
} catch {
|
|
33
|
+
return ADMIN_SANDBOX_DEFAULT;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** What the UI shows: the value and the providers it changes. */
|
|
37
|
+
function view() {
|
|
38
|
+
return { adminSandbox: read(), providers: adminSandboxProviders() };
|
|
39
|
+
}
|
|
40
|
+
function set(value) {
|
|
41
|
+
const next = normalizeAdminSandbox(value);
|
|
42
|
+
const before = read();
|
|
43
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
44
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
45
|
+
writeFileSync(tmp, JSON.stringify({ adminSandbox: next, updatedAt: new Date(now()).toISOString() }, null, 2) + '\n', 'utf8');
|
|
46
|
+
renameSync(tmp, path);
|
|
47
|
+
cache = null;
|
|
48
|
+
const changed = next !== before;
|
|
49
|
+
if (changed) log('agent-sandbox', `admin sandbox ${next ? 'on' : 'off'}`);
|
|
50
|
+
try { broadcast({ type: ADMIN_SANDBOX_EVENT, ...view() }); } catch { /* nobody listening */ }
|
|
51
|
+
if (changed) for (const listener of [...listeners]) { try { listener(next); } catch { /* the listener's own failure */ } }
|
|
52
|
+
return view();
|
|
53
|
+
}
|
|
54
|
+
function subscribe(listener) { listeners.add(listener); return () => listeners.delete(listener); }
|
|
55
|
+
|
|
56
|
+
return { enabled: read, view, set, subscribe, path };
|
|
57
|
+
}
|