@kenkaiiii/ggcoder 5.68.1 → 5.70.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 +37 -11
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli.js +17 -19
- package/dist/cli.js.map +1 -1
- package/dist/core/acceptance-checks.d.ts +48 -0
- package/dist/core/acceptance-checks.js +144 -0
- package/dist/core/acceptance-checks.js.map +1 -0
- package/dist/core/agent-session.d.ts +26 -0
- package/dist/core/agent-session.js +121 -5
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents.d.ts +6 -5
- package/dist/core/agents.js.map +1 -1
- package/dist/core/bundled-agents.js +1 -3
- package/dist/core/bundled-agents.js.map +1 -1
- package/dist/core/cache-diagnostics.d.ts +6 -0
- package/dist/core/cache-diagnostics.js +31 -0
- package/dist/core/cache-diagnostics.js.map +1 -1
- 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/compaction/compactor.js +78 -48
- package/dist/core/compaction/compactor.js.map +1 -1
- 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/model-unavailable.d.ts +14 -0
- package/dist/core/model-unavailable.js +23 -0
- package/dist/core/model-unavailable.js.map +1 -0
- package/dist/core/node-debugger.d.ts +148 -0
- package/dist/core/node-debugger.js +642 -0
- package/dist/core/node-debugger.js.map +1 -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/process-manager.d.ts +14 -0
- package/dist/core/process-manager.js +61 -0
- package/dist/core/process-manager.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 +20 -5
- package/dist/core/subagent-manager.js +22 -8
- 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/test-impact.d.ts +73 -0
- package/dist/core/test-impact.js +467 -0
- package/dist/core/test-impact.js.map +1 -0
- package/dist/core/thinking-level.d.ts +1 -1
- package/dist/core/thinking-level.js +1 -1
- package/dist/core/thinking-level.js.map +1 -1
- package/dist/core/verification-gate.d.ts +2 -0
- package/dist/core/verification-gate.js +4 -0
- package/dist/core/verification-gate.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/interactive.js +2 -1
- package/dist/interactive.js.map +1 -1
- package/dist/modes/subagent-worker-mode.js +34 -6
- package/dist/modes/subagent-worker-mode.js.map +1 -1
- package/dist/test-support/keep-alive.d.ts +14 -0
- package/dist/test-support/keep-alive.js +17 -0
- package/dist/test-support/keep-alive.js.map +1 -0
- package/dist/tools/bash.d.ts +10 -1
- package/dist/tools/bash.js +78 -7
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/debug.d.ts +54 -0
- package/dist/tools/debug.js +233 -0
- package/dist/tools/debug.js.map +1 -0
- package/dist/tools/index.d.ts +13 -2
- package/dist/tools/index.js +41 -6
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/prompt-hints.js +2 -0
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/read.js +3 -2
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/subagent-control.js +44 -8
- package/dist/tools/subagent-control.js.map +1 -1
- package/dist/tools/subagent-shared.d.ts +29 -8
- package/dist/tools/subagent-shared.js +45 -14
- package/dist/tools/subagent-shared.js.map +1 -1
- package/dist/tools/subagent.d.ts +8 -2
- package/dist/tools/subagent.js +28 -10
- 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/tool-tiers.d.ts +2 -2
- package/dist/tools/tool-tiers.js +3 -2
- package/dist/tools/tool-tiers.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/app-sidecar.js
CHANGED
|
@@ -42,6 +42,7 @@ import { sessionToMarkdown, defaultExportFilename, } from "./core/session-export
|
|
|
42
42
|
import { AuthStorage } from "./core/auth-storage.js";
|
|
43
43
|
import { advancesPhase, explainPullFailure, isGgufShard, isValidHfRepoId, parseOllamaPullLine, pickGgufQuant, SHARDED_MESSAGE, toHfSearchRow, } from "./hf-pull.js";
|
|
44
44
|
import { cleanupToolOutputs } from "./tools/overflow.js";
|
|
45
|
+
import { spawnedTasks } from "./tools/subagent-shared.js";
|
|
45
46
|
import { readCappedBody } from "./utils/http-body.js";
|
|
46
47
|
import { fetchSubscriptionUsage, SubscriptionUsageError, XIAOMI_CREDITS_KEY, dualAuthProvider, oauthStorageKey, discoverLocalModels, findProbedModel, formatLocalModelId, parseLocalModelId, probeEndpoint, toModelInfo as localModelInfo, } from "@kenkaiiii/gg-core";
|
|
47
48
|
import { LocalEndpointError, addCustomEndpoint, listAllEndpoints, removeCustomEndpoint, syncEndpointCredentials, } from "./core/local-endpoint-store.js";
|
|
@@ -995,6 +996,11 @@ async function main() {
|
|
|
995
996
|
const shutdown = installTerminationHandlers({
|
|
996
997
|
scope: "app-sidecar",
|
|
997
998
|
teardown: async () => {
|
|
999
|
+
// Before any await: background commands live outside the daemon's process
|
|
1000
|
+
// group, and the app force-kills that group after 3 s. If a slow session
|
|
1001
|
+
// teardown is still pending then, these would never be stopped.
|
|
1002
|
+
for (const c of sessions.values())
|
|
1003
|
+
c.stopBackgroundProcesses();
|
|
998
1004
|
clearInterval(parentWatch);
|
|
999
1005
|
// Radio playback is app-wide (one stream across all windows), so it stops
|
|
1000
1006
|
// at the daemon level, not per session.
|
|
@@ -1993,6 +1999,12 @@ async function createSession(deps, opts) {
|
|
|
1993
1999
|
session.eventBus.on("subagent_state", (d) => broadcast("subagent_state", d));
|
|
1994
2000
|
session.eventBus.on("compaction_start", (d) => broadcast("compaction_start", d));
|
|
1995
2001
|
session.eventBus.on("compaction_end", (d) => broadcast("compaction_end", d));
|
|
2002
|
+
// Cold-prompt-cache notice: push the fresh TTL anchor + context size whenever
|
|
2003
|
+
// a run or compaction settles. Expiry itself is time-based, so the webview
|
|
2004
|
+
// also re-reads `cacheExpiry` from /state when the user returns or types.
|
|
2005
|
+
for (const ev of ["agent_done", "compaction_end", "model_change"]) {
|
|
2006
|
+
session.eventBus.on(ev, () => broadcast("cache_expiry", session.getCacheExpiryStatus()));
|
|
2007
|
+
}
|
|
1996
2008
|
// Keep the computer awake while this window's agent works: owned runs and
|
|
1997
2009
|
// autopilot cycles (RunLifecycle state), Ken replies, and background
|
|
1998
2010
|
// sub-agents that outlive their parent run. Released on settle (completed,
|
|
@@ -2930,6 +2942,7 @@ async function createSession(deps, opts) {
|
|
|
2930
2942
|
supportedThinkingLevels: getSupportedThinkingLevels(st.provider, st.model),
|
|
2931
2943
|
supportsVideo: getModel(st.model)?.supportsVideo ?? false,
|
|
2932
2944
|
autopilot,
|
|
2945
|
+
cacheExpiry: session.getCacheExpiryStatus(),
|
|
2933
2946
|
...kenStatePayload(),
|
|
2934
2947
|
...footerExtras(),
|
|
2935
2948
|
});
|
|
@@ -3550,18 +3563,25 @@ async function createSession(deps, opts) {
|
|
|
3550
3563
|
if (msg.role === "assistant" && typeof msg.content !== "string") {
|
|
3551
3564
|
const subagentCalls = msg.content.filter((c) => c.type === "tool_call" && (c.name === "subagent" || c.name === "spawn_agent"));
|
|
3552
3565
|
if (subagentCalls.length > 0) {
|
|
3553
|
-
const agents = subagentCalls.
|
|
3566
|
+
const agents = subagentCalls.flatMap((c) => {
|
|
3554
3567
|
const result = toolResultMap.get(c.id);
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
}
|
|
3568
|
+
// Async workers are intentionally non-resumable; restored rows are historical.
|
|
3569
|
+
const status = result?.isError ? "error" : "done";
|
|
3570
|
+
if (c.name === "spawn_agent") {
|
|
3571
|
+
// One row per child: a batch call starts several.
|
|
3572
|
+
return spawnedTasks(c.args).map((spawn) => ({
|
|
3573
|
+
agentName: spawn.task_name ?? spawn.agent,
|
|
3574
|
+
status,
|
|
3575
|
+
toolUseCount: 0,
|
|
3576
|
+
}));
|
|
3577
|
+
}
|
|
3578
|
+
return [
|
|
3579
|
+
{
|
|
3580
|
+
agentName: typeof c.args?.agent === "string" ? c.args.agent : undefined,
|
|
3581
|
+
status,
|
|
3582
|
+
toolUseCount: 0,
|
|
3583
|
+
},
|
|
3584
|
+
];
|
|
3565
3585
|
});
|
|
3566
3586
|
history.push({
|
|
3567
3587
|
role: "assistant",
|
|
@@ -5223,6 +5243,11 @@ async function createSession(deps, opts) {
|
|
|
5223
5243
|
await kenAutoSession?.dispose().catch(() => { });
|
|
5224
5244
|
await session.dispose().catch(() => { });
|
|
5225
5245
|
}
|
|
5246
|
+
function stopBackgroundProcesses() {
|
|
5247
|
+
session.stopBackgroundProcesses();
|
|
5248
|
+
kenSession?.stopBackgroundProcesses();
|
|
5249
|
+
kenAutoSession?.stopBackgroundProcesses();
|
|
5250
|
+
}
|
|
5226
5251
|
return {
|
|
5227
5252
|
id: opts.id,
|
|
5228
5253
|
mode,
|
|
@@ -5236,6 +5261,7 @@ async function createSession(deps, opts) {
|
|
|
5236
5261
|
broadcast,
|
|
5237
5262
|
handle,
|
|
5238
5263
|
dispose,
|
|
5264
|
+
stopBackgroundProcesses,
|
|
5239
5265
|
};
|
|
5240
5266
|
}
|
|
5241
5267
|
main().catch(async (err) => {
|