@cremini/skillpack 1.2.12 → 1.2.13
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/cli.js +42 -9
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -4014,12 +4014,36 @@ var PackAgent = class {
|
|
|
4014
4014
|
const run = async () => {
|
|
4015
4015
|
cs.running = true;
|
|
4016
4016
|
let turnHadVisibleOutput = false;
|
|
4017
|
+
let sawAgentStart = false;
|
|
4018
|
+
let sawAgentEnd = false;
|
|
4017
4019
|
const runId = randomUUID4();
|
|
4018
4020
|
let unsubscribe = () => void 0;
|
|
4021
|
+
const waitForQueuedAgentEvents = async () => {
|
|
4022
|
+
const maybeQueue = cs.session._agentEventQueue;
|
|
4023
|
+
if (!maybeQueue || typeof maybeQueue.then !== "function") {
|
|
4024
|
+
return;
|
|
4025
|
+
}
|
|
4026
|
+
try {
|
|
4027
|
+
await maybeQueue;
|
|
4028
|
+
} catch (error) {
|
|
4029
|
+
log("[PackAgent] Waiting for queued agent events failed:", error);
|
|
4030
|
+
}
|
|
4031
|
+
};
|
|
4019
4032
|
try {
|
|
4020
|
-
|
|
4033
|
+
const forwardAgentEvent = (event) => {
|
|
4034
|
+
if (event.type === "agent_start") {
|
|
4035
|
+
sawAgentStart = true;
|
|
4036
|
+
} else if (event.type === "agent_end") {
|
|
4037
|
+
if (sawAgentEnd) {
|
|
4038
|
+
return;
|
|
4039
|
+
}
|
|
4040
|
+
sawAgentEnd = true;
|
|
4041
|
+
}
|
|
4021
4042
|
onEvent(event);
|
|
4022
4043
|
};
|
|
4044
|
+
cs.fileOutputCallbackRef.current = (event) => {
|
|
4045
|
+
forwardAgentEvent(event);
|
|
4046
|
+
};
|
|
4023
4047
|
cs.delegatedToolRunContextRef.current = {
|
|
4024
4048
|
runId,
|
|
4025
4049
|
channelId,
|
|
@@ -4031,7 +4055,7 @@ var PackAgent = class {
|
|
|
4031
4055
|
log("\n=== [AGENT SESSION START] ===");
|
|
4032
4056
|
log("System Prompt:\n", cs.session.systemPrompt);
|
|
4033
4057
|
log("============================\n");
|
|
4034
|
-
|
|
4058
|
+
forwardAgentEvent({ type: "agent_start" });
|
|
4035
4059
|
break;
|
|
4036
4060
|
case "message_start":
|
|
4037
4061
|
log(`
|
|
@@ -4039,7 +4063,7 @@ var PackAgent = class {
|
|
|
4039
4063
|
if (event.message?.role === "user") {
|
|
4040
4064
|
log(JSON.stringify(event.message.content, null, 2));
|
|
4041
4065
|
}
|
|
4042
|
-
|
|
4066
|
+
forwardAgentEvent({
|
|
4043
4067
|
type: "message_start",
|
|
4044
4068
|
role: event.message?.role ?? ""
|
|
4045
4069
|
});
|
|
@@ -4048,13 +4072,13 @@ var PackAgent = class {
|
|
|
4048
4072
|
if (event.assistantMessageEvent?.type === "text_delta") {
|
|
4049
4073
|
turnHadVisibleOutput = true;
|
|
4050
4074
|
write(event.assistantMessageEvent.delta);
|
|
4051
|
-
|
|
4075
|
+
forwardAgentEvent({
|
|
4052
4076
|
type: "text_delta",
|
|
4053
4077
|
delta: event.assistantMessageEvent.delta
|
|
4054
4078
|
});
|
|
4055
4079
|
} else if (event.assistantMessageEvent?.type === "thinking_delta") {
|
|
4056
4080
|
turnHadVisibleOutput = true;
|
|
4057
|
-
|
|
4081
|
+
forwardAgentEvent({
|
|
4058
4082
|
type: "thinking_delta",
|
|
4059
4083
|
delta: event.assistantMessageEvent.delta
|
|
4060
4084
|
});
|
|
@@ -4074,14 +4098,17 @@ var PackAgent = class {
|
|
|
4074
4098
|
}
|
|
4075
4099
|
}
|
|
4076
4100
|
}
|
|
4077
|
-
|
|
4101
|
+
forwardAgentEvent({
|
|
4102
|
+
type: "message_end",
|
|
4103
|
+
role: event.message?.role ?? ""
|
|
4104
|
+
});
|
|
4078
4105
|
break;
|
|
4079
4106
|
case "tool_execution_start":
|
|
4080
4107
|
turnHadVisibleOutput = true;
|
|
4081
4108
|
log(`
|
|
4082
4109
|
>>> [Tool Start: ${event.toolName}] >>>`);
|
|
4083
4110
|
log("Args:", JSON.stringify(event.args, null, 2));
|
|
4084
|
-
|
|
4111
|
+
forwardAgentEvent({
|
|
4085
4112
|
type: "tool_start",
|
|
4086
4113
|
toolCallId: event.toolCallId ?? "",
|
|
4087
4114
|
toolName: event.toolName,
|
|
@@ -4092,7 +4119,7 @@ var PackAgent = class {
|
|
|
4092
4119
|
turnHadVisibleOutput = true;
|
|
4093
4120
|
log(`<<< [Tool End: ${event.toolName}] <<<`);
|
|
4094
4121
|
log(`Error: ${event.isError ? "Yes" : "No"}`);
|
|
4095
|
-
|
|
4122
|
+
forwardAgentEvent({
|
|
4096
4123
|
type: "tool_end",
|
|
4097
4124
|
toolCallId: event.toolCallId ?? "",
|
|
4098
4125
|
toolName: event.toolName,
|
|
@@ -4102,7 +4129,7 @@ var PackAgent = class {
|
|
|
4102
4129
|
break;
|
|
4103
4130
|
case "agent_end":
|
|
4104
4131
|
log("\n=== [AGENT SESSION END] ===\n");
|
|
4105
|
-
|
|
4132
|
+
forwardAgentEvent({ type: "agent_end" });
|
|
4106
4133
|
break;
|
|
4107
4134
|
}
|
|
4108
4135
|
});
|
|
@@ -4149,6 +4176,12 @@ ${text}`;
|
|
|
4149
4176
|
}
|
|
4150
4177
|
return { stopReason: diagnostics?.stopReason ?? "unknown" };
|
|
4151
4178
|
} finally {
|
|
4179
|
+
await waitForQueuedAgentEvents();
|
|
4180
|
+
if (sawAgentStart && !sawAgentEnd) {
|
|
4181
|
+
sawAgentEnd = true;
|
|
4182
|
+
log(`[PackAgent] Synthesizing terminal agent_end for ${channelId}`);
|
|
4183
|
+
onEvent({ type: "agent_end" });
|
|
4184
|
+
}
|
|
4152
4185
|
cs.running = false;
|
|
4153
4186
|
cs.fileOutputCallbackRef.current = null;
|
|
4154
4187
|
cs.delegatedToolRunContextRef.current = null;
|