aicodeman 1.35.0 → 1.40.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 +8 -0
- package/README.zh-CN.md +8 -0
- 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.d.ts.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- 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 +13 -0
- package/dist/config/cli-registry/schema.d.ts.map +1 -1
- package/dist/config/cli-registry/schema.js +60 -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 +175 -7
- package/dist/config/cli-registry/stock.js.map +1 -1
- package/dist/config/cli-registry/types.d.ts +93 -6
- 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-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/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 +280 -35
- package/dist/session.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/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/public/admin-ui.js.gz +0 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.abadc970.js +43 -0
- package/dist/web/public/app.abadc970.js.br +0 -0
- package/dist/web/public/app.abadc970.js.gz +0 -0
- package/dist/web/public/approvals-ui.js.gz +0 -0
- package/dist/web/public/{constants.d95fade9.js → constants.c0f8f9de.js} +1009 -127
- package/dist/web/public/constants.c0f8f9de.js.br +0 -0
- package/dist/web/public/constants.c0f8f9de.js.gz +0 -0
- package/dist/web/public/cron-ui.js.gz +0 -0
- package/dist/web/public/entrance-animations.js +1 -0
- 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 +12 -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.a31747a9.js +2 -0
- package/dist/web/public/i18n.a31747a9.js.br +0 -0
- package/dist/web/public/i18n.a31747a9.js.gz +0 -0
- package/dist/web/public/{image-input.a216cf9e.js → image-input.898a538b.js} +18 -8
- package/dist/web/public/image-input.898a538b.js.br +0 -0
- package/dist/web/public/image-input.898a538b.js.gz +0 -0
- package/dist/web/public/index.html +133 -37
- 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.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/{panels-ui.6a5898d9.js → panels-ui.4735dfc2.js} +4 -4
- package/dist/web/public/panels-ui.4735dfc2.js.br +0 -0
- package/dist/web/public/{panels-ui.6a5898d9.js.gz → panels-ui.4735dfc2.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.a97ab16f.js +97 -0
- package/dist/web/public/settings-ui.a97ab16f.js.br +0 -0
- package/dist/web/public/settings-ui.a97ab16f.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.8ee12666.css +1 -0
- package/dist/web/public/styles.8ee12666.css.br +0 -0
- package/dist/web/public/styles.8ee12666.css.gz +0 -0
- package/dist/web/public/subagent-windows.e6ca799f.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 +1611 -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.5059b30e.js +2 -0
- package/dist/web/public/terminal-ui.5059b30e.js.br +0 -0
- package/dist/web/public/terminal-ui.5059b30e.js.gz +0 -0
- package/dist/web/public/tile-grid.js +2684 -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.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.bbb5f84c.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.map +1 -1
- package/dist/web/routes/cli-registry-routes.js +3 -1
- 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/session-routes.d.ts +18 -0
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +86 -34
- 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 +27 -0
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +34 -0
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts +5 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +32 -11
- 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 +3 -1
- package/scripts/postinstall.js +16 -0
- 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/panels-ui.6a5898d9.js.br +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/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/voice-input.c4b51eb6.js.br +0 -0
- package/dist/web/public/voice-input.c4b51eb6.js.gz +0 -0
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* subfolder reports its whole enclosing repo; a nested repo below it is just an untracked folder
|
|
16
16
|
* to the outer one, and is not scanned;
|
|
17
17
|
* - NOT inside one (a folder that holds several projects): every repository found up to two levels
|
|
18
|
-
* DOWN (`
|
|
19
|
-
* symlinks), each reported separately;
|
|
18
|
+
* DOWN (the caller's `maxRepos` of them, `MAX_REPOS` by default, skipping dot-folders, `node_modules`
|
|
19
|
+
* and the like, never following symlinks), each reported separately;
|
|
20
20
|
* - a repository that merely sits ABOVE the workspace and is the home folder or higher (a dotfiles
|
|
21
21
|
* repo in `$HOME`, or `/`) is ignored: its dirty files are not this session's work.
|
|
22
22
|
*
|
|
@@ -49,7 +49,10 @@ import { basename, join, relative, sep } from 'node:path';
|
|
|
49
49
|
import { promisify } from 'node:util';
|
|
50
50
|
import { gitNonInteractiveEnv, redactGitCredentials } from './git-clone.js';
|
|
51
51
|
const execFileAsync = promisify(execFile);
|
|
52
|
-
|
|
52
|
+
/** How long one git command may run, unless the caller passes `timeoutMs` (a slow network share needs more). */
|
|
53
|
+
export const DEFAULT_GIT_TIMEOUT_MS = 30_000;
|
|
54
|
+
export const MIN_GIT_TIMEOUT_MS = 5_000;
|
|
55
|
+
export const MAX_GIT_TIMEOUT_MS = 120_000;
|
|
53
56
|
/** `git status` on a huge tree can print a lot; a bound on what we will hold. */
|
|
54
57
|
const MAX_OUTPUT_BYTES = 8 * 1024 * 1024;
|
|
55
58
|
/** Max file rows returned. The counts stay exact. */
|
|
@@ -174,14 +177,14 @@ export function parseCommitLog(text) {
|
|
|
174
177
|
}
|
|
175
178
|
return out;
|
|
176
179
|
}
|
|
177
|
-
export const runGit = async (cwd, args) => {
|
|
180
|
+
export const runGit = async (cwd, args, opts) => {
|
|
178
181
|
const { stdout } = await execFileAsync('git',
|
|
179
182
|
// --no-optional-locks: never touch the index just to look. core.fsmonitor=false: do not start or
|
|
180
183
|
// consult a filesystem monitor on behalf of a poll. log.showSignature=false: `git log` must not run
|
|
181
184
|
// a configured gpg.program to verify signatures.
|
|
182
185
|
['--no-optional-locks', '-c', 'core.fsmonitor=false', '-c', 'log.showSignature=false', ...args], {
|
|
183
186
|
cwd,
|
|
184
|
-
timeout:
|
|
187
|
+
timeout: opts?.timeoutMs ?? DEFAULT_GIT_TIMEOUT_MS,
|
|
185
188
|
maxBuffer: MAX_OUTPUT_BYTES,
|
|
186
189
|
env: { ...gitNonInteractiveEnv(), LC_ALL: 'C', LANG: 'C', GIT_OPTIONAL_LOCKS: '0' },
|
|
187
190
|
});
|
|
@@ -199,17 +202,10 @@ function describeFailure(err) {
|
|
|
199
202
|
const text = (stderr || e.message || 'git failed').trim().split('\n')[0];
|
|
200
203
|
return { notARepo: false, message: redactGitCredentials(text).slice(0, 300) };
|
|
201
204
|
}
|
|
202
|
-
async function collect(cwd, git) {
|
|
205
|
+
async function collect(cwd, git, timeoutMs) {
|
|
203
206
|
let statusText;
|
|
204
207
|
try {
|
|
205
|
-
statusText = await git(cwd, [
|
|
206
|
-
'status',
|
|
207
|
-
'--porcelain=v2',
|
|
208
|
-
'--branch',
|
|
209
|
-
'-z',
|
|
210
|
-
'--untracked-files=normal',
|
|
211
|
-
'--ignore-submodules=dirty',
|
|
212
|
-
]);
|
|
208
|
+
statusText = await git(cwd, ['status', '--porcelain=v2', '--branch', '-z', '--untracked-files=normal', '--ignore-submodules=dirty'], { timeoutMs });
|
|
213
209
|
}
|
|
214
210
|
catch (err) {
|
|
215
211
|
const f = describeFailure(err);
|
|
@@ -218,7 +214,7 @@ async function collect(cwd, git) {
|
|
|
218
214
|
const parsed = parsePorcelainV2(statusText);
|
|
219
215
|
const safe = async (args) => {
|
|
220
216
|
try {
|
|
221
|
-
return await git(cwd, args);
|
|
217
|
+
return await git(cwd, args, { timeoutMs });
|
|
222
218
|
}
|
|
223
219
|
catch {
|
|
224
220
|
return '';
|
|
@@ -313,7 +309,7 @@ async function singleFlight(map, key, opts, compute) {
|
|
|
313
309
|
*/
|
|
314
310
|
export async function getGitWorkspaceStatus(cwd, opts = {}) {
|
|
315
311
|
const git = opts.git ?? runGit;
|
|
316
|
-
return singleFlight(cache, cwd, { now: opts.now ?? Date.now, fresh: opts.fresh }, () => collect(cwd, git));
|
|
312
|
+
return singleFlight(cache, cwd, { now: opts.now ?? Date.now, fresh: opts.fresh }, () => collect(cwd, git, opts.timeoutMs));
|
|
317
313
|
}
|
|
318
314
|
const toplevelCache = new Map();
|
|
319
315
|
/** The root of the repository enclosing `cwd` (git walks up), from one cheap `rev-parse`. Cached like the status. */
|
|
@@ -321,7 +317,7 @@ function enclosingRepoRoot(cwd, opts) {
|
|
|
321
317
|
const git = opts.git ?? runGit;
|
|
322
318
|
return singleFlight(toplevelCache, cwd, { now: opts.now ?? Date.now, fresh: opts.fresh }, async () => {
|
|
323
319
|
try {
|
|
324
|
-
const root = (await git(cwd, ['rev-parse', '--show-toplevel'])).trim();
|
|
320
|
+
const root = (await git(cwd, ['rev-parse', '--show-toplevel'], { timeoutMs: opts.timeoutMs })).trim();
|
|
325
321
|
return root ? { state: 'ok', root } : { state: 'not-a-repo' };
|
|
326
322
|
}
|
|
327
323
|
catch (err) {
|
|
@@ -339,6 +335,16 @@ const DISCOVERY_MAX_DEPTH = 2;
|
|
|
339
335
|
const DISCOVERY_MAX_ENTRIES = 300;
|
|
340
336
|
/** Repositories reported for one workspace. */
|
|
341
337
|
export const MAX_REPOS = 12;
|
|
338
|
+
/** The most repositories a caller may ask for: each one costs several git processes per poll. */
|
|
339
|
+
export const MAX_REPOS_LIMIT = 50;
|
|
340
|
+
/** `value` as a whole number within [min, max], else `fallback`. For options that arrive as untrusted query strings. */
|
|
341
|
+
export function clampInt(value, min, max, fallback) {
|
|
342
|
+
// An empty string is "not given", not 0 (Number('') is 0, which would clamp to the minimum).
|
|
343
|
+
const n = typeof value === 'number' ? value : typeof value === 'string' && value.trim() !== '' ? Number(value) : NaN;
|
|
344
|
+
if (!Number.isFinite(n))
|
|
345
|
+
return fallback;
|
|
346
|
+
return Math.min(max, Math.max(min, Math.trunc(n)));
|
|
347
|
+
}
|
|
342
348
|
/** The list of repositories under a folder changes rarely, so it is re-scanned far less often than status. */
|
|
343
349
|
const DISCOVERY_TTL_MS = 30_000;
|
|
344
350
|
/** Folders that are never worth descending into when looking for projects. */
|
|
@@ -415,7 +421,7 @@ async function readDirBounded(dir) {
|
|
|
415
421
|
return out;
|
|
416
422
|
}
|
|
417
423
|
/** Repositories up to `DISCOVERY_MAX_DEPTH` levels below `cwd`, nearest and alphabetical first. Never follows symlinks. */
|
|
418
|
-
export async function discoverChildRepos(cwd, excludeRealRoots = []) {
|
|
424
|
+
export async function discoverChildRepos(cwd, excludeRealRoots = [], maxRepos = MAX_REPOS) {
|
|
419
425
|
const found = [];
|
|
420
426
|
let level = [cwd];
|
|
421
427
|
for (let depth = 1; depth <= DISCOVERY_MAX_DEPTH && level.length > 0; depth++) {
|
|
@@ -442,7 +448,7 @@ export async function discoverChildRepos(cwd, excludeRealRoots = []) {
|
|
|
442
448
|
}
|
|
443
449
|
level = next;
|
|
444
450
|
}
|
|
445
|
-
return { dirs: found.slice(0,
|
|
451
|
+
return { dirs: found.slice(0, maxRepos), truncated: found.length > maxRepos };
|
|
446
452
|
}
|
|
447
453
|
const discoveryCache = new Map();
|
|
448
454
|
/** Run `fn` over `items` with at most `limit` in flight, keeping the input order. */
|
|
@@ -458,6 +464,13 @@ async function mapLimited(items, limit, fn) {
|
|
|
458
464
|
await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
|
|
459
465
|
return out;
|
|
460
466
|
}
|
|
467
|
+
/** The repository limit and git timeout an overview was computed with, from untrusted options. */
|
|
468
|
+
export function resolveOverviewLimits(opts) {
|
|
469
|
+
return {
|
|
470
|
+
maxRepos: clampInt(opts.maxRepos, 1, MAX_REPOS_LIMIT, MAX_REPOS),
|
|
471
|
+
timeoutMs: clampInt(opts.timeoutMs, MIN_GIT_TIMEOUT_MS, MAX_GIT_TIMEOUT_MS, DEFAULT_GIT_TIMEOUT_MS),
|
|
472
|
+
};
|
|
473
|
+
}
|
|
461
474
|
/**
|
|
462
475
|
* WHICH repositories belong to the workspace (the module header has the rules), without a full
|
|
463
476
|
* status of any of them: one cached `rev-parse` for the enclosing repository, else the cached scan
|
|
@@ -465,6 +478,7 @@ async function mapLimited(items, limit, fn) {
|
|
|
465
478
|
*/
|
|
466
479
|
async function resolveWorkspaceRepos(cwd, opts) {
|
|
467
480
|
const now = opts.now ?? Date.now;
|
|
481
|
+
const { maxRepos, timeoutMs } = resolveOverviewLimits(opts);
|
|
468
482
|
const dockerRoots = await realAll(opts.dockerWorkspaces ?? []);
|
|
469
483
|
// Checked BEFORE any git runs: git walks up from cwd, and a repository the container can write to
|
|
470
484
|
// could carry config (a clean filter) that runs on the host.
|
|
@@ -473,7 +487,7 @@ async function resolveWorkspaceRepos(cwd, opts) {
|
|
|
473
487
|
// The enclosing repository is identified before its full status runs, so an unrelated one above the
|
|
474
488
|
// workspace (a dotfiles repo in $HOME) costs one rev-parse, and its status failing cannot hide the
|
|
475
489
|
// repositories below.
|
|
476
|
-
const top = await enclosingRepoRoot(cwd, opts);
|
|
490
|
+
const top = await enclosingRepoRoot(cwd, { ...opts, timeoutMs });
|
|
477
491
|
if (top.state === 'error')
|
|
478
492
|
return { kind: 'error', error: top.error };
|
|
479
493
|
if (top.state === 'ok') {
|
|
@@ -483,13 +497,15 @@ async function resolveWorkspaceRepos(cwd, opts) {
|
|
|
483
497
|
return { kind: 'enclosing', root: top.root };
|
|
484
498
|
}
|
|
485
499
|
// Not inside a repository of this workspace: look below for projects.
|
|
486
|
-
|
|
500
|
+
// Keyed by the limit too: a list cut at 12 must not answer a request for 30.
|
|
501
|
+
const discoveryKey = `${cwd}\0${maxRepos}`;
|
|
502
|
+
const hit = discoveryCache.get(discoveryKey);
|
|
487
503
|
let found;
|
|
488
504
|
if (!opts.fresh && hit && now() - hit.at < DISCOVERY_TTL_MS)
|
|
489
505
|
found = hit.value;
|
|
490
506
|
else {
|
|
491
|
-
found = await discoverChildRepos(cwd, dockerRoots);
|
|
492
|
-
discoveryCache.set(
|
|
507
|
+
found = await discoverChildRepos(cwd, dockerRoots, maxRepos);
|
|
508
|
+
discoveryCache.set(discoveryKey, { at: now(), value: found });
|
|
493
509
|
if (discoveryCache.size > CACHE_MAX_ENTRIES)
|
|
494
510
|
discoveryCache.delete(discoveryCache.keys().next().value);
|
|
495
511
|
}
|
|
@@ -498,7 +514,7 @@ async function resolveWorkspaceRepos(cwd, opts) {
|
|
|
498
514
|
for (const dir of found.dirs)
|
|
499
515
|
if (!(await isInsideAny(dir, dockerRoots)))
|
|
500
516
|
dirs.push(dir);
|
|
501
|
-
return { kind: 'children', dirs, truncated: found.truncated };
|
|
517
|
+
return { kind: 'children', dirs, truncated: found.truncated, limit: maxRepos };
|
|
502
518
|
}
|
|
503
519
|
/**
|
|
504
520
|
* Everything git knows about the session's workspace: the enclosing repository when there is one,
|
|
@@ -511,7 +527,7 @@ export async function getGitWorkspaceOverview(cwd, opts = {}) {
|
|
|
511
527
|
if (where.kind === 'error')
|
|
512
528
|
return emptyOverview('error', { error: where.error });
|
|
513
529
|
if (where.kind === 'enclosing') {
|
|
514
|
-
const primary = await getGitWorkspaceStatus(cwd, opts);
|
|
530
|
+
const primary = await getGitWorkspaceStatus(cwd, { ...opts, timeoutMs: resolveOverviewLimits(opts).timeoutMs });
|
|
515
531
|
if (primary.state === 'error')
|
|
516
532
|
return emptyOverview('error', { error: primary.error });
|
|
517
533
|
if (primary.state !== 'ok')
|
|
@@ -524,16 +540,20 @@ export async function getGitWorkspaceOverview(cwd, opts = {}) {
|
|
|
524
540
|
checkedAt: primary.checkedAt,
|
|
525
541
|
};
|
|
526
542
|
}
|
|
527
|
-
const
|
|
543
|
+
const timeoutMs = resolveOverviewLimits(opts).timeoutMs;
|
|
544
|
+
const statuses = await mapLimited(where.dirs, STATUS_CONCURRENCY, (dir) => getGitWorkspaceStatus(dir, { ...opts, timeoutMs }));
|
|
528
545
|
const repos = [];
|
|
529
546
|
where.dirs.forEach((dir, i) => {
|
|
530
547
|
const status = statuses[i];
|
|
531
|
-
|
|
548
|
+
// A repository git could not read (a timeout on a slow share, a broken worktree) stays in the
|
|
549
|
+
// list with its error, so it is visible that something is not being reported; only a folder
|
|
550
|
+
// that turned out not to be a repository after all is left out.
|
|
551
|
+
if (status.state === 'ok' || status.state === 'error')
|
|
532
552
|
repos.push({ name: basename(dir), path: relative(cwd, dir), status });
|
|
533
553
|
});
|
|
534
554
|
if (!repos.length)
|
|
535
555
|
return emptyOverview('not-a-repo');
|
|
536
|
-
return { state: 'ok', repos, reposTruncated: where.truncated, checkedAt: Date.now() };
|
|
556
|
+
return { state: 'ok', repos, reposTruncated: where.truncated, repoLimit: where.limit, checkedAt: Date.now() };
|
|
537
557
|
}
|
|
538
558
|
/**
|
|
539
559
|
* `repo` when it is the root of one of the repositories the overview reports for `cwd` (the same rules
|
|
@@ -581,7 +601,7 @@ export async function getGitFileDiff(repoRoot, file, opts = {}) {
|
|
|
581
601
|
let out;
|
|
582
602
|
let cutShort = false;
|
|
583
603
|
try {
|
|
584
|
-
out = await git(repoRoot, args);
|
|
604
|
+
out = await git(repoRoot, args, { timeoutMs: opts.timeoutMs });
|
|
585
605
|
}
|
|
586
606
|
catch (err) {
|
|
587
607
|
const e = err;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-workspace-status.js","sourceRoot":"","sources":["../src/git-workspace-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-workspace-status.js","sourceRoot":"","sources":["../src/git-workspace-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The config readers a CLI's registry entry may name for the model its
|
|
3
|
+
* session runs (`capabilities.modelDetect.configResolver`): the per-CLI behaviour lives
|
|
4
|
+
* here, keyed by name, so no code branches on a CLI id (like the launcher profiles in
|
|
5
|
+
* config/cli-registry/profiles.ts).
|
|
6
|
+
*
|
|
7
|
+
* A reader answers the model the CLI's own config pins for one session, or null when
|
|
8
|
+
* it pins none or the answer is in any doubt. It must be read-only, bounded (no
|
|
9
|
+
* synchronous filesystem call, nothing that can wait on a dead mount) and must return
|
|
10
|
+
* the model id alone, never another config value.
|
|
11
|
+
*
|
|
12
|
+
* @module model-config-resolvers
|
|
13
|
+
*/
|
|
14
|
+
import type { ModelConfigResolverName } from './config/cli-registry/types.js';
|
|
15
|
+
/** What a reader gets to know about the session. */
|
|
16
|
+
export interface ModelConfigContext {
|
|
17
|
+
/** The session's own launch config for its CLI (its `<Mode>Config`), if any. */
|
|
18
|
+
config: Record<string, unknown> | undefined;
|
|
19
|
+
/** The environment the session's CLI runs with (its own overrides, then the server's). */
|
|
20
|
+
env: (key: string) => string | undefined;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The model the named reader resolves for a session, or null.
|
|
24
|
+
*
|
|
25
|
+
* @param name a `configResolver` from the registry (schema-checked at load)
|
|
26
|
+
* @param ctx what the reader may know about the session
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveConfigModel(name: ModelConfigResolverName, ctx: ModelConfigContext): Promise<string | null>;
|
|
29
|
+
//# sourceMappingURL=model-config-resolvers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-config-resolvers.d.ts","sourceRoot":"","sources":["../src/model-config-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG9E,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5C,0FAA0F;IAC1F,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC1C;AAaD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The config readers a CLI's registry entry may name for the model its
|
|
3
|
+
* session runs (`capabilities.modelDetect.configResolver`): the per-CLI behaviour lives
|
|
4
|
+
* here, keyed by name, so no code branches on a CLI id (like the launcher profiles in
|
|
5
|
+
* config/cli-registry/profiles.ts).
|
|
6
|
+
*
|
|
7
|
+
* A reader answers the model the CLI's own config pins for one session, or null when
|
|
8
|
+
* it pins none or the answer is in any doubt. It must be read-only, bounded (no
|
|
9
|
+
* synchronous filesystem call, nothing that can wait on a dead mount) and must return
|
|
10
|
+
* the model id alone, never another config value.
|
|
11
|
+
*
|
|
12
|
+
* @module model-config-resolvers
|
|
13
|
+
*/
|
|
14
|
+
import { effectiveDshHome, readDeepSeekRouteModel } from './deepseek-route-config.js';
|
|
15
|
+
const RESOLVERS = {
|
|
16
|
+
// dsh-TUI's route: the session's profile (else the one the launch boots, which the
|
|
17
|
+
// launch names from the server's own dsh home) read under the session's dsh home.
|
|
18
|
+
'deepseek-route': (ctx) => readDeepSeekRouteModel({
|
|
19
|
+
profile: ctx.config?.profile,
|
|
20
|
+
home: effectiveDshHome(ctx.env),
|
|
21
|
+
serverHome: effectiveDshHome((key) => process.env[key]),
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The model the named reader resolves for a session, or null.
|
|
26
|
+
*
|
|
27
|
+
* @param name a `configResolver` from the registry (schema-checked at load)
|
|
28
|
+
* @param ctx what the reader may know about the session
|
|
29
|
+
*/
|
|
30
|
+
export async function resolveConfigModel(name, ctx) {
|
|
31
|
+
const resolver = RESOLVERS[name];
|
|
32
|
+
return resolver ? resolver(ctx) : null;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=model-config-resolvers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-config-resolvers.js","sourceRoot":"","sources":["../src/model-config-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAUtF,MAAM,SAAS,GAAyF;IACtG,mFAAmF;IACnF,kFAAkF;IAClF,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CACxB,sBAAsB,CAAC;QACrB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO;QAC5B,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/B,UAAU,EAAE,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACxD,CAAC;CACL,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA6B,EAC7B,GAAuB;IAEvB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Which model a session is running, as far as the server can know it
|
|
3
|
+
* (`SessionState.displayModel`, shown in the tile grid's and split pane's headers).
|
|
4
|
+
*
|
|
5
|
+
* Pure: the session feeds it what it has and publishes the answer through `toState()`.
|
|
6
|
+
*
|
|
7
|
+
* ## Sources, strongest first
|
|
8
|
+
*
|
|
9
|
+
* 1. **custom-endpoint**: a session pointed at a Custom Model Endpoint Profile is answered
|
|
10
|
+
* by that endpoint's `modelId`, whatever alias the CLI itself prints.
|
|
11
|
+
* 2. **statusline / screen**: what the running CLI REPORTS, newest report wins. Claude's
|
|
12
|
+
* statusLine exporter posts `model.display_name` on every render (it follows an
|
|
13
|
+
* in-session `/model`); a CLI whose registry entry declares
|
|
14
|
+
* `capabilities.modelDetect` has its footer read off the pane capture the idle/working
|
|
15
|
+
* probe already takes.
|
|
16
|
+
* 3. **config**: the model the CLI's own config pins for this session, read by the
|
|
17
|
+
* reader its registry entry names (`capabilities.modelDetect.configResolver`, e.g. the
|
|
18
|
+
* dsh-TUI route: src/deepseek-route-config.ts), for while the screen names none. Not
|
|
19
|
+
* a report from the running CLI, so any report outranks it.
|
|
20
|
+
* 4. **launch**: the model the session was launched with (claude's `--model` or the
|
|
21
|
+
* app-wide default it was created with; another CLI's `<cli>Config.model`). What was
|
|
22
|
+
* asked for, not what was reported, so it only shows when nothing reported.
|
|
23
|
+
*
|
|
24
|
+
* Nothing known means no field at all: the header shows the harness logo alone, never a
|
|
25
|
+
* placeholder or a guess.
|
|
26
|
+
*
|
|
27
|
+
* ## Untrusted text
|
|
28
|
+
*
|
|
29
|
+
* A screen-read model is pane text, and a statusline payload is a POST body: both are
|
|
30
|
+
* stripped of escape sequences and control characters, whitespace-collapsed and capped
|
|
31
|
+
* here, and the browser renders the result with `textContent`.
|
|
32
|
+
*
|
|
33
|
+
* Tests: `test/session-display-model.test.ts`.
|
|
34
|
+
*
|
|
35
|
+
* @module session-display-model
|
|
36
|
+
*/
|
|
37
|
+
import type { DisplayModel, DisplayModelSource } from './types/session.js';
|
|
38
|
+
/** Longest model name published (the header truncates long before this). */
|
|
39
|
+
export declare const MAX_DISPLAY_MODEL_CHARS = 64;
|
|
40
|
+
/** A report from the running CLI itself: the sources a restart may restore. */
|
|
41
|
+
export type ReportedModelSource = Extract<DisplayModelSource, 'statusline' | 'screen'>;
|
|
42
|
+
export interface ReportedModel {
|
|
43
|
+
model: string;
|
|
44
|
+
source: ReportedModelSource;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A model name fit to publish, or undefined when nothing printable is left.
|
|
48
|
+
*
|
|
49
|
+
* @param raw anything; only a string can yield a name
|
|
50
|
+
*/
|
|
51
|
+
export declare function sanitizeModelName(raw: unknown): string | undefined;
|
|
52
|
+
/** What a footer field can show that is never the model. */
|
|
53
|
+
export interface ScreenModelRejects {
|
|
54
|
+
/** The CLI's declared non-model words (`capabilities.modelDetect.rejectWords`), lower-cased compare. */
|
|
55
|
+
rejectWords?: readonly string[];
|
|
56
|
+
/** The session's working-directory basename: a footer field equal to it is the folder, exact compare. */
|
|
57
|
+
cwdBasename?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The model a pane's own chrome shows, read with the CLI's `modelDetect` pattern.
|
|
61
|
+
*
|
|
62
|
+
* Only the last `tailRows` non-blank rows are searched (joined with `\n`, so a pattern
|
|
63
|
+
* can anchor on the row above), which keeps the search below the transcript: the
|
|
64
|
+
* pattern itself must still anchor on chrome only that CLI draws.
|
|
65
|
+
*
|
|
66
|
+
* A footer whose model field is switched off shows its NEXT field where the model
|
|
67
|
+
* was, so the captured field is not taken when it is one of the CLI's declared
|
|
68
|
+
* non-model words (an effort level, a mode) or the session's own folder name, which a
|
|
69
|
+
* footer field equal to is the folder, never the model, whatever the CLI. Anything
|
|
70
|
+
* else the pattern captures is read as the model.
|
|
71
|
+
*
|
|
72
|
+
* @param paneText a plain `capture-pane -p` frame, or null when it could not be read
|
|
73
|
+
* @param pattern compiled through `compileVersionRegex()`, capture group 1 = the model
|
|
74
|
+
* @param tailRows how many non-blank rows from the bottom the pattern sees
|
|
75
|
+
* @param rejects fields that are never the model (see {@link ScreenModelRejects})
|
|
76
|
+
* @returns the model, or undefined when the frame shows none
|
|
77
|
+
*/
|
|
78
|
+
export declare function readScreenModel(paneText: string | null | undefined, pattern: RegExp, tailRows?: number, rejects?: ScreenModelRejects): string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* The model a session was launched with, read the way its spawn reads it: where the
|
|
81
|
+
* model param lives is registry data (`capabilities.model` names the param, the entry's
|
|
82
|
+
* `legacyConfigField` the `<Mode>Config` object holding it, or the option bag itself for
|
|
83
|
+
* claude), never a branch on the CLI id. A CLI whose model is not a launch param (shell,
|
|
84
|
+
* dsh) has none.
|
|
85
|
+
*
|
|
86
|
+
* @param mode the session's CLI id
|
|
87
|
+
* @param bag the session's launch option bag (`model`, `codexConfig`, ...)
|
|
88
|
+
*/
|
|
89
|
+
export declare function launchModelFor(mode: string, bag: Record<string, unknown>): string | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* The persisted `displayModel` of a previous run, when it was a report from the CLI
|
|
92
|
+
* itself: a restart shows it until the next report replaces it. A custom-endpoint or
|
|
93
|
+
* launch answer is not restored, since the session derives those again by itself.
|
|
94
|
+
*/
|
|
95
|
+
export declare function restoredReportedModel(saved: unknown): ReportedModel | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* The model a session header shows, and where it came from.
|
|
98
|
+
*
|
|
99
|
+
* @param input.customModelId the custom endpoint's model, when the session is pointed at one
|
|
100
|
+
* @param input.reported the newest report from the CLI itself
|
|
101
|
+
* @param input.configModel the model the CLI's config pins for the session
|
|
102
|
+
* @param input.launchModel the model the session was launched with
|
|
103
|
+
*/
|
|
104
|
+
export declare function resolveDisplayModel(input: {
|
|
105
|
+
customModelId?: string;
|
|
106
|
+
reported?: ReportedModel | null;
|
|
107
|
+
configModel?: string | null;
|
|
108
|
+
launchModel?: string;
|
|
109
|
+
}): DisplayModel | undefined;
|
|
110
|
+
//# sourceMappingURL=session-display-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-display-model.d.ts","sourceRoot":"","sources":["../src/session-display-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAK3E,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,EAAE,YAAY,GAAG,QAAQ,CAAC,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKlE;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,wGAAwG;IACxG,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAU,EACpB,OAAO,GAAE,kBAAuB,GAC/B,MAAM,GAAG,SAAS,CAgBpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAQ7F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAM/E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,YAAY,GAAG,SAAS,CAU3B"}
|