@kenkaiiii/ggcoder 5.68.0 → 5.69.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/dist/app-sidecar.js +26 -11
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli.js +15 -14
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session.d.ts +18 -0
- package/dist/core/agent-session.js +125 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/cache-diagnostics.d.ts +68 -0
- package/dist/core/cache-diagnostics.js +196 -0
- package/dist/core/cache-diagnostics.js.map +1 -0
- package/dist/core/cache-expiry.d.ts +87 -0
- package/dist/core/cache-expiry.js +111 -0
- package/dist/core/cache-expiry.js.map +1 -0
- package/dist/core/destructive-git-guard.d.ts +27 -0
- package/dist/core/destructive-git-guard.js +94 -54
- package/dist/core/destructive-git-guard.js.map +1 -1
- package/dist/core/injection-detect.d.ts +38 -0
- package/dist/core/injection-detect.js +232 -0
- package/dist/core/injection-detect.js.map +1 -0
- package/dist/core/mcp/client.d.ts +72 -0
- package/dist/core/mcp/client.js +264 -41
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/store.d.ts +6 -1
- package/dist/core/mcp/store.js +12 -1
- package/dist/core/mcp/store.js.map +1 -1
- package/dist/core/mcp/types.d.ts +18 -0
- package/dist/core/persistent-shell.d.ts +58 -6
- package/dist/core/persistent-shell.js +331 -49
- package/dist/core/persistent-shell.js.map +1 -1
- package/dist/core/progress/git-xp.js +8 -14
- package/dist/core/progress/git-xp.js.map +1 -1
- package/dist/core/subagent-manager.d.ts +9 -0
- package/dist/core/subagent-manager.js +7 -1
- package/dist/core/subagent-manager.js.map +1 -1
- package/dist/core/subagent-receipt.d.ts +54 -0
- package/dist/core/subagent-receipt.js +276 -0
- package/dist/core/subagent-receipt.js.map +1 -0
- package/dist/core/subagent-turn-record.d.ts +2 -0
- package/dist/core/subagent-turn-record.js.map +1 -1
- package/dist/core/verification-snapshot.js +3 -5
- package/dist/core/verification-snapshot.js.map +1 -1
- package/dist/core/workspace-guard.d.ts +18 -7
- package/dist/core/workspace-guard.js +227 -60
- package/dist/core/workspace-guard.js.map +1 -1
- package/dist/modes/subagent-worker-mode.js +18 -2
- package/dist/modes/subagent-worker-mode.js.map +1 -1
- package/dist/motion-agent/motion-check-tool.d.ts +7 -0
- package/dist/motion-agent/motion-check-tool.js +20 -1
- package/dist/motion-agent/motion-check-tool.js.map +1 -1
- package/dist/tools/bash.js +12 -4
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/read.js +3 -2
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/steroids.d.ts +1 -1
- package/dist/tools/subagent-control.js +34 -6
- package/dist/tools/subagent-control.js.map +1 -1
- package/dist/tools/subagent-shared.d.ts +13 -0
- package/dist/tools/subagent-shared.js +25 -0
- package/dist/tools/subagent-shared.js.map +1 -1
- package/dist/tools/subagent.js +14 -3
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/task-output.js +3 -2
- package/dist/tools/task-output.js.map +1 -1
- package/dist/tools/truncate.d.ts +21 -0
- package/dist/tools/truncate.js +187 -0
- package/dist/tools/truncate.js.map +1 -1
- package/dist/tools/ui-adopt.js +2 -0
- package/dist/tools/ui-adopt.js.map +1 -1
- package/dist/utils/git.d.ts +77 -0
- package/dist/utils/git.js +285 -21
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/github-ci.js +2 -1
- package/dist/utils/github-ci.js.map +1 -1
- package/dist/utils/github.js +11 -9
- package/dist/utils/github.js.map +1 -1
- package/dist/utils/process.d.ts +20 -0
- package/dist/utils/process.js +98 -0
- package/dist/utils/process.js.map +1 -1
- package/package.json +4 -4
package/dist/utils/git.js
CHANGED
|
@@ -1,37 +1,301 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { statSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
// ── Hardened runner for GG's own (background) git calls ─────────────────────
|
|
5
|
+
//
|
|
6
|
+
// GitSpawn: a repository's own `.git/config` (or an `include.path` it pulls
|
|
7
|
+
// in) can name programs that git runs during perfectly ordinary read-only
|
|
8
|
+
// commands — `core.fsmonitor` on any index refresh, a `post-index-change` hook
|
|
9
|
+
// when `git status` rewrites the index, `filter.<driver>.clean/process` (with
|
|
10
|
+
// `.gitattributes`) when status re-hashes a stat-dirty file, `textconv` /
|
|
11
|
+
// external diff drivers in `git show`, `gpg.program` via `log.showSignature`,
|
|
12
|
+
// credential/ssh/askpass helpers, pagers and editors. GG runs git on its own
|
|
13
|
+
// (project open, CI chip, XP, verification snapshots, the destructive-git
|
|
14
|
+
// guard), so merely opening a malicious repo must not execute anything.
|
|
15
|
+
//
|
|
16
|
+
// Every background git call goes through {@link runBackgroundGit}, which
|
|
17
|
+
// prepends `-c` overrides (command-line config beats every config file) and
|
|
18
|
+
// blanks the per-driver filter/merge commands discovered by a safe
|
|
19
|
+
// `git config` probe. Prior art: gptme b65f699d (`git_inspect_cmd`) and
|
|
20
|
+
// MoonshotAI/kimi-code#3964 (`hardenedGitConfigArgs`). The agent's own `bash`
|
|
21
|
+
// tool is out of scope — those are explicit, user-visible commands.
|
|
22
|
+
const NULL_DEVICE = process.platform === "win32" ? "NUL" : "/dev/null";
|
|
23
|
+
/** `-c` overrides that disable every repo-config execution sink GG's calls can reach. */
|
|
24
|
+
export const GIT_HARDENING_CONFIG_ARGS = [
|
|
25
|
+
"-c",
|
|
26
|
+
"core.fsmonitor=false",
|
|
27
|
+
"-c",
|
|
28
|
+
`core.hooksPath=${NULL_DEVICE}`,
|
|
29
|
+
"-c",
|
|
30
|
+
"core.pager=cat",
|
|
31
|
+
"-c",
|
|
32
|
+
"core.editor=:",
|
|
33
|
+
"-c",
|
|
34
|
+
"core.askPass=",
|
|
35
|
+
// Plain OpenSSH: keeps any (rare) lazy fetch working without the repo's command.
|
|
36
|
+
"-c",
|
|
37
|
+
"core.sshCommand=ssh",
|
|
38
|
+
// An empty value resets the helper list, dropping repo-configured helpers.
|
|
39
|
+
"-c",
|
|
40
|
+
"credential.helper=",
|
|
41
|
+
// Background calls never need the network. A partial clone would otherwise
|
|
42
|
+
// lazy-fetch missing blobs (e.g. in `git show`) through the repo's own
|
|
43
|
+
// `remote.<name>.uploadpack` / ext:: URL; GIT_NO_LAZY_FETCH backs this up.
|
|
44
|
+
"-c",
|
|
45
|
+
"protocol.allow=never",
|
|
46
|
+
"-c",
|
|
47
|
+
"protocol.ext.allow=never",
|
|
48
|
+
"-c",
|
|
49
|
+
"gpg.program=",
|
|
50
|
+
"-c",
|
|
51
|
+
"log.showSignature=false",
|
|
52
|
+
"-c",
|
|
53
|
+
"commit.gpgSign=false",
|
|
54
|
+
"-c",
|
|
55
|
+
"tag.gpgSign=false",
|
|
56
|
+
"-c",
|
|
57
|
+
"merge.verifySignatures=false",
|
|
58
|
+
"-c",
|
|
59
|
+
"submodule.recurse=false",
|
|
60
|
+
];
|
|
61
|
+
/**
|
|
62
|
+
* Inserted right after the subcommand of diff-producing commands: external
|
|
63
|
+
* diff drivers (`diff.external`, `diff.<driver>.command`) and `textconv`
|
|
64
|
+
* filters are repo-configured programs. `-c diff.external=` is NOT used — an
|
|
65
|
+
* empty value makes `git diff` die with "cannot run".
|
|
66
|
+
*/
|
|
67
|
+
export const GIT_NO_EXTERNAL_DIFF_ARGS = ["--no-ext-diff", "--no-textconv"];
|
|
68
|
+
const DIFF_FAMILY = new Set(["diff", "show", "log"]);
|
|
69
|
+
/**
|
|
70
|
+
* Inserted after `status`: inspecting a submodule's work tree spawns a nested
|
|
71
|
+
* `git status` inside it, which honours the submodule's OWN filter drivers
|
|
72
|
+
* (its config was never probed). `dirty` still reports moved submodule
|
|
73
|
+
* commits but never enters the submodule work tree. Skipped when the caller
|
|
74
|
+
* passes its own `--ignore-submodules`.
|
|
75
|
+
*/
|
|
76
|
+
export const GIT_STATUS_SUBMODULE_ARGS = ["--ignore-submodules=dirty"];
|
|
77
|
+
/**
|
|
78
|
+
* Subcommands that never hash or check out work-tree content, so no
|
|
79
|
+
* clean/smudge/process filter can run — the per-driver probe is skipped.
|
|
80
|
+
*/
|
|
81
|
+
const NO_FILTER_SUBCOMMANDS = new Set(["rev-parse", "remote", "rev-list", "patch-id", "show"]);
|
|
82
|
+
const PROBE_TIMEOUT_MS = 2_000;
|
|
83
|
+
/**
|
|
84
|
+
* Build `-c` overrides that blank every filter / merge driver named in the
|
|
85
|
+
* NUL-separated output of `git config -z --name-only --get-regexp`. Returns
|
|
86
|
+
* null when a driver name contains `=` — `-c` splits at the first `=`, so the
|
|
87
|
+
* override could not be expressed and the caller must refuse to run.
|
|
88
|
+
*/
|
|
89
|
+
export function buildDriverOverrides(outputs) {
|
|
90
|
+
const filters = new Set();
|
|
91
|
+
const merges = new Set();
|
|
92
|
+
for (const output of outputs) {
|
|
93
|
+
for (const name of output.split(/[\0\n]/)) {
|
|
94
|
+
const filter = /^filter\.(.+)\.(?:clean|smudge|process|required)$/is.exec(name)?.[1];
|
|
95
|
+
const merge = /^merge\.(.+)\.driver$/is.exec(name)?.[1];
|
|
96
|
+
const driver = filter ?? merge;
|
|
97
|
+
if (driver === undefined)
|
|
98
|
+
continue;
|
|
99
|
+
if (driver.includes("="))
|
|
100
|
+
return null;
|
|
101
|
+
(filter !== undefined ? filters : merges).add(driver);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const args = [];
|
|
105
|
+
for (const driver of filters) {
|
|
106
|
+
args.push("-c", `filter.${driver}.clean=`, "-c", `filter.${driver}.smudge=`, "-c", `filter.${driver}.process=`,
|
|
107
|
+
// A blanked `required` filter would otherwise make status die.
|
|
108
|
+
"-c", `filter.${driver}.required=false`);
|
|
109
|
+
}
|
|
110
|
+
for (const driver of merges)
|
|
111
|
+
args.push("-c", `merge.${driver}.driver=`);
|
|
112
|
+
return args;
|
|
113
|
+
}
|
|
114
|
+
let cachedGitBinary;
|
|
115
|
+
/**
|
|
116
|
+
* The git executable. On Windows, libuv's PATH search tries the child's cwd
|
|
117
|
+
* first, so a `git.exe` planted at a repo root would run instead of git —
|
|
118
|
+
* resolve an absolute path from PATH once instead.
|
|
119
|
+
*/
|
|
120
|
+
export function resolveGitBinary() {
|
|
121
|
+
if (cachedGitBinary !== undefined)
|
|
122
|
+
return cachedGitBinary;
|
|
123
|
+
cachedGitBinary = "git";
|
|
124
|
+
if (process.platform === "win32") {
|
|
125
|
+
for (const dir of (process.env.PATH ?? "").split(path.delimiter)) {
|
|
126
|
+
const clean = dir.trim().replace(/^"|"$/g, "");
|
|
127
|
+
if (!clean || !path.isAbsolute(clean))
|
|
128
|
+
continue;
|
|
129
|
+
const candidate = path.join(clean, "git.exe");
|
|
130
|
+
try {
|
|
131
|
+
if (statSync(candidate).isFile()) {
|
|
132
|
+
cachedGitBinary = candidate;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
8
135
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
136
|
+
catch {
|
|
137
|
+
// not here
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return cachedGitBinary;
|
|
12
142
|
}
|
|
13
|
-
/**
|
|
14
|
-
|
|
143
|
+
/**
|
|
144
|
+
* Rejection of {@link runBackgroundGit}, shaped like a promisified execFile
|
|
145
|
+
* error: `code` is git's exit status (number) or a spawn errno (string).
|
|
146
|
+
*/
|
|
147
|
+
export class BackgroundGitError extends Error {
|
|
148
|
+
code;
|
|
149
|
+
killed;
|
|
150
|
+
stdout;
|
|
151
|
+
stderr;
|
|
152
|
+
constructor(message, details) {
|
|
153
|
+
super(message);
|
|
154
|
+
this.name = "BackgroundGitError";
|
|
155
|
+
this.code = details.code;
|
|
156
|
+
this.killed = details.killed;
|
|
157
|
+
this.stdout = details.stdout;
|
|
158
|
+
this.stderr = details.stderr;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function spawnGit(args, options) {
|
|
15
162
|
return new Promise((resolve, reject) => {
|
|
16
|
-
execFile(
|
|
17
|
-
|
|
18
|
-
|
|
163
|
+
const child = execFile(resolveGitBinary(), [...args], {
|
|
164
|
+
cwd: options.cwd,
|
|
165
|
+
timeout: options.timeoutMs ?? 2_000,
|
|
166
|
+
maxBuffer: options.maxBuffer ?? 1024 * 1024,
|
|
167
|
+
signal: options.signal,
|
|
168
|
+
windowsHide: true,
|
|
169
|
+
encoding: "utf8",
|
|
170
|
+
env: {
|
|
171
|
+
...process.env,
|
|
172
|
+
GIT_TERMINAL_PROMPT: "0",
|
|
173
|
+
GIT_OPTIONAL_LOCKS: "0",
|
|
174
|
+
GIT_PAGER: "cat",
|
|
175
|
+
GIT_NO_LAZY_FETCH: "1",
|
|
176
|
+
...options.env,
|
|
177
|
+
},
|
|
178
|
+
}, (error, stdout, stderr) => {
|
|
179
|
+
if (!error) {
|
|
180
|
+
resolve({ stdout, stderr });
|
|
19
181
|
return;
|
|
20
182
|
}
|
|
21
|
-
|
|
183
|
+
const code = error.code;
|
|
184
|
+
reject(new BackgroundGitError(error.message, {
|
|
185
|
+
code: typeof code === "number" || typeof code === "string" ? code : null,
|
|
186
|
+
killed: error.killed === true,
|
|
187
|
+
stdout,
|
|
188
|
+
stderr,
|
|
189
|
+
}));
|
|
22
190
|
});
|
|
191
|
+
if (options.input !== undefined && child.stdin) {
|
|
192
|
+
child.stdin.on("error", () => {
|
|
193
|
+
// git exited before reading all input; the exit callback reports it.
|
|
194
|
+
});
|
|
195
|
+
child.stdin.end(options.input);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/** Repo-local filter/merge driver overrides, or null when they cannot be expressed. */
|
|
200
|
+
async function probeDriverOverrides(options) {
|
|
201
|
+
const outputs = await Promise.all(["--local", "--worktree"].map(async (scope) => {
|
|
202
|
+
try {
|
|
203
|
+
const { stdout } = await spawnGit([
|
|
204
|
+
...GIT_HARDENING_CONFIG_ARGS,
|
|
205
|
+
...(options.globalArgs ?? []),
|
|
206
|
+
"config",
|
|
207
|
+
scope,
|
|
208
|
+
"--includes",
|
|
209
|
+
"-z",
|
|
210
|
+
"--name-only",
|
|
211
|
+
"--get-regexp",
|
|
212
|
+
"^(filter|merge)\\.",
|
|
213
|
+
], {
|
|
214
|
+
cwd: options.cwd,
|
|
215
|
+
timeoutMs: PROBE_TIMEOUT_MS,
|
|
216
|
+
signal: options.signal,
|
|
217
|
+
env: options.env,
|
|
218
|
+
});
|
|
219
|
+
return stdout;
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
// Exit 1 = no matching keys; 128/129 = not a repo / old git without
|
|
223
|
+
// --worktree. Spawn failures and timeouts fail closed.
|
|
224
|
+
if (error instanceof BackgroundGitError && typeof error.code === "number" && !error.killed)
|
|
225
|
+
return "";
|
|
226
|
+
throw error;
|
|
227
|
+
}
|
|
228
|
+
}));
|
|
229
|
+
return buildDriverOverrides(outputs);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Full argv for a hardened background git call (minus the binary). Exposed
|
|
233
|
+
* for tests; callers use {@link runBackgroundGit}.
|
|
234
|
+
*/
|
|
235
|
+
export async function hardenedGitArgs(args, options) {
|
|
236
|
+
const [subcommand, ...rest] = args;
|
|
237
|
+
let drivers = [];
|
|
238
|
+
if (subcommand === undefined || !NO_FILTER_SUBCOMMANDS.has(subcommand)) {
|
|
239
|
+
const probed = await probeDriverOverrides(options);
|
|
240
|
+
if (probed === null) {
|
|
241
|
+
throw new BackgroundGitError("git config names a filter/merge driver that cannot be disabled", {
|
|
242
|
+
code: null,
|
|
243
|
+
killed: false,
|
|
244
|
+
stdout: "",
|
|
245
|
+
stderr: "",
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
drivers = probed;
|
|
249
|
+
}
|
|
250
|
+
let command = [...args];
|
|
251
|
+
if (subcommand !== undefined && DIFF_FAMILY.has(subcommand)) {
|
|
252
|
+
command = [subcommand, ...GIT_NO_EXTERNAL_DIFF_ARGS, ...rest];
|
|
253
|
+
}
|
|
254
|
+
else if (subcommand === "status" &&
|
|
255
|
+
!rest
|
|
256
|
+
.slice(0, rest.includes("--") ? rest.indexOf("--") : rest.length)
|
|
257
|
+
.some((arg) => arg.startsWith("--ignore-submodules"))) {
|
|
258
|
+
command = [subcommand, ...GIT_STATUS_SUBMODULE_ARGS, ...rest];
|
|
259
|
+
}
|
|
260
|
+
return [...GIT_HARDENING_CONFIG_ARGS, ...drivers, ...(options.globalArgs ?? []), ...command];
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Run git for GG's own background purposes with repo-config execution sinks
|
|
264
|
+
* disabled. Resolves `{stdout, stderr}` on exit 0; rejects with
|
|
265
|
+
* {@link BackgroundGitError} otherwise. Output is identical to plain git.
|
|
266
|
+
*/
|
|
267
|
+
export async function runBackgroundGit(args, options) {
|
|
268
|
+
return spawnGit(await hardenedGitArgs(args, options), options);
|
|
269
|
+
}
|
|
270
|
+
// ── Background helpers ──────────────────────────────────────────────────────
|
|
271
|
+
export async function getGitBranch(cwd) {
|
|
272
|
+
try {
|
|
273
|
+
const { stdout } = await runBackgroundGit(["rev-parse", "--abbrev-ref", "HEAD"], { cwd });
|
|
274
|
+
return stdout.trim() || null;
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/** Count staged, modified, deleted, renamed, and untracked files. */
|
|
281
|
+
export async function getGitDirtyFileCount(cwd) {
|
|
282
|
+
const { stdout } = await runBackgroundGit(["status", "--porcelain=v1", "--untracked-files=all"], {
|
|
283
|
+
cwd,
|
|
23
284
|
});
|
|
285
|
+
return stdout.split(/\r?\n/).filter(Boolean).length;
|
|
24
286
|
}
|
|
25
287
|
/**
|
|
26
288
|
* Whether `cwd` is inside a git work tree. Distinct from getGitBranch, which
|
|
27
289
|
* returns null both for non-repos AND for freshly-init'd repos with no commits
|
|
28
290
|
* (rev-parse HEAD fails before the first commit).
|
|
29
291
|
*/
|
|
30
|
-
export function isGitRepo(cwd) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
292
|
+
export async function isGitRepo(cwd) {
|
|
293
|
+
try {
|
|
294
|
+
const { stdout } = await runBackgroundGit(["rev-parse", "--is-inside-work-tree"], { cwd });
|
|
295
|
+
return stdout.trim() === "true";
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
36
300
|
}
|
|
37
301
|
//# sourceMappingURL=git.js.map
|
package/dist/utils/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/github-ci.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
+
import { runBackgroundGit } from "./git.js";
|
|
4
5
|
import { getGitHubRepoSlug } from "./github.js";
|
|
5
6
|
const exec = promisify(execFile);
|
|
6
7
|
const resultSchema = z.object({
|
|
@@ -68,7 +69,7 @@ export async function getGitHubCI(slug, sha, signal) {
|
|
|
68
69
|
async function context(cwd) {
|
|
69
70
|
const [slug, head] = await Promise.all([
|
|
70
71
|
getGitHubRepoSlug(cwd),
|
|
71
|
-
|
|
72
|
+
runBackgroundGit(["rev-parse", "--verify", "HEAD"], { cwd, timeoutMs: 2000 }).catch(() => null),
|
|
72
73
|
]);
|
|
73
74
|
return slug && head ? { slug, sha: head.stdout.trim() } : null;
|
|
74
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-ci.js","sourceRoot":"","sources":["../../src/utils/github-ci.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAcjC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAChF,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAC5E,MAAM,MAAM,GAAG,CAAC,MAAoC,EAAW,EAAE,CAC/D,MAAM,CAAC,MAAM,KAAK,WAAW;IAC7B,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAEtE,KAAK,UAAU,GAAG,CAAC,QAAgB,EAAE,MAAoB;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAC3B,IAAI,EACJ,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,EACtE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,CACxD,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,GAAW,EACX,MAAoB;IAEpB,IACE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;QAC7D,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAChC,MAAM,GAAG,CAAC,SAAS,IAAI,0BAA0B,GAAG,eAAe,EAAE,MAAM,CAAC,CAC7E,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9D,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG;YAAE,SAAS;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,yFAAyF;IACzF,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAClF,MAAM,IAAI,GAAmC,EAAE,CAAC;IAChD,6FAA6F;IAC7F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAChC,MAAM,GAAG,CACP,SAAS,IAAI,iBAAiB,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,WAAW,oBAAoB,EACpF,MAAM,CACP,CACF,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9F,OAAO;QACL,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACpF,GAAG,EAAE,sBAAsB,IAAI,iBAAiB,MAAM,CAAC,EAAE,EAAE;QAC3D,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;QAClE,MAAM,EAAE,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM;QACN,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;KACzF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW;IAChC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrC,iBAAiB,CAAC,GAAG,CAAC;QACtB,
|
|
1
|
+
{"version":3,"file":"github-ci.js","sourceRoot":"","sources":["../../src/utils/github-ci.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/github.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
+
import { runBackgroundGit } from "./git.js";
|
|
2
3
|
/**
|
|
3
4
|
* Parse an `owner/repo` slug from a GitHub remote URL. Handles the three
|
|
4
5
|
* common remote shapes: https (`https://github.com/o/r(.git)`), scp-style ssh
|
|
@@ -13,16 +14,17 @@ export function parseGitHubSlug(remoteUrl) {
|
|
|
13
14
|
return `${match[1]}/${match[2]}`;
|
|
14
15
|
}
|
|
15
16
|
/** The `owner/repo` slug of the cwd's `origin` remote, or null when absent/non-GitHub. */
|
|
16
|
-
export function getGitHubRepoSlug(cwd) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
resolve(parseGitHubSlug(stdout));
|
|
17
|
+
export async function getGitHubRepoSlug(cwd) {
|
|
18
|
+
try {
|
|
19
|
+
const { stdout } = await runBackgroundGit(["remote", "get-url", "origin"], {
|
|
20
|
+
cwd,
|
|
21
|
+
timeoutMs: 2000,
|
|
24
22
|
});
|
|
25
|
-
|
|
23
|
+
return parseGitHubSlug(stdout);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
29
|
function ghSearchTotalCount(slug, qualifier) {
|
|
28
30
|
return new Promise((resolve, reject) => {
|
package/dist/utils/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,KAAK,GACT,qFAAqF,CAAC,IAAI,CACxF,OAAO,CACR,IAAI,qDAAqD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YACzE,GAAG;YACH,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD,SAAS,kBAAkB,CAAC,IAAY,EAAE,SAAiB;IACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CACN,IAAI,EACJ;YACE,KAAK;YACL,wBAAwB,IAAI,IAAI,SAAS,qBAAqB;YAC9D,MAAM;YACN,cAAc;SACf,EACD,EAAE,OAAO,EAAE,KAAK,EAAE,EAClB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC;YACpC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/utils/process.d.ts
CHANGED
|
@@ -26,3 +26,23 @@ export declare function resolveWindowsTaskkillPath(env?: NodeJS.ProcessEnv): str
|
|
|
26
26
|
* forever. Use `taskkill /T /F` instead, falling back to the direct pid.
|
|
27
27
|
*/
|
|
28
28
|
export declare function killProcessTree(pid: number, options?: ProcessTreeKillOptions): void;
|
|
29
|
+
export interface ProcessTableOptions {
|
|
30
|
+
platform?: NodeJS.Platform;
|
|
31
|
+
/** Injected for tests: returns `[pid, ppid]` pairs for every process. */
|
|
32
|
+
readTable?: () => Array<[number, number]>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Every live descendant of `pid` (breadth-first, excluding `pid` itself),
|
|
36
|
+
* found by parent links — so it also covers children that left the process
|
|
37
|
+
* group, unlike a group kill. POSIX only; returns `[]` on Windows, where
|
|
38
|
+
* shell pids (msys) do not map onto the native process table.
|
|
39
|
+
*/
|
|
40
|
+
export declare function listDescendantPids(pid: number, options?: ProcessTableOptions): number[];
|
|
41
|
+
/**
|
|
42
|
+
* Signal every descendant of `pid` without touching `pid` itself — stops a
|
|
43
|
+
* persistent shell's running command while the shell survives. Returns how
|
|
44
|
+
* many processes were signalled.
|
|
45
|
+
*/
|
|
46
|
+
export declare function signalDescendants(pid: number, signal: NodeJS.Signals, options?: ProcessTableOptions & {
|
|
47
|
+
kill?: typeof process.kill;
|
|
48
|
+
}): number;
|
package/dist/utils/process.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
3
|
import path from "node:path";
|
|
3
4
|
const DEFAULT_TASKKILL_TIMEOUT_MS = 5_000;
|
|
4
5
|
function getEnvCaseInsensitive(env, name) {
|
|
@@ -74,4 +75,101 @@ function killSingleProcess(pid, kill) {
|
|
|
74
75
|
// Process already exited.
|
|
75
76
|
}
|
|
76
77
|
}
|
|
78
|
+
/** `[pid, ppid]` for every live process, from `/proc` (Linux) or `ps`. */
|
|
79
|
+
function readProcessTable(platform) {
|
|
80
|
+
if (platform === "linux") {
|
|
81
|
+
try {
|
|
82
|
+
const rows = [];
|
|
83
|
+
for (const name of readdirSync("/proc")) {
|
|
84
|
+
if (!/^\d+$/.test(name))
|
|
85
|
+
continue;
|
|
86
|
+
try {
|
|
87
|
+
// `pid (comm) state ppid …` — comm may contain spaces/parens, so
|
|
88
|
+
// parse from the LAST `)`.
|
|
89
|
+
const stat = readFileSync(`/proc/${name}/stat`, "utf-8");
|
|
90
|
+
const ppid = parseInt(stat.slice(stat.lastIndexOf(")") + 2).split(" ")[1] ?? "", 10);
|
|
91
|
+
if (!Number.isNaN(ppid))
|
|
92
|
+
rows.push([Number(name), ppid]);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Exited mid-scan.
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (rows.length > 0)
|
|
99
|
+
return rows;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// No readable /proc — fall through to ps.
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Absolute path when present: a bare `ps` is resolvable through a PATH we
|
|
106
|
+
// do not control.
|
|
107
|
+
const ps = existsSync("/bin/ps") ? "/bin/ps" : "ps";
|
|
108
|
+
const res = spawnSync(ps, ["-A", "-o", "pid=", "-o", "ppid="], {
|
|
109
|
+
encoding: "utf-8",
|
|
110
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
111
|
+
timeout: 5_000,
|
|
112
|
+
});
|
|
113
|
+
if (res.status !== 0 || typeof res.stdout !== "string")
|
|
114
|
+
return [];
|
|
115
|
+
const rows = [];
|
|
116
|
+
for (const line of res.stdout.split("\n")) {
|
|
117
|
+
const [pid, ppid] = line.trim().split(/\s+/).map(Number);
|
|
118
|
+
if (Number.isInteger(pid) && Number.isInteger(ppid))
|
|
119
|
+
rows.push([pid, ppid]);
|
|
120
|
+
}
|
|
121
|
+
return rows;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Every live descendant of `pid` (breadth-first, excluding `pid` itself),
|
|
125
|
+
* found by parent links — so it also covers children that left the process
|
|
126
|
+
* group, unlike a group kill. POSIX only; returns `[]` on Windows, where
|
|
127
|
+
* shell pids (msys) do not map onto the native process table.
|
|
128
|
+
*/
|
|
129
|
+
export function listDescendantPids(pid, options = {}) {
|
|
130
|
+
const platform = options.platform ?? process.platform;
|
|
131
|
+
if (platform === "win32")
|
|
132
|
+
return [];
|
|
133
|
+
const table = options.readTable ? options.readTable() : readProcessTable(platform);
|
|
134
|
+
const children = new Map();
|
|
135
|
+
for (const [child, parent] of table) {
|
|
136
|
+
if (child === parent)
|
|
137
|
+
continue;
|
|
138
|
+
const list = children.get(parent);
|
|
139
|
+
if (list)
|
|
140
|
+
list.push(child);
|
|
141
|
+
else
|
|
142
|
+
children.set(parent, [child]);
|
|
143
|
+
}
|
|
144
|
+
const seen = new Set();
|
|
145
|
+
const queue = [pid];
|
|
146
|
+
while (queue.length > 0) {
|
|
147
|
+
for (const child of children.get(queue.shift()) ?? []) {
|
|
148
|
+
if (child === pid || seen.has(child))
|
|
149
|
+
continue;
|
|
150
|
+
seen.add(child);
|
|
151
|
+
queue.push(child);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return [...seen];
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Signal every descendant of `pid` without touching `pid` itself — stops a
|
|
158
|
+
* persistent shell's running command while the shell survives. Returns how
|
|
159
|
+
* many processes were signalled.
|
|
160
|
+
*/
|
|
161
|
+
export function signalDescendants(pid, signal, options = {}) {
|
|
162
|
+
const kill = options.kill ?? process.kill;
|
|
163
|
+
let signalled = 0;
|
|
164
|
+
for (const child of listDescendantPids(pid, options)) {
|
|
165
|
+
try {
|
|
166
|
+
kill(child, signal);
|
|
167
|
+
signalled++;
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Already gone.
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return signalled;
|
|
174
|
+
}
|
|
77
175
|
//# sourceMappingURL=process.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kenkaiiii/ggcoder",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.69.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CLI coding agent with OAuth authentication for Anthropic, OpenAI, and Gemini",
|
|
6
6
|
"license": "MIT",
|
|
@@ -115,9 +115,9 @@
|
|
|
115
115
|
"typescript-language-server": "^5.3.0",
|
|
116
116
|
"wrap-ansi": "^10.0.0",
|
|
117
117
|
"zod": "^4.4.3",
|
|
118
|
-
"@kenkaiiii/gg-agent": "5.
|
|
119
|
-
"@kenkaiiii/gg-ai": "5.
|
|
120
|
-
"@kenkaiiii/gg-core": "5.
|
|
118
|
+
"@kenkaiiii/gg-agent": "5.69.0",
|
|
119
|
+
"@kenkaiiii/gg-ai": "5.69.0",
|
|
120
|
+
"@kenkaiiii/gg-core": "5.69.0"
|
|
121
121
|
},
|
|
122
122
|
"optionalDependencies": {
|
|
123
123
|
"@huggingface/transformers": "4.2.0",
|