@f5-sales-demo/pi-agent-core 23.0.3 → 23.2.1
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/package.json +3 -3
- package/src/agent.ts +13 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@f5-sales-demo/pi-agent-core",
|
|
4
|
-
"version": "23.
|
|
4
|
+
"version": "23.2.1",
|
|
5
5
|
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
|
|
6
6
|
"homepage": "https://github.com/f5-sales-demo/xcsh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"fmt": "biome format --write ."
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@f5-sales-demo/pi-ai": "23.
|
|
39
|
-
"@f5-sales-demo/pi-utils": "23.
|
|
38
|
+
"@f5-sales-demo/pi-ai": "23.2.1",
|
|
39
|
+
"@f5-sales-demo/pi-utils": "23.2.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@sinclair/typebox": "0.34.52",
|
package/src/agent.ts
CHANGED
|
@@ -261,6 +261,7 @@ export class Agent {
|
|
|
261
261
|
#contextMessages?: AgentLoopConfig["getContextMessages"];
|
|
262
262
|
#runConversationTurn?: AgentLoopConfig["runConversationTurn"];
|
|
263
263
|
#transformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;
|
|
264
|
+
#sessionContextTransform?: (messages: AgentMessage[]) => AgentMessage[];
|
|
264
265
|
#steeringQueue: AgentMessage[] = [];
|
|
265
266
|
#steeringWaiters = new Set<() => void>();
|
|
266
267
|
#followUpQueue: AgentMessage[] = [];
|
|
@@ -570,6 +571,14 @@ export class Agent {
|
|
|
570
571
|
this.#runConversationTurn = scope;
|
|
571
572
|
}
|
|
572
573
|
|
|
574
|
+
/** Compose the owning session's transient context before extension transforms. */
|
|
575
|
+
setSessionContextTransform(transform: (messages: AgentMessage[]) => AgentMessage[]): () => void {
|
|
576
|
+
this.#sessionContextTransform = transform;
|
|
577
|
+
return () => {
|
|
578
|
+
if (this.#sessionContextTransform === transform) this.#sessionContextTransform = undefined;
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
|
|
573
582
|
setContextMessagesProvider(provider?: AgentLoopConfig["getContextMessages"]): () => void {
|
|
574
583
|
this.#contextMessages = provider;
|
|
575
584
|
return () => {
|
|
@@ -849,7 +858,10 @@ export class Agent {
|
|
|
849
858
|
preferWebsockets: this.#preferWebsockets,
|
|
850
859
|
convertToLlm: this.#convertToLlm,
|
|
851
860
|
getContextMessages: messages => this.#contextMessages?.(messages) ?? [],
|
|
852
|
-
transformContext:
|
|
861
|
+
transformContext: async (messages, signal) => {
|
|
862
|
+
const prepared = this.#sessionContextTransform?.(messages) ?? messages;
|
|
863
|
+
return this.#transformContext ? this.#transformContext(prepared, signal) : prepared;
|
|
864
|
+
},
|
|
853
865
|
// Per-turn: compose the extension hook with any server-tool injection for
|
|
854
866
|
// THIS prompt (e.g. Office "Search the web"). No-op when neither is present.
|
|
855
867
|
onPayload: composeOnPayload(
|