@myagentroam/agent 0.11.61 → 0.11.63
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/cli/catalog-file.d.ts +2 -0
- package/dist/cli/main.js +26 -15
- package/dist/cli/subagent/control.js +2 -2
- package/dist/cli/subagent/start.js +1 -1
- package/dist/cli/terminal-input.d.ts +12 -0
- package/dist/cli/terminal-input.js +86 -0
- package/dist/host/local-tool-registry.js +2 -2
- package/dist/model/configuration.d.ts +1 -0
- package/dist/model/configuration.js +1 -0
- package/dist/runtime/context/gc-admission.d.ts +5 -0
- package/dist/runtime/context/gc-admission.js +23 -0
- package/dist/runtime/context/gc-candidates-code.js +5 -6
- package/dist/runtime/context/gc-candidates-exec.js +3 -4
- package/dist/runtime/context/gc-candidates-read-patch.js +3 -4
- package/dist/runtime/context/gc-candidates-web.d.ts +1 -1
- package/dist/runtime/context/gc-candidates-web.js +6 -7
- package/dist/runtime/context/gc-runtime.js +3 -57
- package/dist/runtime/context/gc-tokens.d.ts +0 -4
- package/dist/runtime/context/gc-tokens.js +0 -18
- package/dist/runtime/context/gc.d.ts +1 -1
- package/dist/runtime/context/gc.js +24 -139
- package/dist/sdk/execution-context-coordinator.d.ts +1 -0
- package/dist/sdk/execution-context-coordinator.js +3 -1
- package/dist/sdk/session-execution-factory.js +4 -1
- package/dist/session/context-gc-checkpoint.d.ts +1 -4
- package/dist/session/context-gc-checkpoint.js +10 -22
- package/dist/session/context-gc-contract.d.ts +8 -8
- package/dist/session/store/jsonl/jsonl-store.js +1 -4
- package/dist/tools/agent/question.js +1 -1
- package/dist/tools/agent/sleep.js +1 -1
- package/dist/tools/agent/todo-write.js +1 -1
- package/dist/tools/code-mode/index.js +1 -1
- package/dist/tools/contracts.d.ts +1 -0
- package/dist/tools/local/apply-patch.d.ts +1 -1
- package/dist/tools/local/apply-patch.js +11 -2
- package/dist/tools/mcp/tool-search.js +1 -1
- package/dist/tools/scheduler.js +4 -4
- package/package.json +1 -1
- package/dist/runtime/context/gc-economics.d.ts +0 -35
- package/dist/runtime/context/gc-economics.js +0 -93
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { ModelUsage } from '../../model/contracts.js';
|
|
2
|
-
export declare const CONTEXT_GC_POLICY: {
|
|
3
|
-
version: 1;
|
|
4
|
-
minimumPaybackRollouts: number;
|
|
5
|
-
maximumPaybackRollouts: number;
|
|
6
|
-
contextGrowthSampleWindow: number;
|
|
7
|
-
minimumContextGrowthSamples: number;
|
|
8
|
-
minimumObservationRollouts: number;
|
|
9
|
-
stageAProtectionRollouts: number;
|
|
10
|
-
largeExecProtectionRollouts: number;
|
|
11
|
-
normalInputCostRate: number;
|
|
12
|
-
cacheReadCostRate: number;
|
|
13
|
-
};
|
|
14
|
-
export declare const COMPACT_THRESHOLD_RATIO: number;
|
|
15
|
-
interface ContextGcEconomicsInput {
|
|
16
|
-
readonly contextUsageTokens: number;
|
|
17
|
-
readonly contextWindowTokens: number;
|
|
18
|
-
readonly reclaimedTokens: number;
|
|
19
|
-
readonly reclaimedCachedTokens: number;
|
|
20
|
-
readonly cacheReadTokens: number;
|
|
21
|
-
readonly preservedCachedPrefixTokens: number;
|
|
22
|
-
}
|
|
23
|
-
export interface ContextGcEconomicsResult {
|
|
24
|
-
readonly cacheRebuildPenaltyCostUnits: number;
|
|
25
|
-
readonly requiredPositiveNetRollouts: number | null;
|
|
26
|
-
readonly expectedNetSavedCostUnits: number;
|
|
27
|
-
readonly grossReductionRate: number;
|
|
28
|
-
readonly passes: boolean;
|
|
29
|
-
}
|
|
30
|
-
export declare function evaluateContextGcEconomics(input: ContextGcEconomicsInput): ContextGcEconomicsResult;
|
|
31
|
-
export declare function contextGcMinimumReclaimedTokens(contextWindowTokens: number): number;
|
|
32
|
-
export declare function contextGcEligibleUsage(usage: ModelUsage, contextWindowTokens: number): number | undefined;
|
|
33
|
-
export declare function modelContextUsage(value: ModelUsage | Record<string, unknown>): number | undefined;
|
|
34
|
-
export declare function clamp(value: number, minimum: number, maximum: number): number;
|
|
35
|
-
export {};
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { AGENT_EXECUTION_POLICY } from '../execution-policy.js';
|
|
2
|
-
import { CONTEXT_GC_TEXT_PROTECTION_ROLLOUTS } from '../../session/context-gc-protection.js';
|
|
3
|
-
export const CONTEXT_GC_POLICY = {
|
|
4
|
-
version: 1,
|
|
5
|
-
minimumPaybackRollouts: 30,
|
|
6
|
-
maximumPaybackRollouts: 60,
|
|
7
|
-
contextGrowthSampleWindow: 16,
|
|
8
|
-
minimumContextGrowthSamples: 6,
|
|
9
|
-
minimumObservationRollouts: 1,
|
|
10
|
-
stageAProtectionRollouts: CONTEXT_GC_TEXT_PROTECTION_ROLLOUTS,
|
|
11
|
-
largeExecProtectionRollouts: CONTEXT_GC_TEXT_PROTECTION_ROLLOUTS,
|
|
12
|
-
normalInputCostRate: 1,
|
|
13
|
-
cacheReadCostRate: 0.05
|
|
14
|
-
};
|
|
15
|
-
const CONTEXT_GC_START_RATIO = 0.5;
|
|
16
|
-
export const COMPACT_THRESHOLD_RATIO = AGENT_EXECUTION_POLICY.backgroundCompactionPercent / 100;
|
|
17
|
-
export function evaluateContextGcEconomics(input) {
|
|
18
|
-
const reclaimedTokens = Math.max(0, input.reclaimedTokens);
|
|
19
|
-
const cacheReadTokens = Math.max(0, input.cacheReadTokens);
|
|
20
|
-
const preservedCachedPrefixTokens = clamp(input.preservedCachedPrefixTokens, 0, cacheReadTokens);
|
|
21
|
-
const invalidatedCachedSuffixTokens = cacheReadTokens - preservedCachedPrefixTokens;
|
|
22
|
-
const reclaimedCachedTokens = clamp(input.reclaimedCachedTokens, 0, invalidatedCachedSuffixTokens);
|
|
23
|
-
const invalidatedRetainedCachedTokens = Math.max(0, invalidatedCachedSuffixTokens - reclaimedCachedTokens);
|
|
24
|
-
// Calculate token-derived costs in cache-read units to keep exact zero exact.
|
|
25
|
-
const unitsPerNormalInput = CONTEXT_GC_POLICY.normalInputCostRate / CONTEXT_GC_POLICY.cacheReadCostRate;
|
|
26
|
-
const cacheRebuildPenalty = invalidatedRetainedCachedTokens * (unitsPerNormalInput - 1);
|
|
27
|
-
const cacheRebuildPenaltyCostUnits = cacheRebuildPenalty * CONTEXT_GC_POLICY.cacheReadCostRate;
|
|
28
|
-
const reclaimedUncachedTokens = Math.max(0, reclaimedTokens - reclaimedCachedTokens);
|
|
29
|
-
const firstRolloutSavings = reclaimedCachedTokens + reclaimedUncachedTokens * unitsPerNormalInput;
|
|
30
|
-
const steadyRolloutSavings = reclaimedTokens;
|
|
31
|
-
const netAt = (rollouts) => rollouts <= 0
|
|
32
|
-
? -cacheRebuildPenalty
|
|
33
|
-
: firstRolloutSavings +
|
|
34
|
-
Math.max(0, rollouts - 1) * steadyRolloutSavings -
|
|
35
|
-
cacheRebuildPenalty;
|
|
36
|
-
let requiredPositiveNetRollouts;
|
|
37
|
-
if (netAt(1) > 0)
|
|
38
|
-
requiredPositiveNetRollouts = 1;
|
|
39
|
-
else if (steadyRolloutSavings <= 0)
|
|
40
|
-
requiredPositiveNetRollouts = null;
|
|
41
|
-
else {
|
|
42
|
-
requiredPositiveNetRollouts = Math.max(2, Math.floor(-netAt(1) / steadyRolloutSavings) + 2);
|
|
43
|
-
if (netAt(requiredPositiveNetRollouts - 1) > 0)
|
|
44
|
-
requiredPositiveNetRollouts--;
|
|
45
|
-
else if (netAt(requiredPositiveNetRollouts) <= 0)
|
|
46
|
-
requiredPositiveNetRollouts++;
|
|
47
|
-
}
|
|
48
|
-
const expectedNetSavedCostUnits = netAt(requiredPositiveNetRollouts ?? 0) * CONTEXT_GC_POLICY.cacheReadCostRate;
|
|
49
|
-
const grossReductionRate = reclaimedTokens / Math.max(1, Math.max(0, input.contextUsageTokens));
|
|
50
|
-
const minimumReclaimedTokens = contextGcMinimumReclaimedTokens(input.contextWindowTokens);
|
|
51
|
-
const usageRatio = input.contextUsageTokens / input.contextWindowTokens;
|
|
52
|
-
const progress = clamp((usageRatio - CONTEXT_GC_START_RATIO) / (COMPACT_THRESHOLD_RATIO - CONTEXT_GC_START_RATIO), 0, 1);
|
|
53
|
-
const paybackWindow = CONTEXT_GC_POLICY.minimumPaybackRollouts +
|
|
54
|
-
progress *
|
|
55
|
-
(CONTEXT_GC_POLICY.maximumPaybackRollouts - CONTEXT_GC_POLICY.minimumPaybackRollouts);
|
|
56
|
-
const withinWindow = requiredPositiveNetRollouts !== null && requiredPositiveNetRollouts <= paybackWindow;
|
|
57
|
-
const passes = reclaimedTokens > 0 &&
|
|
58
|
-
reclaimedTokens >= minimumReclaimedTokens &&
|
|
59
|
-
Number.isFinite(usageRatio) &&
|
|
60
|
-
usageRatio >= CONTEXT_GC_START_RATIO &&
|
|
61
|
-
usageRatio < COMPACT_THRESHOLD_RATIO &&
|
|
62
|
-
withinWindow;
|
|
63
|
-
return {
|
|
64
|
-
cacheRebuildPenaltyCostUnits,
|
|
65
|
-
requiredPositiveNetRollouts,
|
|
66
|
-
expectedNetSavedCostUnits,
|
|
67
|
-
grossReductionRate,
|
|
68
|
-
passes
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
export function contextGcMinimumReclaimedTokens(contextWindowTokens) {
|
|
72
|
-
return Math.ceil(contextWindowTokens / 20);
|
|
73
|
-
}
|
|
74
|
-
export function contextGcEligibleUsage(usage, contextWindowTokens) {
|
|
75
|
-
const contextUsageTokens = modelContextUsage(usage);
|
|
76
|
-
if (contextUsageTokens === undefined ||
|
|
77
|
-
!Number.isSafeInteger(contextWindowTokens) ||
|
|
78
|
-
contextWindowTokens <= 0)
|
|
79
|
-
return undefined;
|
|
80
|
-
const usageRatio = contextUsageTokens / contextWindowTokens;
|
|
81
|
-
if (usageRatio < CONTEXT_GC_START_RATIO || usageRatio >= COMPACT_THRESHOLD_RATIO)
|
|
82
|
-
return undefined;
|
|
83
|
-
return contextUsageTokens;
|
|
84
|
-
}
|
|
85
|
-
export function modelContextUsage(value) {
|
|
86
|
-
const context = value.contextInputTokens ?? value.inputTokens;
|
|
87
|
-
return typeof context === 'number' && Number.isSafeInteger(context) && context >= 0
|
|
88
|
-
? context
|
|
89
|
-
: undefined;
|
|
90
|
-
}
|
|
91
|
-
export function clamp(value, minimum, maximum) {
|
|
92
|
-
return Math.min(maximum, Math.max(minimum, value));
|
|
93
|
-
}
|