@felan-ai/agent-core 0.14.2 → 0.14.4
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/README.md +11 -8
- package/dist/dynamic-thinking/savings.d.ts +4 -4
- package/dist/dynamic-thinking/savings.d.ts.map +1 -1
- package/dist/dynamic-thinking/savings.js +12 -8
- package/dist/dynamic-thinking/savings.js.map +1 -1
- package/dist/dynamic-thinking/session.d.ts.map +1 -1
- package/dist/dynamic-thinking/session.js +15 -7
- package/dist/dynamic-thinking/session.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -124,14 +124,17 @@ Explicit thinking changes take precedence for the remainder of the session.
|
|
|
124
124
|
Absent the option or the classifier, composition does not enable this feature.
|
|
125
125
|
|
|
126
126
|
With an optional savings reporter, Agent Core reports a heuristic
|
|
127
|
-
API-equivalent estimate for any supported model's automatic
|
|
128
|
-
`high`
|
|
129
|
-
first assistant response includes reasoning-token usage.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
127
|
+
API-equivalent estimate for any supported model's automatic selection below a
|
|
128
|
+
user baseline of `high`, `xhigh`, or `max` when the run settles without tool
|
|
129
|
+
failures and its first assistant response includes reasoning-token usage.
|
|
130
|
+
The baseline is the level before the first automatic change, not the previous
|
|
131
|
+
automatic selection. Method `high-effort-reasoning-5pct-heuristic-v2` estimates
|
|
132
|
+
5% extra reasoning output at that baseline, keeps observed input, cache and
|
|
133
|
+
visible-output usage unchanged, and subtracts reported classifier cost.
|
|
134
|
+
Missing classifier pricing leaves that overhead unknown; estimates are not a
|
|
135
|
+
complete bill. No measurement is emitted without an automatic change, or for
|
|
136
|
+
selections at or above the baseline, unsupported models, below-`high` baselines,
|
|
137
|
+
missing usage, or failed responses. The unvalidated cross-model
|
|
135
138
|
assumption and quality caveats are in [the public benchmark notes](../../docs/benchmarks/dynamic-thinking-effort.md).
|
|
136
139
|
|
|
137
140
|
Host runtimes expose optional persistent process operations for extensions that
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Api, AssistantMessage, Model } from '@earendil-works/pi-ai';
|
|
2
2
|
import type { SavingsReporter } from '../savings.js';
|
|
3
3
|
import type { FelanThinkingLevel } from '../thinking.js';
|
|
4
|
-
export declare const DYNAMIC_THINKING_SAVINGS_METHOD = "high-effort-reasoning-5pct-heuristic-
|
|
5
|
-
export declare function estimateHighEffortOutputTokens(model: Model<Api>,
|
|
4
|
+
export declare const DYNAMIC_THINKING_SAVINGS_METHOD = "high-effort-reasoning-5pct-heuristic-v2";
|
|
5
|
+
export declare function estimateHighEffortOutputTokens(model: Model<Api>, baseline: FelanThinkingLevel, selected: FelanThinkingLevel, usage: {
|
|
6
6
|
readonly output: number;
|
|
7
7
|
readonly reasoning?: number;
|
|
8
|
-
}): number | undefined;
|
|
9
|
-
export declare function reportDynamicThinkingSavings(reporter: SavingsReporter | undefined, model: Model<Api>,
|
|
8
|
+
}, supportsNativeThinkingUpdates?: (model: Model<Api>) => boolean): number | undefined;
|
|
9
|
+
export declare function reportDynamicThinkingSavings(reporter: SavingsReporter | undefined, model: Model<Api>, baseline: FelanThinkingLevel, selected: FelanThinkingLevel, message: AssistantMessage, classifierCostUsd?: number, supportsNativeThinkingUpdates?: (model: Model<Api>) => boolean): Promise<void>;
|
|
10
10
|
//# sourceMappingURL=savings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savings.d.ts","sourceRoot":"","sources":["../../src/dynamic-thinking/savings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"savings.d.ts","sourceRoot":"","sources":["../../src/dynamic-thinking/savings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMzD,eAAO,MAAM,+BAA+B,4CAA4C,CAAC;AAEzF,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/D,6BAA6B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,GAC7D,MAAM,GAAG,SAAS,CAapB;AAED,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,gBAAgB,EACzB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,6BAA6B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,GAC7D,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { supportsDynamicThinking } from './selection.js';
|
|
2
2
|
const HIGH_EFFORT_REASONING_UPLIFT_DENOMINATOR = 20;
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
3
|
+
const EFFORT_LEVELS = ['low', 'medium', 'high', 'xhigh', 'max'];
|
|
4
|
+
export const DYNAMIC_THINKING_SAVINGS_METHOD = 'high-effort-reasoning-5pct-heuristic-v2';
|
|
5
|
+
export function estimateHighEffortOutputTokens(model, baseline, selected, usage, supportsNativeThinkingUpdates) {
|
|
6
|
+
const baselineRank = EFFORT_LEVELS.indexOf(baseline);
|
|
7
|
+
const selectedRank = EFFORT_LEVELS.indexOf(selected);
|
|
8
|
+
if (!supportsDynamicThinking(model, supportsNativeThinkingUpdates)
|
|
9
|
+
|| baselineRank < EFFORT_LEVELS.indexOf('high') || selectedRank < 0 || selectedRank >= baselineRank) {
|
|
6
10
|
return undefined;
|
|
7
11
|
}
|
|
8
12
|
const { output, reasoning } = usage;
|
|
@@ -13,12 +17,12 @@ export function estimateHighEffortOutputTokens(model, previous, selected, usage)
|
|
|
13
17
|
const estimated = output + extra;
|
|
14
18
|
return extra > 0 && Number.isSafeInteger(estimated) ? estimated : undefined;
|
|
15
19
|
}
|
|
16
|
-
export async function reportDynamicThinkingSavings(reporter, model,
|
|
20
|
+
export async function reportDynamicThinkingSavings(reporter, model, baseline, selected, message, classifierCostUsd, supportsNativeThinkingUpdates) {
|
|
17
21
|
if (!reporter || (message.stopReason !== 'stop' && message.stopReason !== 'toolUse'))
|
|
18
22
|
return;
|
|
19
23
|
const { usage } = message;
|
|
20
|
-
const
|
|
21
|
-
if (
|
|
24
|
+
const baselineOutput = estimateHighEffortOutputTokens(model, baseline, selected, usage, supportsNativeThinkingUpdates);
|
|
25
|
+
if (baselineOutput === undefined || ![usage.input, usage.output, usage.cacheRead, usage.cacheWrite]
|
|
22
26
|
.every((value) => Number.isSafeInteger(value) && value >= 0)
|
|
23
27
|
|| (usage.cacheWrite1h !== undefined && (!Number.isSafeInteger(usage.cacheWrite1h)
|
|
24
28
|
|| usage.cacheWrite1h < 0 || usage.cacheWrite1h > usage.cacheWrite))
|
|
@@ -26,7 +30,7 @@ export async function reportDynamicThinkingSavings(reporter, model, previous, se
|
|
|
26
30
|
|| !Number.isFinite(usage.cost.output) || usage.cost.output <= 0
|
|
27
31
|
|| (classifierCostUsd !== undefined && (!Number.isFinite(classifierCostUsd) || classifierCostUsd < 0)))
|
|
28
32
|
return;
|
|
29
|
-
const extraCostUsd = (
|
|
33
|
+
const extraCostUsd = (baselineOutput - usage.output) * usage.cost.output / usage.output;
|
|
30
34
|
if (extraCostUsd <= (classifierCostUsd ?? 0))
|
|
31
35
|
return;
|
|
32
36
|
const modelRef = { provider: model.provider, id: model.id };
|
|
@@ -42,7 +46,7 @@ export async function reportDynamicThinkingSavings(reporter, model, previous, se
|
|
|
42
46
|
category: 'output-optimization',
|
|
43
47
|
operation: 'dynamic-thinking',
|
|
44
48
|
baseline: {
|
|
45
|
-
model: modelRef, tokens: { ...tokens, output:
|
|
49
|
+
model: modelRef, tokens: { ...tokens, output: baselineOutput },
|
|
46
50
|
costUsd: usage.cost.total + extraCostUsd,
|
|
47
51
|
},
|
|
48
52
|
actual: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savings.js","sourceRoot":"","sources":["../../src/dynamic-thinking/savings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,wCAAwC,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"savings.js","sourceRoot":"","sources":["../../src/dynamic-thinking/savings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAoB,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AACzH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAK5E,eAAO,MAAM,yBAAyB,0CAA0C,CAAC;AAEjF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,6BAA6B,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAC7D,QAAQ,CAAC,EAAE,eAAe,EAC1B,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAA;CAAO,GACjH,eAAe,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAoB,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AACzH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAK5E,eAAO,MAAM,yBAAyB,0CAA0C,CAAC;AAEjF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,YAAY,EACrB,6BAA6B,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAC7D,QAAQ,CAAC,EAAE,eAAe,EAC1B,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAA;CAAO,GACjH,eAAe,CAqIjB"}
|
|
@@ -11,7 +11,13 @@ export function createDynamicThinkingSession(runtime, supportsNativeThinkingUpda
|
|
|
11
11
|
let manualOverride = false;
|
|
12
12
|
let expectedLevel;
|
|
13
13
|
let lastAutomaticLevel;
|
|
14
|
+
let baselineLevel;
|
|
14
15
|
let pendingSavings;
|
|
16
|
+
const resetAutomaticSelection = () => {
|
|
17
|
+
lastAutomaticLevel = undefined;
|
|
18
|
+
baselineLevel = undefined;
|
|
19
|
+
pendingSavings = undefined;
|
|
20
|
+
};
|
|
15
21
|
const canClassify = (model) => (model.api !== 'openai-codex-responses' && model.api !== 'openai-responses')
|
|
16
22
|
|| supportsNativeThinkingUpdates(model);
|
|
17
23
|
const local = options.turnClassification ? undefined : createTurnClassificationRegistry(classifier, runtime.logger);
|
|
@@ -23,7 +29,7 @@ export function createDynamicThinkingSession(runtime, supportsNativeThinkingUpda
|
|
|
23
29
|
factory: (pi) => {
|
|
24
30
|
options.selectionScope?.onManualThinkingSelection(() => {
|
|
25
31
|
manualOverride = true;
|
|
26
|
-
|
|
32
|
+
resetAutomaticSelection();
|
|
27
33
|
});
|
|
28
34
|
pi.on('session_shutdown', () => { pendingSavings = undefined; lifetime.abort(); });
|
|
29
35
|
pi.on('model_select', () => { pendingSavings = undefined; });
|
|
@@ -35,15 +41,14 @@ export function createDynamicThinkingSession(runtime, supportsNativeThinkingUpda
|
|
|
35
41
|
return;
|
|
36
42
|
}
|
|
37
43
|
expectedLevel = undefined;
|
|
38
|
-
|
|
39
|
-
pendingSavings = undefined;
|
|
44
|
+
resetAutomaticSelection();
|
|
40
45
|
return;
|
|
41
46
|
}
|
|
42
47
|
if (!options.selectionScope && event.level === expectedLevel)
|
|
43
48
|
expectedLevel = undefined;
|
|
44
49
|
else {
|
|
45
50
|
manualOverride = true;
|
|
46
|
-
|
|
51
|
+
resetAutomaticSelection();
|
|
47
52
|
}
|
|
48
53
|
});
|
|
49
54
|
registry.register({
|
|
@@ -56,6 +61,7 @@ export function createDynamicThinkingSession(runtime, supportsNativeThinkingUpda
|
|
|
56
61
|
const original = pi.getThinkingLevel();
|
|
57
62
|
if (lastAutomaticLevel !== undefined && original !== lastAutomaticLevel) {
|
|
58
63
|
manualOverride = true;
|
|
64
|
+
resetAutomaticSelection();
|
|
59
65
|
return undefined;
|
|
60
66
|
}
|
|
61
67
|
if (!isFelanThinkingLevel(original))
|
|
@@ -93,14 +99,16 @@ export function createDynamicThinkingSession(runtime, supportsNativeThinkingUpda
|
|
|
93
99
|
if (!decision)
|
|
94
100
|
return;
|
|
95
101
|
const sessionId = ctx.sessionManager.getSessionId();
|
|
102
|
+
if (lastAutomaticLevel === undefined)
|
|
103
|
+
baselineLevel = original;
|
|
96
104
|
expectedLevel = decision.level;
|
|
97
105
|
if (options.selectionScope)
|
|
98
106
|
options.selectionScope.run(false, () => pi.setThinkingLevel(decision.level));
|
|
99
107
|
else
|
|
100
108
|
pi.setThinkingLevel(decision.level);
|
|
101
109
|
lastAutomaticLevel = decision.level;
|
|
102
|
-
if (reporter &&
|
|
103
|
-
pendingSavings = { sessionId, model,
|
|
110
|
+
if (reporter && baselineLevel !== undefined) {
|
|
111
|
+
pendingSavings = { sessionId, model, baseline: baselineLevel, selected: decision.level,
|
|
104
112
|
...(decision.classifierCostUsd === undefined ? {} : { classifierCostUsd: decision.classifierCostUsd }) };
|
|
105
113
|
}
|
|
106
114
|
});
|
|
@@ -132,7 +140,7 @@ export function createDynamicThinkingSession(runtime, supportsNativeThinkingUpda
|
|
|
132
140
|
|| ctx.model?.api !== pending.model.api || ctx.model?.provider !== pending.model.provider
|
|
133
141
|
|| ctx.model?.id !== pending.model.id || pi.getThinkingLevel() !== pending.selected)
|
|
134
142
|
return;
|
|
135
|
-
await reportDynamicThinkingSavings(reporter, pending.model, pending.
|
|
143
|
+
await reportDynamicThinkingSavings(reporter, pending.model, pending.baseline, pending.selected, pending.firstAssistant, pending.classifierCostUsd, supportsNativeThinkingUpdates);
|
|
136
144
|
});
|
|
137
145
|
},
|
|
138
146
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAmC,MAAM,sCAAsC,CAAC;AAIzH,OAAO,EAAE,oBAAoB,EAA2B,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE3G,MAAM,CAAC,MAAM,yBAAyB,GAAG,uCAAuC,CAAC;AAEjF,MAAM,UAAU,4BAA4B,CAC1C,OAAqB,EACrB,6BAA6D,EAC7D,QAA0B,EAC1B,UAAgH,EAAE;IAElH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,aAA6C,CAAC;IAClD,IAAI,kBAAkD,CAAC;IACvD,IAAI,cAQS,CAAC;IACd,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,wBAAwB,IAAI,KAAK,CAAC,GAAG,KAAK,kBAAkB,CAAC;WAClH,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpH,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAM,CAAC;IACtD,IAAI,QAAyE,CAAC;IAE9E,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YACd,OAAO,CAAC,cAAc,EAAE,yBAAyB,CAAC,GAAG,EAAE;gBACrD,cAAc,GAAG,IAAI,CAAC;gBACtB,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/dynamic-thinking/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAmC,MAAM,sCAAsC,CAAC;AAIzH,OAAO,EAAE,oBAAoB,EAA2B,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE3G,MAAM,CAAC,MAAM,yBAAyB,GAAG,uCAAuC,CAAC;AAEjF,MAAM,UAAU,4BAA4B,CAC1C,OAAqB,EACrB,6BAA6D,EAC7D,QAA0B,EAC1B,UAAgH,EAAE;IAElH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,aAA6C,CAAC;IAClD,IAAI,kBAAkD,CAAC;IACvD,IAAI,aAA6C,CAAC;IAClD,IAAI,cAQS,CAAC;IACd,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACnC,kBAAkB,GAAG,SAAS,CAAC;QAC/B,aAAa,GAAG,SAAS,CAAC;QAC1B,cAAc,GAAG,SAAS,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,wBAAwB,IAAI,KAAK,CAAC,GAAG,KAAK,kBAAkB,CAAC;WAClH,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpH,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAM,CAAC;IACtD,IAAI,QAAyE,CAAC;IAE9E,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YACd,OAAO,CAAC,cAAc,EAAE,yBAAyB,CAAC,GAAG,EAAE;gBACrD,cAAc,GAAG,IAAI,CAAC;gBACtB,uBAAuB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,EAAE,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvC,IAAI,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;wBACnE,aAAa,GAAG,SAAS,CAAC;wBAC1B,OAAO;oBACT,CAAC;oBACD,aAAa,GAAG,SAAS,CAAC;oBAC1B,uBAAuB,EAAE,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa;oBAAE,aAAa,GAAG,SAAS,CAAC;qBACnF,CAAC;oBAAC,cAAc,GAAG,IAAI,CAAC;oBAAC,uBAAuB,EAAE,CAAC;gBAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,QAAQ,CAAC;gBAChB,EAAE,EAAE,UAAU;gBACd,OAAO,CAAC,KAAK,EAAE,GAAG;oBAChB,QAAQ,GAAG,SAAS,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;2BACjG,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;wBAAE,OAAO,SAAS,CAAC;oBACrH,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC;oBACvC,IAAI,kBAAkB,KAAK,SAAS,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;wBACxE,cAAc,GAAG,IAAI,CAAC;wBACtB,uBAAuB,EAAE,CAAC;wBAC1B,OAAO,SAAS,CAAC;oBACnB,CAAC;oBACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;wBAAE,OAAO,SAAS,CAAC;oBACtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACpD,IAAI,CAAC,QAAQ;wBAAE,OAAO,SAAS,CAAC;oBAChC,QAAQ,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;oBAC1C,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;gBAC7C,CAAC;aACF,CAAC,CAAC;YACH,IAAI,KAAK,EAAE,CAAC;gBACV,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC5B,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS;wBAAE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7H,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC/C,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM;oBAAE,OAAO;gBACzC,cAAc,GAAG,SAAS,CAAC;gBAC3B,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChF,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC;gBACxB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO;gBAC7G,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;gBACnC,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;uBACpE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,gBAAgB,EAAE,KAAK,QAAQ;oBAAE,OAAO;gBAC7E,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClE,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;gBACpD,IAAI,kBAAkB,KAAK,SAAS;oBAAE,aAAa,GAAG,QAAQ,CAAC;gBAC/D,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC/B,IAAI,OAAO,CAAC,cAAc;oBAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;oBACpG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACzC,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACpC,IAAI,QAAQ,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAC5C,cAAc,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK;wBACpF,GAAG,CAAC,QAAQ,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC;gBAC7G,CAAC;YACH,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;oBAAE,OAAO;gBAC/C,MAAM,OAAO,GAAG,cAAc,CAAC;gBAC/B,IAAI,CAAC,OAAO,IAAI,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;uBACpD,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE;uBACvD,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ;uBACtF,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,gBAAgB,EAAE,KAAK,OAAO,CAAC,QAAQ;uBAChF,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ;uBAC5F,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC9C,cAAc,GAAG,SAAS,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,OAAO,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC;uBAC9E,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;oBAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACjF,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAChD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO;gBACvE,MAAM,OAAO,GAAG,cAAc,CAAC;gBAC/B,cAAc,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW;uBACrF,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE;uBACpG,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ;uBACtF,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,gBAAgB,EAAE,KAAK,OAAO,CAAC,QAAQ;oBAAE,OAAO;gBAC9F,MAAM,4BAA4B,CAChC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,EACnF,OAAO,CAAC,iBAAiB,EAAE,6BAA6B,CACzD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@felan-ai/agent-core",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.4",
|
|
4
4
|
"description": "Portable Felan agent contracts and composition",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@earendil-works/pi-telemetry": "1.4.0",
|
|
34
34
|
"@earendil-works/pi-tui": "1.4.0",
|
|
35
35
|
"@lydell/node-pty": "1.2.0-beta.14",
|
|
36
|
-
"@felan-ai/session-protocol": "0.
|
|
36
|
+
"@felan-ai/session-protocol": "0.4.0"
|
|
37
37
|
},
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public",
|