@animalabs/agent-framework 0.18.0 → 0.19.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/src/framework.d.ts +8 -5
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +14 -11
- package/dist/src/framework.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +15 -0
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +50 -4
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/test/channels-changed-respond-first.test.d.ts +2 -0
- package/dist/test/channels-changed-respond-first.test.d.ts.map +1 -0
- package/dist/test/channels-changed-respond-first.test.js +74 -0
- package/dist/test/channels-changed-respond-first.test.js.map +1 -0
- package/dist/test/journal-tool.test.d.ts +2 -0
- package/dist/test/journal-tool.test.d.ts.map +1 -0
- package/dist/test/journal-tool.test.js +33 -0
- package/dist/test/journal-tool.test.js.map +1 -0
- package/dist/test/overbudget-drain-breaker.test.js +44 -4
- package/dist/test/overbudget-drain-breaker.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/framework.ts +14 -11
- package/src/mcpl/channel-registry.ts +55 -3
|
@@ -6,15 +6,18 @@
|
|
|
6
6
|
* hard-down, zero self-rescue). noteInferenceExhausted breaks it by kicking
|
|
7
7
|
* the strategy drain (cm.tick()) directly.
|
|
8
8
|
*
|
|
9
|
-
* The trigger is the classified errorType 'over_budget'
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* The trigger is the classified errorType 'over_budget'. Since
|
|
10
|
+
* context-manager#41/#71 the classes are exported from CM's root, so the
|
|
11
|
+
* primary match is a real cross-package `instanceof`; `err.name` stays as a
|
|
12
|
+
* fallback for dual-CM-copy deployments, and the message-prose match remains
|
|
13
|
+
* a last resort for serialized reasons. These tests pin all of it so a CM
|
|
14
|
+
* message rewording — or a second CM copy — cannot silently kill the
|
|
13
15
|
* breaker.
|
|
14
16
|
*/
|
|
15
17
|
import { test } from 'node:test';
|
|
16
18
|
import assert from 'node:assert/strict';
|
|
17
19
|
import { AgentFramework } from '../src/framework.js';
|
|
20
|
+
import { OverBudgetError, UncoveredDropError } from '@animalabs/context-manager';
|
|
18
21
|
import { MembraneError } from '@animalabs/membrane';
|
|
19
22
|
function makeHarness(tick) {
|
|
20
23
|
const cm = {
|
|
@@ -48,6 +51,43 @@ async function settle(rounds = 3) {
|
|
|
48
51
|
await new Promise((r) => setImmediate(r));
|
|
49
52
|
}
|
|
50
53
|
const OVER_BUDGET_REASON = 'Compile plan would exceed hard budget: head=41200 tail=8100 middle=62000 budget=100000';
|
|
54
|
+
test('classification: a REAL context-manager OverBudgetError classifies as over_budget', () => {
|
|
55
|
+
const { fw, restore } = makeHarness(async () => { });
|
|
56
|
+
restore();
|
|
57
|
+
const real = new OverBudgetError({
|
|
58
|
+
budget: 4000,
|
|
59
|
+
actual: 8000,
|
|
60
|
+
diagnostics: { headTokens: 1, tailTokens: 2, middleTokens: 3, middleChunkCount: 1, deepestLevel: 1 },
|
|
61
|
+
});
|
|
62
|
+
assert.deepEqual(fw.classifyInferenceError(real), { errorType: 'over_budget' });
|
|
63
|
+
});
|
|
64
|
+
test('classification: a REAL UncoveredDropError classifies as context_refusal', () => {
|
|
65
|
+
const { fw, restore } = makeHarness(async () => { });
|
|
66
|
+
restore();
|
|
67
|
+
const real = new UncoveredDropError({
|
|
68
|
+
droppedIds: ['m1'],
|
|
69
|
+
site: 'selectHierarchical',
|
|
70
|
+
diagnostics: { budget: 4000, totalTokens: 8000 },
|
|
71
|
+
});
|
|
72
|
+
assert.deepEqual(fw.classifyInferenceError(real), { errorType: 'context_refusal' });
|
|
73
|
+
});
|
|
74
|
+
// A real instance still carries the constructor's `name`, so the two cases
|
|
75
|
+
// above classify through the name fallback too. Overwriting `name` leaves
|
|
76
|
+
// instanceof as the only path that can decide, which pins it.
|
|
77
|
+
test('classification: a real OverBudgetError classifies by instanceof even when its name is overwritten', () => {
|
|
78
|
+
const { fw, restore } = makeHarness(async () => { });
|
|
79
|
+
restore();
|
|
80
|
+
const real = new OverBudgetError({ budget: 1, actual: 2, diagnostics: { headTokens: 1, tailTokens: 1, middleTokens: 1, middleChunkCount: 1, deepestLevel: 1 } });
|
|
81
|
+
Object.defineProperty(real, 'name', { value: 'Wrapped' });
|
|
82
|
+
assert.deepEqual(fw.classifyInferenceError(real), { errorType: 'over_budget' });
|
|
83
|
+
});
|
|
84
|
+
test('classification: a real UncoveredDropError classifies by instanceof even when its name is overwritten', () => {
|
|
85
|
+
const { fw, restore } = makeHarness(async () => { });
|
|
86
|
+
restore();
|
|
87
|
+
const real = new UncoveredDropError({ droppedIds: ['m1'], site: 's', diagnostics: { budget: 1, totalTokens: 2 } });
|
|
88
|
+
Object.defineProperty(real, 'name', { value: 'Wrapped' });
|
|
89
|
+
assert.deepEqual(fw.classifyInferenceError(real), { errorType: 'context_refusal' });
|
|
90
|
+
});
|
|
51
91
|
test('classification: err.name OverBudgetError → over_budget, regardless of message wording', () => {
|
|
52
92
|
const fw = Object.create(AgentFramework.prototype);
|
|
53
93
|
// The load-bearing pin: classification must NOT depend on CM's message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overbudget-drain-breaker.test.js","sourceRoot":"","sources":["../../test/overbudget-drain-breaker.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"overbudget-drain-breaker.test.js","sourceRoot":"","sources":["../../test/overbudget-drain-breaker.test.ts"],"names":[],"mappings":"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"}
|