@oh-my-pi/pi-agent-core 15.2.2 → 15.2.3
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/CHANGELOG.md +5 -0
- package/dist/types/agent.d.ts +1 -0
- package/dist/types/types.d.ts +7 -0
- package/package.json +4 -4
- package/src/agent-loop.ts +1 -0
- package/src/agent.ts +6 -0
- package/src/types.ts +7 -0
package/CHANGELOG.md
CHANGED
package/dist/types/agent.d.ts
CHANGED
|
@@ -265,6 +265,7 @@ export declare class Agent {
|
|
|
265
265
|
setProviderResponseInterceptor(fn: SimpleStreamOptions["onResponse"] | undefined): void;
|
|
266
266
|
setRawSseEventInterceptor(fn: SimpleStreamOptions["onSseEvent"] | undefined): void;
|
|
267
267
|
setAssistantMessageEventInterceptor(fn: ((message: AssistantMessage, event: AssistantMessageEvent) => void) | undefined): void;
|
|
268
|
+
setOnBeforeYield(fn: (() => Promise<void> | void) | undefined): void;
|
|
268
269
|
emitExternalEvent(event: AgentEvent): void;
|
|
269
270
|
setSystemPrompt(v: string[]): void;
|
|
270
271
|
setModel(m: Model): void;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -94,6 +94,13 @@ export interface AgentLoopConfig extends SimpleStreamOptions {
|
|
|
94
94
|
* continues with another turn.
|
|
95
95
|
*/
|
|
96
96
|
getFollowUpMessages?: () => Promise<AgentMessage[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Hook fired right before the loop would exit.
|
|
99
|
+
*
|
|
100
|
+
* Called when the agent has no more tool calls and no steering messages,
|
|
101
|
+
* immediately before polling follow-up messages.
|
|
102
|
+
*/
|
|
103
|
+
onBeforeYield?: () => Promise<void> | void;
|
|
97
104
|
/**
|
|
98
105
|
* Provides tool execution context, resolved per tool call.
|
|
99
106
|
* Use for late-bound UI or session state access.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-agent-core",
|
|
4
|
-
"version": "15.2.
|
|
4
|
+
"version": "15.2.3",
|
|
5
5
|
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"fmt": "biome format --write ."
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@oh-my-pi/pi-ai": "15.2.
|
|
39
|
-
"@oh-my-pi/pi-natives": "15.2.
|
|
40
|
-
"@oh-my-pi/pi-utils": "15.2.
|
|
38
|
+
"@oh-my-pi/pi-ai": "15.2.3",
|
|
39
|
+
"@oh-my-pi/pi-natives": "15.2.3",
|
|
40
|
+
"@oh-my-pi/pi-utils": "15.2.3",
|
|
41
41
|
"@opentelemetry/api": "^1.9.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
package/src/agent-loop.ts
CHANGED
|
@@ -589,6 +589,7 @@ async function runLoopBody(
|
|
|
589
589
|
}
|
|
590
590
|
|
|
591
591
|
// Agent would stop here. Check for follow-up messages.
|
|
592
|
+
await config.onBeforeYield?.();
|
|
592
593
|
const followUpMessages = (await config.getFollowUpMessages?.()) || [];
|
|
593
594
|
if (followUpMessages.length > 0) {
|
|
594
595
|
// Set as pending so inner loop processes them
|
package/src/agent.ts
CHANGED
|
@@ -290,6 +290,7 @@ export class Agent {
|
|
|
290
290
|
#onSseEvent?: SimpleStreamOptions["onSseEvent"];
|
|
291
291
|
#onAssistantMessageEvent?: (message: AssistantMessage, event: AssistantMessageEvent) => void;
|
|
292
292
|
#onHarmonyLeak?: (event: HarmonyAuditEvent) => void | Promise<void>;
|
|
293
|
+
#onBeforeYield?: () => Promise<void> | void;
|
|
293
294
|
#telemetry?: AgentLoopConfig["telemetry"];
|
|
294
295
|
|
|
295
296
|
/** Buffered Cursor tool results with text length at time of call (for correct ordering) */
|
|
@@ -559,6 +560,10 @@ export class Agent {
|
|
|
559
560
|
this.#onAssistantMessageEvent = fn;
|
|
560
561
|
}
|
|
561
562
|
|
|
563
|
+
setOnBeforeYield(fn: (() => Promise<void> | void) | undefined): void {
|
|
564
|
+
this.#onBeforeYield = fn;
|
|
565
|
+
}
|
|
566
|
+
|
|
562
567
|
emitExternalEvent(event: AgentEvent) {
|
|
563
568
|
switch (event.type) {
|
|
564
569
|
case "message_start":
|
|
@@ -934,6 +939,7 @@ export class Agent {
|
|
|
934
939
|
return this.#dequeueSteeringMessages();
|
|
935
940
|
},
|
|
936
941
|
getFollowUpMessages: async () => this.#dequeueFollowUpMessages(),
|
|
942
|
+
onBeforeYield: () => this.#onBeforeYield?.(),
|
|
937
943
|
telemetry: this.#telemetry,
|
|
938
944
|
};
|
|
939
945
|
|
package/src/types.ts
CHANGED
|
@@ -122,6 +122,13 @@ export interface AgentLoopConfig extends SimpleStreamOptions {
|
|
|
122
122
|
* continues with another turn.
|
|
123
123
|
*/
|
|
124
124
|
getFollowUpMessages?: () => Promise<AgentMessage[]>;
|
|
125
|
+
/**
|
|
126
|
+
* Hook fired right before the loop would exit.
|
|
127
|
+
*
|
|
128
|
+
* Called when the agent has no more tool calls and no steering messages,
|
|
129
|
+
* immediately before polling follow-up messages.
|
|
130
|
+
*/
|
|
131
|
+
onBeforeYield?: () => Promise<void> | void;
|
|
125
132
|
|
|
126
133
|
/**
|
|
127
134
|
* Provides tool execution context, resolved per tool call.
|