@sagmans/dsh-tui 0.6.0 → 0.8.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/.agents/skills/dsh-tui-dogfood/SKILL.md +83 -0
- package/.agents/skills/dsh-tui-dogfood/references/home-state.md +78 -0
- package/.agents/skills/dsh-tui-dogfood/scripts/clone-links.mjs +133 -0
- package/.agents/skills/dsh-tui-dogfood/scripts/run-plugin-from-worktree.sh +417 -0
- package/.agents/skills/dsh-tui-update-models/SKILL.md +199 -0
- package/.agents/skills/dsh-tui-update-models/references/model-wiring.md +292 -0
- package/.agents/skills/dsh-tui-update-models/scripts/dump-model-catalog.mjs +314 -0
- package/README.md +154 -27
- package/lib/agent/present.d.ts.map +1 -1
- package/lib/agent/present.js +2 -1
- package/lib/agent/present.js.map +1 -1
- package/lib/cards/composition.d.ts +68 -0
- package/lib/cards/composition.d.ts.map +1 -0
- package/lib/cards/composition.js +117 -0
- package/lib/cards/composition.js.map +1 -0
- package/lib/cards/presenter.d.ts +23 -0
- package/lib/cards/presenter.d.ts.map +1 -0
- package/lib/cards/presenter.js +394 -0
- package/lib/cards/presenter.js.map +1 -0
- package/lib/cards/preview.d.ts +42 -0
- package/lib/cards/preview.d.ts.map +1 -0
- package/lib/cards/preview.js +51 -0
- package/lib/cards/preview.js.map +1 -0
- package/lib/cards.d.ts +12 -120
- package/lib/cards.d.ts.map +1 -1
- package/lib/cards.js +4 -556
- package/lib/cards.js.map +1 -1
- package/lib/compat/section.d.ts +29 -0
- package/lib/compat/section.d.ts.map +1 -0
- package/lib/compat/section.js +82 -0
- package/lib/compat/section.js.map +1 -0
- package/lib/config.d.ts +27 -2
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +61 -1
- package/lib/config.js.map +1 -1
- package/lib/contracts.d.ts +28 -0
- package/lib/contracts.d.ts.map +1 -1
- package/lib/fold-cursor.d.ts +8 -0
- package/lib/fold-cursor.d.ts.map +1 -1
- package/lib/fold-cursor.js +18 -0
- package/lib/fold-cursor.js.map +1 -1
- package/lib/gates/question-card.d.ts +77 -0
- package/lib/gates/question-card.d.ts.map +1 -0
- package/lib/gates/question-card.js +113 -0
- package/lib/gates/question-card.js.map +1 -0
- package/lib/gates/questions.d.ts +127 -0
- package/lib/gates/questions.d.ts.map +1 -0
- package/lib/gates/questions.js +418 -0
- package/lib/gates/questions.js.map +1 -0
- package/lib/gates.d.ts +1 -113
- package/lib/gates.d.ts.map +1 -1
- package/lib/gates.js +1 -484
- package/lib/gates.js.map +1 -1
- package/lib/herdr/client.d.ts +8 -0
- package/lib/herdr/client.d.ts.map +1 -1
- package/lib/herdr/client.js +13 -1
- package/lib/herdr/client.js.map +1 -1
- package/lib/herdr/constants.d.ts +18 -0
- package/lib/herdr/constants.d.ts.map +1 -1
- package/lib/herdr/constants.js +18 -0
- package/lib/herdr/constants.js.map +1 -1
- package/lib/herdr/reporter.d.ts +20 -4
- package/lib/herdr/reporter.d.ts.map +1 -1
- package/lib/herdr/reporter.js +70 -20
- package/lib/herdr/reporter.js.map +1 -1
- package/lib/herdr/state.d.ts +10 -0
- package/lib/herdr/state.d.ts.map +1 -1
- package/lib/herdr/state.js +21 -4
- package/lib/herdr/state.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +348 -2602
- package/lib/index.js.map +1 -1
- package/lib/input/action-catalog.d.ts +74 -0
- package/lib/input/action-catalog.d.ts.map +1 -0
- package/lib/input/action-catalog.js +137 -0
- package/lib/input/action-catalog.js.map +1 -0
- package/lib/input/actions.d.ts +5 -81
- package/lib/input/actions.d.ts.map +1 -1
- package/lib/input/actions.js +4 -625
- package/lib/input/actions.js.map +1 -1
- package/lib/input/completion.d.ts +1 -1
- package/lib/input/completion.d.ts.map +1 -1
- package/lib/input/completion.js +2 -1
- package/lib/input/completion.js.map +1 -1
- package/lib/input/file-index.d.ts +40 -0
- package/lib/input/file-index.d.ts.map +1 -0
- package/lib/input/file-index.js +141 -0
- package/lib/input/file-index.js.map +1 -0
- package/lib/input/file-search.d.ts +1 -38
- package/lib/input/file-search.d.ts.map +1 -1
- package/lib/input/file-search.js +1 -487
- package/lib/input/file-search.js.map +1 -1
- package/lib/input/key-press.d.ts +57 -0
- package/lib/input/key-press.d.ts.map +1 -0
- package/lib/input/key-press.js +218 -0
- package/lib/input/key-press.js.map +1 -0
- package/lib/input/keymap-conflicts.d.ts +59 -0
- package/lib/input/keymap-conflicts.d.ts.map +1 -0
- package/lib/input/keymap-conflicts.js +292 -0
- package/lib/input/keymap-conflicts.js.map +1 -0
- package/lib/input/keymap-settings.js +1 -1
- package/lib/input/keymap-settings.js.map +1 -1
- package/lib/input/keymap.d.ts.map +1 -1
- package/lib/input/keymap.js +3 -1
- package/lib/input/keymap.js.map +1 -1
- package/lib/input/workspace-files.d.ts +10 -0
- package/lib/input/workspace-files.d.ts.map +1 -0
- package/lib/input/workspace-files.js +359 -0
- package/lib/input/workspace-files.js.map +1 -0
- package/lib/install-skills.d.ts +39 -0
- package/lib/install-skills.d.ts.map +1 -0
- package/lib/install-skills.js +273 -0
- package/lib/install-skills.js.map +1 -0
- package/lib/keys-command.d.ts +2 -1
- package/lib/keys-command.d.ts.map +1 -1
- package/lib/keys-command.js +2 -1
- package/lib/keys-command.js.map +1 -1
- package/lib/model-list.d.ts +37 -0
- package/lib/model-list.d.ts.map +1 -0
- package/lib/model-list.js +60 -0
- package/lib/model-list.js.map +1 -0
- package/lib/startup.d.ts +8 -0
- package/lib/startup.d.ts.map +1 -1
- package/lib/startup.js +120 -24
- package/lib/startup.js.map +1 -1
- package/lib/subagents.d.ts +7 -3
- package/lib/subagents.d.ts.map +1 -1
- package/lib/subagents.js +28 -4
- package/lib/subagents.js.map +1 -1
- package/lib/surface/appearance-preferences.d.ts +26 -0
- package/lib/surface/appearance-preferences.d.ts.map +1 -0
- package/lib/surface/appearance-preferences.js +139 -0
- package/lib/surface/appearance-preferences.js.map +1 -0
- package/lib/surface/appearance.d.ts +87 -0
- package/lib/surface/appearance.d.ts.map +1 -0
- package/lib/surface/appearance.js +353 -0
- package/lib/surface/appearance.js.map +1 -0
- package/lib/surface/background-work.d.ts +51 -0
- package/lib/surface/background-work.d.ts.map +1 -0
- package/lib/surface/background-work.js +172 -0
- package/lib/surface/background-work.js.map +1 -0
- package/lib/surface/commands.d.ts +82 -0
- package/lib/surface/commands.d.ts.map +1 -0
- package/lib/surface/commands.js +370 -0
- package/lib/surface/commands.js.map +1 -0
- package/lib/surface/modal-input.d.ts +59 -0
- package/lib/surface/modal-input.d.ts.map +1 -0
- package/lib/surface/modal-input.js +243 -0
- package/lib/surface/modal-input.js.map +1 -0
- package/lib/surface/model-choice.d.ts +54 -0
- package/lib/surface/model-choice.d.ts.map +1 -0
- package/lib/surface/model-choice.js +325 -0
- package/lib/surface/model-choice.js.map +1 -0
- package/lib/surface/preset-choice.d.ts +78 -0
- package/lib/surface/preset-choice.d.ts.map +1 -0
- package/lib/surface/preset-choice.js +163 -0
- package/lib/surface/preset-choice.js.map +1 -0
- package/lib/surface/prompt-input.d.ts +97 -0
- package/lib/surface/prompt-input.d.ts.map +1 -0
- package/lib/surface/prompt-input.js +215 -0
- package/lib/surface/prompt-input.js.map +1 -0
- package/lib/surface/prompt-memory.d.ts +76 -0
- package/lib/surface/prompt-memory.d.ts.map +1 -0
- package/lib/surface/prompt-memory.js +167 -0
- package/lib/surface/prompt-memory.js.map +1 -0
- package/lib/surface/session-lifecycle.d.ts +120 -0
- package/lib/surface/session-lifecycle.d.ts.map +1 -0
- package/lib/surface/session-lifecycle.js +324 -0
- package/lib/surface/session-lifecycle.js.map +1 -0
- package/lib/surface/session-picker.d.ts +39 -0
- package/lib/surface/session-picker.d.ts.map +1 -0
- package/lib/surface/session-picker.js +107 -0
- package/lib/surface/session-picker.js.map +1 -0
- package/lib/surface/session-view.d.ts +86 -0
- package/lib/surface/session-view.d.ts.map +1 -0
- package/lib/surface/session-view.js +215 -0
- package/lib/surface/session-view.js.map +1 -0
- package/lib/surface/staged-turns.d.ts +81 -0
- package/lib/surface/staged-turns.d.ts.map +1 -0
- package/lib/surface/staged-turns.js +206 -0
- package/lib/surface/staged-turns.js.map +1 -0
- package/lib/surface/terminal-lifecycle.d.ts +76 -0
- package/lib/surface/terminal-lifecycle.d.ts.map +1 -0
- package/lib/surface/terminal-lifecycle.js +222 -0
- package/lib/surface/terminal-lifecycle.js.map +1 -0
- package/lib/terminal-text/scan.d.ts +44 -0
- package/lib/terminal-text/scan.d.ts.map +1 -0
- package/lib/terminal-text/scan.js +195 -0
- package/lib/terminal-text/scan.js.map +1 -0
- package/lib/terminal-text/sgr.d.ts +32 -0
- package/lib/terminal-text/sgr.d.ts.map +1 -0
- package/lib/terminal-text/sgr.js +203 -0
- package/lib/terminal-text/sgr.js.map +1 -0
- package/lib/terminal-text.d.ts +1 -1
- package/lib/terminal-text.d.ts.map +1 -1
- package/lib/terminal-text.js +2 -379
- package/lib/terminal-text.js.map +1 -1
- package/lib/theme-command.js +2 -1
- package/lib/theme-command.js.map +1 -1
- package/lib/theme-defaults.d.ts +64 -0
- package/lib/theme-defaults.d.ts.map +1 -0
- package/lib/theme-defaults.js +248 -0
- package/lib/theme-defaults.js.map +1 -0
- package/lib/theme-files.d.ts +1 -1
- package/lib/theme-files.d.ts.map +1 -1
- package/lib/theme-files.js +1 -1
- package/lib/theme-files.js.map +1 -1
- package/lib/theme-resolver.d.ts +36 -0
- package/lib/theme-resolver.d.ts.map +1 -0
- package/lib/theme-resolver.js +112 -0
- package/lib/theme-resolver.js.map +1 -0
- package/lib/theme-schema.d.ts.map +1 -1
- package/lib/theme-schema.js +3 -2
- package/lib/theme-schema.js.map +1 -1
- package/lib/theme-settings.d.ts +5 -7
- package/lib/theme-settings.d.ts.map +1 -1
- package/lib/theme-settings.js +37 -21
- package/lib/theme-settings.js.map +1 -1
- package/lib/theme-tokens.d.ts +0 -89
- package/lib/theme-tokens.d.ts.map +1 -1
- package/lib/theme-tokens.js +0 -356
- package/lib/theme-tokens.js.map +1 -1
- package/lib/theme.d.ts +1 -1
- package/lib/theme.d.ts.map +1 -1
- package/lib/theme.js +2 -1
- package/lib/theme.js.map +1 -1
- package/lib/tool-display.d.ts.map +1 -1
- package/lib/tool-display.js +2 -1
- package/lib/tool-display.js.map +1 -1
- package/lib/transcript/message-content.d.ts +21 -0
- package/lib/transcript/message-content.d.ts.map +1 -0
- package/lib/transcript/message-content.js +61 -0
- package/lib/transcript/message-content.js.map +1 -0
- package/lib/transcript/tool-calls.d.ts +106 -0
- package/lib/transcript/tool-calls.d.ts.map +1 -0
- package/lib/transcript/tool-calls.js +254 -0
- package/lib/transcript/tool-calls.js.map +1 -0
- package/lib/transcript.d.ts +14 -55
- package/lib/transcript.d.ts.map +1 -1
- package/lib/transcript.js +31 -253
- package/lib/transcript.js.map +1 -1
- package/lib/ui/dock.d.ts +14 -2
- package/lib/ui/dock.d.ts.map +1 -1
- package/lib/ui/dock.js +52 -10
- package/lib/ui/dock.js.map +1 -1
- package/lib/ui/editor.d.ts.map +1 -1
- package/lib/ui/editor.js +2 -1
- package/lib/ui/editor.js.map +1 -1
- package/lib/ui/keymap-picker.d.ts +2 -1
- package/lib/ui/keymap-picker.d.ts.map +1 -1
- package/lib/ui/keymap-picker.js +1 -0
- package/lib/ui/keymap-picker.js.map +1 -1
- package/lib/ui/view/gate-card.d.ts +21 -0
- package/lib/ui/view/gate-card.d.ts.map +1 -0
- package/lib/ui/view/gate-card.js +104 -0
- package/lib/ui/view/gate-card.js.map +1 -0
- package/lib/ui/view/tool-card.d.ts +149 -0
- package/lib/ui/view/tool-card.d.ts.map +1 -0
- package/lib/ui/view/tool-card.js +429 -0
- package/lib/ui/view/tool-card.js.map +1 -0
- package/lib/ui/view/transcript-message.d.ts +62 -0
- package/lib/ui/view/transcript-message.d.ts.map +1 -0
- package/lib/ui/view/transcript-message.js +158 -0
- package/lib/ui/view/transcript-message.js.map +1 -0
- package/lib/ui/view.d.ts +105 -223
- package/lib/ui/view.d.ts.map +1 -1
- package/lib/ui/view.js +132 -679
- package/lib/ui/view.js.map +1 -1
- package/package.json +3 -1
- package/themes/violet-orbit.yaml +7 -5
package/lib/input/keymap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAc,MAAM,wBAAwB,CAAA;AACpH,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/input/keymap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Candidate } from './file-search.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The rows of a workspace, from git when it owns the directory and from a walk
|
|
4
|
+
* when it does not.
|
|
5
|
+
*/
|
|
6
|
+
export declare function listWorkspaceFiles(cwd: string, signal: AbortSignal): Promise<readonly Candidate[]>;
|
|
7
|
+
export declare function canonicalOrUndefined(path: string): Promise<string | undefined>;
|
|
8
|
+
/** Walk a tree git does not own, breadth first, stopping at the caps above. */
|
|
9
|
+
export declare function walkFiles(cwd: string, signal: AbortSignal): Promise<readonly Candidate[]>;
|
|
10
|
+
//# sourceMappingURL=workspace-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-files.d.ts","sourceRoot":"","sources":["../../src/input/workspace-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA0B,MAAM,kBAAkB,CAAA;AA6FzE;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAWxG;AA2ND,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAMpF;AAED,+EAA+E;AAC/E,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAqC/F"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import { offerablePath, depthOf } from "./file-search.js";
|
|
2
|
+
import { spawn } from 'node:child_process';
|
|
3
|
+
import { lstat, readdir, realpath, stat } from 'node:fs/promises';
|
|
4
|
+
import { dirname, isAbsolute, join, relative } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Which files the workspace holds, asked of Git first and walked otherwise.
|
|
7
|
+
*
|
|
8
|
+
* Enumeration is an effect, not a policy: the listing subprocess, its timeout,
|
|
9
|
+
* and the bounded walk that answers when Git is absent or refuses, all change
|
|
10
|
+
* for reasons the token grammar the reader types into does not.
|
|
11
|
+
*/
|
|
12
|
+
/** How long git is given before the menu stops waiting for its answer. */
|
|
13
|
+
const GIT_TIMEOUT_MS = 3_000;
|
|
14
|
+
/**
|
|
15
|
+
* The git listing that answers for a workspace.
|
|
16
|
+
*
|
|
17
|
+
* Tracked files and untracked ones that git would add, with ignored paths left
|
|
18
|
+
* out: that is the set the agent itself works on, so a suggestion can never
|
|
19
|
+
* name a build artifact or a secret the repository deliberately ignores. The
|
|
20
|
+
* stage information is asked for too, because it is the only place the listing
|
|
21
|
+
* says which entries are symbolic links.
|
|
22
|
+
*
|
|
23
|
+
* The two sets are asked for apart: an indexed record carries metadata before a
|
|
24
|
+
* tab and an untracked one is a bare path, so a tab inside an untracked name
|
|
25
|
+
* would otherwise look like metadata and hand back a path nobody wrote.
|
|
26
|
+
*/
|
|
27
|
+
const GIT_TRACKED_ARGUMENTS = ['ls-files', '-s', '-z', '--cached'];
|
|
28
|
+
const GIT_UNTRACKED_ARGUMENTS = ['ls-files', '-z', '--others', '--exclude-standard'];
|
|
29
|
+
/** The index modes that name something other than an ordinary file. */
|
|
30
|
+
const GIT_SYMLINK_MODE = '120000';
|
|
31
|
+
const GIT_SUBMODULE_MODE = '160000';
|
|
32
|
+
const GIT_MODE_LENGTH = 6;
|
|
33
|
+
/** Git's way of saying the directory was never under version control. */
|
|
34
|
+
const GIT_EXIT_FATAL = 128;
|
|
35
|
+
const GIT_NOT_A_REPOSITORY = /not a git repository/i;
|
|
36
|
+
const GIT_ERROR_LIMIT = 4_096;
|
|
37
|
+
/** The marker git leaves at the root of a worktree, which a walk must respect. */
|
|
38
|
+
const GIT_MARKER = '.git';
|
|
39
|
+
/** A path that cannot climb further than this many parents is not mounted anywhere real. */
|
|
40
|
+
const MAX_PARENT_DIRECTORIES = 40;
|
|
41
|
+
/**
|
|
42
|
+
* Directories a plain walk never descends into.
|
|
43
|
+
*
|
|
44
|
+
* These hold build output and caches rather than anything a reader attaches,
|
|
45
|
+
* and one of them can dwarf the real tree.
|
|
46
|
+
*/
|
|
47
|
+
const SKIP_DIRECTORIES = new Set([
|
|
48
|
+
'.git',
|
|
49
|
+
'node_modules',
|
|
50
|
+
'__pycache__',
|
|
51
|
+
'.venv',
|
|
52
|
+
'venv',
|
|
53
|
+
'.cache',
|
|
54
|
+
'.next',
|
|
55
|
+
'.turbo',
|
|
56
|
+
'dist',
|
|
57
|
+
'build',
|
|
58
|
+
'coverage',
|
|
59
|
+
'target',
|
|
60
|
+
]);
|
|
61
|
+
/** Caps that keep a walk over a home directory from stalling the editor. */
|
|
62
|
+
const MAX_WALK_ENTRIES = 20_000;
|
|
63
|
+
const MAX_WALK_DEPTH = 12;
|
|
64
|
+
/**
|
|
65
|
+
* The rows of a workspace, from git when it owns the directory and from a walk
|
|
66
|
+
* when it does not.
|
|
67
|
+
*/
|
|
68
|
+
export async function listWorkspaceFiles(cwd, signal) {
|
|
69
|
+
if (signal.aborted)
|
|
70
|
+
return [];
|
|
71
|
+
const listing = await gitFiles(cwd, signal);
|
|
72
|
+
if (signal.aborted)
|
|
73
|
+
return [];
|
|
74
|
+
if (listing.kind === 'listed')
|
|
75
|
+
return await candidatesFrom(cwd, listing.entries, signal);
|
|
76
|
+
// A tree a marker claims is a tree whose ignore-files must hold, whether git
|
|
77
|
+
// owns it, lost it, or could not read it: a walk here would offer exactly the
|
|
78
|
+
// paths those files keep out. Only a directory no marker reaches above may be
|
|
79
|
+
// walked, and there nothing is being ignored in the first place.
|
|
80
|
+
if (await hasGitMarker(cwd))
|
|
81
|
+
return [];
|
|
82
|
+
return await walkFiles(cwd, signal);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Whether git owns this directory, or one above it, without asking git itself.
|
|
86
|
+
*
|
|
87
|
+
* A marker is the name itself, even when it is a link whose target is gone:
|
|
88
|
+
* git reads that link, so this has to see it too. A stat that fails for any
|
|
89
|
+
* reason but absence, and a climb that runs out of levels before a filesystem
|
|
90
|
+
* root, both leave the question open — and an open question is answered by
|
|
91
|
+
* refusing to walk, because a walk offers the very paths an ignore-file is
|
|
92
|
+
* there to keep out.
|
|
93
|
+
*/
|
|
94
|
+
async function hasGitMarker(cwd) {
|
|
95
|
+
let directory = cwd;
|
|
96
|
+
for (let level = 0; level < MAX_PARENT_DIRECTORIES; level += 1) {
|
|
97
|
+
try {
|
|
98
|
+
await lstat(join(directory, GIT_MARKER));
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
if (!isAbsent(error))
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
const parent = dirname(directory);
|
|
106
|
+
if (parent === directory)
|
|
107
|
+
return false;
|
|
108
|
+
directory = parent;
|
|
109
|
+
}
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
/** Whether a stat failed because nothing carries that name. */
|
|
113
|
+
function isAbsent(error) {
|
|
114
|
+
const code = error?.code;
|
|
115
|
+
return code === 'ENOENT' || code === 'ENOTDIR';
|
|
116
|
+
}
|
|
117
|
+
/** Git's answer for a workspace, from the two listings a suggestion set needs. */
|
|
118
|
+
async function gitFiles(cwd, signal) {
|
|
119
|
+
if (signal.aborted)
|
|
120
|
+
return { kind: 'failed' };
|
|
121
|
+
const [tracked, untracked] = await Promise.all([
|
|
122
|
+
runGit(cwd, GIT_TRACKED_ARGUMENTS, signal),
|
|
123
|
+
runGit(cwd, GIT_UNTRACKED_ARGUMENTS, signal),
|
|
124
|
+
]);
|
|
125
|
+
if (tracked.kind === 'listed' && untracked.kind === 'listed') {
|
|
126
|
+
return {
|
|
127
|
+
kind: 'listed',
|
|
128
|
+
entries: [...parseTrackedListing(tracked.records), ...parseUntrackedListing(untracked.records)],
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
if (tracked.kind === 'not-a-repository' || untracked.kind === 'not-a-repository')
|
|
132
|
+
return { kind: 'not-a-repository' };
|
|
133
|
+
return { kind: 'failed' };
|
|
134
|
+
}
|
|
135
|
+
/** Ask git one question, and read its exit as a meaning rather than a number. */
|
|
136
|
+
async function runGit(cwd, args, signal) {
|
|
137
|
+
if (signal.aborted)
|
|
138
|
+
return { kind: 'failed' };
|
|
139
|
+
return await new Promise(resolve => {
|
|
140
|
+
let settled = false;
|
|
141
|
+
let timer;
|
|
142
|
+
const finish = (value) => {
|
|
143
|
+
if (settled)
|
|
144
|
+
return;
|
|
145
|
+
settled = true;
|
|
146
|
+
if (timer !== undefined)
|
|
147
|
+
clearTimeout(timer);
|
|
148
|
+
signal.removeEventListener('abort', onAbort);
|
|
149
|
+
resolve(value);
|
|
150
|
+
};
|
|
151
|
+
const child = spawn('git', [...args], { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
152
|
+
const onAbort = () => {
|
|
153
|
+
child.kill('SIGKILL');
|
|
154
|
+
finish({ kind: 'failed' });
|
|
155
|
+
};
|
|
156
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
157
|
+
timer = setTimeout(() => {
|
|
158
|
+
child.kill('SIGKILL');
|
|
159
|
+
finish({ kind: 'failed' });
|
|
160
|
+
}, GIT_TIMEOUT_MS);
|
|
161
|
+
let stdout = '';
|
|
162
|
+
let stderr = '';
|
|
163
|
+
child.stdout.setEncoding('utf8');
|
|
164
|
+
child.stdout.on('data', (chunk) => {
|
|
165
|
+
stdout += chunk;
|
|
166
|
+
});
|
|
167
|
+
child.stderr.setEncoding('utf8');
|
|
168
|
+
child.stderr.on('data', (chunk) => {
|
|
169
|
+
// Only the refusal is read; a repository cannot be diagnosed from here,
|
|
170
|
+
// and an unbounded buffer would grow with git's chatter.
|
|
171
|
+
if (stderr.length < GIT_ERROR_LIMIT)
|
|
172
|
+
stderr += chunk;
|
|
173
|
+
});
|
|
174
|
+
child.on('error', () => finish({ kind: 'failed' }));
|
|
175
|
+
child.on('close', code => {
|
|
176
|
+
if (code === 0) {
|
|
177
|
+
finish({ kind: 'listed', records: stdout.split('\0') });
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (code === GIT_EXIT_FATAL && GIT_NOT_A_REPOSITORY.test(stderr)) {
|
|
181
|
+
finish({ kind: 'not-a-repository' });
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
finish({ kind: 'failed' });
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Read the indexed listing.
|
|
190
|
+
*
|
|
191
|
+
* An entry arrives as its mode, its object, and its stage, then a tab and the
|
|
192
|
+
* path. Only the first tab separates, so a name that carries one is read whole.
|
|
193
|
+
* A path can appear once per merge stage, and the map keeps the last, so a
|
|
194
|
+
* conflicted file is not offered three times.
|
|
195
|
+
*/
|
|
196
|
+
function parseTrackedListing(records) {
|
|
197
|
+
const byPath = new Map();
|
|
198
|
+
for (const record of records) {
|
|
199
|
+
if (record === '')
|
|
200
|
+
continue;
|
|
201
|
+
const tab = record.indexOf('\t');
|
|
202
|
+
// Nothing but metadata precedes the tab, so a record without one is not a
|
|
203
|
+
// line git wrote; reading it as a path would invent a name.
|
|
204
|
+
if (tab < 0)
|
|
205
|
+
continue;
|
|
206
|
+
const mode = record.slice(0, GIT_MODE_LENGTH);
|
|
207
|
+
const path = record.slice(tab + 1);
|
|
208
|
+
if (path === '')
|
|
209
|
+
continue;
|
|
210
|
+
byPath.set(path, {
|
|
211
|
+
path,
|
|
212
|
+
symlink: mode === GIT_SYMLINK_MODE,
|
|
213
|
+
submodule: mode === GIT_SUBMODULE_MODE,
|
|
214
|
+
untracked: false,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
return [...byPath.values()];
|
|
218
|
+
}
|
|
219
|
+
/** Read the untracked listing, which carries no metadata to mistake for a path. */
|
|
220
|
+
function parseUntrackedListing(records) {
|
|
221
|
+
const entries = [];
|
|
222
|
+
for (const record of records) {
|
|
223
|
+
if (record === '')
|
|
224
|
+
continue;
|
|
225
|
+
entries.push({ path: record, symlink: false, submodule: false, untracked: true });
|
|
226
|
+
}
|
|
227
|
+
return entries;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Turn git's entries into rows, deriving the directories they imply.
|
|
231
|
+
*
|
|
232
|
+
* Git lists files only, but a reader typing a path prefix wants to open a
|
|
233
|
+
* directory as readily as a file. A link is offered as whatever it names, and
|
|
234
|
+
* only while that target stays in the workspace: the reader would otherwise
|
|
235
|
+
* attach a path the menu never showed them.
|
|
236
|
+
*/
|
|
237
|
+
async function candidatesFrom(root, entries, signal) {
|
|
238
|
+
const canonicalRoot = await canonicalOrUndefined(root);
|
|
239
|
+
if (canonicalRoot === undefined)
|
|
240
|
+
return [];
|
|
241
|
+
const files = new Map();
|
|
242
|
+
const directories = new Set();
|
|
243
|
+
for (const entry of entries) {
|
|
244
|
+
// Every entry costs a stat at least, so a scan whose deadline passed stops
|
|
245
|
+
// here rather than walking the rest of a tree nobody waits for.
|
|
246
|
+
if (signal.aborted)
|
|
247
|
+
return [];
|
|
248
|
+
if (!offerablePath(entry.path))
|
|
249
|
+
continue;
|
|
250
|
+
const linked = entry.symlink || (entry.untracked && await isSymlink(root, entry.path));
|
|
251
|
+
let isDirectory = entry.submodule;
|
|
252
|
+
if (linked) {
|
|
253
|
+
const target = await linkedTarget(canonicalRoot, join(root, entry.path));
|
|
254
|
+
if (target === undefined)
|
|
255
|
+
continue;
|
|
256
|
+
isDirectory = target;
|
|
257
|
+
}
|
|
258
|
+
files.set(entry.path, { path: entry.path, isDirectory });
|
|
259
|
+
addParentDirectories(directories, entry.path);
|
|
260
|
+
}
|
|
261
|
+
const rows = new Map();
|
|
262
|
+
for (const directory of directories)
|
|
263
|
+
rows.set(directory, { path: directory, isDirectory: true });
|
|
264
|
+
for (const candidate of files.values()) {
|
|
265
|
+
if (!rows.has(candidate.path))
|
|
266
|
+
rows.set(candidate.path, candidate);
|
|
267
|
+
}
|
|
268
|
+
return [...rows.values()].sort((left, right) => left.path.localeCompare(right.path));
|
|
269
|
+
}
|
|
270
|
+
/** Every path implies the directories above it, which a reader may open. */
|
|
271
|
+
function addParentDirectories(directories, path) {
|
|
272
|
+
for (let at = path.indexOf('/'); at >= 0; at = path.indexOf('/', at + 1)) {
|
|
273
|
+
directories.add(path.slice(0, at));
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/** Whether the entry is a link when the index did not say, which is the untracked case. */
|
|
277
|
+
async function isSymlink(root, path) {
|
|
278
|
+
try {
|
|
279
|
+
return (await lstat(join(root, path))).isSymbolicLink();
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
// A path that vanished between the listing and the stat is offered as the
|
|
283
|
+
// plain file git saw; there is no link left to follow.
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Whether a link names something the workspace holds, and whether that is a
|
|
289
|
+
* directory.
|
|
290
|
+
*/
|
|
291
|
+
async function linkedTarget(canonicalRoot, path) {
|
|
292
|
+
try {
|
|
293
|
+
const target = await realpath(path);
|
|
294
|
+
const inside = relative(canonicalRoot, target);
|
|
295
|
+
if (inside !== '' && (inside.startsWith('..') || isAbsolute(inside)))
|
|
296
|
+
return undefined;
|
|
297
|
+
return (await stat(target)).isDirectory();
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
export async function canonicalOrUndefined(path) {
|
|
304
|
+
try {
|
|
305
|
+
return await realpath(path);
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
return undefined;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/** Walk a tree git does not own, breadth first, stopping at the caps above. */
|
|
312
|
+
export async function walkFiles(cwd, signal) {
|
|
313
|
+
if (signal.aborted)
|
|
314
|
+
return [];
|
|
315
|
+
const canonicalRoot = await canonicalOrUndefined(cwd);
|
|
316
|
+
if (canonicalRoot === undefined)
|
|
317
|
+
return [];
|
|
318
|
+
const found = [];
|
|
319
|
+
const queue = [''];
|
|
320
|
+
while (queue.length > 0) {
|
|
321
|
+
if (signal.aborted)
|
|
322
|
+
return [];
|
|
323
|
+
const directory = queue.shift() ?? '';
|
|
324
|
+
let entries;
|
|
325
|
+
try {
|
|
326
|
+
entries = await readdir(directory === '' ? cwd : join(cwd, directory), { withFileTypes: true });
|
|
327
|
+
}
|
|
328
|
+
catch {
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
for (const entry of entries) {
|
|
332
|
+
if (found.length >= MAX_WALK_ENTRIES)
|
|
333
|
+
return found;
|
|
334
|
+
const path = directory === '' ? entry.name : directory + '/' + entry.name;
|
|
335
|
+
if (!offerablePath(path))
|
|
336
|
+
continue;
|
|
337
|
+
if (entry.isSymbolicLink()) {
|
|
338
|
+
const target = await linkedTarget(canonicalRoot, join(cwd, path));
|
|
339
|
+
if (target === undefined)
|
|
340
|
+
continue;
|
|
341
|
+
// A link is offered as the thing it names and never followed: following
|
|
342
|
+
// one would let a single entry stand in for a tree outside the workspace.
|
|
343
|
+
found.push({ path, isDirectory: target });
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
if (!entry.isDirectory()) {
|
|
347
|
+
found.push({ path, isDirectory: false });
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
if (SKIP_DIRECTORIES.has(entry.name))
|
|
351
|
+
continue;
|
|
352
|
+
found.push({ path, isDirectory: true });
|
|
353
|
+
if (depthOf(path) < MAX_WALK_DEPTH)
|
|
354
|
+
queue.push(path);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return found;
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=workspace-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-files.js","sourceRoot":"","sources":["../../src/input/workspace-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** The command a drift notice names, so the line it prints is the line that runs. */
|
|
2
|
+
export declare const SKILL_UPDATE_COMMAND = "dsh --profile tui install-skills --update";
|
|
3
|
+
export declare class SkillAlreadyExistsError extends Error {
|
|
4
|
+
readonly destination: string;
|
|
5
|
+
constructor(destination: string);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The skills this package ships, read from the bundled directory rather than
|
|
9
|
+
* listed: a skill a reader can see here is one `install-skills` installs, and
|
|
10
|
+
* adding another never means editing the installer.
|
|
11
|
+
*/
|
|
12
|
+
export declare function bundledSkillNames(bundled?: string): string[];
|
|
13
|
+
/**
|
|
14
|
+
* The installed copies that no longer match what this package ships.
|
|
15
|
+
*
|
|
16
|
+
* Content only, over the bundled file set. The installer chmods its own
|
|
17
|
+
* helpers, so a mode difference is its doing rather than drift, and a file a
|
|
18
|
+
* reader added beside a skill is theirs: one startup line can explain neither,
|
|
19
|
+
* and a line that cries wolf gets read past when it matters.
|
|
20
|
+
*/
|
|
21
|
+
export declare function driftedSkillNames(home?: string, bundled?: string): string[];
|
|
22
|
+
/**
|
|
23
|
+
* The one line a startup can spare for an installed skill this build has moved
|
|
24
|
+
* past, or `undefined` when every installed copy still matches.
|
|
25
|
+
*
|
|
26
|
+
* Silence on any failure: a notice is a courtesy, and an unreadable home must
|
|
27
|
+
* not cost a reader the session they launched.
|
|
28
|
+
*/
|
|
29
|
+
export declare function describeSkillDrift(home?: string, bundled?: string): string | undefined;
|
|
30
|
+
/** Install one bundled skill, or replace the installed copy when `update`. */
|
|
31
|
+
export declare function installBundledSkill(name: string, home?: string, update?: boolean): string;
|
|
32
|
+
/**
|
|
33
|
+
* Install every bundled skill, or exactly the named ones.
|
|
34
|
+
*
|
|
35
|
+
* Collisions are reported before the first copy, so a run either installs the
|
|
36
|
+
* whole set or leaves the home as it found it.
|
|
37
|
+
*/
|
|
38
|
+
export declare function installBundledSkills(home?: string, update?: boolean, names?: readonly string[]): string[];
|
|
39
|
+
//# sourceMappingURL=install-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-skills.d.ts","sourceRoot":"","sources":["../src/install-skills.ts"],"names":[],"mappings":"AAaA,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,8CAA8C,CAAA;AAQ/E,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAAnB,WAAW,EAAE,MAAM;CAGzC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAoB,GAAG,MAAM,EAAE,CASzE;AAuBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAkB,EAAE,OAAO,GAAE,MAAoB,GAAG,MAAM,EAAE,CAenG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAkB,EAAE,OAAO,GAAE,MAAoB,GAAG,MAAM,GAAG,SAAS,CAS9G;AA8GD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,EAAE,MAAM,UAAQ,GAAG,MAAM,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAkB,EAAE,MAAM,UAAQ,EAAE,KAAK,GAAE,SAAS,MAAM,EAAwB,GAAG,MAAM,EAAE,CAyBvI"}
|