@earendil-works/pi-coding-agent 0.79.9 → 0.80.1
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/CHANGELOG.md +56 -0
- package/README.md +3 -2
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/register-bedrock.js +1 -1
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/session-picker.d.ts +2 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +5 -4
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +4 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +63 -12
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/config.d.ts +6 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +21 -13
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +4 -2
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +18 -7
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +6 -12
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -20
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +7 -4
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +16 -6
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +8 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/model-registry.d.ts +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +4 -6
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/provider-attribution.d.ts +2 -2
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +1 -1
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -2
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +19 -11
- package/dist/core/tools/find.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +5 -2
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +14 -3
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +36 -26
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts +0 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +2 -13
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +10 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +11 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +29 -16
- package/dist/package-manager-cli.js.map +1 -1
- package/docs/compaction.md +3 -1
- package/docs/extensions.md +6 -1
- package/docs/keybindings.md +1 -1
- package/docs/models.md +4 -2
- package/docs/providers.md +1 -1
- package/docs/terminal-setup.md +1 -7
- package/docs/tui.md +3 -3
- package/docs/usage.md +3 -1
- package/examples/extensions/custom-compaction.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +9 -5
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +1 -1
- package/examples/extensions/plan-mode/README.md +3 -2
- package/examples/extensions/plan-mode/index.ts +87 -37
- package/examples/extensions/qna.ts +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/summarize.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/02-custom-model.ts +1 -1
- package/examples/sdk/12-full-control.ts +1 -1
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
16
16
|
import { basename, dirname } from "node:path";
|
|
17
|
-
import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels, isContextOverflow, modelsAreEqual, resetApiProviders, streamSimple, } from "@earendil-works/pi-ai";
|
|
17
|
+
import { clampThinkingLevel, cleanupSessionResources, getSupportedThinkingLevels, isContextOverflow, modelsAreEqual, resetApiProviders, streamSimple, } from "@earendil-works/pi-ai/compat";
|
|
18
18
|
import { getThemeByName, theme } from "../modes/interactive/theme/theme.js";
|
|
19
19
|
import { stripFrontmatter } from "../utils/frontmatter.js";
|
|
20
20
|
import { resolvePath } from "../utils/paths.js";
|
|
@@ -1300,6 +1300,8 @@ export class AgentSession {
|
|
|
1300
1300
|
preparation,
|
|
1301
1301
|
branchEntries: pathEntries,
|
|
1302
1302
|
customInstructions,
|
|
1303
|
+
reason: "manual",
|
|
1304
|
+
willRetry: false,
|
|
1303
1305
|
signal: this._compactionAbortController.signal,
|
|
1304
1306
|
}));
|
|
1305
1307
|
if (result?.cancel) {
|
|
@@ -1344,6 +1346,8 @@ export class AgentSession {
|
|
|
1344
1346
|
type: "session_compact",
|
|
1345
1347
|
compactionEntry: savedCompactionEntry,
|
|
1346
1348
|
fromExtension,
|
|
1349
|
+
reason: "manual",
|
|
1350
|
+
willRetry: false,
|
|
1347
1351
|
});
|
|
1348
1352
|
}
|
|
1349
1353
|
const compactionResult = {
|
|
@@ -1455,10 +1459,12 @@ export class AgentSession {
|
|
|
1455
1459
|
return await this._runAutoCompaction("overflow", willRetry);
|
|
1456
1460
|
}
|
|
1457
1461
|
// Case 2: Threshold - context is getting large
|
|
1458
|
-
// For error messages
|
|
1459
|
-
// This ensures sessions that hit persistent API errors (e.g. 529)
|
|
1462
|
+
// For error messages or all-zero usage messages, estimate from the last valid response.
|
|
1463
|
+
// This ensures sessions that hit persistent API errors (e.g. 529) or malformed zero-usage
|
|
1464
|
+
// responses can still compact and do not reset context accounting.
|
|
1460
1465
|
let contextTokens;
|
|
1461
|
-
|
|
1466
|
+
const directContextTokens = assistantMessage.usage ? calculateContextTokens(assistantMessage.usage) : 0;
|
|
1467
|
+
if (assistantMessage.stopReason === "error" || directContextTokens === 0) {
|
|
1462
1468
|
const messages = this.agent.state.messages;
|
|
1463
1469
|
const estimate = estimateContextTokens(messages);
|
|
1464
1470
|
if (estimate.lastUsageIndex === null)
|
|
@@ -1475,7 +1481,7 @@ export class AgentSession {
|
|
|
1475
1481
|
contextTokens = estimate.tokens;
|
|
1476
1482
|
}
|
|
1477
1483
|
else {
|
|
1478
|
-
contextTokens =
|
|
1484
|
+
contextTokens = directContextTokens;
|
|
1479
1485
|
}
|
|
1480
1486
|
if (shouldCompact(contextTokens, contextWindow, settings)) {
|
|
1481
1487
|
return await this._runAutoCompaction("threshold", false);
|
|
@@ -1523,6 +1529,8 @@ export class AgentSession {
|
|
|
1523
1529
|
preparation,
|
|
1524
1530
|
branchEntries: pathEntries,
|
|
1525
1531
|
customInstructions: undefined,
|
|
1532
|
+
reason,
|
|
1533
|
+
willRetry,
|
|
1526
1534
|
signal: this._autoCompactionAbortController.signal,
|
|
1527
1535
|
}));
|
|
1528
1536
|
if (extensionResult?.cancel) {
|
|
@@ -1581,6 +1589,8 @@ export class AgentSession {
|
|
|
1581
1589
|
type: "session_compact",
|
|
1582
1590
|
compactionEntry: savedCompactionEntry,
|
|
1583
1591
|
fromExtension,
|
|
1592
|
+
reason,
|
|
1593
|
+
willRetry,
|
|
1584
1594
|
});
|
|
1585
1595
|
}
|
|
1586
1596
|
const result = {
|
|
@@ -1935,7 +1945,7 @@ export class AgentSession {
|
|
|
1935
1945
|
includeAllExtensionTools: options.includeAllExtensionTools,
|
|
1936
1946
|
});
|
|
1937
1947
|
}
|
|
1938
|
-
async reload() {
|
|
1948
|
+
async reload(options) {
|
|
1939
1949
|
const previousFlagValues = this._extensionRunner.getFlagValues();
|
|
1940
1950
|
await emitSessionShutdownEvent(this._extensionRunner, { type: "session_shutdown", reason: "reload" });
|
|
1941
1951
|
await this.settingsManager.reload();
|
|
@@ -1952,6 +1962,7 @@ export class AgentSession {
|
|
|
1952
1962
|
this._extensionShutdownHandler ||
|
|
1953
1963
|
this._extensionErrorListener;
|
|
1954
1964
|
if (hasBindings) {
|
|
1965
|
+
await options?.beforeSessionStart?.();
|
|
1955
1966
|
await this._extensionRunner.emit({ type: "session_start", reason: "reload" });
|
|
1956
1967
|
await this.extendResourcesFromExtensions("reload");
|
|
1957
1968
|
}
|
|
@@ -2415,8 +2426,8 @@ export class AgentSession {
|
|
|
2415
2426
|
const contextTokens = calculateContextTokens(assistant.usage);
|
|
2416
2427
|
if (contextTokens > 0) {
|
|
2417
2428
|
hasPostCompactionUsage = true;
|
|
2429
|
+
break;
|
|
2418
2430
|
}
|
|
2419
|
-
break;
|
|
2420
2431
|
}
|
|
2421
2432
|
}
|
|
2422
2433
|
}
|