@ponythewhite/base-context 1.0.8 → 1.0.9
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 +5 -0
- package/dist/base-context-runtime/pyproject.toml +1 -1
- package/dist/base-context-runtime/uv.lock +1 -1
- package/dist/build-info.json +1 -1
- package/dist/bundle/{bundled-modules-IGMJH2MU.js → bundled-modules-5JRM6P4T.js} +2 -2
- package/dist/bundle/{chunk-EXEFSSF4.js → chunk-NEHLB7JV.js} +78 -17
- package/dist/bundle/{chunk-RVJVXZCS.js → chunk-VVI3UKGR.js} +1 -1
- package/dist/bundle/{cli-main-BUK7QTHO.js → cli-main-YUDBEYE2.js} +2 -2
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/{main-2FWHT2WZ.js → main-ZLGGAAGU.js} +2 -2
- package/dist/core/agent-session.d.ts +3 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +48 -5
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/inference-coordinator.d.ts +1 -1
- package/dist/core/inference-coordinator.d.ts.map +1 -1
- package/dist/core/inference-coordinator.js +2 -2
- package/dist/core/inference-coordinator.js.map +1 -1
- package/dist/core/request-view-selection.d.ts +4 -2
- package/dist/core/request-view-selection.d.ts.map +1 -1
- package/dist/core/request-view-selection.js +7 -4
- package/dist/core/request-view-selection.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +38 -13
- package/dist/core/session-manager.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.0.9] - 2026-09-19
|
|
4
|
+
|
|
5
|
+
- Fixed compaction and context checkpoint adoption rejecting concurrent child usage and session bookkeeping updates as branch changes. Real conversation, source, and branch changes still invalidate stale summaries.
|
|
6
|
+
- Fixed repeated automatic summary attempts on unchanged context after a failed threshold compaction. Manual retries and new input remain available.
|
|
7
|
+
|
|
3
8
|
## [1.0.8] - 2026-09-18
|
|
4
9
|
|
|
5
10
|
- Fixed harness-state saves to replace files atomically, preserve failed mutations, and report corrupt state without overwriting it.
|
package/dist/build-info.json
CHANGED
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
oauth_exports,
|
|
52
52
|
runPrintMode,
|
|
53
53
|
runRpcMode
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-VVI3UKGR.js";
|
|
55
55
|
import {
|
|
56
56
|
AgentSession,
|
|
57
57
|
CURRENT_SESSION_VERSION,
|
|
@@ -143,7 +143,7 @@ import {
|
|
|
143
143
|
withFileMutationQueue,
|
|
144
144
|
wrapRegisteredTool,
|
|
145
145
|
wrapRegisteredTools
|
|
146
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-NEHLB7JV.js";
|
|
147
147
|
import "./chunk-CFNASUYO.js";
|
|
148
148
|
import "./chunk-QKIFBA7N.js";
|
|
149
149
|
import {
|
|
@@ -32297,6 +32297,7 @@ var PublicContextBudgetError = class extends RequestTokenBudgetError {
|
|
|
32297
32297
|
originalAssessment;
|
|
32298
32298
|
mandatoryAssessment;
|
|
32299
32299
|
taskFrameRebaseAvailable;
|
|
32300
|
+
isSourceCurrent;
|
|
32300
32301
|
source;
|
|
32301
32302
|
#compactionKey;
|
|
32302
32303
|
#summaryCapacity;
|
|
@@ -32306,11 +32307,12 @@ var PublicContextBudgetError = class extends RequestTokenBudgetError {
|
|
|
32306
32307
|
getCompactionKey() {
|
|
32307
32308
|
return this.#compactionKey;
|
|
32308
32309
|
}
|
|
32309
|
-
constructor(source, assessment, originalAssessment, mandatoryAssessment, taskFrameRebaseAvailable = false, compactionKey, summaryCapacity) {
|
|
32310
|
+
constructor(source, assessment, originalAssessment, mandatoryAssessment, taskFrameRebaseAvailable = false, compactionKey, summaryCapacity, isSourceCurrent) {
|
|
32310
32311
|
super(assessment);
|
|
32311
32312
|
this.originalAssessment = originalAssessment;
|
|
32312
32313
|
this.mandatoryAssessment = mandatoryAssessment;
|
|
32313
32314
|
this.taskFrameRebaseAvailable = taskFrameRebaseAvailable;
|
|
32315
|
+
this.isSourceCurrent = isSourceCurrent;
|
|
32314
32316
|
this.name = "PublicContextBudgetError";
|
|
32315
32317
|
if (mandatoryAssessment?.status === "over-budget")
|
|
32316
32318
|
this.message = "Context capacity exceeded: instructions, tools, mandatory evidence and output allowance cannot fit. Summarizing unrelated history cannot resolve this request.";
|
|
@@ -32319,7 +32321,7 @@ var PublicContextBudgetError = class extends RequestTokenBudgetError {
|
|
|
32319
32321
|
this.#summaryCapacity = summaryCapacity;
|
|
32320
32322
|
}
|
|
32321
32323
|
};
|
|
32322
|
-
function captureRequestViewBoundary(messages, commit, validate2, fixedPrepare) {
|
|
32324
|
+
function captureRequestViewBoundary(messages, commit, validate2, fixedPrepare, isSourceCurrent) {
|
|
32323
32325
|
const source = getCanonicalViewSelectionSource(messages);
|
|
32324
32326
|
if (!source)
|
|
32325
32327
|
throw new Error("Request view boundary requires compiled canonical messages");
|
|
@@ -32333,7 +32335,8 @@ function captureRequestViewBoundary(messages, commit, validate2, fixedPrepare) {
|
|
|
32333
32335
|
} : {},
|
|
32334
32336
|
commit,
|
|
32335
32337
|
validate: validate2,
|
|
32336
|
-
fixedPrepare
|
|
32338
|
+
fixedPrepare,
|
|
32339
|
+
isSourceCurrent
|
|
32337
32340
|
};
|
|
32338
32341
|
}
|
|
32339
32342
|
function providerMessageIndex(indices, canonicalIndex) {
|
|
@@ -32405,7 +32408,7 @@ function publicBudgetFailure(boundary, messages, request, projection, budget, as
|
|
|
32405
32408
|
const body = JSON.parse(request.body);
|
|
32406
32409
|
const input = body[inputKey];
|
|
32407
32410
|
if (!Array.isArray(input) || input.length !== projection.messageIndices.length)
|
|
32408
|
-
return new PublicContextBudgetError(boundary.source, assessment, original);
|
|
32411
|
+
return new PublicContextBudgetError(boundary.source, assessment, original, void 0, false, void 0, void 0, boundary.isSourceCurrent);
|
|
32409
32412
|
const graph = prepareViewSelection(source.units, boundary.limits);
|
|
32410
32413
|
const retainedInput = (retained) => {
|
|
32411
32414
|
const roots = source.units.filter((_2, index) => required.has(index) || retained.has(context.references[index]?.ref.entryId ?? "")).map((unit) => unit.id);
|
|
@@ -32434,7 +32437,7 @@ function publicBudgetFailure(boundary, messages, request, projection, budget, as
|
|
|
32434
32437
|
kept.splice(position < 0 ? kept.length : position, 0, summary);
|
|
32435
32438
|
const measured = budget.measure(withRequestBody(request, JSON.stringify({ ...body, [inputKey]: kept })));
|
|
32436
32439
|
return measured.status === "unknown" || measured.availableInputTokens === null || measured.estimatedInputTokens === null ? void 0 : Math.floor(measured.availableInputTokens - measured.estimatedInputTokens);
|
|
32437
|
-
});
|
|
32440
|
+
}, boundary.isSourceCurrent);
|
|
32438
32441
|
}
|
|
32439
32442
|
async function prepareFixedRequestView(boundary, request, projection, assessment) {
|
|
32440
32443
|
projection = canonicalRequestProjection(boundary, projection);
|
|
@@ -33168,13 +33171,13 @@ var InferenceCoordinator = class _InferenceCoordinator {
|
|
|
33168
33171
|
return captured;
|
|
33169
33172
|
}
|
|
33170
33173
|
/** Explicit Root-owned epoch boundary, on this same captured MAIN source only. */
|
|
33171
|
-
bindRequestViewBoundary(messages, commit, validate2, fixedPrepare) {
|
|
33174
|
+
bindRequestViewBoundary(messages, commit, validate2, fixedPrepare, isSourceCurrent) {
|
|
33172
33175
|
this.assertAdmission();
|
|
33173
33176
|
if (!this.capturedSink)
|
|
33174
33177
|
throw new Error("Request view boundary requires a captured inference owner");
|
|
33175
33178
|
if (this.requestViewBoundary)
|
|
33176
33179
|
throw new Error("Request view boundary is already bound");
|
|
33177
|
-
this.requestViewBoundary = captureRequestViewBoundary(messages, commit, validate2, fixedPrepare);
|
|
33180
|
+
this.requestViewBoundary = captureRequestViewBoundary(messages, commit, validate2, fixedPrepare, isSourceCurrent);
|
|
33178
33181
|
}
|
|
33179
33182
|
/** Read through an explicit capture, never by recapturing the mutable current session. */
|
|
33180
33183
|
async readHistory(read2) {
|
|
@@ -35812,6 +35815,15 @@ function readSessionCatalogHeader(filePath) {
|
|
|
35812
35815
|
// dist/core/session-manager.js
|
|
35813
35816
|
var CURRENT_SESSION_VERSION = 3;
|
|
35814
35817
|
var SESSION_ASYNC_PARSE_YIELD_BYTES = 4 * 1024 * 1024;
|
|
35818
|
+
var COMPACTION_BOOKKEEPING_ENTRY_TYPES = /* @__PURE__ */ new Set([
|
|
35819
|
+
"session_state",
|
|
35820
|
+
"agent_status",
|
|
35821
|
+
"git_state",
|
|
35822
|
+
"child_usage_attributed"
|
|
35823
|
+
]);
|
|
35824
|
+
function isCompactionBookkeeping(entry) {
|
|
35825
|
+
return COMPACTION_BOOKKEEPING_ENTRY_TYPES.has(entry.type) || entry.type === "custom_message" && entry.customType === COMPACTION_OUTCOME_CUSTOM_TYPE;
|
|
35826
|
+
}
|
|
35815
35827
|
var CONTENT_ENTRY_TYPES = /* @__PURE__ */ new Set([
|
|
35816
35828
|
"message",
|
|
35817
35829
|
"custom_message",
|
|
@@ -36636,6 +36648,7 @@ function newSessionWriteState() {
|
|
|
36636
36648
|
reservedLeaf: null,
|
|
36637
36649
|
leafId: null,
|
|
36638
36650
|
branchSelectionRevision: 0,
|
|
36651
|
+
compactionRevision: 0,
|
|
36639
36652
|
pins: 0,
|
|
36640
36653
|
retired: false,
|
|
36641
36654
|
closed: false,
|
|
@@ -37369,8 +37382,11 @@ var SessionManager = class _SessionManager {
|
|
|
37369
37382
|
}
|
|
37370
37383
|
Object.assign(state, metadata);
|
|
37371
37384
|
state.metadataRefs = void 0;
|
|
37372
|
-
if (advanceLeaf)
|
|
37385
|
+
if (advanceLeaf) {
|
|
37373
37386
|
state.leafId = snapshot.id;
|
|
37387
|
+
if (!isCompactionBookkeeping(snapshot))
|
|
37388
|
+
state.compactionRevision++;
|
|
37389
|
+
}
|
|
37374
37390
|
state.reservedLeaf = state.leafId;
|
|
37375
37391
|
if (this.writeState === state)
|
|
37376
37392
|
this.leafId = state.leafId;
|
|
@@ -37457,6 +37473,8 @@ var SessionManager = class _SessionManager {
|
|
|
37457
37473
|
target.message.usage = cloneUsage2(snapshot.aggregateUsage);
|
|
37458
37474
|
}
|
|
37459
37475
|
state.leafId = snapshot.id;
|
|
37476
|
+
if (!isCompactionBookkeeping(snapshot))
|
|
37477
|
+
state.compactionRevision++;
|
|
37460
37478
|
if (this.writeState === state) {
|
|
37461
37479
|
this.leafId = snapshot.id;
|
|
37462
37480
|
this._notifyPersistListeners();
|
|
@@ -37523,8 +37541,13 @@ var SessionManager = class _SessionManager {
|
|
|
37523
37541
|
let capturedSource;
|
|
37524
37542
|
let captureFailure;
|
|
37525
37543
|
let selectionRevision;
|
|
37544
|
+
let compactionRevision;
|
|
37545
|
+
let currentRevision;
|
|
37546
|
+
const isCurrent = (revision) => capturedSource !== void 0 && this.writeState === state && state.owner === owner && !state.retired && !state.closed && this.sessionId === sessionId && this.sessionFile === sessionFile && state.branchSelectionRevision === selectionRevision && state.compactionRevision === revision;
|
|
37526
37547
|
const sink = this._bindHistorySource((index, source, query) => createSessionHistoryReadScope(index, source, query, "source"), (source) => {
|
|
37527
37548
|
selectionRevision = state.branchSelectionRevision;
|
|
37549
|
+
compactionRevision = state.compactionRevision;
|
|
37550
|
+
currentRevision = compactionRevision;
|
|
37528
37551
|
if (!indexed)
|
|
37529
37552
|
residentBranch = this._readResidentBranches([source.leafId], capturedLimits, byId).branches[0];
|
|
37530
37553
|
capturedSource = source;
|
|
@@ -37553,7 +37576,7 @@ var SessionManager = class _SessionManager {
|
|
|
37553
37576
|
if (JSON.stringify(epoch.source) !== JSON.stringify(capturedSource))
|
|
37554
37577
|
throw new Error("Context epoch does not match the bound source capture");
|
|
37555
37578
|
}
|
|
37556
|
-
if (!
|
|
37579
|
+
if (!isCurrent(compactionRevision))
|
|
37557
37580
|
throw new Error("Compaction source or branch changed");
|
|
37558
37581
|
};
|
|
37559
37582
|
const args = [
|
|
@@ -37566,10 +37589,13 @@ var SessionManager = class _SessionManager {
|
|
|
37566
37589
|
snapshot.usage,
|
|
37567
37590
|
assertCurrent
|
|
37568
37591
|
];
|
|
37569
|
-
|
|
37592
|
+
const entryId = await (qualification || snapshot.requestOutputs ? this._appendCompaction(...args, qualification, snapshot.requestOutputs) : this.appendCompaction(...args));
|
|
37593
|
+
currentRevision = compactionRevision + 1;
|
|
37594
|
+
return entryId;
|
|
37570
37595
|
};
|
|
37571
37596
|
const bound = {
|
|
37572
37597
|
...sink,
|
|
37598
|
+
isCurrent: () => isCurrent(currentRevision),
|
|
37573
37599
|
readHistory: (read2) => sink.readHistory((history) => read2(history.branchContext)),
|
|
37574
37600
|
[readCopiedEpochSource]: (read2) => sink.readHistory(read2),
|
|
37575
37601
|
readBranch: async () => {
|
|
@@ -45456,7 +45482,7 @@ async function loadExtensionModule(extensionPath) {
|
|
|
45456
45482
|
// (file-path aliases would load a second, divergent copy of each package).
|
|
45457
45483
|
// Also disable tryNative so jiti handles ALL imports (not just the entry point)
|
|
45458
45484
|
// Node/dev must also share the native AI registry and implementation identities.
|
|
45459
|
-
...isBunBinary || isBundledCli ? { virtualModules: (await import("./bundled-modules-
|
|
45485
|
+
...isBunBinary || isBundledCli ? { virtualModules: (await import("./bundled-modules-5JRM6P4T.js")).VIRTUAL_MODULES, tryNative: false } : {
|
|
45460
45486
|
alias: getAliases(),
|
|
45461
45487
|
virtualModules: {
|
|
45462
45488
|
"@ponythewhite/base-context-ai": src_exports,
|
|
@@ -58591,6 +58617,7 @@ var AgentSession = class _AgentSession {
|
|
|
58591
58617
|
runtimeServices;
|
|
58592
58618
|
_contextCompiler = new CanonicalContextCompiler();
|
|
58593
58619
|
_failedAutomaticCompaction;
|
|
58620
|
+
_failedThresholdCompaction;
|
|
58594
58621
|
_contextEpochsEnabled;
|
|
58595
58622
|
_initialContextMode;
|
|
58596
58623
|
_contextMode;
|
|
@@ -58990,7 +59017,7 @@ var AgentSession = class _AgentSession {
|
|
|
58990
59017
|
acknowledged = { entryId, result };
|
|
58991
59018
|
try {
|
|
58992
59019
|
assertResourceCurrent(resource);
|
|
58993
|
-
if (this.sessionManager !== epochManager ||
|
|
59020
|
+
if (this.sessionManager !== epochManager || !compaction.isCurrent())
|
|
58994
59021
|
throw new Error("Context epoch source changed before adoption");
|
|
58995
59022
|
this.agent.state.messages = prepared.messages;
|
|
58996
59023
|
committed = prepared.checkpoint;
|
|
@@ -59066,7 +59093,7 @@ var AgentSession = class _AgentSession {
|
|
|
59066
59093
|
committedEntry = { sessionId: epochContext.source.sessionId, entryId };
|
|
59067
59094
|
requestContract = nextContract;
|
|
59068
59095
|
assertResourceCurrent(resource);
|
|
59069
|
-
if (this.sessionManager !== epochManager ||
|
|
59096
|
+
if (this.sessionManager !== epochManager || !compaction.isCurrent())
|
|
59070
59097
|
throw new Error("Context contract source changed before acceptance");
|
|
59071
59098
|
}
|
|
59072
59099
|
if (!sameSelectedSkills(committed?.selectedSkills, epochContext.selectedSkills))
|
|
@@ -59081,7 +59108,7 @@ var AgentSession = class _AgentSession {
|
|
|
59081
59108
|
} catch (cause) {
|
|
59082
59109
|
throw commitFailure(cause);
|
|
59083
59110
|
}
|
|
59084
|
-
} : void 0);
|
|
59111
|
+
} : void 0, compaction.isCurrent);
|
|
59085
59112
|
}
|
|
59086
59113
|
this._compactionSetupFailure = void 0;
|
|
59087
59114
|
return { messages, adoptMessages: true, streamContext: captured, release: () => captured.dispose() };
|
|
@@ -59101,7 +59128,7 @@ var AgentSession = class _AgentSession {
|
|
|
59101
59128
|
if (!invocation || invocation.signal !== signal)
|
|
59102
59129
|
return false;
|
|
59103
59130
|
const owner = { ...invocation, pumpEpoch: this._sessionInputPumpEpoch };
|
|
59104
|
-
if (!this._isCompactionOwnerCurrent(owner) || !error.source.persistent || error.source.sessionId !== owner.sessionId || error.source.sessionFile !== owner.sessionFile || error.source.leafId
|
|
59131
|
+
if (!this._isCompactionOwnerCurrent(owner) || !error.source.persistent || error.source.sessionId !== owner.sessionId || error.source.sessionFile !== owner.sessionFile || !(error.isSourceCurrent?.() ?? error.source.leafId === owner.manager.getLeafId()))
|
|
59105
59132
|
return false;
|
|
59106
59133
|
if (error.taskFrameRebaseAvailable) {
|
|
59107
59134
|
this._contextCompiler.requestTaskFrameRebase();
|
|
@@ -59383,7 +59410,7 @@ var AgentSession = class _AgentSession {
|
|
|
59383
59410
|
result: { summary: "", firstKeptEntryId: prepared.checkpoint.literalTailId, tokensBefore: null }
|
|
59384
59411
|
};
|
|
59385
59412
|
this._contextMode = mode;
|
|
59386
|
-
if (this.sessionManager !== manager ||
|
|
59413
|
+
if (this.sessionManager !== manager || !compaction.isCurrent())
|
|
59387
59414
|
throw new Error("Context mode source changed before adoption");
|
|
59388
59415
|
assertResourceCurrent(resource);
|
|
59389
59416
|
this.agent.state.messages = prepared.messages;
|
|
@@ -60904,6 +60931,22 @@ var AgentSession = class _AgentSession {
|
|
|
60904
60931
|
return timestamp;
|
|
60905
60932
|
});
|
|
60906
60933
|
}
|
|
60934
|
+
_thresholdCompactionConfiguration() {
|
|
60935
|
+
return JSON.stringify({
|
|
60936
|
+
model: this.model,
|
|
60937
|
+
thinkingLevel: this.thinkingLevel,
|
|
60938
|
+
settings: this.settingsManager.getCompactionSettings()
|
|
60939
|
+
});
|
|
60940
|
+
}
|
|
60941
|
+
_hasFailedThresholdCompaction() {
|
|
60942
|
+
const failed = this._failedThresholdCompaction;
|
|
60943
|
+
if (!failed)
|
|
60944
|
+
return false;
|
|
60945
|
+
if (failed.isCurrent() && failed.configuration === this._thresholdCompactionConfiguration() && failed.systemPrompt === this.agent.state.systemPrompt && failed.tools === this.agent.state.tools)
|
|
60946
|
+
return true;
|
|
60947
|
+
this._failedThresholdCompaction = void 0;
|
|
60948
|
+
return false;
|
|
60949
|
+
}
|
|
60907
60950
|
async _thresholdCompactionNeeded(context, owner = this._captureCompactionOwner(), goalOwner = {
|
|
60908
60951
|
...this._captureGoalContinuationOwner(owner.signal),
|
|
60909
60952
|
checkpointOwner: owner
|
|
@@ -60922,6 +60965,8 @@ var AgentSession = class _AgentSession {
|
|
|
60922
60965
|
const contextTokens = this._getThresholdContextTokens(context.message, compactionTimestamp);
|
|
60923
60966
|
if (contextTokens === void 0 || !shouldCompact(contextTokens, contextWindow, settings))
|
|
60924
60967
|
return false;
|
|
60968
|
+
if (this._hasFailedThresholdCompaction())
|
|
60969
|
+
return false;
|
|
60925
60970
|
if (!this._isGoalContinuationOwnerCurrent(goalOwner))
|
|
60926
60971
|
return true;
|
|
60927
60972
|
if (!await this._queueGoalContinuationForThresholdCompaction(context.message, goalOwner)) {
|
|
@@ -62041,6 +62086,7 @@ var AgentSession = class _AgentSession {
|
|
|
62041
62086
|
*/
|
|
62042
62087
|
async disposeAsync(options) {
|
|
62043
62088
|
this._failedAutomaticCompaction = void 0;
|
|
62089
|
+
this._failedThresholdCompaction = void 0;
|
|
62044
62090
|
this._contextCompiler.clear();
|
|
62045
62091
|
this._nativeRecoveryCursors.clear();
|
|
62046
62092
|
for (const admission of this._rlmChildAdmissions)
|
|
@@ -62248,6 +62294,7 @@ var AgentSession = class _AgentSession {
|
|
|
62248
62294
|
}
|
|
62249
62295
|
dispose() {
|
|
62250
62296
|
this._failedAutomaticCompaction = void 0;
|
|
62297
|
+
this._failedThresholdCompaction = void 0;
|
|
62251
62298
|
this._contextCompiler.clear();
|
|
62252
62299
|
this._nativeRecoveryCursors.clear();
|
|
62253
62300
|
if (this._disposed) {
|
|
@@ -66407,6 +66454,8 @@ ${parsed.args}` : block;
|
|
|
66407
66454
|
if (contextTokens === void 0)
|
|
66408
66455
|
return false;
|
|
66409
66456
|
if (shouldCompact(contextTokens, contextWindow, settings)) {
|
|
66457
|
+
if (this._hasFailedThresholdCompaction())
|
|
66458
|
+
return false;
|
|
66410
66459
|
if (!this._pendingCheckpoint && queueAutonomousContinuation) {
|
|
66411
66460
|
if (!await this._queueGoalContinuationForThresholdCompaction(assistantMessage, goalOwner) && this._isGoalContinuationOwnerCurrent(goalOwner)) {
|
|
66412
66461
|
await this._queueAutonomousContinuationForThresholdCompaction(assistantMessage, owner, autonomousOwner);
|
|
@@ -66497,6 +66546,16 @@ This compaction outcome could not be saved to session history: ${persistenceErro
|
|
|
66497
66546
|
let compaction;
|
|
66498
66547
|
let committed;
|
|
66499
66548
|
let failure2;
|
|
66549
|
+
const thresholdConfiguration = reason === "threshold" && !resumeInPlace ? {
|
|
66550
|
+
configuration: this._thresholdCompactionConfiguration(),
|
|
66551
|
+
systemPrompt: this.agent.state.systemPrompt,
|
|
66552
|
+
tools: this.agent.state.tools
|
|
66553
|
+
} : void 0;
|
|
66554
|
+
const rememberThresholdFailure = () => {
|
|
66555
|
+
if (thresholdConfiguration && !abort.signal.aborted && this._isCompactionOwnerCurrent(owner) && compaction?.isCurrent()) {
|
|
66556
|
+
this._failedThresholdCompaction = { ...thresholdConfiguration, isCurrent: compaction.isCurrent };
|
|
66557
|
+
}
|
|
66558
|
+
};
|
|
66500
66559
|
try {
|
|
66501
66560
|
const selected = this._resolveCompactionModel();
|
|
66502
66561
|
const model = selected?.model;
|
|
@@ -66513,6 +66572,7 @@ This compaction outcome could not be saved to session history: ${persistenceErro
|
|
|
66513
66572
|
const detail = !model || !authResult ? "no model is selected" : authResult.ok ? "no API key is available" : authResult.error;
|
|
66514
66573
|
await this._endCompactionUnsuccessfully(reason, "failed", `Compaction failed: ${detail}`, { owner });
|
|
66515
66574
|
this._clearQueuedAutonomousContinuationsAfterSkippedThresholdCompaction(reason === "threshold" && shouldContinueAfterCompaction, queuedAutonomousContinuationsForThisCompaction);
|
|
66575
|
+
rememberThresholdFailure();
|
|
66516
66576
|
resumeAfterFailure();
|
|
66517
66577
|
return false;
|
|
66518
66578
|
}
|
|
@@ -66574,6 +66634,7 @@ This compaction outcome could not be saved to session history: ${persistenceErro
|
|
|
66574
66634
|
} else {
|
|
66575
66635
|
await this._endCompactionUnsuccessfully(reason, "failed", reason === "overflow" ? `Context overflow recovery failed: ${errorMessage4}` : reason === "requested" ? `Requested compaction failed: ${errorMessage4}` : `Auto-compaction failed: ${errorMessage4}`, { customInstructions, owner });
|
|
66576
66636
|
}
|
|
66637
|
+
rememberThresholdFailure();
|
|
66577
66638
|
resumeAfterFailure();
|
|
66578
66639
|
return false;
|
|
66579
66640
|
} finally {
|
|
@@ -69952,7 +70013,7 @@ import { resolve as resolve15 } from "node:path";
|
|
|
69952
70013
|
var BASE_CONTEXT_BUILD_ID_ENV = "BASE_CONTEXT_BUILD_ID";
|
|
69953
70014
|
var BASE_CONTEXT_LAUNCHER_PATH_ENV = "BASE_CONTEXT_LAUNCHER_PATH";
|
|
69954
70015
|
function bundledBuildId() {
|
|
69955
|
-
return false ? void 0 : "v1.0.
|
|
70016
|
+
return false ? void 0 : "v1.0.9";
|
|
69956
70017
|
}
|
|
69957
70018
|
function getDaemonRuntimeIdentity(environment = process.env) {
|
|
69958
70019
|
const entrypoint = process.argv[1];
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
isOwnedSessionWorkerProcess,
|
|
6
6
|
maybeRunOwnedSessionWorkerFrontend,
|
|
7
7
|
maybeStartDaemonEarly
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-NEHLB7JV.js";
|
|
9
9
|
import {
|
|
10
10
|
APP_NAME
|
|
11
11
|
} from "./chunk-2IPDSTDR.js";
|
|
@@ -39,7 +39,7 @@ async function runCli() {
|
|
|
39
39
|
}
|
|
40
40
|
const [{ EnvHttpProxyAgent, setGlobalDispatcher }, { main }] = await Promise.all([
|
|
41
41
|
import("undici"),
|
|
42
|
-
import("./main-
|
|
42
|
+
import("./main-ZLGGAAGU.js")
|
|
43
43
|
]);
|
|
44
44
|
setGlobalDispatcher(new EnvHttpProxyAgent({ bodyTimeout: 0, headersTimeout: 0 }));
|
|
45
45
|
try {
|
package/dist/bundle/cli.js
CHANGED
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
shouldUseDaemonClientRuntime,
|
|
18
18
|
shouldUseDaemonInteractive,
|
|
19
19
|
shouldUseEphemeralSessionManagerForDaemonInteractive
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-VVI3UKGR.js";
|
|
21
|
+
import "./chunk-NEHLB7JV.js";
|
|
22
22
|
import "./chunk-CFNASUYO.js";
|
|
23
23
|
import "./chunk-QKIFBA7N.js";
|
|
24
24
|
import "./chunk-2IPDSTDR.js";
|
|
@@ -381,6 +381,7 @@ export declare class AgentSession {
|
|
|
381
381
|
readonly runtimeServices: SessionRuntimeServices;
|
|
382
382
|
private readonly _contextCompiler;
|
|
383
383
|
private _failedAutomaticCompaction?;
|
|
384
|
+
private _failedThresholdCompaction?;
|
|
384
385
|
private readonly _contextEpochsEnabled;
|
|
385
386
|
private readonly _initialContextMode;
|
|
386
387
|
private _contextMode;
|
|
@@ -687,6 +688,8 @@ export declare class AgentSession {
|
|
|
687
688
|
private _runBackgroundPlan;
|
|
688
689
|
private _runSerializedRefine;
|
|
689
690
|
private _getLatestCompactionTimestamp;
|
|
691
|
+
private _thresholdCompactionConfiguration;
|
|
692
|
+
private _hasFailedThresholdCompaction;
|
|
690
693
|
private _thresholdCompactionNeeded;
|
|
691
694
|
private _captureThresholdAutonomousOwner;
|
|
692
695
|
private _snapshotAutonomousRuntimeState;
|