blun-king-cli 9.1.249 → 9.1.251
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/bin/loop-event-record-policy.cjs +34 -0
- package/blun.mjs +10 -8
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ const STEP_END_LIVE_ONLY_FIELDS = [
|
|
|
11
11
|
'reasoningFieldState',
|
|
12
12
|
];
|
|
13
13
|
const STEP_END_ROUTINE_FINISH_REASONS = new Set(['tool_use', 'end_turn']);
|
|
14
|
+
const DEFAULT_USAGE_MODEL = 'blun/king';
|
|
14
15
|
|
|
15
16
|
function usageTotal(usage) {
|
|
16
17
|
return usage.inputCacheRead + usage.inputCacheCreation + usage.inputOther + usage.output;
|
|
@@ -34,6 +35,35 @@ function hasOwn(object, key) {
|
|
|
34
35
|
return Object.prototype.hasOwnProperty.call(object, key);
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
function projectUsageModelForRecord(model) {
|
|
39
|
+
return model === DEFAULT_USAGE_MODEL ? undefined : model;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function restoreUsageModelFromRecord(model) {
|
|
43
|
+
return model === undefined ? DEFAULT_USAGE_MODEL : model;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function projectUsageForRecord(usage) {
|
|
47
|
+
if (!usage || typeof usage !== 'object') return usage;
|
|
48
|
+
const omitCacheRead = usage.inputCacheRead === 0;
|
|
49
|
+
const omitCacheCreation = usage.inputCacheCreation === 0;
|
|
50
|
+
if (!omitCacheRead && !omitCacheCreation) return usage;
|
|
51
|
+
const recordedUsage = { ...usage };
|
|
52
|
+
if (omitCacheRead) delete recordedUsage.inputCacheRead;
|
|
53
|
+
if (omitCacheCreation) delete recordedUsage.inputCacheCreation;
|
|
54
|
+
return recordedUsage;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function restoreUsageFromRecord(usage) {
|
|
58
|
+
if (!usage || typeof usage !== 'object') return usage;
|
|
59
|
+
if (hasOwn(usage, 'inputCacheRead') && hasOwn(usage, 'inputCacheCreation')) return usage;
|
|
60
|
+
return {
|
|
61
|
+
...usage,
|
|
62
|
+
...hasOwn(usage, 'inputCacheRead') ? {} : { inputCacheRead: 0 },
|
|
63
|
+
...hasOwn(usage, 'inputCacheCreation') ? {} : { inputCacheCreation: 0 },
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
37
67
|
function projectLoopEventForRecord(event) {
|
|
38
68
|
if (event?.type === 'step.begin' && hasOwn(event, 'step')) {
|
|
39
69
|
const { step: _step, ...withoutStep } = event;
|
|
@@ -135,6 +165,10 @@ function projectLoopEventForRecord(event) {
|
|
|
135
165
|
|
|
136
166
|
module.exports = {
|
|
137
167
|
projectLoopEventForRecord,
|
|
168
|
+
projectUsageModelForRecord,
|
|
169
|
+
projectUsageForRecord,
|
|
138
170
|
resolveCompletedStepUuid,
|
|
139
171
|
resolveStepEventUuid,
|
|
172
|
+
restoreUsageFromRecord,
|
|
173
|
+
restoreUsageModelFromRecord,
|
|
140
174
|
};
|
package/blun.mjs
CHANGED
|
@@ -75992,7 +75992,7 @@ var init_full = __esmMin((() => {
|
|
|
75992
75992
|
}));
|
|
75993
75993
|
//#endregion
|
|
75994
75994
|
//#region ../../packages/agent-core/src/agent/compaction/micro.ts
|
|
75995
|
-
var selectMicroCompactionCutoff, MICRO_COMPACTION_RECENT_MESSAGES, MICRO_COMPACTION_TOOL_ARGUMENTS_ENABLED, MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS, isPersistedToolResultReference, projectHistoricalUnaddressedTelegramMessages, dedupeRepeatedUserMessages, projectRepeatedAssistantResponses, compactHistoricalSkillActivations, dedupeRecurringCronWakeups, dedupeRepeatedInjections, projectLoopEventForRecord, resolveCompletedStepUuid, resolveStepEventUuid, DEFAULT_CONFIG, MicroCompaction;
|
|
75995
|
+
var selectMicroCompactionCutoff, MICRO_COMPACTION_RECENT_MESSAGES, MICRO_COMPACTION_TOOL_ARGUMENTS_ENABLED, MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS, isPersistedToolResultReference, projectHistoricalUnaddressedTelegramMessages, dedupeRepeatedUserMessages, projectRepeatedAssistantResponses, compactHistoricalSkillActivations, dedupeRecurringCronWakeups, dedupeRepeatedInjections, projectLoopEventForRecord, projectUsageModelForRecord, projectUsageForRecord, resolveCompletedStepUuid, resolveStepEventUuid, restoreUsageFromRecord, restoreUsageModelFromRecord, DEFAULT_CONFIG, MicroCompaction;
|
|
75996
75996
|
var init_micro = __esmMin((() => {
|
|
75997
75997
|
({ selectMicroCompactionCutoff, MICRO_COMPACTION_RECENT_MESSAGES, MICRO_COMPACTION_TOOL_ARGUMENTS_ENABLED, MICRO_COMPACTION_TOOL_ARGUMENT_MIN_TOKENS } = createRequire(import.meta.url)("./bin/micro-compaction-policy.cjs"));
|
|
75998
75998
|
({ isPersistedToolResultReference } = createRequire(import.meta.url)("./bin/tool-result-offload-policy.cjs"));
|
|
@@ -76001,7 +76001,7 @@ var init_micro = __esmMin((() => {
|
|
|
76001
76001
|
({ projectRepeatedAssistantResponses } = createRequire(import.meta.url)("./bin/repeated-assistant-response-policy.cjs"));
|
|
76002
76002
|
({ compactHistoricalSkillActivations } = createRequire(import.meta.url)("./bin/skill-activation-performance-policy.cjs"));
|
|
76003
76003
|
({ dedupeRecurringCronWakeups, dedupeRepeatedInjections } = createRequire(import.meta.url)("./bin/repeated-injection-projection.cjs"));
|
|
76004
|
-
({ projectLoopEventForRecord, resolveCompletedStepUuid, resolveStepEventUuid } = createRequire(import.meta.url)("./bin/loop-event-record-policy.cjs"));
|
|
76004
|
+
({ projectLoopEventForRecord, projectUsageModelForRecord, projectUsageForRecord, resolveCompletedStepUuid, resolveStepEventUuid, restoreUsageFromRecord, restoreUsageModelFromRecord } = createRequire(import.meta.url)("./bin/loop-event-record-policy.cjs"));
|
|
76005
76005
|
init_tokens();
|
|
76006
76006
|
DEFAULT_CONFIG = {
|
|
76007
76007
|
keepRecentMessages: MICRO_COMPACTION_RECENT_MESSAGES,
|
|
@@ -235036,7 +235036,7 @@ function restoreAgentRecord(agent, input) {
|
|
|
235036
235036
|
agent.permission.recordApprovalResult(input);
|
|
235037
235037
|
return;
|
|
235038
235038
|
case "usage.record":
|
|
235039
|
-
agent.usage.record(input.model, input.usage, "session");
|
|
235039
|
+
agent.usage.record(restoreUsageModelFromRecord(input.model), restoreUsageFromRecord(input.usage), "session");
|
|
235040
235040
|
return;
|
|
235041
235041
|
case "full_compaction.begin":
|
|
235042
235042
|
agent.fullCompaction.begin(input);
|
|
@@ -264637,8 +264637,8 @@ var init_usage = __esmMin((() => {
|
|
|
264637
264637
|
record(model, usage, scope = "session") {
|
|
264638
264638
|
this.agent?.records.logRecord({
|
|
264639
264639
|
type: "usage.record",
|
|
264640
|
-
model,
|
|
264641
|
-
usage,
|
|
264640
|
+
model: projectUsageModelForRecord(model),
|
|
264641
|
+
usage: projectUsageForRecord(usage),
|
|
264642
264642
|
usageScope: scope
|
|
264643
264643
|
});
|
|
264644
264644
|
const current = this.byModel[model];
|
|
@@ -399116,9 +399116,11 @@ function projectContext(entries, mode = "model") {
|
|
|
399116
399116
|
}
|
|
399117
399117
|
case "usage.record": {
|
|
399118
399118
|
const scope = rec.usageScope ?? "session";
|
|
399119
|
-
|
|
399120
|
-
|
|
399121
|
-
addUsage(usage.
|
|
399119
|
+
const restoredModel = restoreUsageModelFromRecord(rec.model);
|
|
399120
|
+
const restoredUsage = restoreUsageFromRecord(rec.usage);
|
|
399121
|
+
addUsage(usage.byScope[scope], restoredUsage);
|
|
399122
|
+
if (!usage.byModel[restoredModel]) usage.byModel[restoredModel] = { ...ZERO };
|
|
399123
|
+
addUsage(usage.byModel[restoredModel], restoredUsage);
|
|
399122
399124
|
break;
|
|
399123
399125
|
}
|
|
399124
399126
|
case "config.update": {
|