aicodeman 1.35.0 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -7
- package/dist/attachment-registry.d.ts +6 -0
- package/dist/attachment-registry.d.ts.map +1 -1
- package/dist/attachment-registry.js +9 -3
- package/dist/attachment-registry.js.map +1 -1
- package/dist/cli-agent.d.ts +225 -0
- package/dist/cli-agent.d.ts.map +1 -0
- package/dist/cli-agent.js +767 -0
- package/dist/cli-agent.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -32
- package/dist/cli.js.map +1 -1
- package/dist/codeman-credentials.d.ts +27 -0
- package/dist/codeman-credentials.d.ts.map +1 -0
- package/dist/codeman-credentials.js +66 -0
- package/dist/codeman-credentials.js.map +1 -0
- package/dist/config/cli-registry/patterns.d.ts +6 -0
- package/dist/config/cli-registry/patterns.d.ts.map +1 -1
- package/dist/config/cli-registry/patterns.js +13 -0
- package/dist/config/cli-registry/patterns.js.map +1 -1
- package/dist/config/cli-registry/schema.d.ts +15 -0
- package/dist/config/cli-registry/schema.d.ts.map +1 -1
- package/dist/config/cli-registry/schema.js +63 -2
- package/dist/config/cli-registry/schema.js.map +1 -1
- package/dist/config/cli-registry/stock.d.ts.map +1 -1
- package/dist/config/cli-registry/stock.js +180 -7
- package/dist/config/cli-registry/stock.js.map +1 -1
- package/dist/config/cli-registry/types.d.ts +105 -7
- package/dist/config/cli-registry/types.d.ts.map +1 -1
- package/dist/deepseek-route-config.d.ts +110 -0
- package/dist/deepseek-route-config.d.ts.map +1 -0
- package/dist/deepseek-route-config.js +477 -0
- package/dist/deepseek-route-config.js.map +1 -0
- package/dist/git-clone.d.ts.map +1 -1
- package/dist/git-clone.js +4 -0
- package/dist/git-clone.js.map +1 -1
- package/dist/git-workspace-status.d.ts +31 -5
- package/dist/git-workspace-status.d.ts.map +1 -1
- package/dist/git-workspace-status.js +49 -29
- package/dist/git-workspace-status.js.map +1 -1
- package/dist/image-watcher.d.ts.map +1 -1
- package/dist/image-watcher.js +6 -2
- package/dist/image-watcher.js.map +1 -1
- package/dist/mcp-sync-targets.d.ts +34 -0
- package/dist/mcp-sync-targets.d.ts.map +1 -0
- package/dist/mcp-sync-targets.js +55 -0
- package/dist/mcp-sync-targets.js.map +1 -0
- package/dist/mcp-sync.d.ts +2 -1
- package/dist/mcp-sync.d.ts.map +1 -1
- package/dist/mcp-sync.js +62 -1
- package/dist/mcp-sync.js.map +1 -1
- package/dist/model-config-resolvers.d.ts +29 -0
- package/dist/model-config-resolvers.d.ts.map +1 -0
- package/dist/model-config-resolvers.js +34 -0
- package/dist/model-config-resolvers.js.map +1 -0
- package/dist/session-display-model.d.ts +110 -0
- package/dist/session-display-model.d.ts.map +1 -0
- package/dist/session-display-model.js +154 -0
- package/dist/session-display-model.js.map +1 -0
- package/dist/session.d.ts +145 -8
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +290 -39
- package/dist/session.js.map +1 -1
- package/dist/subagent-watcher.d.ts.map +1 -1
- package/dist/subagent-watcher.js +29 -6
- package/dist/subagent-watcher.js.map +1 -1
- package/dist/templates/case-template.md +2 -0
- package/dist/tmux-manager.d.ts +5 -0
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +47 -22
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tui/tui-client.d.ts +3 -17
- package/dist/tui/tui-client.d.ts.map +1 -1
- package/dist/tui/tui-client.js +3 -44
- package/dist/tui/tui-client.js.map +1 -1
- package/dist/types/session.d.ts +28 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js.map +1 -1
- package/dist/types/tools.d.ts +1 -1
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/deepseek-cli-resolver.d.ts +8 -0
- package/dist/utils/deepseek-cli-resolver.d.ts.map +1 -1
- package/dist/utils/deepseek-cli-resolver.js +18 -2
- package/dist/utils/deepseek-cli-resolver.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/process-exit-wait.d.ts +40 -0
- package/dist/utils/process-exit-wait.d.ts.map +1 -0
- package/dist/utils/process-exit-wait.js +68 -0
- package/dist/utils/process-exit-wait.js.map +1 -0
- package/dist/web/launch-defaults.d.ts +22 -0
- package/dist/web/launch-defaults.d.ts.map +1 -0
- package/dist/web/launch-defaults.js +46 -0
- package/dist/web/launch-defaults.js.map +1 -0
- package/dist/web/paste-image-gc.d.ts +46 -6
- package/dist/web/paste-image-gc.d.ts.map +1 -1
- package/dist/web/paste-image-gc.js +106 -32
- package/dist/web/paste-image-gc.js.map +1 -1
- package/dist/web/public/admin-ui.js.gz +0 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.6f8552e1.js +43 -0
- package/dist/web/public/app.6f8552e1.js.br +0 -0
- package/dist/web/public/app.6f8552e1.js.gz +0 -0
- package/dist/web/public/approvals-ui.js.gz +0 -0
- package/dist/web/public/{constants.d95fade9.js → constants.bc9c1f63.js} +1276 -127
- package/dist/web/public/constants.bc9c1f63.js.br +0 -0
- package/dist/web/public/constants.bc9c1f63.js.gz +0 -0
- package/dist/web/public/cron-ui.js.gz +0 -0
- package/dist/web/public/entrance-animations.js +491 -43
- package/dist/web/public/entrance-animations.js.br +0 -0
- package/dist/web/public/entrance-animations.js.gz +0 -0
- package/dist/web/public/git-status-ui.js +55 -9
- package/dist/web/public/git-status-ui.js.br +0 -0
- package/dist/web/public/git-status-ui.js.gz +0 -0
- package/dist/web/public/home-sessions.js +13 -9
- package/dist/web/public/home-sessions.js.br +0 -0
- package/dist/web/public/home-sessions.js.gz +0 -0
- package/dist/web/public/host-wake-ui.js.gz +0 -0
- package/dist/web/public/i18n.a9840ea2.js +2 -0
- package/dist/web/public/i18n.a9840ea2.js.br +0 -0
- package/dist/web/public/i18n.a9840ea2.js.gz +0 -0
- package/dist/web/public/{image-input.a216cf9e.js → image-input.e00471c6.js} +21 -9
- package/dist/web/public/image-input.e00471c6.js.br +0 -0
- package/dist/web/public/image-input.e00471c6.js.gz +0 -0
- package/dist/web/public/index.html +250 -59
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/input-cjk.8bc46081.js.gz +0 -0
- package/dist/web/public/keyboard-accessory.c1e7c7b7.js.gz +0 -0
- package/dist/web/public/{mobile-handlers.23a85db1.js → mobile-handlers.0ef9c311.js} +20 -0
- package/dist/web/public/mobile-handlers.0ef9c311.js.br +0 -0
- package/dist/web/public/mobile-handlers.0ef9c311.js.gz +0 -0
- package/dist/web/public/mobile-ime-preview.2dbaf262.js.gz +0 -0
- package/dist/web/public/mobile-overview.js.gz +0 -0
- package/dist/web/public/mobile.111b187d.css +1 -0
- package/dist/web/public/mobile.111b187d.css.br +0 -0
- package/dist/web/public/mobile.111b187d.css.gz +0 -0
- package/dist/web/public/{notification-manager.50bb87d8.js → notification-manager.feb82c04.js} +19 -2
- package/dist/web/public/notification-manager.feb82c04.js.br +0 -0
- package/dist/web/public/notification-manager.feb82c04.js.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/{panels-ui.6a5898d9.js → panels-ui.71846fcb.js} +4 -4
- package/dist/web/public/panels-ui.71846fcb.js.br +0 -0
- package/dist/web/public/panels-ui.71846fcb.js.gz +0 -0
- package/dist/web/public/ralph-panel.b350e2ef.js.gz +0 -0
- package/dist/web/public/ralph-wizard.b6c0dd19.js.gz +0 -0
- package/dist/web/public/readmymind-ui.js.gz +0 -0
- package/dist/web/public/reboot-restore-ui.js.gz +0 -0
- package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
- package/dist/web/public/sanitize-html.e7147e76.js.gz +0 -0
- package/dist/web/public/session-lineage.js +229 -86
- package/dist/web/public/session-lineage.js.br +0 -0
- package/dist/web/public/session-lineage.js.gz +0 -0
- package/dist/web/public/session-ui.f731602c.js +100 -0
- package/dist/web/public/session-ui.f731602c.js.br +0 -0
- package/dist/web/public/session-ui.f731602c.js.gz +0 -0
- package/dist/web/public/settings-ui.4e33390f.js +97 -0
- package/dist/web/public/settings-ui.4e33390f.js.br +0 -0
- package/dist/web/public/settings-ui.4e33390f.js.gz +0 -0
- package/dist/web/public/spreadsheet-preview-worker.js +290 -0
- package/dist/web/public/spreadsheet-preview-worker.js.br +0 -0
- package/dist/web/public/spreadsheet-preview-worker.js.gz +0 -0
- package/dist/web/public/spreadsheet-preview.af82fa2f.js +555 -0
- package/dist/web/public/spreadsheet-preview.af82fa2f.js.br +0 -0
- package/dist/web/public/spreadsheet-preview.af82fa2f.js.gz +0 -0
- package/dist/web/public/spreadsheet-xlsx-core.js +1006 -0
- package/dist/web/public/spreadsheet-xlsx-core.js.br +0 -0
- package/dist/web/public/spreadsheet-xlsx-core.js.gz +0 -0
- package/dist/web/public/styles.81a72906.css +1 -0
- package/dist/web/public/styles.81a72906.css.br +0 -0
- package/dist/web/public/styles.81a72906.css.gz +0 -0
- package/dist/web/public/{subagent-windows.e6ca799f.js → subagent-windows.07277a58.js} +7 -5
- package/dist/web/public/subagent-windows.07277a58.js.br +0 -0
- package/dist/web/public/subagent-windows.07277a58.js.gz +0 -0
- package/dist/web/public/sw.js +2 -2
- package/dist/web/public/sw.js.br +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/tab-layout-browser.065fcba4.js.gz +0 -0
- package/dist/web/public/{tab-rail-resize.94cd59f0.js → tab-rail-resize.a5867793.js} +1 -1
- package/dist/web/public/tab-rail-resize.a5867793.js.br +0 -0
- package/dist/web/public/{tab-rail-resize.94cd59f0.js.gz → tab-rail-resize.a5867793.js.gz} +0 -0
- package/dist/web/public/terminal-keycode229-recovery.af09f99a.js +1 -0
- package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.br +0 -0
- package/dist/web/public/terminal-keycode229-recovery.af09f99a.js.gz +0 -0
- package/dist/web/public/terminal-split.js +146 -649
- package/dist/web/public/terminal-split.js.br +0 -0
- package/dist/web/public/terminal-split.js.gz +0 -0
- package/dist/web/public/terminal-tile.js +1688 -0
- package/dist/web/public/terminal-tile.js.br +0 -0
- package/dist/web/public/terminal-tile.js.gz +0 -0
- package/dist/web/public/terminal-ui.b7267005.js +2 -0
- package/dist/web/public/terminal-ui.b7267005.js.br +0 -0
- package/dist/web/public/terminal-ui.b7267005.js.gz +0 -0
- package/dist/web/public/tile-grid.js +2895 -0
- package/dist/web/public/tile-grid.js.br +0 -0
- package/dist/web/public/tile-grid.js.gz +0 -0
- package/dist/web/public/ultracode-panel.js.gz +0 -0
- package/dist/web/public/ultracode-windows.js +9 -6
- package/dist/web/public/ultracode-windows.js.br +0 -0
- package/dist/web/public/ultracode-windows.js.gz +0 -0
- package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
- package/dist/web/public/vendor/exceljs.min.js +44 -0
- package/dist/web/public/vendor/exceljs.min.js.br +0 -0
- package/dist/web/public/vendor/exceljs.min.js.gz +0 -0
- package/dist/web/public/vendor/fflate.min.js +1 -0
- package/dist/web/public/vendor/fflate.min.js.br +0 -0
- package/dist/web/public/vendor/fflate.min.js.gz +0 -0
- package/dist/web/public/vendor/marked.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-predictive-echo.ae5e3d5d.js.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js +4 -0
- package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js.br +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.0b69623c.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/{voice-input.c4b51eb6.js → voice-input.2342c37b.js} +64 -10
- package/dist/web/public/voice-input.2342c37b.js.br +0 -0
- package/dist/web/public/voice-input.2342c37b.js.gz +0 -0
- package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
- package/dist/web/public/webview-tabs.js +9 -1
- package/dist/web/public/webview-tabs.js.br +0 -0
- package/dist/web/public/webview-tabs.js.gz +0 -0
- package/dist/web/routes/cli-registry-routes.d.ts +23 -4
- package/dist/web/routes/cli-registry-routes.d.ts.map +1 -1
- package/dist/web/routes/cli-registry-routes.js +95 -8
- package/dist/web/routes/cli-registry-routes.js.map +1 -1
- package/dist/web/routes/file-routes.d.ts +7 -0
- package/dist/web/routes/file-routes.d.ts.map +1 -1
- package/dist/web/routes/file-routes.js +34 -4
- package/dist/web/routes/file-routes.js.map +1 -1
- package/dist/web/routes/git-status-routes.d.ts.map +1 -1
- package/dist/web/routes/git-status-routes.js +33 -6
- package/dist/web/routes/git-status-routes.js.map +1 -1
- package/dist/web/routes/mcp-sync-routes.d.ts +7 -2
- package/dist/web/routes/mcp-sync-routes.d.ts.map +1 -1
- package/dist/web/routes/mcp-sync-routes.js +10 -3
- package/dist/web/routes/mcp-sync-routes.js.map +1 -1
- package/dist/web/routes/reboot-restore-routes.js +1 -1
- package/dist/web/routes/reboot-restore-routes.js.map +1 -1
- package/dist/web/routes/session-routes.d.ts +18 -0
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +154 -69
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/routes/status-telemetry-routes.d.ts +3 -0
- package/dist/web/routes/status-telemetry-routes.d.ts.map +1 -1
- package/dist/web/routes/status-telemetry-routes.js +12 -0
- package/dist/web/routes/status-telemetry-routes.js.map +1 -1
- package/dist/web/routes/system-routes.d.ts.map +1 -1
- package/dist/web/routes/system-routes.js +13 -0
- package/dist/web/routes/system-routes.js.map +1 -1
- package/dist/web/schemas.d.ts +30 -0
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +43 -0
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts +6 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +47 -21
- package/dist/web/server.js.map +1 -1
- package/dist/web/session-listener-wiring.d.ts +1 -0
- package/dist/web/session-listener-wiring.d.ts.map +1 -1
- package/dist/web/session-listener-wiring.js +11 -0
- package/dist/web/session-listener-wiring.js.map +1 -1
- package/package.json +6 -4
- package/scripts/postinstall.js +16 -0
- package/skills/codeman/SKILL.md +6 -0
- package/README.zh-CN.md +0 -1139
- package/dist/web/public/app.b9516c7b.js +0 -43
- package/dist/web/public/app.b9516c7b.js.br +0 -0
- package/dist/web/public/app.b9516c7b.js.gz +0 -0
- package/dist/web/public/constants.d95fade9.js.br +0 -0
- package/dist/web/public/constants.d95fade9.js.gz +0 -0
- package/dist/web/public/i18n.52f5b7cc.js +0 -1
- package/dist/web/public/i18n.52f5b7cc.js.br +0 -0
- package/dist/web/public/i18n.52f5b7cc.js.gz +0 -0
- package/dist/web/public/image-input.a216cf9e.js.br +0 -0
- package/dist/web/public/image-input.a216cf9e.js.gz +0 -0
- package/dist/web/public/mobile-handlers.23a85db1.js.br +0 -0
- package/dist/web/public/mobile-handlers.23a85db1.js.gz +0 -0
- package/dist/web/public/mobile.1aa4952d.css +0 -1
- package/dist/web/public/mobile.1aa4952d.css.br +0 -0
- package/dist/web/public/mobile.1aa4952d.css.gz +0 -0
- package/dist/web/public/notification-manager.50bb87d8.js.br +0 -0
- package/dist/web/public/notification-manager.50bb87d8.js.gz +0 -0
- package/dist/web/public/panels-ui.6a5898d9.js.br +0 -0
- package/dist/web/public/panels-ui.6a5898d9.js.gz +0 -0
- package/dist/web/public/session-ui.6bddf916.js +0 -89
- package/dist/web/public/session-ui.6bddf916.js.br +0 -0
- package/dist/web/public/session-ui.6bddf916.js.gz +0 -0
- package/dist/web/public/settings-ui.6e798b7b.js +0 -97
- package/dist/web/public/settings-ui.6e798b7b.js.br +0 -0
- package/dist/web/public/settings-ui.6e798b7b.js.gz +0 -0
- package/dist/web/public/styles.2d175c60.css +0 -1
- package/dist/web/public/styles.2d175c60.css.br +0 -0
- package/dist/web/public/styles.2d175c60.css.gz +0 -0
- package/dist/web/public/subagent-windows.e6ca799f.js.br +0 -0
- package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
- package/dist/web/public/tab-rail-resize.94cd59f0.js.br +0 -0
- package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js +0 -1
- package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js.br +0 -0
- package/dist/web/public/terminal-keycode229-recovery.fb91b25b.js.gz +0 -0
- package/dist/web/public/terminal-ui.a4535311.js +0 -2
- package/dist/web/public/terminal-ui.a4535311.js.br +0 -0
- package/dist/web/public/terminal-ui.a4535311.js.gz +0 -0
- package/dist/web/public/upload.html +0 -155
- package/dist/web/public/upload.html.br +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js +0 -4
- package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js.br +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.bbb5f84c.js.gz +0 -0
- package/dist/web/public/voice-input.c4b51eb6.js.br +0 -0
- package/dist/web/public/voice-input.c4b51eb6.js.gz +0 -0
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
<link rel="manifest" href="manifest.json">
|
|
17
17
|
<title>Codeman</title>
|
|
18
18
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%2360a5fa'/%3E%3Cstop offset='100%25' stop-color='%233b82f6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='32' height='32' rx='6' fill='%230a0a0a'/%3E%3Cpath d='M18 4L8 18h6l-2 10 10-14h-6z' fill='url(%23g)'/%3E%3C/svg%3E">
|
|
19
|
-
<link rel="stylesheet" href="styles.
|
|
20
|
-
<link rel="stylesheet" href="mobile.
|
|
19
|
+
<link rel="stylesheet" href="styles.81a72906.css">
|
|
20
|
+
<link rel="stylesheet" href="mobile.111b187d.css" media="(max-width: 1023px)">
|
|
21
21
|
<!-- xterm.css loaded async — terminal won't display until xterm.js runs anyway -->
|
|
22
22
|
<link rel="preload" href="vendor/xterm.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
|
23
23
|
<noscript><link rel="stylesheet" href="vendor/xterm.css"></noscript>
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
<!-- Symbols font before the terminal first paints — a late-loading icon font
|
|
28
28
|
leaves tofu in xterm's glyph atlas until something forces a re-render. -->
|
|
29
29
|
<link rel="preload" href="fonts/symbols-nerd-font-mono.woff2" as="font" type="font/woff2" crossorigin>
|
|
30
|
-
<link rel="preload" href="constants.
|
|
31
|
-
<link rel="preload" href="app.
|
|
30
|
+
<link rel="preload" href="constants.bc9c1f63.js" as="script">
|
|
31
|
+
<link rel="preload" href="app.6f8552e1.js" as="script">
|
|
32
32
|
<!-- Self-hosted xterm.js — eliminates CDN DNS/TLS latency (~100ms).
|
|
33
33
|
'defer' preserves execution order (xterm loads before fit addon). -->
|
|
34
34
|
<script defer src="vendor/xterm.min.js"></script>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<script defer src="vendor/xterm-addon-serialize.min.js"></script>
|
|
41
41
|
<!-- WebGL addon lazy-loaded by app.js on desktop only (skipped on mobile, saving 244KB) -->
|
|
42
42
|
<script defer src="vendor/xterm-addon-unicode11.min.js"></script>
|
|
43
|
-
<script defer src="vendor/xterm-zerolag-input.
|
|
43
|
+
<script defer src="vendor/xterm-zerolag-input.0b69623c.js"></script>
|
|
44
44
|
<script defer src="vendor/xterm-predictive-echo.ae5e3d5d.js"></script>
|
|
45
45
|
<script defer src="vendor/marked.min.js"></script>
|
|
46
46
|
<!-- DOMPurify (allowlist HTML sanitizer for rendered markdown).
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
app.js, NOT the handheld storage-key test `m`. Use a different predicate
|
|
66
66
|
here and boot will contradict this value, animating the drawer open by
|
|
67
67
|
itself on every load between 768 and 1023px. -->
|
|
68
|
-
<script>try{var m=window.innerWidth<768||(('ontouchstart' in window||navigator.maxTouchPoints>0)&&window.innerWidth<1024);var k=m?'codeman-app-settings-mobile':'codeman-app-settings';var A=JSON.parse(localStorage.getItem(k)||'{}');var L=A.sessionListLayout;var F=Number(A.sessionSidebarFontSize);var solo=/^\/session\//.test(location.pathname);var C=localStorage.getItem('codeman-sidebar-collapsed');var S=(L==='sidebar'||L==='sidebar-rich')&&!solo;document.documentElement.dataset.sessionList=S?'sidebar':'header';document.documentElement.dataset.sidebarDetail=(S&&L==='sidebar-rich')?'rich':'simple';document.documentElement.dataset.sidebar=(C===null?window.innerWidth<1024:C==='1')?'collapsed':'expanded';var V=A.tabOrientation==='vertical'&&!S&&!solo&&window.innerWidth>=768;document.documentElement.dataset.tabOrientation=V?'vertical':'horizontal';document.documentElement.dataset.tabRailDetail=(A.tabRailDetail==='simple')?'simple':'rich';document.documentElement.dataset.tabRailSort=(A.tabRailSort==='manual')?'manual':'activity';var W=Number(A.tabRailWidth);if(V){if(Number.isInteger(W)&&W>=208&&W<=360)document.documentElement.style.setProperty('--tab-rail-width',W+'px');else if(document.documentElement.dataset.tabRailDetail!=='simple')document.documentElement.style.setProperty('--tab-rail-width','320px');}if(Number.isInteger(F)&&F>=11&&F<=18)document.documentElement.style.setProperty('--session-sidebar-name-font-size',F+'px');}catch(e){document.documentElement.dataset.sessionList='header';document.documentElement.dataset.sidebarDetail='simple';document.documentElement.dataset.sidebar='expanded';document.documentElement.dataset.tabOrientation='horizontal';document.documentElement.dataset.tabRailDetail='rich';document.documentElement.dataset.tabRailSort='activity';}</script>
|
|
68
|
+
<script>try{var m=window.innerWidth<768||(('ontouchstart' in window||navigator.maxTouchPoints>0)&&window.innerWidth<1024);var k=m?'codeman-app-settings-mobile':'codeman-app-settings';var A=JSON.parse(localStorage.getItem(k)||'{}');var L=A.sessionListLayout;var F=Number(A.sessionSidebarFontSize);var solo=/^\/session\//.test(location.pathname);var C=localStorage.getItem('codeman-sidebar-collapsed');var S=(L==='sidebar'||L==='sidebar-rich')&&!solo;document.documentElement.dataset.sessionList=S?'sidebar':'header';document.documentElement.dataset.sidebarDetail=(S&&L==='sidebar-rich')?'rich':'simple';document.documentElement.dataset.sidebar=(C===null?window.innerWidth<1024:C==='1')?'collapsed':'expanded';var V=A.tabOrientation==='vertical'&&!S&&!solo&&window.innerWidth>=768;document.documentElement.dataset.tabOrientation=V?'vertical':'horizontal';document.documentElement.dataset.tabRailDetail=(A.tabRailDetail==='simple')?'simple':'rich';document.documentElement.dataset.tabRailSort=(A.tabRailSort==='manual')?'manual':'activity';var T=A.tabArrangement;document.documentElement.dataset.tabArrangement=(T==='state'||T==='case'||T==='ledger')?T:'classic';document.documentElement.dataset.tabStateOrder=(A.tabStateOrder==='urgent-last')?'urgent-last':'urgent-first';document.documentElement.dataset.tabLogos=(A.showTabCliLogos===false)?'off':'on';var H=A.headerStatsStyle;document.documentElement.dataset.headerStats=(window.innerWidth<768||solo)?'classic':(H==='classic'||H==='tiles')?H:'compact';var W=Number(A.tabRailWidth);if(V){if(Number.isInteger(W)&&W>=208&&W<=360)document.documentElement.style.setProperty('--tab-rail-width',W+'px');else if(document.documentElement.dataset.tabRailDetail!=='simple')document.documentElement.style.setProperty('--tab-rail-width','320px');}if(Number.isInteger(F)&&F>=11&&F<=18)document.documentElement.style.setProperty('--session-sidebar-name-font-size',F+'px');}catch(e){document.documentElement.dataset.sessionList='header';document.documentElement.dataset.sidebarDetail='simple';document.documentElement.dataset.sidebar='expanded';document.documentElement.dataset.tabOrientation='horizontal';document.documentElement.dataset.tabRailDetail='rich';document.documentElement.dataset.tabRailSort='activity';document.documentElement.dataset.tabArrangement='classic';document.documentElement.dataset.tabStateOrder='urgent-first';document.documentElement.dataset.headerStats='classic';document.documentElement.dataset.tabLogos='on';}</script>
|
|
69
69
|
<!-- Inline critical CSS for instant skeleton paint (before styles.css loads) -->
|
|
70
70
|
<style>
|
|
71
71
|
.loading-skeleton{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg-dark,#11151c)}
|
|
@@ -147,13 +147,14 @@
|
|
|
147
147
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
|
|
148
148
|
<span>Admin Panel</span>
|
|
149
149
|
</button>
|
|
150
|
-
<button class="btn-icon-header btn-solo-redock" id="soloRedockBtn" style="display: none;" onclick="
|
|
150
|
+
<button class="btn-icon-header btn-solo-redock" id="soloRedockBtn" style="display: none;" onclick="app._closeSoloWindow()" title="Re-dock to dashboard (close window)" aria-label="Re-dock session to dashboard">⊞</button>
|
|
151
151
|
<button class="tunnel-indicator" id="tunnelIndicator" style="display: none;" onclick="app.toggleTunnelPanel()" title="Cloudflare Tunnel" aria-label="Tunnel status">
|
|
152
152
|
<span class="tunnel-dot"></span>
|
|
153
153
|
</button>
|
|
154
154
|
<div class="connection-indicator" id="connectionIndicator" style="display: none;">
|
|
155
155
|
<span class="connection-dot" id="connectionDot"></span>
|
|
156
156
|
<span class="connection-text" id="connectionText"></span>
|
|
157
|
+
<span class="connection-tile"><span class="connection-tile-label" id="connectionTileLabel"></span><span class="connection-tile-value" id="connectionTileValue" data-i18n-skip></span></span>
|
|
157
158
|
</div>
|
|
158
159
|
<div class="header-font-controls">
|
|
159
160
|
<button class="btn-icon-header btn-sm" onclick="app.decreaseFontSize()" title="Decrease font (Ctrl+-)" aria-label="Decrease font size">A-</button>
|
|
@@ -162,6 +163,7 @@
|
|
|
162
163
|
</div>
|
|
163
164
|
<div class="header-system-stats" id="headerSystemStats" title="System resource usage">
|
|
164
165
|
<div class="stat-item">
|
|
166
|
+
<span class="stat-ring" id="statCpuRing" aria-hidden="true"></span>
|
|
165
167
|
<span class="stat-label">CPU</span>
|
|
166
168
|
<div class="stat-bar">
|
|
167
169
|
<div class="stat-bar-fill stat-bar-cpu" id="statCpuBar"></div>
|
|
@@ -169,6 +171,7 @@
|
|
|
169
171
|
<span class="stat-value" id="statCpu">--%</span>
|
|
170
172
|
</div>
|
|
171
173
|
<div class="stat-item">
|
|
174
|
+
<span class="stat-ring" id="statMemRing" aria-hidden="true"></span>
|
|
172
175
|
<span class="stat-label">MEM</span>
|
|
173
176
|
<div class="stat-bar">
|
|
174
177
|
<div class="stat-bar-fill stat-bar-mem" id="statMemBar"></div>
|
|
@@ -189,9 +192,10 @@
|
|
|
189
192
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"/></svg>
|
|
190
193
|
<span class="attachment-history-badge" id="attachmentHistoryBadge" style="display:none;">0</span>
|
|
191
194
|
</button>
|
|
192
|
-
<button class="btn-icon-header btn-file-viewer" onclick="app.toggleFileBrowserButton()" title="File Viewer" aria-label="Open file viewer" aria-expanded="false"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></svg></button>
|
|
195
|
+
<button class="btn-icon-header btn-file-viewer" onclick="app.toggleFileBrowserButton()" title="File Viewer" aria-label="Open file viewer" aria-expanded="false"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path class="icon-folder-closed" d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><g class="icon-folder-open"><path d="M3 17V7a2 2 0 0 1 2-2h4l2 2h6a2 2 0 0 1 2 2v1.5"/><path d="M3 17l2.3-5.4A2 2 0 0 1 7.2 10.5H20a1.5 1.5 0 0 1 1.4 2l-1.9 5.2A2 2 0 0 1 17.6 19H5a2 2 0 0 1-2-2z"/></g></svg></button>
|
|
193
196
|
<button class="btn-icon-header btn-multimonitor btn-multimonitor--hidden" onclick="app.launchMultiMonitor()" title="Open Codeman across all displays" aria-label="Open Codeman across all displays"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="4" width="13" height="9" rx="1.5"/><rect x="11" y="9" width="11" height="8" rx="1.5"/></svg></button>
|
|
194
197
|
<button class="btn-icon-header btn-split btn-split--hidden" onclick="app.openSplitPicker(event)" title="Split: open a second session beside this one" aria-label="Split: open a second session beside this one" aria-pressed="false"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="20" height="18" rx="2"/><line x1="12" y1="3" x2="12" y2="21"/></svg></button>
|
|
198
|
+
<button class="btn-icon-header btn-tile-grid btn-tile-grid--hidden" onclick="app.toggleTileGrid()" oncontextmenu="app.openTileCountMenu(event)" aria-describedby="tileGridHint" aria-label="Tiles: show several sessions side by side (right-click for how many)" aria-pressed="false"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="8" height="8" rx="1"/><rect x="13" y="3" width="8" height="8" rx="1"/><rect x="3" y="13" width="8" height="8" rx="1"/><rect x="13" y="13" width="8" height="8" rx="1"/></svg></button>
|
|
195
199
|
<button class="btn-icon-header btn-ultracode-agents btn-ultracode-agents--hidden" onclick="app.toggleUltracodeAgentsPanel()" title="Ultracode / Workflow agents" aria-label="Open ultracode workflow agents"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="6" cy="6" r="2.5"/><circle cx="6" cy="18" r="2.5"/><circle cx="18" cy="12" r="2.5"/><path d="M8.2 7.2 15.6 11M8.2 16.8 15.6 13"/></svg></button>
|
|
196
200
|
<div class="header-plan-usage header-plan-usage--hidden" id="planUsageChip" title="Claude and Codex plan usage limits">—</div>
|
|
197
201
|
<button class="btn-icon-header btn-notifications" onclick="app.toggleNotifications()" title="Notifications" aria-label="Toggle notifications" style="display:none;">
|
|
@@ -390,6 +394,19 @@
|
|
|
390
394
|
<!-- Main Terminal Area -->
|
|
391
395
|
<main class="main">
|
|
392
396
|
<aside class="tab-rail" id="tabRail" aria-label="Session navigation">
|
|
397
|
+
<!-- Session-name search (app.js setTabRailSearch): a view filter over the
|
|
398
|
+
rows below, in memory only. Shown with the rail, never elsewhere. -->
|
|
399
|
+
<div class="session-sidebar-filter tab-rail-search">
|
|
400
|
+
<input type="search" id="tabRailSearch" class="session-sidebar-filter-input"
|
|
401
|
+
placeholder="Search sessions" aria-label="Search sessions"
|
|
402
|
+
autocomplete="off" spellcheck="false"
|
|
403
|
+
oninput="app.setTabRailSearch(this.value)"
|
|
404
|
+
onkeydown="app.handleTabRailSearchKeydown(event)">
|
|
405
|
+
<button type="button" id="tabRailSearchClear" class="tab-rail-search-clear"
|
|
406
|
+
aria-label="Clear search" title="Clear search"
|
|
407
|
+
onclick="app.clearTabRailSearch()" hidden>×</button>
|
|
408
|
+
</div>
|
|
409
|
+
<div id="tabRailSearchEmpty" class="tab-rail-search-empty" role="status" hidden>No sessions match</div>
|
|
393
410
|
<div
|
|
394
411
|
id="tabRailResizeHandle"
|
|
395
412
|
class="tab-rail-resize-handle"
|
|
@@ -435,6 +452,12 @@
|
|
|
435
452
|
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
|
|
436
453
|
</div>
|
|
437
454
|
|
|
455
|
+
<!-- Tile grid (tile-grid.js): 1 to 6 sessions side by side, each a
|
|
456
|
+
TerminalTile. A SIBLING of .terminal-wrap, never a parent: while
|
|
457
|
+
.main.tiles-active is set the main terminal is parked (hidden) and
|
|
458
|
+
this section takes its place. -->
|
|
459
|
+
<section class="tile-grid" id="tileGrid" aria-label="Tiled sessions"></section>
|
|
460
|
+
|
|
438
461
|
<!-- Web tab layer: one iframe per open dashboard, shown in place of the
|
|
439
462
|
terminal while a web tab is active. Frames stay mounted while hidden so
|
|
440
463
|
switching tabs does not reload (and re-authenticate) a dashboard. -->
|
|
@@ -450,9 +473,14 @@
|
|
|
450
473
|
<div class="welcome-content">
|
|
451
474
|
<h1 class="welcome-title">Codeman</h1>
|
|
452
475
|
<p class="welcome-desc">Manage AI Coding tools in persistent tmux sessions.</p>
|
|
476
|
+
<!-- Launchers (settings-ui.js renderWelcomeCliActions): one primary
|
|
477
|
+
button for the first agent in the registry catalog, then a chip
|
|
478
|
+
row for every other enabled CLI. The tunnel is not a launcher, so
|
|
479
|
+
it sits under them as a quiet link; settings-ui.js rewrites its
|
|
480
|
+
contents on every state change and owns its inline display. -->
|
|
453
481
|
<div class="welcome-actions">
|
|
454
482
|
<div class="welcome-cli-actions" id="welcomeCliActions"></div>
|
|
455
|
-
<button class="welcome-
|
|
483
|
+
<button type="button" class="welcome-tunnel-link" id="welcomeTunnelBtn" style="display: none;" onclick="app.toggleTunnelFromWelcome()">
|
|
456
484
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
|
|
457
485
|
Cloudflare Tunnel
|
|
458
486
|
</button>
|
|
@@ -690,11 +718,9 @@
|
|
|
690
718
|
<button class="btn-toolbar btn-enter" onclick="app.sendEnterKey()" title="Send Enter">
|
|
691
719
|
Enter
|
|
692
720
|
</button>
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
<button class="tab-count-btn" onclick="app.incrementShellCount()">+</button>
|
|
697
|
-
</div>
|
|
721
|
+
<!-- Run Shell had a second, identical instance-count stepper here. The
|
|
722
|
+
toolbar carried two of them side by side, so it is gone and Run
|
|
723
|
+
Shell reads the one above (#tabCount) like the Run button does. -->
|
|
698
724
|
<div class="case-select-group">
|
|
699
725
|
<div class="case-combobox" id="quickStartCasePicker">
|
|
700
726
|
<input
|
|
@@ -714,8 +740,9 @@
|
|
|
714
740
|
<select id="quickStartCase" class="toolbar-select case-native-select" title="Select case" aria-hidden="true" tabindex="-1">
|
|
715
741
|
<option value="testcase">testcase</option>
|
|
716
742
|
</select>
|
|
717
|
-
|
|
718
|
-
|
|
743
|
+
<!-- "New or link a case…" and "Case settings…" are the last two rows of
|
|
744
|
+
the case picker's own list (CASE_PICKER_ACTIONS, session-ui.js); the
|
|
745
|
+
"+" and gear buttons that sat here were removed (owner, 1.36.0). -->
|
|
719
746
|
<div class="case-settings-popover hidden" id="caseSettingsPopover">
|
|
720
747
|
<label class="checkbox-inline">
|
|
721
748
|
<input type="checkbox" id="caseAgentTeams" onchange="app.onCaseSettingChanged()">
|
|
@@ -807,7 +834,6 @@
|
|
|
807
834
|
<section class="shortcut-section">
|
|
808
835
|
<h4>Session</h4>
|
|
809
836
|
<div class="shortcuts-grid">
|
|
810
|
-
<div><kbd>Ctrl</kbd>+<kbd>W</kbd></div><div>Close Session</div>
|
|
811
837
|
<div><kbd>Ctrl/Cmd/Option</kbd>+<kbd>K</kbd></div><div>Find Open Session</div>
|
|
812
838
|
<div><kbd>Ctrl</kbd>+<kbd>Tab</kbd></div><div>Next Session</div>
|
|
813
839
|
<div><kbd>Alt/Option</kbd>+<kbd>[</kbd> / <kbd>Alt/Option</kbd>+<kbd>]</kbd></div><div>Previous / Next Session</div>
|
|
@@ -822,11 +848,23 @@
|
|
|
822
848
|
<div><kbd>Ctrl</kbd>+<kbd>}</kbd></div><div>Move Active Tab Right</div>
|
|
823
849
|
<div><kbd>ArrowLeft</kbd> / <kbd>ArrowUp</kbd></div><div>Focus Previous Tab</div>
|
|
824
850
|
<div><kbd>ArrowRight</kbd> / <kbd>ArrowDown</kbd></div><div>Focus Next Tab</div>
|
|
825
|
-
<div><kbd>Home</kbd></div><div>Focus First Tab</div>
|
|
851
|
+
<div><kbd data-i18n-skip>Home</kbd></div><div>Focus First Tab</div>
|
|
826
852
|
<div><kbd>End</kbd></div><div>Focus Last Tab</div>
|
|
827
853
|
<div><kbd>Enter</kbd> / <kbd>Space</kbd></div><div>Activate Focused Tab</div>
|
|
828
854
|
</div>
|
|
829
855
|
</section>
|
|
856
|
+
<section class="shortcut-section">
|
|
857
|
+
<h4>Tiles</h4>
|
|
858
|
+
<div class="shortcuts-grid">
|
|
859
|
+
<div><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd></div><div>Toggle Tile Grid</div>
|
|
860
|
+
<div><kbd>Alt/Option</kbd>+<kbd>Shift</kbd>+<kbd>Arrows</kbd></div><div>Focus Tile Left / Right / Up / Down</div>
|
|
861
|
+
<div><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Arrows</kbd></div><div>Move Tile Left / Right / Up / Down</div>
|
|
862
|
+
<div><kbd>Drag</kbd> a tile's header</div><div>Move the Tile (onto Another: Swap)</div>
|
|
863
|
+
<div><kbd>Alt/Option</kbd>+<kbd>Shift</kbd>+<kbd>Enter</kbd></div><div>Zoom Focused Tile</div>
|
|
864
|
+
<div><kbd>Ctrl/Cmd</kbd>+<kbd>Click</kbd> a tab</div><div>Add the Session to the Tile Grid</div>
|
|
865
|
+
<div><kbd>Right-click</kbd> the Tiles button</div><div>Choose How Many Tiles (2, 4 or 6)</div>
|
|
866
|
+
</div>
|
|
867
|
+
</section>
|
|
830
868
|
<section class="shortcut-section">
|
|
831
869
|
<h4>Terminal</h4>
|
|
832
870
|
<div class="shortcuts-grid">
|
|
@@ -1610,6 +1648,7 @@
|
|
|
1610
1648
|
Save; row-reverse keeps Save to the left of it on phones. -->
|
|
1611
1649
|
<div class="set-head-actions">
|
|
1612
1650
|
<button class="modal-close" onclick="app.closeAppSettings()" aria-label="Close app settings">×</button>
|
|
1651
|
+
<button class="set-head-save set-head-apply" onclick="app.applyAppSettings()" title="Save and keep Settings open">Apply</button>
|
|
1613
1652
|
<button class="set-head-save" onclick="app.saveAppSettings()">Save</button>
|
|
1614
1653
|
</div>
|
|
1615
1654
|
</div>
|
|
@@ -1638,6 +1677,10 @@
|
|
|
1638
1677
|
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 3a9 9 0 0 0 0 18 4.5 4.5 0 0 0 0-9 4.5 4.5 0 0 1 0-9z"/></svg>
|
|
1639
1678
|
<span>Appearance</span>
|
|
1640
1679
|
</button>
|
|
1680
|
+
<button type="button" class="set-rail-item" data-section="settings-animations">
|
|
1681
|
+
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l1.8 4.7L18.5 9.5l-4.7 1.8L12 16l-1.8-4.7L5.5 9.5l4.7-1.8z"/><path d="M19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z"/><path d="M3 19h6"/></svg>
|
|
1682
|
+
<span>Animations</span>
|
|
1683
|
+
</button>
|
|
1641
1684
|
<button type="button" class="set-rail-item" data-section="settings-models">
|
|
1642
1685
|
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3z"/><path d="M12 12l8-4.5M12 12v9M12 12L4 7.5"/></svg>
|
|
1643
1686
|
<span>Models</span>
|
|
@@ -1904,7 +1947,7 @@
|
|
|
1904
1947
|
<div class="set-group-head"><h4>Header buttons</h4><span class="set-scope">device</span></div>
|
|
1905
1948
|
<p class="set-group-hint">Tap to show a control in the header. Multi-monitor is the one entry here that syncs across devices.</p>
|
|
1906
1949
|
<div class="set-group-body">
|
|
1907
|
-
<div class="set-chips" data-search="header buttons plan usage font stats lifecycle response file viewer attachments monitor session away cron redraw">
|
|
1950
|
+
<div class="set-chips" data-search="header buttons plan usage font stats lifecycle response file viewer attachments monitor session away cron redraw split tiles">
|
|
1908
1951
|
<label class="set-chip" data-preview="header" data-preview-order="1" data-preview-text="A+"><input type="checkbox" id="appSettingsShowFontControls"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 20 10 5l6 15"/><path d="M6.5 15h7"/><path d="M18 12h4M20 10v4"/></svg><span>Font Size</span></label>
|
|
1909
1952
|
<label class="set-chip" data-preview="header" data-preview-order="2" data-preview-text="CPU 12%"><input type="checkbox" id="appSettingsShowSystemStats" checked><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 12h4l2.5-7 4 14L16 12h5"/></svg><span>System Stats</span></label>
|
|
1910
1953
|
<label class="set-chip" data-preview="header" data-preview-order="3"><input type="checkbox" id="appSettingsShowRedrawButton"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="1 4 1 10 7 10"/><polyline points="23 20 23 14 17 14"/><path d="M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"/></svg><span>Redraw Terminal</span></label>
|
|
@@ -1914,10 +1957,22 @@
|
|
|
1914
1957
|
<label class="set-chip" data-preview="header" data-preview-order="9"><input type="checkbox" id="appSettingsShowAttachmentsButton"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"/></svg><span>Attachments</span></label>
|
|
1915
1958
|
<label class="set-chip" data-preview="header" data-preview-order="10"><input type="checkbox" id="appSettingsShowFileViewerButton"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/></svg><span>File Viewer</span></label>
|
|
1916
1959
|
<label class="set-chip" data-preview="header" data-preview-order="11"><input type="checkbox" id="appSettingsShowMultiMonitorButton"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="4" width="13" height="9" rx="1.5"/><rect x="11" y="9" width="11" height="8" rx="1.5"/></svg><span>Multi-monitor</span></label>
|
|
1917
|
-
<label class="set-chip" data-preview="header" data-preview-order="11.5"><input type="checkbox" id="appSettingsShowSplitButton"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="20" height="18" rx="2"/><line x1="12" y1="3" x2="12" y2="21"/></svg><span>Split</span></label>
|
|
1960
|
+
<label class="set-chip" data-search="split pane side by side two sessions" data-preview="header" data-preview-order="11.5"><input type="checkbox" id="appSettingsShowSplitButton"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="20" height="18" rx="2"/><line x1="12" y1="3" x2="12" y2="21"/></svg><span>Split</span></label>
|
|
1961
|
+
<label class="set-chip" data-search="tiles tile grid side by side several sessions" data-preview="header" data-preview-order="11.6"><input type="checkbox" id="appSettingsShowTileGridButton"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="8" height="8" rx="1"/><rect x="13" y="3" width="8" height="8" rx="1"/><rect x="3" y="13" width="8" height="8" rx="1"/><rect x="13" y="13" width="8" height="8" rx="1"/></svg><span>Tiles</span></label>
|
|
1918
1962
|
<label class="set-chip" data-preview="header" data-preview-order="13" data-preview-text="42%"><input type="checkbox" id="appSettingsShowPlanUsageLimits"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 18a8 8 0 1 1 16 0"/><path d="M12 18l4.5-5"/></svg><span>Plan Usage</span></label>
|
|
1919
1963
|
<label class="set-chip" data-preview="header" data-preview-order="14"><input type="checkbox" id="appSettingsShowLifecycleLog"><svg class="set-chip-ico" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg><span>Lifecycle Log</span></label>
|
|
1920
1964
|
</div>
|
|
1965
|
+
<div class="set-row has-field" data-search="header stats style system cpu mem ws plan usage tiles compact rings">
|
|
1966
|
+
<div class="set-row-text">
|
|
1967
|
+
<span class="set-row-label">Header Stats Style <span class="set-tag">desktop</span></span>
|
|
1968
|
+
<span class="set-row-desc">How WS, CPU, MEM and the plan-usage windows are drawn. Compact puts a ring beside each value in two pills; Tiles put each label over its value with a bar underneath.</span>
|
|
1969
|
+
</div>
|
|
1970
|
+
<select id="appSettingsHeaderStatsStyle" class="set-select">
|
|
1971
|
+
<option value="classic">As before (bars)</option>
|
|
1972
|
+
<option value="compact">Compact (default)</option>
|
|
1973
|
+
<option value="tiles">Tiles (label over value)</option>
|
|
1974
|
+
</select>
|
|
1975
|
+
</div>
|
|
1921
1976
|
</div>
|
|
1922
1977
|
</div>
|
|
1923
1978
|
|
|
@@ -1972,6 +2027,20 @@
|
|
|
1972
2027
|
</div>
|
|
1973
2028
|
<label class="switch switch-sm"><input type="checkbox" id="appSettingsGitStatusTree" checked><span class="slider"></span></label>
|
|
1974
2029
|
</div>
|
|
2030
|
+
<div class="set-row" data-search="git status maximum repositories folder many repos limit">
|
|
2031
|
+
<div class="set-row-text">
|
|
2032
|
+
<span class="set-row-label">Git status: max repositories <span class="set-scope">device</span></span>
|
|
2033
|
+
<span class="set-row-desc">When the session's folder holds several projects instead of being one, the Git window lists up to this many (1 to 50, default 12). Each one costs a few git commands per refresh.</span>
|
|
2034
|
+
</div>
|
|
2035
|
+
<input type="number" id="appSettingsGitStatusMaxRepos" class="set-num" value="12" min="1" max="50" step="1">
|
|
2036
|
+
</div>
|
|
2037
|
+
<div class="set-row" data-search="git status timeout seconds slow share network">
|
|
2038
|
+
<div class="set-row-text">
|
|
2039
|
+
<span class="set-row-label">Git status: git timeout <span class="set-scope">device</span></span>
|
|
2040
|
+
<span class="set-row-desc">Seconds one git command may run before that repository is reported as unreadable (5 to 120, default 30). Raise it for repositories on a slow network share.</span>
|
|
2041
|
+
</div>
|
|
2042
|
+
<input type="number" id="appSettingsGitStatusTimeout" class="set-num" value="30" min="5" max="120" step="1">
|
|
2043
|
+
</div>
|
|
1975
2044
|
</div>
|
|
1976
2045
|
</div>
|
|
1977
2046
|
|
|
@@ -2002,7 +2071,7 @@
|
|
|
2002
2071
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 3a9 9 0 0 0 0 18 4.5 4.5 0 0 0 0-9 4.5 4.5 0 0 1 0-9z"/></svg>
|
|
2003
2072
|
<h2>Appearance</h2>
|
|
2004
2073
|
</div>
|
|
2005
|
-
<p class="set-section-blurb">Theme,
|
|
2074
|
+
<p class="set-section-blurb">Theme, and what this install calls itself.</p>
|
|
2006
2075
|
|
|
2007
2076
|
<div class="set-group">
|
|
2008
2077
|
<div class="set-group-head"><h4>Theme</h4><span class="set-scope">device</span></div>
|
|
@@ -2026,21 +2095,6 @@
|
|
|
2026
2095
|
</optgroup>
|
|
2027
2096
|
</select>
|
|
2028
2097
|
</div>
|
|
2029
|
-
<div class="set-row has-field" data-search="entrance animations motion tabs windows">
|
|
2030
|
-
<div class="set-row-text">
|
|
2031
|
-
<span class="set-row-label">Entrance Animations</span>
|
|
2032
|
-
<span class="set-row-desc">How new tabs, panes and agent windows arrive. Add ?animlab=1 to the URL for per-surface control.</span>
|
|
2033
|
-
</div>
|
|
2034
|
-
<select id="appSettingsEntranceAnim" class="set-select">
|
|
2035
|
-
<option value="legacy">Off (default)</option>
|
|
2036
|
-
<option value="terminal">Terminal (CRT)</option>
|
|
2037
|
-
<option value="beamdown">Beam down</option>
|
|
2038
|
-
<option value="softfocus">Soft focus (blur)</option>
|
|
2039
|
-
<option value="quiet">Quiet</option>
|
|
2040
|
-
<option value="playful">Playful</option>
|
|
2041
|
-
<option value="custom">Custom (set in the lab)</option>
|
|
2042
|
-
</select>
|
|
2043
|
-
</div>
|
|
2044
2098
|
</div>
|
|
2045
2099
|
</div>
|
|
2046
2100
|
|
|
@@ -2070,6 +2124,28 @@
|
|
|
2070
2124
|
<div class="set-group">
|
|
2071
2125
|
<div class="set-group-head"><h4>Tabs</h4><span class="set-scope">device</span></div>
|
|
2072
2126
|
<div class="set-group-body">
|
|
2127
|
+
<div class="set-row has-field" data-search="tab layout grouping group by state triage needs you waiting working idle case clusters ledger columns classic old new">
|
|
2128
|
+
<div class="set-row-text">
|
|
2129
|
+
<span class="set-row-label">Tab Layout</span>
|
|
2130
|
+
<span class="set-row-desc">By state: a row each for needs you, waiting, working and idle. By case: one box per case. Ledger: an aligned column grid. Classic: the single list, as before. By state and By case group the side rail and sidebar too. Alt+1..9 keeps the tab order.</span>
|
|
2131
|
+
</div>
|
|
2132
|
+
<select id="appSettingsTabArrangement" class="set-select">
|
|
2133
|
+
<option value="state">By state (rows per state)</option>
|
|
2134
|
+
<option value="case">By case (clusters)</option>
|
|
2135
|
+
<option value="ledger">Ledger (aligned columns)</option>
|
|
2136
|
+
<option value="classic">Classic (default)</option>
|
|
2137
|
+
</select>
|
|
2138
|
+
</div>
|
|
2139
|
+
<div class="set-row has-field" data-search="state order reverse needs you bottom top rows sections">
|
|
2140
|
+
<div class="set-row-text">
|
|
2141
|
+
<span class="set-row-label">State Order</span>
|
|
2142
|
+
<span class="set-row-desc">For Tab Layout by state. At the bottom flips the rows, so needs you sits right above the terminal.</span>
|
|
2143
|
+
</div>
|
|
2144
|
+
<select id="appSettingsTabStateOrder" class="set-select">
|
|
2145
|
+
<option value="urgent-first">Needs you on top (default)</option>
|
|
2146
|
+
<option value="urgent-last">Needs you at the bottom</option>
|
|
2147
|
+
</select>
|
|
2148
|
+
</div>
|
|
2073
2149
|
<div class="set-row has-field" data-search="tab orientation horizontal vertical side rail">
|
|
2074
2150
|
<div class="set-row-text">
|
|
2075
2151
|
<span class="set-row-label">Tab Orientation</span>
|
|
@@ -2093,7 +2169,7 @@
|
|
|
2093
2169
|
<div class="set-row has-field" data-search="tab rail sort order activity manual drag reorder">
|
|
2094
2170
|
<div class="set-row-text">
|
|
2095
2171
|
<span class="set-row-label">Vertical Rail Order</span>
|
|
2096
|
-
<span class="set-row-desc">By activity uses the home screen's order: blocked on you first, then whatever has been running longest, then the most recently quiet. Manual keeps your tab order and is the only mode you can drag rows in. Alt+1..9 always follows the tab order either way.</span>
|
|
2172
|
+
<span class="set-row-desc">By activity uses the home screen's order: blocked on you first, then whatever has been running longest, then the most recently quiet. Manual keeps your tab order and is the only mode you can drag rows in. With Tab Layout by state or by case it orders the rows inside each section. Alt+1..9 always follows the tab order either way.</span>
|
|
2097
2173
|
</div>
|
|
2098
2174
|
<select id="appSettingsTabRailSort" class="set-select">
|
|
2099
2175
|
<option value="activity">By activity (home screen order)</option>
|
|
@@ -2143,6 +2219,13 @@
|
|
|
2143
2219
|
</div>
|
|
2144
2220
|
<label class="switch switch-sm"><input type="checkbox" id="appSettingsTabTwoRows"><span class="slider"></span></label>
|
|
2145
2221
|
</div>
|
|
2222
|
+
<div class="set-row" data-search="cli logos on tabs logo icon harness agent cli tab hide">
|
|
2223
|
+
<div class="set-row-text">
|
|
2224
|
+
<span class="set-row-label">CLI Logos on Tabs</span>
|
|
2225
|
+
<span class="set-row-desc">Show each agent's CLI logo before the session name on tabs and the home screen's tab list. Off leaves the status dot and the shell's SH badge. Tiles, split headers and the Run menus keep their logos.</span>
|
|
2226
|
+
</div>
|
|
2227
|
+
<label class="switch switch-sm"><input type="checkbox" id="appSettingsShowTabCliLogos" checked><span class="slider"></span></label>
|
|
2228
|
+
</div>
|
|
2146
2229
|
<div class="set-row" data-search="pop out detach tab window">
|
|
2147
2230
|
<div class="set-row-text">
|
|
2148
2231
|
<span class="set-row-label">Pop-out Button on Tabs</span>
|
|
@@ -2153,7 +2236,7 @@
|
|
|
2153
2236
|
<div class="set-row" id="appSettingsLineageLinesItem" data-search="lineage lines spawned worker parent connection">
|
|
2154
2237
|
<div class="set-row-text">
|
|
2155
2238
|
<span class="set-row-label">Spawn Lineage Lines <span class="set-tag">desktop</span></span>
|
|
2156
|
-
<span class="set-row-desc">Draw
|
|
2239
|
+
<span class="set-row-desc">Draw lines from each session to the sessions it spawned. The selected tab's family is drawn thicker.</span>
|
|
2157
2240
|
</div>
|
|
2158
2241
|
<label class="switch switch-sm"><input type="checkbox" id="appSettingsLineageLines" checked><span class="slider"></span></label>
|
|
2159
2242
|
</div>
|
|
@@ -2175,6 +2258,70 @@
|
|
|
2175
2258
|
</div>
|
|
2176
2259
|
</section>
|
|
2177
2260
|
|
|
2261
|
+
<!-- ══ Animations ═══════════════════════════════════════════════
|
|
2262
|
+
Every entrance animation in one place (entrance-animations.js).
|
|
2263
|
+
All per-device localStorage keys, applied as they are picked,
|
|
2264
|
+
never part of PUT /api/settings. -->
|
|
2265
|
+
<section class="set-section" id="settings-animations" data-label="Animations">
|
|
2266
|
+
<div class="set-section-head">
|
|
2267
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l1.8 4.7L18.5 9.5l-4.7 1.8L12 16l-1.8-4.7L5.5 9.5l4.7-1.8z"/><path d="M19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z"/><path d="M3 19h6"/></svg>
|
|
2268
|
+
<h2>Animations</h2>
|
|
2269
|
+
</div>
|
|
2270
|
+
<p class="set-section-blurb">How tabs, terminal panes, agent windows and tiles arrive. All off by default, applied as you pick them.</p>
|
|
2271
|
+
|
|
2272
|
+
<div class="set-group">
|
|
2273
|
+
<div class="set-group-head"><h4>Entrances</h4><span class="set-scope">device</span></div>
|
|
2274
|
+
<div class="set-group-body">
|
|
2275
|
+
<div class="set-row has-field" data-search="entrance animations theme motion tabs windows panes lines">
|
|
2276
|
+
<div class="set-row-text">
|
|
2277
|
+
<span class="set-row-label">Entrance Theme</span>
|
|
2278
|
+
<span class="set-row-desc">One look for how new tabs, terminal panes, agent windows and their lines arrive.</span>
|
|
2279
|
+
</div>
|
|
2280
|
+
<select id="appSettingsEntranceAnim" class="set-select">
|
|
2281
|
+
<option value="legacy">Off (default)</option>
|
|
2282
|
+
<option value="terminal">Terminal (CRT)</option>
|
|
2283
|
+
<option value="beamdown">Beam down</option>
|
|
2284
|
+
<option value="launch">Launch (tiles fly from tabs)</option>
|
|
2285
|
+
<option value="softfocus">Soft focus (blur)</option>
|
|
2286
|
+
<option value="quiet">Quiet</option>
|
|
2287
|
+
<option value="playful">Playful</option>
|
|
2288
|
+
<option value="custom">Custom (set in the lab)</option>
|
|
2289
|
+
</select>
|
|
2290
|
+
</div>
|
|
2291
|
+
<div class="set-row has-field" data-search="tile animations tiles grid motion entrance fly deal crt beam">
|
|
2292
|
+
<div class="set-row-text">
|
|
2293
|
+
<span class="set-row-label">Tile Animations</span>
|
|
2294
|
+
<span class="set-row-desc">How tiles arrive when the grid opens and leave when it closes. A theme above presets it.</span>
|
|
2295
|
+
</div>
|
|
2296
|
+
<select id="appSettingsTileAnim" class="set-select">
|
|
2297
|
+
<option value="settle">Off (default)</option>
|
|
2298
|
+
<option value="fly">Fly from tab</option>
|
|
2299
|
+
<option value="deal">Deal</option>
|
|
2300
|
+
<option value="crt">CRT</option>
|
|
2301
|
+
<option value="beam">Beam down</option>
|
|
2302
|
+
<option value="cascade">Cascade</option>
|
|
2303
|
+
<option value="pop">Pop</option>
|
|
2304
|
+
<option value="soft">Soft</option>
|
|
2305
|
+
<option value="off">None (tiles just appear)</option>
|
|
2306
|
+
</select>
|
|
2307
|
+
</div>
|
|
2308
|
+
</div>
|
|
2309
|
+
</div>
|
|
2310
|
+
|
|
2311
|
+
<div class="set-group">
|
|
2312
|
+
<div class="set-group-head"><h4>Lab</h4></div>
|
|
2313
|
+
<div class="set-group-body">
|
|
2314
|
+
<div class="set-row has-field" data-search="animation lab compare replay styles per surface animlab">
|
|
2315
|
+
<div class="set-row-text">
|
|
2316
|
+
<span class="set-row-label">Animation Lab</span>
|
|
2317
|
+
<span class="set-row-desc">Closes settings and opens every style per surface side by side, with replay and speed. Same as adding ?animlab=1 to the URL.</span>
|
|
2318
|
+
</div>
|
|
2319
|
+
<button type="button" id="appSettingsOpenAnimLab" class="btn-toolbar btn-sm">Open lab</button>
|
|
2320
|
+
</div>
|
|
2321
|
+
</div>
|
|
2322
|
+
</div>
|
|
2323
|
+
</section>
|
|
2324
|
+
|
|
2178
2325
|
<!-- ══ Models ═══════════════════════════════════════════════════ -->
|
|
2179
2326
|
<section class="set-section" id="settings-models" data-label="Models">
|
|
2180
2327
|
<div class="set-section-head">
|
|
@@ -2527,6 +2674,30 @@
|
|
|
2527
2674
|
<div class="set-group" id="appSettingsCodexGroup">
|
|
2528
2675
|
<div class="set-group-head"><h4>Codex</h4><span class="set-scope">synced</span></div>
|
|
2529
2676
|
<div class="set-group-body">
|
|
2677
|
+
<div class="set-row has-field" data-search="codex default model">
|
|
2678
|
+
<div class="set-row-text">
|
|
2679
|
+
<span class="set-row-label">Default Codex model</span>
|
|
2680
|
+
<span class="set-row-desc">Model ID for new local Codex sessions, including WSL. Leave empty to use Codex configuration.</span>
|
|
2681
|
+
</div>
|
|
2682
|
+
<input id="appSettingsCodexModel" class="set-input" type="text" maxlength="100" aria-label="Default Codex model" placeholder="Use Codex configuration" autocomplete="off" spellcheck="false">
|
|
2683
|
+
</div>
|
|
2684
|
+
<div class="set-row has-field" data-search="codex default reasoning effort thinking">
|
|
2685
|
+
<div class="set-row-text">
|
|
2686
|
+
<span class="set-row-label">Default Codex reasoning effort</span>
|
|
2687
|
+
<span class="set-row-desc">Applies to new local sessions; supported levels depend on the model and Codex version. Custom endpoints, Docker and remote sessions keep their own settings.</span>
|
|
2688
|
+
</div>
|
|
2689
|
+
<select id="appSettingsCodexReasoningEffort" class="set-select" aria-label="Default Codex reasoning effort">
|
|
2690
|
+
<option value="">Use Codex configuration</option>
|
|
2691
|
+
<option value="none">none</option>
|
|
2692
|
+
<option value="minimal">minimal</option>
|
|
2693
|
+
<option value="low">low</option>
|
|
2694
|
+
<option value="medium">medium</option>
|
|
2695
|
+
<option value="high">high</option>
|
|
2696
|
+
<option value="xhigh">xhigh</option>
|
|
2697
|
+
<option value="max">max</option>
|
|
2698
|
+
<option value="ultra">ultra</option>
|
|
2699
|
+
</select>
|
|
2700
|
+
</div>
|
|
2530
2701
|
<div class="set-row" data-search="codex bypass approvals sandbox">
|
|
2531
2702
|
<div class="set-row-text">
|
|
2532
2703
|
<span class="set-row-label">Bypass approvals and sandbox</span>
|
|
@@ -2547,17 +2718,17 @@
|
|
|
2547
2718
|
<div class="set-group" id="mcpSyncGroup">
|
|
2548
2719
|
<div class="set-group-head"><h4>MCP servers</h4><span class="set-scope">synced</span></div>
|
|
2549
2720
|
<div class="set-group-body">
|
|
2550
|
-
<div class="set-row" data-search="mcp server sync enable claude codex gemini opencode antigravity">
|
|
2721
|
+
<div class="set-row" data-search="mcp server sync enable claude codex gemini opencode antigravity copilot github">
|
|
2551
2722
|
<div class="set-row-text">
|
|
2552
2723
|
<span class="set-row-label">Enable MCP server sync</span>
|
|
2553
|
-
<span class="set-row-desc">Adds a control that copies MCP servers between your enabled CLIs by writing their own config files. Off by default: this changes other tools' configuration, not just Codeman's.</span>
|
|
2724
|
+
<span class="set-row-desc">Adds a control that copies MCP servers between your enabled CLIs, and GitHub Copilot CLI if it is installed, by writing their own config files. Off by default: this changes other tools' configuration, not just Codeman's.</span>
|
|
2554
2725
|
</div>
|
|
2555
2726
|
<label class="switch switch-sm"><input type="checkbox" id="appSettingsMcpSync" onchange="app.applyMcpSyncVisibility()"><span class="slider"></span></label>
|
|
2556
2727
|
</div>
|
|
2557
2728
|
<div class="set-row" id="mcpSyncActionRow" style="display:none" data-search="mcp server sync preview">
|
|
2558
2729
|
<div class="set-row-text">
|
|
2559
2730
|
<span class="set-row-label">Sync MCP servers across CLIs</span>
|
|
2560
|
-
<span class="set-row-desc">Copies each installed, enabled CLI's MCP servers into the others. Only adds missing servers; never edits, removes or copies a server you switched off. Env values and headers are copied too, so a file that receives them is left readable by you only. The previous file is kept as <code>.codeman-bak</code> (overwritten by each sync). A config dir moved by the CLI's own env var (<code>CODEX_HOME</code>, <code>CLAUDE_CONFIG_DIR</code>, <code>XDG_CONFIG_HOME</code>, <code>GEMINI_CLI_HOME</code>) is followed as Codeman's server sees it; a per-session override is not.</span>
|
|
2731
|
+
<span class="set-row-desc">Copies each installed, enabled CLI's MCP servers (and GitHub Copilot CLI's) into the others. Only adds missing servers; never edits, removes or copies a server you switched off. Env values and headers are copied too, so a file that receives them is left readable by you only. The previous file is kept as <code>.codeman-bak</code> (overwritten by each sync). A config dir moved by the CLI's own env var (<code>CODEX_HOME</code>, <code>CLAUDE_CONFIG_DIR</code>, <code>XDG_CONFIG_HOME</code>, <code>GEMINI_CLI_HOME</code>, <code>COPILOT_HOME</code>) is followed as Codeman's server sees it; a per-session override is not.</span>
|
|
2561
2732
|
</div>
|
|
2562
2733
|
<span>
|
|
2563
2734
|
<button class="btn-toolbar btn-sm" id="mcpSyncPreviewBtn" onclick="app.mcpSync(false)">Preview</button>
|
|
@@ -2626,6 +2797,26 @@
|
|
|
2626
2797
|
<span class="set-unit">min</span>
|
|
2627
2798
|
</div>
|
|
2628
2799
|
</div>
|
|
2800
|
+
<div class="set-row" data-search="toast display time popup dismiss seconds notification">
|
|
2801
|
+
<div class="set-row-text">
|
|
2802
|
+
<span class="set-row-label">Toast display time</span>
|
|
2803
|
+
<span class="set-row-desc">How long the corner pop-ups stay on screen.</span>
|
|
2804
|
+
</div>
|
|
2805
|
+
<div class="set-row-actions">
|
|
2806
|
+
<input type="number" id="appSettingsNotifToastSecs" class="set-num" value="3" min="1" max="300">
|
|
2807
|
+
<span class="set-unit">sec</span>
|
|
2808
|
+
</div>
|
|
2809
|
+
</div>
|
|
2810
|
+
<div class="set-row" data-search="browser notification auto close dismiss seconds">
|
|
2811
|
+
<div class="set-row-text">
|
|
2812
|
+
<span class="set-row-label">Browser notification display time</span>
|
|
2813
|
+
<span class="set-row-desc">How long a desktop notification stays up before Codeman closes it. Your OS may close it sooner.</span>
|
|
2814
|
+
</div>
|
|
2815
|
+
<div class="set-row-actions">
|
|
2816
|
+
<input type="number" id="appSettingsNotifBrowserSecs" class="set-num" value="8" min="1" max="300">
|
|
2817
|
+
<span class="set-unit">sec</span>
|
|
2818
|
+
</div>
|
|
2819
|
+
</div>
|
|
2629
2820
|
</div>
|
|
2630
2821
|
</div>
|
|
2631
2822
|
|
|
@@ -2933,10 +3124,6 @@
|
|
|
2933
3124
|
<button class="btn-icon-sm" id="tunnelQrBtn" onclick="app.showTunnelQR()" title="Show QR code">⊞</button>
|
|
2934
3125
|
</div>
|
|
2935
3126
|
</div>
|
|
2936
|
-
<div class="set-row" id="tunnelUploadUrlRow" style="display:none">
|
|
2937
|
-
<div class="set-row-text"><span class="set-row-label">Upload URL</span></div>
|
|
2938
|
-
<span id="tunnelUploadUrlDisplay" class="set-copy" title="Click to copy"></span>
|
|
2939
|
-
</div>
|
|
2940
3127
|
</div>
|
|
2941
3128
|
</div>
|
|
2942
3129
|
</section>
|
|
@@ -2944,6 +3131,7 @@
|
|
|
2944
3131
|
</div>
|
|
2945
3132
|
<div class="form-actions set-foot">
|
|
2946
3133
|
<button class="btn-toolbar" onclick="app.closeAppSettings()">Cancel</button>
|
|
3134
|
+
<button class="btn-toolbar" onclick="app.applyAppSettings()" title="Save and keep Settings open">Apply</button>
|
|
2947
3135
|
<button class="btn-toolbar btn-primary" onclick="app.saveAppSettings()">Save</button>
|
|
2948
3136
|
</div>
|
|
2949
3137
|
</div>
|
|
@@ -3901,37 +4089,39 @@
|
|
|
3901
4089
|
<div class="approvals-list"></div>
|
|
3902
4090
|
</div>
|
|
3903
4091
|
|
|
3904
|
-
<script defer src="constants.
|
|
3905
|
-
<script defer src="i18n.
|
|
3906
|
-
<script defer src="mobile-handlers.
|
|
3907
|
-
<script defer src="voice-input.
|
|
3908
|
-
<script defer src="notification-manager.
|
|
4092
|
+
<script defer src="constants.bc9c1f63.js"></script>
|
|
4093
|
+
<script defer src="i18n.a9840ea2.js"></script>
|
|
4094
|
+
<script defer src="mobile-handlers.0ef9c311.js"></script>
|
|
4095
|
+
<script defer src="voice-input.2342c37b.js"></script>
|
|
4096
|
+
<script defer src="notification-manager.feb82c04.js"></script>
|
|
3909
4097
|
<script defer src="keyboard-accessory.c1e7c7b7.js"></script>
|
|
3910
4098
|
<script defer src="input-cjk.8bc46081.js"></script>
|
|
3911
4099
|
<!-- Shows iOS Safari IME composition text inside the terminal. Must precede terminal-ui.js. -->
|
|
3912
4100
|
<script defer src="mobile-ime-preview.2dbaf262.js"></script>
|
|
3913
4101
|
<!-- Forwards committed input events that xterm drops on Android/GBoard soft keyboards. Must precede terminal-ui.js. -->
|
|
3914
|
-
<script defer src="terminal-keycode229-recovery.
|
|
4102
|
+
<script defer src="terminal-keycode229-recovery.af09f99a.js"></script>
|
|
3915
4103
|
<!-- Hardened markdown HTML sanitizer (wires DOMPurify). Must precede app.js. -->
|
|
3916
4104
|
<script defer src="sanitize-html.e7147e76.js"></script>
|
|
3917
4105
|
<!-- Owner tab layout projection (grouped vertical rail); pure, read by app.js. -->
|
|
3918
4106
|
<script defer src="tab-layout-browser.065fcba4.js"></script>
|
|
3919
|
-
<script defer src="app.
|
|
3920
|
-
<script defer src="tab-rail-resize.
|
|
3921
|
-
<script defer src="terminal-ui.
|
|
4107
|
+
<script defer src="app.6f8552e1.js"></script>
|
|
4108
|
+
<script defer src="tab-rail-resize.a5867793.js"></script>
|
|
4109
|
+
<script defer src="terminal-ui.b7267005.js"></script>
|
|
4110
|
+
<script defer src="terminal-tile.js"></script>
|
|
3922
4111
|
<script defer src="terminal-split.js"></script>
|
|
4112
|
+
<script defer src="tile-grid.js"></script>
|
|
3923
4113
|
<script defer src="respawn-ui.ff0dae4c.js"></script>
|
|
3924
4114
|
<script defer src="ralph-panel.b350e2ef.js"></script>
|
|
3925
4115
|
<script defer src="orchestrator-panel.js"></script>
|
|
3926
4116
|
<script defer src="cron-ui.js"></script>
|
|
3927
|
-
<script defer src="settings-ui.
|
|
3928
|
-
<script defer src="panels-ui.
|
|
4117
|
+
<script defer src="settings-ui.4e33390f.js"></script>
|
|
4118
|
+
<script defer src="panels-ui.71846fcb.js"></script>
|
|
3929
4119
|
<script defer src="readmymind-ui.js"></script>
|
|
3930
4120
|
<script defer src="ultracode-panel.js"></script>
|
|
3931
4121
|
<script defer src="approvals-ui.js"></script>
|
|
3932
4122
|
<script defer src="reboot-restore-ui.js"></script>
|
|
3933
4123
|
<script defer src="admin-ui.js"></script>
|
|
3934
|
-
<script defer src="session-ui.
|
|
4124
|
+
<script defer src="session-ui.f731602c.js"></script>
|
|
3935
4125
|
<script defer src="host-wake-ui.js"></script>
|
|
3936
4126
|
<script defer src="webview-tabs.js"></script>
|
|
3937
4127
|
<script defer src="mobile-overview.js"></script>
|
|
@@ -3940,9 +4130,10 @@
|
|
|
3940
4130
|
<script defer src="entrance-animations.js"></script>
|
|
3941
4131
|
<script defer src="ralph-wizard.b6c0dd19.js"></script>
|
|
3942
4132
|
<script defer src="api-client.c9b1cddc.js"></script>
|
|
3943
|
-
<script defer src="subagent-windows.
|
|
4133
|
+
<script defer src="subagent-windows.07277a58.js"></script>
|
|
3944
4134
|
<script defer src="ultracode-windows.js"></script>
|
|
3945
4135
|
<script defer src="session-lineage.js"></script>
|
|
3946
|
-
<script defer src="image-input.
|
|
4136
|
+
<script defer src="image-input.e00471c6.js"></script>
|
|
4137
|
+
<script defer src="spreadsheet-preview.af82fa2f.js"></script>
|
|
3947
4138
|
</body>
|
|
3948
4139
|
</html>
|