cli-jaw 2.17.62 → 2.17.63
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.ja.md +17 -17
- package/README.ko.md +17 -17
- package/README.md +17 -17
- package/README.zh-CN.md +17 -17
- package/dist/bin/commands/tui/input-handler.js +19 -0
- package/dist/bin/commands/tui/input-handler.js.map +1 -1
- package/dist/bin/commands/tui/overlays.js +8 -4
- package/dist/bin/commands/tui/overlays.js.map +1 -1
- package/dist/bin/star-prompt.js +1 -1
- package/dist/bin/star-prompt.js.map +1 -1
- package/dist/server.js +14 -1
- package/dist/server.js.map +1 -1
- package/dist/src/agent/claude-runtime-pool.js +2 -1
- package/dist/src/agent/claude-runtime-pool.js.map +1 -1
- package/dist/src/agent/claude-runtime-run.js +28 -7
- package/dist/src/agent/claude-runtime-run.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +34 -6
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-events.js +136 -9
- package/dist/src/agent/runtime/claude-sdk-events.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-history-loader.js +24 -0
- package/dist/src/agent/runtime/claude-sdk-history-loader.js.map +1 -0
- package/dist/src/agent/runtime/claude-sdk-hooks.js +10 -4
- package/dist/src/agent/runtime/claude-sdk-hooks.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-messages.js +25 -2
- package/dist/src/agent/runtime/claude-sdk-messages.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-options.js +36 -3
- package/dist/src/agent/runtime/claude-sdk-options.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-permissions.js +32 -9
- package/dist/src/agent/runtime/claude-sdk-permissions.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-session.js +165 -17
- package/dist/src/agent/runtime/claude-sdk-session.js.map +1 -1
- package/dist/src/agent/runtime/claude-sdk-version.js +8 -0
- package/dist/src/agent/runtime/claude-sdk-version.js.map +1 -0
- package/dist/src/agent/spawn/backend-codex-app.js +619 -0
- package/dist/src/agent/spawn/backend-codex-app.js.map +1 -0
- package/dist/src/agent/spawn/backend-context.js +2 -0
- package/dist/src/agent/spawn/backend-context.js.map +1 -0
- package/dist/src/agent/spawn/backend-copilot.js +385 -0
- package/dist/src/agent/spawn/backend-copilot.js.map +1 -0
- package/dist/src/agent/spawn/backend-native-acp.js +379 -0
- package/dist/src/agent/spawn/backend-native-acp.js.map +1 -0
- package/dist/src/agent/spawn/backend-pi.js +565 -0
- package/dist/src/agent/spawn/backend-pi.js.map +1 -0
- package/dist/src/agent/spawn/types.js +2 -0
- package/dist/src/agent/spawn/types.js.map +1 -0
- package/dist/src/agent/spawn.js +44 -1858
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/cli/claude-default-model-boot.js +36 -0
- package/dist/src/cli/claude-default-model-boot.js.map +1 -0
- package/dist/src/cli/claude-model-discovery.js +13 -1
- package/dist/src/cli/claude-model-discovery.js.map +1 -1
- package/dist/src/cli/claude-models.js +7 -1
- package/dist/src/cli/claude-models.js.map +1 -1
- package/dist/src/cli/commands.js +5 -15
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/tui/composer.js +3 -3
- package/dist/src/cli/tui/composer.js.map +1 -1
- package/dist/src/cli/tui/skill-mention.js +15 -0
- package/dist/src/cli/tui/skill-mention.js.map +1 -0
- package/dist/src/code-mode/manager.js +174 -9
- package/dist/src/code-mode/manager.js.map +1 -1
- package/dist/src/code-mode/providers/catalog.js +5 -3
- package/dist/src/code-mode/providers/catalog.js.map +1 -1
- package/dist/src/code-mode/providers/claude-history.js +132 -0
- package/dist/src/code-mode/providers/claude-history.js.map +1 -0
- package/dist/src/code-mode/providers/claude.js +74 -7
- package/dist/src/code-mode/providers/claude.js.map +1 -1
- package/dist/src/code-mode/providers/codex-app.js +7 -1
- package/dist/src/code-mode/providers/codex-app.js.map +1 -1
- package/dist/src/code-mode/session.js +158 -11
- package/dist/src/code-mode/session.js.map +1 -1
- package/dist/src/code-mode/store.js +416 -28
- package/dist/src/code-mode/store.js.map +1 -1
- package/dist/src/command-contract/catalog.js +3 -22
- package/dist/src/command-contract/catalog.js.map +1 -1
- package/dist/src/core/codex-config.js +3 -62
- package/dist/src/core/codex-config.js.map +1 -1
- package/dist/src/core/config.js +116 -14
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/runtime-settings.js +20 -10
- package/dist/src/core/runtime-settings.js.map +1 -1
- package/dist/src/core/settings-watch.js +1 -0
- package/dist/src/core/settings-watch.js.map +1 -1
- package/dist/src/core/skill-mentions.js +83 -0
- package/dist/src/core/skill-mentions.js.map +1 -0
- package/dist/src/manager/registry.js +5 -1
- package/dist/src/manager/registry.js.map +1 -1
- package/dist/src/manager/routes/desktop-status.js +1 -1
- package/dist/src/manager/routes/desktop-status.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +11 -1
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/prompt/builder.js +10 -4
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/prompt/templates/a1-system.md +1 -1
- package/dist/src/routes/code-native.js +51 -3
- package/dist/src/routes/code-native.js.map +1 -1
- package/dist/src/routes/settings.js +1 -4
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/routes/skills.js +7 -0
- package/dist/src/routes/skills.js.map +1 -1
- package/dist/src/shared/skill-mention.js +61 -0
- package/dist/src/shared/skill-mention.js.map +1 -0
- package/dist/src/shared/tool-input.js +137 -0
- package/dist/src/shared/tool-input.js.map +1 -0
- package/package.json +7 -5
- package/public/css/activity.css +83 -20
- package/public/css/layout.css +2 -2
- package/public/css/sidebar.css +18 -0
- package/public/css/variables.css +23 -2
- package/public/dist/.vite/manifest.json +302 -334
- package/public/dist/assets/Activity-DPLlOJ46.js +1 -0
- package/public/dist/assets/AdvancedExport-BgOgGvc5.js +1 -0
- package/public/dist/assets/Agent-O_U8ny90.js +1 -0
- package/public/dist/assets/Browser-m6VynQXV.js +1 -0
- package/public/dist/assets/BrowserPanel-Bb-Bge6B.js +3 -0
- package/public/dist/assets/ChannelEnablementControl-BSuKQhTW.js +85 -0
- package/public/dist/assets/ChannelSetupEntry-DHLoZEzJ.js +1 -0
- package/public/dist/assets/ChannelsDiscord-B-G8vsYy.js +1 -0
- package/public/dist/assets/ChannelsSlack-oPuh922z.js +1 -0
- package/public/dist/assets/ChannelsTelegram-PmTv43KQ.js +1 -0
- package/public/dist/assets/CodeCanvas-CVbdp0S-.js +3 -0
- package/public/dist/assets/DashboardMeta-BqEiJrvr.js +1 -0
- package/public/dist/assets/DesignPanel-BOb-HMbl.js +2 -0
- package/public/dist/assets/{Developer-BdKPcw8Z.js → Developer-CbySB7_Z.js} +1 -1
- package/public/dist/assets/{DiffPanel-DtJuvU5y.js → DiffPanel-D9Cch5FG.js} +1 -1
- package/public/dist/assets/Display-C0Zdamcb.js +1 -0
- package/public/dist/assets/Display-DU4_76cS.js +1 -0
- package/public/dist/assets/DocPanel-DvtFw8AP.js +1 -0
- package/public/dist/assets/{Embedding-DvdTj1BF.js → Embedding-CCFMOB_2.js} +1 -1
- package/public/dist/assets/Employees-BanvF58d.js +1 -0
- package/public/dist/assets/FolderPanel-CJvwRwIV.js +3 -0
- package/public/dist/assets/Heartbeat-uyi_MpUd.js +1 -0
- package/public/dist/assets/InlineWarn-Cq4z28F3.js +1 -0
- package/public/dist/assets/MarkdownRenderer-Cc3DeHvm.js +1 -0
- package/public/dist/assets/{MarkdownRenderer-DhonsAPC.js → MarkdownRenderer-DzN66XVb.js} +1 -1
- package/public/dist/assets/Mcp-rjPoL_Zo.js +4 -0
- package/public/dist/assets/Memory-C9I33pIi.js +1 -0
- package/public/dist/assets/{MilkdownWysiwygEditor-D6JaLDE4.js → MilkdownWysiwygEditor-xObhviw7.js} +1 -1
- package/public/dist/assets/ModelProvider-fiUktMaO.js +1 -0
- package/public/dist/assets/Network-CuqFrOvR.js +1 -0
- package/public/dist/assets/NotesGraphWorkspace-DO9LtVGF.js +1 -0
- package/public/dist/assets/PanelLayoutProvider-DRZ4QkBC.js +1 -0
- package/public/dist/assets/Permissions-BltXiZnz.js +1 -0
- package/public/dist/assets/{Permissions-BwiMEoTV.js → Permissions-DcCbFMIq.js} +1 -1
- package/public/dist/assets/Profile-DUL7-RE_.js +1 -0
- package/public/dist/assets/Prompts-C9vY8ivQ.js +1 -0
- package/public/dist/assets/SpeechKeys-BJ8V7U5E.js +1 -0
- package/public/dist/assets/TelegramHub-DtyjLGFR.js +1 -0
- package/public/dist/assets/{TerminalPanel-Bu9i-P2f.js → TerminalPanel-c1xhiy53.js} +1 -1
- package/public/dist/assets/app-BjKzqXCv.css +1 -0
- package/public/dist/assets/app-CZwx0V6K.js +59 -0
- package/public/dist/assets/bgtask-badge-CnVkcp3c.js +1 -0
- package/public/dist/assets/{bgtask-badge-DfiHuzxT.js → bgtask-badge-Cp26S8Uq.js} +1 -1
- package/public/dist/assets/client-platform-WO8m6kPQ.js +1 -0
- package/public/dist/assets/{employees-BQaJNp-u.js → employees-CsvI0_5V.js} +1 -1
- package/public/dist/assets/error-normalize-clOi-AAA.js +1 -0
- package/public/dist/assets/fields-CicOWY-X.js +1 -0
- package/public/dist/assets/iframe-renderer-DWx9v2Iz.js +1 -0
- package/public/dist/assets/iframe-renderer-DmHYOI1A.js +142 -0
- package/public/dist/assets/{react-C_pPTFsM.js → jsx-runtime-CkEUZM6i.js} +1 -1
- package/public/dist/assets/manager-CCXm5Yfe.js +5 -0
- package/public/dist/assets/manager-D9rhKFKc.css +1 -0
- package/public/dist/assets/manager-shortcuts-Cqmr0mEq.js +1 -0
- package/public/dist/assets/{memory-EG1B51up.js → memory-C6qtAMdJ.js} +1 -1
- package/public/dist/assets/memory-PPofQPeB.js +1 -0
- package/public/dist/assets/message-history-DcjBuubA.js +4 -0
- package/public/dist/assets/message-history-bw4qF01Z.js +1 -0
- package/public/dist/assets/page-shell-DfinU3mb.js +1 -0
- package/public/dist/assets/react-dom-URBLzV3w.js +1 -0
- package/public/dist/assets/{render-Dp07lZAJ.js → render-DfYro-fG.js} +1 -1
- package/public/dist/assets/{settings-jlI4X-zt.js → settings-CvsLWlJn.js} +38 -30
- package/public/dist/assets/settings-DMiQe469.js +1 -0
- package/public/dist/assets/settings-DgAlohx9.js +1 -0
- package/public/dist/assets/settings-core-BH7J_Rbm.js +1 -0
- package/public/dist/assets/{settings-core-B5Uf_lWY.js → settings-core-pnpw-eZv.js} +1 -1
- package/public/dist/assets/{settings-embedding-BfWzWKMM.js → settings-embedding-BRW0WZvh.js} +3 -3
- package/public/dist/assets/{settings-embedding-DhEdT86W.css → settings-embedding-CUQ8Is3y.css} +1 -1
- package/public/dist/assets/settings-types-CYKy0xz4.js +1 -0
- package/public/dist/assets/shared-D1begqvi.js +1 -0
- package/public/dist/assets/{sidebar-BUemG2ZN.js → sidebar-C_80w4iY.js} +3 -3
- package/public/dist/assets/{skills-CKUcEN9m.js → skills-D_2adqge.js} +1 -1
- package/public/dist/assets/skills-DeNVAVgt.js +1 -0
- package/public/dist/assets/{slash-commands-D34GgHFX.js → slash-commands-B_Hq5RkC.js} +2 -2
- package/public/dist/assets/slash-commands-Cj5qoRWc.js +1 -0
- package/public/dist/assets/tool-input-DI7uu8Ah.js +2 -0
- package/public/dist/assets/{trace-drawer-DBmK-5F_.js → trace-drawer-B6XuPodh.js} +1 -1
- package/public/dist/assets/ui-BbR_fFiK.js +1 -0
- package/public/dist/assets/{ui-vm2iuLcS.js → ui-D8xzm7DN.js} +1 -1
- package/public/dist/index.html +11 -3
- package/public/dist/manager/index.html +3 -3
- package/public/dist/settings/index.html +2 -2
- package/public/index.html +9 -1
- package/public/js/features/activity-history.ts +50 -21
- package/public/js/features/activity-rows.ts +158 -10
- package/public/js/features/activity-view.ts +5 -5
- package/public/js/features/chat.ts +2 -0
- package/public/js/features/employees.ts +1 -0
- package/public/js/features/resize-guard.ts +39 -0
- package/public/js/features/settings-cli-status.ts +49 -17
- package/public/js/features/settings-types.ts +39 -1
- package/public/js/features/skill-mentions.ts +143 -0
- package/public/js/main.ts +15 -0
- package/public/js/virtual-scroll.ts +67 -1
- package/public/locales/en.json +2 -0
- package/public/locales/ja.json +2 -0
- package/public/locales/ko.json +2 -0
- package/public/locales/zh.json +2 -0
- package/public/manager/src/AppChrome.tsx +2 -0
- package/public/manager/src/InstancePreview.tsx +1 -1
- package/public/manager/src/SidebarRailRouter.tsx +3 -1
- package/public/manager/src/browser-panel/BrowserPanel.tsx +47 -12
- package/public/manager/src/browser-panel/browser-address-state.ts +11 -0
- package/public/manager/src/client-platform.ts +18 -0
- package/public/manager/src/code/CodeCanvas.tsx +4 -2
- package/public/manager/src/code/CodeComposer.tsx +22 -10
- package/public/manager/src/code/CodeDraftEmptyState.tsx +64 -0
- package/public/manager/src/code/CodeSessionList.tsx +154 -40
- package/public/manager/src/code/CodeTranscript.tsx +104 -16
- package/public/manager/src/code/CodeWorkbench.tsx +21 -11
- package/public/manager/src/code/CodeWorkspaceHeader.tsx +5 -10
- package/public/manager/src/code/ComposerFooter.tsx +9 -1
- package/public/manager/src/code/code-composer.css +1 -1
- package/public/manager/src/code/code-controller-draft-storage.ts +16 -8
- package/public/manager/src/code/code-controller-drafts.ts +33 -6
- package/public/manager/src/code/code-controller-runtime.ts +189 -17
- package/public/manager/src/code/code-controller-types.ts +19 -1
- package/public/manager/src/code/code-recent-workspaces.ts +25 -0
- package/public/manager/src/code/code-session-client.ts +19 -1
- package/public/manager/src/code/code-session-sidebar.css +38 -0
- package/public/manager/src/code/code-session-state.ts +2 -0
- package/public/manager/src/code/code-types.ts +47 -0
- package/public/manager/src/code/code-workbench.css +36 -1
- package/public/manager/src/code/code.css +171 -7
- package/public/manager/src/code/session-order.ts +80 -0
- package/public/manager/src/code/tool-summary.ts +45 -11
- package/public/manager/src/folder-panel/folder-shortcuts.ts +5 -9
- package/public/manager/src/hooks/useCommandPalette.ts +3 -7
- package/public/manager/src/main.tsx +1 -0
- package/public/manager/src/manager-components.css +25 -23
- package/public/manager/src/manager-dashboard-reminders.css +2 -2
- package/public/manager/src/manager-layout.css +1 -1
- package/public/manager/src/manager-shortcut-runner.ts +9 -2
- package/public/manager/src/manager-shortcuts.ts +83 -21
- package/public/manager/src/panels/desktop-bridge.ts +4 -1
- package/public/manager/src/panels/panels.css +9 -0
- package/public/manager/src/preview.ts +19 -4
- package/public/manager/src/settings/pages/AdvancedExport.tsx +28 -30
- package/public/manager/src/settings/pages/Browser.tsx +45 -47
- package/public/manager/src/settings/pages/ChannelsDiscord.tsx +51 -26
- package/public/manager/src/settings/pages/ChannelsSlack.tsx +59 -17
- package/public/manager/src/settings/pages/ChannelsTelegram.tsx +51 -26
- package/public/manager/src/settings/pages/Display.tsx +2 -1
- package/public/manager/src/settings/pages/Employees.tsx +3 -3
- package/public/manager/src/settings/pages/Mcp.tsx +220 -200
- package/public/manager/src/settings/pages/Memory.tsx +35 -41
- package/public/manager/src/settings/pages/ModelProvider.tsx +23 -98
- package/public/manager/src/settings/pages/Network.tsx +5 -4
- package/public/manager/src/settings/pages/Permissions.tsx +38 -16
- package/public/manager/src/settings/pages/Prompts.tsx +12 -9
- package/public/manager/src/settings/pages/SpeechKeys.tsx +132 -139
- package/public/manager/src/settings/pages/TelegramHub.tsx +67 -20
- package/public/manager/src/settings/pages/components/AvatarCard.tsx +9 -8
- package/public/manager/src/settings/pages/components/ChannelSetupEntry.tsx +2 -2
- package/public/manager/src/settings/pages/components/EmployeeRow.tsx +6 -12
- package/public/manager/src/settings/pages/components/HealthBadge.tsx +11 -6
- package/public/manager/src/settings/pages/components/HeartbeatJobRow.tsx +35 -16
- package/public/manager/src/settings/pages/components/HeartbeatJobsSection.tsx +11 -11
- package/public/manager/src/settings/pages/components/HeartbeatMarkdownSection.tsx +7 -7
- package/public/manager/src/settings/pages/components/InlineWarn.tsx +4 -9
- package/public/manager/src/settings/pages/components/McpServerCard.tsx +39 -27
- package/public/manager/src/settings/pages/components/MemoryRow.tsx +21 -16
- package/public/manager/src/settings/pages/components/PerCliRow.tsx +122 -121
- package/public/manager/src/settings/pages/components/PiProfileDialog.tsx +9 -6
- package/public/manager/src/settings/pages/components/SlackSetup.tsx +8 -8
- package/public/manager/src/settings/pages/components/TransportStatusChips.tsx +14 -10
- package/public/manager/src/settings/pages/components/agent/AgentEmployeesSection.tsx +26 -26
- package/public/manager/src/settings/pages/components/agent/PermissionQuickSection.tsx +5 -5
- package/public/manager/src/settings/pages/components/agent/RuntimeEmployeeRow.tsx +14 -11
- package/public/manager/src/settings/pages/components/agent/RuntimeHeader.tsx +1 -3
- package/public/manager/src/settings/pages/components/agent/agent-meta.ts +0 -2
- package/public/manager/src/settings/pages/components/runtime-transport-field.tsx +2 -2
- package/public/manager/src/settings/pages/manager/Activity.tsx +6 -2
- package/public/manager/src/settings/pages/manager/Display.tsx +3 -8
- package/public/manager/src/settings/pages/manager/shared.tsx +44 -33
- package/public/manager/src/settings/pages/page-shell.tsx +66 -0
- package/public/manager/src/settings-agent.css +185 -36
- package/public/manager/src/settings-standalone.tsx +1 -0
- package/public/manager/src/settings-surface.css +96 -0
- package/public/manager/src/types.ts +1 -0
- package/scripts/ci/install-ripgrep.sh +35 -0
- package/scripts/collect-fresh-install-evidence.sh +2 -2
- package/scripts/install-risk-gate.mjs +2 -3
- package/scripts/install-wsl.sh +1 -1
- package/scripts/install.ps1 +1 -1
- package/scripts/install.sh +1 -1
- package/scripts/release-1.6.0.sh +1 -1
- package/scripts/release-gates.mjs +48 -13
- package/scripts/release-preview.sh +2 -2
- package/scripts/restack-pr.sh +88 -0
- package/scripts/verify-electron-update-metadata.mjs +1 -1
- package/scripts/windows-support-contract.json +1 -1
- package/public/dist/assets/Activity-BUrp73Re.js +0 -1
- package/public/dist/assets/AdvancedExport-B7h_ZvBu.js +0 -1
- package/public/dist/assets/Agent-DnbZJP7b.js +0 -1
- package/public/dist/assets/Browser-CiBoK5Qx.js +0 -1
- package/public/dist/assets/BrowserPanel-SZAUc9T2.js +0 -3
- package/public/dist/assets/ChannelEnablementControl-Dl0uYx38.js +0 -85
- package/public/dist/assets/ChannelSetupEntry-DxtOrN01.js +0 -1
- package/public/dist/assets/ChannelsDiscord-BEGGwd_3.js +0 -1
- package/public/dist/assets/ChannelsSlack-BryC2Ahr.js +0 -1
- package/public/dist/assets/ChannelsTelegram-CGSpaImJ.js +0 -1
- package/public/dist/assets/CodeCanvas-DpkFi5Au.js +0 -2
- package/public/dist/assets/DashboardMeta-Dh-tasbY.js +0 -1
- package/public/dist/assets/DesignPanel-NLNK9wCo.js +0 -2
- package/public/dist/assets/Display-BHGFX3O0.js +0 -1
- package/public/dist/assets/Display-BW-_pKRf.js +0 -1
- package/public/dist/assets/DocPanel-BM41cYpS.js +0 -1
- package/public/dist/assets/Employees-BuFw6-fT.js +0 -1
- package/public/dist/assets/FolderPanel-C-eQT3Yq.js +0 -3
- package/public/dist/assets/Heartbeat-CIVtKWNc.js +0 -1
- package/public/dist/assets/InlineWarn-DIMbcbzk.js +0 -1
- package/public/dist/assets/MarkdownRenderer-DyVx6DxM.js +0 -1
- package/public/dist/assets/Mcp-uKjor7vh.js +0 -4
- package/public/dist/assets/Memory-BSDIXT0B.js +0 -1
- package/public/dist/assets/ModelProvider-DMh2tXUx.js +0 -1
- package/public/dist/assets/Network-4Pa6JkhK.js +0 -1
- package/public/dist/assets/NotesGraphWorkspace-CgdC-fM6.js +0 -1
- package/public/dist/assets/PanelLayoutProvider-mn8sI0h-.js +0 -1
- package/public/dist/assets/Permissions-CodIW-Yd.js +0 -1
- package/public/dist/assets/Profile-DPqrYA44.js +0 -1
- package/public/dist/assets/Prompts-CvAx7QqR.js +0 -1
- package/public/dist/assets/SpeechKeys-CVBCqoBn.js +0 -1
- package/public/dist/assets/TelegramHub-4zKwpk0P.js +0 -1
- package/public/dist/assets/app-ByMfeXp-.js +0 -55
- package/public/dist/assets/app-DAJWqs33.css +0 -1
- package/public/dist/assets/bgtask-badge-Ch88fnhf.js +0 -1
- package/public/dist/assets/error-normalize-CL69Bl7z.js +0 -1
- package/public/dist/assets/fields-mlGpofqQ.js +0 -1
- package/public/dist/assets/iframe-renderer-Bj1JolO8.js +0 -142
- package/public/dist/assets/iframe-renderer-DWnvUSrx.js +0 -1
- package/public/dist/assets/jsx-runtime-NZYk81nU.js +0 -1
- package/public/dist/assets/manager-Bi_xw7TW.js +0 -5
- package/public/dist/assets/manager-BnQHAKk6.css +0 -1
- package/public/dist/assets/manager-shortcuts-BDOzd8zm.js +0 -1
- package/public/dist/assets/memory-Bk_cb3sw.js +0 -1
- package/public/dist/assets/message-history-D2vniu04.js +0 -4
- package/public/dist/assets/message-history-GAtF_wbZ.js +0 -1
- package/public/dist/assets/page-shell-BeGD0rRQ.js +0 -1
- package/public/dist/assets/react-dom-DyUOYpVL.js +0 -1
- package/public/dist/assets/settings-W4KG9ivu.js +0 -1
- package/public/dist/assets/settings-WVGhtneN.js +0 -1
- package/public/dist/assets/settings-client-CmwRsVd1.js +0 -1
- package/public/dist/assets/settings-core-CgKGnMA5.js +0 -1
- package/public/dist/assets/settings-types-D3cd6SWy.js +0 -1
- package/public/dist/assets/shared-CiNP20HB.js +0 -1
- package/public/dist/assets/skills-Co7Mr-qP.js +0 -1
- package/public/dist/assets/slash-commands-BEr-vmIr.js +0 -1
- package/public/dist/assets/ui-TUyJsMUf.js +0 -1
- package/public/manager/src/settings/pages/components/EngineSubsection.tsx +0 -25
|
@@ -11,10 +11,11 @@
|
|
|
11
11
|
font-size: 12px;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/* Flush runtime disclosure: the summary mirrors a shared key-value row and
|
|
15
|
+
* the expanded fields take the same divided-row rhythm as the card. */
|
|
14
16
|
.settings-agent-flush summary {
|
|
15
17
|
display: flex;
|
|
16
18
|
align-items: center;
|
|
17
|
-
justify-content: space-between;
|
|
18
19
|
gap: 12px;
|
|
19
20
|
cursor: pointer;
|
|
20
21
|
color: var(--text-primary);
|
|
@@ -32,72 +33,219 @@
|
|
|
32
33
|
margin-bottom: 12px;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
.settings-
|
|
36
|
+
.settings-shell .settings-agent-flush {
|
|
37
|
+
min-width: 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.settings-shell .settings-agent-flush summary {
|
|
41
|
+
justify-content: flex-start;
|
|
42
|
+
list-style: none;
|
|
43
|
+
padding: 12px 16px;
|
|
44
|
+
font-size: 14px;
|
|
45
|
+
font-weight: 500;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.settings-shell .settings-agent-flush summary::-webkit-details-marker {
|
|
49
|
+
display: none;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.settings-shell .settings-agent-flush summary::before {
|
|
53
|
+
content: '';
|
|
54
|
+
width: 8px;
|
|
55
|
+
height: 8px;
|
|
56
|
+
flex: 0 0 auto;
|
|
57
|
+
border-right: 1.8px solid currentColor;
|
|
58
|
+
border-bottom: 1.8px solid currentColor;
|
|
59
|
+
opacity: 0.7;
|
|
60
|
+
transform: translateY(-1px) rotate(-45deg);
|
|
61
|
+
transition: transform 150ms ease, opacity 150ms ease;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.settings-shell .settings-agent-flush[open] summary {
|
|
65
|
+
margin-bottom: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.settings-shell .settings-agent-flush[open] summary::before {
|
|
69
|
+
transform: translateY(2px) rotate(45deg);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.settings-shell .settings-agent-flush summary:hover::before {
|
|
73
|
+
opacity: 1;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.settings-shell .settings-agent-flush summary code {
|
|
77
|
+
margin-left: auto;
|
|
78
|
+
font-size: 13px;
|
|
79
|
+
font-weight: 400;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.settings-shell .settings-agent-flush > .settings-field-error {
|
|
83
|
+
display: block;
|
|
84
|
+
margin: 0;
|
|
85
|
+
padding: 0 16px 12px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Page-level inline notices share the section card chrome. */
|
|
89
|
+
.settings-shell .settings-inline-notice {
|
|
90
|
+
border: 1px solid var(--settings-border);
|
|
91
|
+
border-radius: 12px;
|
|
92
|
+
background: var(--settings-card);
|
|
93
|
+
padding: 12px 16px;
|
|
94
|
+
font-size: 13px;
|
|
95
|
+
line-height: 20px;
|
|
96
|
+
color: var(--text-secondary);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.settings-shell .settings-inline-notice > strong {
|
|
100
|
+
display: block;
|
|
101
|
+
margin-bottom: 4px;
|
|
102
|
+
color: var(--text-primary);
|
|
103
|
+
font-weight: 600;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.settings-shell .settings-inline-notice > p {
|
|
107
|
+
margin: 0;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.settings-shell .settings-inline-actions {
|
|
36
111
|
display: flex;
|
|
37
|
-
|
|
112
|
+
flex-wrap: wrap;
|
|
38
113
|
gap: 8px;
|
|
39
|
-
|
|
40
|
-
font-size: 12px;
|
|
114
|
+
margin-top: 10px;
|
|
41
115
|
}
|
|
42
116
|
|
|
43
|
-
.settings-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
border-radius: 999px;
|
|
47
|
-
background: var(--surface-raised);
|
|
117
|
+
.settings-shell .settings-inline-notice > .settings-field-error {
|
|
118
|
+
display: block;
|
|
119
|
+
margin-top: 8px;
|
|
48
120
|
}
|
|
49
121
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
122
|
+
/* Per-CLI model defaults: each group is a divided block inside the card;
|
|
123
|
+
* notes tuck under their field instead of drawing their own divider. */
|
|
124
|
+
.settings-shell .settings-percli-row {
|
|
125
|
+
border-bottom: 0;
|
|
126
|
+
border-top: 1px solid var(--settings-border);
|
|
127
|
+
padding-bottom: 0;
|
|
128
|
+
min-width: 0;
|
|
54
129
|
}
|
|
55
130
|
|
|
56
|
-
|
|
131
|
+
/* The grid class stays as the test-facing row wrapper; inside the shell the
|
|
132
|
+
* fields stack in the card's divided-row rhythm instead of a track grid. */
|
|
133
|
+
.settings-shell .settings-percli-grid {
|
|
57
134
|
display: flex;
|
|
58
135
|
flex-direction: column;
|
|
59
|
-
gap:
|
|
136
|
+
gap: 0;
|
|
137
|
+
align-items: stretch;
|
|
138
|
+
min-width: 0;
|
|
60
139
|
}
|
|
61
140
|
|
|
62
|
-
.settings-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
141
|
+
.settings-shell .settings-percli-grid > .settings-action {
|
|
142
|
+
align-self: flex-start;
|
|
143
|
+
margin: 0 16px 12px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.settings-shell .settings-percli-title {
|
|
66
147
|
margin: 0;
|
|
148
|
+
font-size: 13px;
|
|
149
|
+
font-weight: 600;
|
|
150
|
+
color: var(--text-primary);
|
|
67
151
|
}
|
|
68
152
|
|
|
69
|
-
.settings-
|
|
153
|
+
.settings-shell .settings-percli-note {
|
|
154
|
+
margin: 0;
|
|
155
|
+
padding: 0 16px 10px;
|
|
156
|
+
font-size: 12px;
|
|
157
|
+
line-height: 18px;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.settings-shell .settings-percli-note--effort {
|
|
161
|
+
margin-bottom: 0;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.settings-shell .settings-percli-row > .settings-field-error,
|
|
165
|
+
.settings-shell .settings-percli-grid > .settings-field-error {
|
|
166
|
+
display: block;
|
|
167
|
+
margin: 0;
|
|
168
|
+
padding: 0 16px 10px;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* Nested groups (STT engine sub-sections, runtime employees) become divided
|
|
172
|
+
* blocks of the same rows rather than floating fieldsets. */
|
|
173
|
+
.settings-shell .settings-engine-subsection {
|
|
174
|
+
border-top: 1px solid var(--settings-border);
|
|
175
|
+
min-width: 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.settings-shell .settings-engine-subsection-head {
|
|
70
179
|
display: flex;
|
|
71
180
|
align-items: center;
|
|
181
|
+
flex-wrap: wrap;
|
|
72
182
|
gap: 8px;
|
|
73
|
-
|
|
183
|
+
margin: 0;
|
|
184
|
+
padding: 10px 16px;
|
|
185
|
+
font-size: 13px;
|
|
186
|
+
font-weight: 600;
|
|
74
187
|
color: var(--text-primary);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.settings-shell .settings-engine-subsection-hint {
|
|
191
|
+
margin: 0;
|
|
192
|
+
padding: 0 16px 8px;
|
|
75
193
|
font-size: 12px;
|
|
76
|
-
|
|
194
|
+
color: var(--text-secondary);
|
|
77
195
|
}
|
|
78
196
|
|
|
79
|
-
.settings-runtime-employee-row
|
|
197
|
+
.settings-shell .settings-runtime-employee-row {
|
|
198
|
+
border: 0;
|
|
199
|
+
border-top: 1px solid var(--settings-border);
|
|
200
|
+
border-radius: 0;
|
|
201
|
+
margin: 0;
|
|
202
|
+
padding: 0;
|
|
203
|
+
min-width: 0;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.settings-shell .settings-runtime-employee-head {
|
|
207
|
+
display: flex;
|
|
208
|
+
align-items: center;
|
|
209
|
+
flex-wrap: wrap;
|
|
210
|
+
gap: 8px;
|
|
211
|
+
margin: 0;
|
|
212
|
+
padding: 10px 16px;
|
|
213
|
+
font-size: 12px;
|
|
80
214
|
color: var(--text-secondary);
|
|
81
|
-
font-size: 10px;
|
|
82
|
-
font-weight: 500;
|
|
83
|
-
text-transform: uppercase;
|
|
84
215
|
}
|
|
85
216
|
|
|
86
|
-
.settings-runtime-employee-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
align-items: end;
|
|
217
|
+
.settings-shell .settings-runtime-employee-name {
|
|
218
|
+
font-size: 13px;
|
|
219
|
+
font-weight: 600;
|
|
220
|
+
color: var(--text-primary);
|
|
91
221
|
}
|
|
92
222
|
|
|
93
|
-
.settings-runtime-employee-
|
|
223
|
+
.settings-runtime-employee-summary {
|
|
94
224
|
display: flex;
|
|
95
225
|
align-items: center;
|
|
96
|
-
|
|
97
|
-
gap: 10px;
|
|
98
|
-
margin-top: 4px;
|
|
226
|
+
gap: 8px;
|
|
99
227
|
color: var(--text-secondary);
|
|
228
|
+
font-size: 12px;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.settings-runtime-employee-summary span {
|
|
232
|
+
padding: 2px 6px;
|
|
233
|
+
border: 1px solid var(--border-subtle);
|
|
234
|
+
border-radius: 999px;
|
|
235
|
+
background: var(--surface-raised);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.settings-runtime-employee-summary strong {
|
|
239
|
+
color: var(--text-danger, #c83232);
|
|
100
240
|
font-size: 11px;
|
|
241
|
+
font-weight: 600;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.settings-runtime-employee-grid {
|
|
245
|
+
display: grid;
|
|
246
|
+
grid-template-columns: minmax(120px, 1fr) minmax(100px, 0.8fr) minmax(160px, 1.2fr) minmax(120px, 1fr);
|
|
247
|
+
gap: 10px;
|
|
248
|
+
align-items: end;
|
|
101
249
|
}
|
|
102
250
|
|
|
103
251
|
@media (max-width: 900px) {
|
|
@@ -112,6 +260,7 @@
|
|
|
112
260
|
.settings-shell .settings-runtime-employee-grid {
|
|
113
261
|
min-width: 0;
|
|
114
262
|
align-items: start;
|
|
263
|
+
padding: 0 16px;
|
|
115
264
|
}
|
|
116
265
|
.settings-shell .settings-runtime-employee-grid > .settings-field {
|
|
117
266
|
grid-template-columns: minmax(0, 1fr);
|
|
@@ -9,6 +9,7 @@ import './manager-dashboard-settings.css';
|
|
|
9
9
|
import './settings-shell.css';
|
|
10
10
|
import './settings-controls.css';
|
|
11
11
|
import './settings-agent.css';
|
|
12
|
+
import './settings-surface.css';
|
|
12
13
|
import './settings-embedding.css';
|
|
13
14
|
|
|
14
15
|
const proxyMatch = location.pathname.match(/^\/i\/(\d+)\//);
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/* Card-body primitives shared by every settings page (see page-shell.tsx).
|
|
2
|
+
* Each primitive is a full-width divided row inside `.settings-section-body`
|
|
3
|
+
* so it inherits the card border, radius and row separators. */
|
|
4
|
+
|
|
5
|
+
.settings-shell .settings-section-body > :is(.settings-kv, .settings-card-actions, .settings-card-toolbar, .settings-card-note) {
|
|
6
|
+
border-top: 1px solid var(--settings-border);
|
|
7
|
+
}
|
|
8
|
+
.settings-shell .settings-section-body > :is(.settings-kv, .settings-card-actions, .settings-card-toolbar, .settings-card-note):first-child {
|
|
9
|
+
border-top: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.settings-kv { margin: 0; display: flex; flex-direction: column; }
|
|
13
|
+
.settings-kv-row {
|
|
14
|
+
display: grid;
|
|
15
|
+
grid-template-columns: minmax(120px, 1fr) minmax(0, 2fr);
|
|
16
|
+
align-items: baseline;
|
|
17
|
+
column-gap: 24px;
|
|
18
|
+
padding: 12px 16px;
|
|
19
|
+
font-size: 14px;
|
|
20
|
+
}
|
|
21
|
+
.settings-kv-row + .settings-kv-row { border-top: 1px solid var(--settings-border); }
|
|
22
|
+
.settings-kv-row dt { font-weight: 500; color: var(--text-primary); }
|
|
23
|
+
.settings-kv-row dd { margin: 0; min-width: 0; color: var(--text-secondary); overflow-wrap: anywhere; text-align: right; }
|
|
24
|
+
.settings-kv-mono { font-family: var(--font-mono, ui-monospace, monospace); font-size: 13px; }
|
|
25
|
+
|
|
26
|
+
.settings-status {
|
|
27
|
+
display: inline-flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
gap: 6px;
|
|
30
|
+
padding: 2px 8px;
|
|
31
|
+
border-radius: 999px;
|
|
32
|
+
font-size: 12px;
|
|
33
|
+
font-weight: 500;
|
|
34
|
+
line-height: 20px;
|
|
35
|
+
background: var(--settings-hover);
|
|
36
|
+
color: var(--text-secondary);
|
|
37
|
+
}
|
|
38
|
+
.settings-status-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
|
|
39
|
+
.settings-status-ok { color: var(--success-text, #1f9d55); background: color-mix(in srgb, var(--success-text, #1f9d55) 12%, transparent); }
|
|
40
|
+
.settings-status-warn { color: var(--warning-text, #b7791f); background: color-mix(in srgb, var(--warning-text, #b7791f) 12%, transparent); }
|
|
41
|
+
.settings-status-error { color: var(--error-text, #c83232); background: color-mix(in srgb, var(--error-text, #c83232) 12%, transparent); }
|
|
42
|
+
|
|
43
|
+
.settings-card-actions {
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
flex-wrap: wrap;
|
|
47
|
+
gap: 8px 16px;
|
|
48
|
+
padding: 12px 16px;
|
|
49
|
+
}
|
|
50
|
+
.settings-card-actions-status { flex: 1 1 auto; min-width: 0; font-size: 13px; color: var(--text-secondary); }
|
|
51
|
+
.settings-card-actions-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
|
|
52
|
+
|
|
53
|
+
.settings-card-toolbar {
|
|
54
|
+
display: flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
flex-wrap: wrap;
|
|
57
|
+
gap: 8px;
|
|
58
|
+
padding: 10px 16px;
|
|
59
|
+
font-size: 12px;
|
|
60
|
+
color: var(--text-secondary);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.settings-card-note { margin: 0; padding: 12px 16px; font-size: 13px; line-height: 20px; color: var(--text-secondary); }
|
|
64
|
+
.settings-card-note-error { color: var(--error-text, #c83232); }
|
|
65
|
+
.settings-card-note-warn { color: var(--warning-text, #b7791f); }
|
|
66
|
+
|
|
67
|
+
.settings-card-actions .settings-action { min-height: 32px; padding: 6px 12px; border-radius: 8px; font-size: 13px; font-weight: 500; }
|
|
68
|
+
.settings-card-actions .settings-action:disabled { cursor: not-allowed; opacity: 0.5; }
|
|
69
|
+
.settings-card-actions .settings-action:not(:disabled):hover { background: var(--settings-hover); }
|
|
70
|
+
.settings-card-actions .settings-action-save:not(:disabled):hover { background: var(--text-primary); opacity: 0.88; }
|
|
71
|
+
.settings-shell .settings-action-danger { color: var(--error-text, #c83232); }
|
|
72
|
+
.settings-card-actions-buttons > .settings-field-hint { flex-basis: 100%; text-align: right; }
|
|
73
|
+
|
|
74
|
+
.settings-card-scroll { overflow-x: auto; padding: 0 16px 12px; }
|
|
75
|
+
|
|
76
|
+
@container settings (max-width: 719px) {
|
|
77
|
+
.settings-kv-row { grid-template-columns: minmax(0, 1fr); row-gap: 4px; }
|
|
78
|
+
.settings-kv-row dd { text-align: left; }
|
|
79
|
+
.settings-card-actions-buttons { margin-left: 0; }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.settings-shell .settings-card-group > .settings-card-actions { border-top: 1px solid var(--settings-border); }
|
|
83
|
+
.settings-shell .settings-section-body > .settings-card-group:first-child > .settings-card-actions:first-child { border-top: 0; }
|
|
84
|
+
|
|
85
|
+
.settings-card-toolbar .settings-action[aria-pressed="true"] { background: var(--settings-hover); border-color: var(--text-primary); color: var(--text-primary); }
|
|
86
|
+
|
|
87
|
+
.settings-shell .settings-mono-input { font-family: var(--font-mono, ui-monospace, monospace); }
|
|
88
|
+
.settings-shell .settings-memory-modal-body {
|
|
89
|
+
margin: 0;
|
|
90
|
+
font-family: var(--font-mono, ui-monospace, monospace);
|
|
91
|
+
font-size: 12px;
|
|
92
|
+
white-space: pre-wrap;
|
|
93
|
+
overflow-wrap: anywhere;
|
|
94
|
+
overflow: auto;
|
|
95
|
+
max-height: 60vh;
|
|
96
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
RG_VERSION=15.2.0
|
|
5
|
+
RG_ASSET="ripgrep-${RG_VERSION}-x86_64-unknown-linux-musl.tar.gz"
|
|
6
|
+
RG_SHA256=33e15bcf1624b25cdd2a55813a47a2f95dbe126268203e76aa6a585d1e7b149c
|
|
7
|
+
|
|
8
|
+
if [ "$(uname -s)" != "Linux" ]; then
|
|
9
|
+
echo "ERROR: install-ripgrep.sh only supports Linux (got $(uname -s))" >&2
|
|
10
|
+
exit 2
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
if [ "$(uname -m)" != "x86_64" ]; then
|
|
14
|
+
echo "ERROR: install-ripgrep.sh only supports x86_64 (got $(uname -m))" >&2
|
|
15
|
+
exit 2
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
DEST="${DEST:-${RUNNER_TEMP:-$(mktemp -d)}/ripgrep-bin}"
|
|
19
|
+
RG_WORK_DIR="$(mktemp -d "${RUNNER_TEMP:-/tmp}/ripgrep-dl.XXXXXX")"
|
|
20
|
+
|
|
21
|
+
mkdir -p "$DEST"
|
|
22
|
+
|
|
23
|
+
cd "$RG_WORK_DIR"
|
|
24
|
+
curl -fsSL --retry 3 "https://github.com/BurntSushi/ripgrep/releases/download/${RG_VERSION}/${RG_ASSET}" -o "$RG_ASSET"
|
|
25
|
+
echo "${RG_SHA256} ${RG_ASSET}" | sha256sum -c -
|
|
26
|
+
|
|
27
|
+
tar -xzf "$RG_ASSET"
|
|
28
|
+
cp "ripgrep-${RG_VERSION}-x86_64-unknown-linux-musl/rg" "${DEST}/rg"
|
|
29
|
+
chmod +x "${DEST}/rg"
|
|
30
|
+
|
|
31
|
+
if [ -n "${GITHUB_PATH:-}" ]; then
|
|
32
|
+
echo "$DEST" >> "$GITHUB_PATH"
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
"${DEST}/rg" --version
|
|
@@ -9,7 +9,7 @@ OUT_DIR=""
|
|
|
9
9
|
INSTALL_SCRIPT="${CLI_JAW_INSTALL_SCRIPT:-}"
|
|
10
10
|
VERIFIER_SCRIPT="${CLI_JAW_VERIFIER_SCRIPT:-}"
|
|
11
11
|
INSTALL_REF="${CLI_JAW_INSTALL_REF:-main}"
|
|
12
|
-
RAW_BASE="${CLI_JAW_RAW_BASE:-https://raw.githubusercontent.com/lidge-
|
|
12
|
+
RAW_BASE="${CLI_JAW_RAW_BASE:-https://raw.githubusercontent.com/lidge-ai/cli-jaw/${INSTALL_REF}}"
|
|
13
13
|
FAILURES=0
|
|
14
14
|
|
|
15
15
|
usage() {
|
|
@@ -69,7 +69,7 @@ while [ "$#" -gt 0 ]; do
|
|
|
69
69
|
--install-ref)
|
|
70
70
|
[ "$#" -ge 2 ] || { echo "Missing value for --install-ref" >&2; exit 2; }
|
|
71
71
|
INSTALL_REF="$2"
|
|
72
|
-
RAW_BASE="https://raw.githubusercontent.com/lidge-
|
|
72
|
+
RAW_BASE="https://raw.githubusercontent.com/lidge-ai/cli-jaw/${INSTALL_REF}"
|
|
73
73
|
shift 2
|
|
74
74
|
;;
|
|
75
75
|
--raw-base)
|
|
@@ -109,8 +109,7 @@ function runPackageContentsCheck() {
|
|
|
109
109
|
function structureVerifierSkipReason() {
|
|
110
110
|
if (!hasBash) return 'bash not available';
|
|
111
111
|
if (!existsSync('structure/verify-counts.sh')) return 'structure verifier not available';
|
|
112
|
-
|
|
113
|
-
if (!existsSync('public/dist')) return 'public/dist build output not available';
|
|
112
|
+
// The membership verifier needs only node + git; it no longer reads build output.
|
|
114
113
|
return '';
|
|
115
114
|
}
|
|
116
115
|
|
|
@@ -161,7 +160,7 @@ checks.push(() => run('electron staged sidecar no-JWC contract', npm, ['run', 'c
|
|
|
161
160
|
}));
|
|
162
161
|
checks.push(() => run('app icon asset contract', npm, ['run', 'check:app-icons']));
|
|
163
162
|
|
|
164
|
-
checks.push(() => run('structure
|
|
163
|
+
checks.push(() => run('structure tree membership', 'bash', ['structure/verify-counts.sh'], {
|
|
165
164
|
skip: structureVerifierSkipReason(),
|
|
166
165
|
}));
|
|
167
166
|
|
package/scripts/install-wsl.sh
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# ═══════════════════════════════════════════════════════════════
|
|
3
3
|
# 🦈 CLI-JAW — WSL One-Click Installer
|
|
4
|
-
# Usage: curl -fsSL https://raw.githubusercontent.com/lidge-
|
|
4
|
+
# Usage: curl -fsSL https://raw.githubusercontent.com/lidge-ai/cli-jaw/main/scripts/install-wsl.sh | bash
|
|
5
5
|
# ═══════════════════════════════════════════════════════════════
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
package/scripts/install.ps1
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
blocked-postinstall scenario deliberately.
|
|
26
26
|
|
|
27
27
|
.EXAMPLE
|
|
28
|
-
irm https://raw.githubusercontent.com/lidge-
|
|
28
|
+
irm https://raw.githubusercontent.com/lidge-ai/cli-jaw/main/scripts/install.ps1 | iex
|
|
29
29
|
#>
|
|
30
30
|
[CmdletBinding()]
|
|
31
31
|
param(
|
package/scripts/install.sh
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# ═══════════════════════════════════════════════════════════════
|
|
3
3
|
# 🦈 CLI-JAW — One-Click Installer (macOS / Linux)
|
|
4
|
-
# Usage: curl -fsSL https://raw.githubusercontent.com/lidge-
|
|
4
|
+
# Usage: curl -fsSL https://raw.githubusercontent.com/lidge-ai/cli-jaw/main/scripts/install.sh | bash
|
|
5
5
|
# ═══════════════════════════════════════════════════════════════
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
package/scripts/release-1.6.0.sh
CHANGED
|
@@ -66,4 +66,4 @@ gh release create "v$VERSION" \
|
|
|
66
66
|
echo ""
|
|
67
67
|
echo "✅ cli-jaw@$VERSION released"
|
|
68
68
|
echo " Install: npm install -g cli-jaw"
|
|
69
|
-
echo " Release: https://github.com/lidge-
|
|
69
|
+
echo " Release: https://github.com/lidge-ai/cli-jaw/releases/tag/v$VERSION"
|
|
@@ -147,6 +147,44 @@ const FORBIDDEN_IN_READY = [
|
|
|
147
147
|
];
|
|
148
148
|
|
|
149
149
|
const GATES = {
|
|
150
|
+
'dev-ff-main': {
|
|
151
|
+
description: 'dev branch is fast-forwardable on origin/main',
|
|
152
|
+
check() {
|
|
153
|
+
// actions/checkout leaves HEAD detached, so on Actions read the ref the
|
|
154
|
+
// run was triggered for (push and workflow_dispatch both use
|
|
155
|
+
// refs/heads/<branch>; pull_request uses refs/pull/* and is skipped).
|
|
156
|
+
const ghRef = process.env.GITHUB_REF || '';
|
|
157
|
+
const branch = ghRef.startsWith('refs/heads/')
|
|
158
|
+
? ghRef.slice('refs/heads/'.length)
|
|
159
|
+
: run('git', ['rev-parse', '--abbrev-ref', 'HEAD']).stdout.trim();
|
|
160
|
+
if (branch !== 'dev') {
|
|
161
|
+
return { ok: true, detail: `not on dev (branch=${branch}); skipped` };
|
|
162
|
+
}
|
|
163
|
+
// Always refresh: a stale local origin/main would pass vacuously.
|
|
164
|
+
const fetched = run('git', ['fetch', '--no-tags', 'origin', '+refs/heads/main:refs/remotes/origin/main'], { timeout: 60_000 });
|
|
165
|
+
if (fetched.status !== 0) {
|
|
166
|
+
return { ok: false, detail: `could not fetch origin/main: ${(fetched.stderr || '').trim()}` };
|
|
167
|
+
}
|
|
168
|
+
const ff = run('git', ['merge-base', '--is-ancestor', 'origin/main', 'HEAD']);
|
|
169
|
+
if (ff.status !== 0) {
|
|
170
|
+
return { ok: false, detail: 'dev is not fast-forwardable on main: merge/rebase origin/main (AGENTS.md Remote/브랜치 정책)' };
|
|
171
|
+
}
|
|
172
|
+
return { ok: true, detail: 'dev is fast-forwardable on origin/main' };
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
'agents-size': {
|
|
176
|
+
description: 'AGENTS.md line-count ratchet',
|
|
177
|
+
check() {
|
|
178
|
+
const AGENTS_MD_MAX_LINES = 480; // rounded-up new line count; lowering is the ratchet
|
|
179
|
+
const text = readFile('AGENTS.md');
|
|
180
|
+
// Same count as `wc -l`: newline characters.
|
|
181
|
+
const lines = (text.match(/\n/g) || []).length;
|
|
182
|
+
if (lines > AGENTS_MD_MAX_LINES) {
|
|
183
|
+
return { ok: false, detail: `AGENTS.md is ${lines} lines (max ${AGENTS_MD_MAX_LINES}); shrink or document the raise` };
|
|
184
|
+
}
|
|
185
|
+
return { ok: true, detail: `AGENTS.md: ${lines}/${AGENTS_MD_MAX_LINES} lines` };
|
|
186
|
+
},
|
|
187
|
+
},
|
|
150
188
|
'typecheck': {
|
|
151
189
|
description: 'tsc --noEmit (server + frontend) clean',
|
|
152
190
|
check() {
|
|
@@ -481,15 +519,18 @@ const GATES = {
|
|
|
481
519
|
},
|
|
482
520
|
},
|
|
483
521
|
'doc-drift': {
|
|
484
|
-
description: 'no tracked file carries merge conflict markers (every run) + structure docs match live inventory
|
|
522
|
+
description: 'no tracked file carries merge conflict markers (every run) + structure docs match live inventory',
|
|
485
523
|
check() {
|
|
486
524
|
// A merge that commits its own conflict markers is the one docs
|
|
487
|
-
// failure CI has to catch
|
|
488
|
-
//
|
|
489
|
-
// structure/str_func.md)
|
|
490
|
-
//
|
|
491
|
-
//
|
|
492
|
-
//
|
|
525
|
+
// failure CI has to catch: the #660 merge landed 14 unresolved
|
|
526
|
+
// blocks on dev (README.md, AGENTS.md, CLAUDE.md,
|
|
527
|
+
// structure/str_func.md) while gate:all stayed green. This scan is a
|
|
528
|
+
// string match on tracked paths, platform-neutral, and runs first.
|
|
529
|
+
//
|
|
530
|
+
// The inventory steps below used to be skipped on CI because
|
|
531
|
+
// str_func.md carried line counts that differ per checkout (no
|
|
532
|
+
// public/dist, different tracked-file set). str_func.md is now a
|
|
533
|
+
// membership map checked against tracked paths, so they run on CI too.
|
|
493
534
|
const markers = trackedConflictMarkers();
|
|
494
535
|
if (markers.error) return { ok: false, detail: markers.error };
|
|
495
536
|
if (markers.hits.length) {
|
|
@@ -500,12 +541,6 @@ const GATES = {
|
|
|
500
541
|
const unscanned = markers.unscanned?.length
|
|
501
542
|
? ` (not scanned, uninitialised submodule(s): ${markers.unscanned.join(', ')})`
|
|
502
543
|
: '';
|
|
503
|
-
// CI runners produce platform-dependent file/line inventories
|
|
504
|
-
// (no public/dist, different tracked-file set) that this gate
|
|
505
|
-
// cannot reconcile; it stays a local/pre-release discipline gate.
|
|
506
|
-
if (process.env.CI) {
|
|
507
|
-
return { ok: true, detail: `conflict-marker scan clean${unscanned}; inventory steps skipped on CI (local/pre-release only)` };
|
|
508
|
-
}
|
|
509
544
|
const steps = [
|
|
510
545
|
{ name: 'docs:check', cmd: 'npm', args: ['run', 'docs:check', '--silent'], timeout: 120_000 },
|
|
511
546
|
{ name: 'check-doc-drift.sh', cmd: 'bash', args: ['structure/check-doc-drift.sh'], timeout: 120_000 },
|
|
@@ -420,5 +420,5 @@ echo ""
|
|
|
420
420
|
echo "✅ Preview release queued: cli-jaw@$VERSION"
|
|
421
421
|
echo " Install: npm install -g cli-jaw@preview"
|
|
422
422
|
echo " Exact: npm install -g cli-jaw@$VERSION"
|
|
423
|
-
echo " Release: https://github.com/lidge-
|
|
424
|
-
echo " Workflow: https://github.com/lidge-
|
|
423
|
+
echo " Release: https://github.com/lidge-ai/cli-jaw/releases/tag/v$VERSION"
|
|
424
|
+
echo " Workflow: https://github.com/lidge-ai/cli-jaw/actions/workflows/publish.yml?query=event%3Aworkflow_dispatch"
|