@kenkaiiii/gg-agent 5.28.0 → 5.29.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/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -1
- package/dist/index.d.ts +23 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -20,6 +20,13 @@ interface AgentTool<T extends z.ZodType = z.ZodType> extends Tool {
|
|
|
20
20
|
* batch runs in source order so stateful mutations cannot race each other.
|
|
21
21
|
*/
|
|
22
22
|
executionMode?: ToolExecutionMode;
|
|
23
|
+
/**
|
|
24
|
+
* Overrides the loop's default per-tool timeout. A tool that owns a longer
|
|
25
|
+
* internal budget than the default must declare it here, or the loop cancels
|
|
26
|
+
* it first and the tool's own timeout — with its specific, actionable error
|
|
27
|
+
* message — becomes unreachable.
|
|
28
|
+
*/
|
|
29
|
+
timeoutMs?: number;
|
|
23
30
|
execute: (args: z.infer<T>, context: ToolContext) => ToolExecuteResult | Promise<ToolExecuteResult>;
|
|
24
31
|
}
|
|
25
32
|
interface AgentTextDeltaEvent {
|
|
@@ -70,6 +77,21 @@ interface AgentTurnEndEvent {
|
|
|
70
77
|
usage: Usage;
|
|
71
78
|
timing: AgentTurnTiming;
|
|
72
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* A safe point between steps: the assistant message and every tool result for
|
|
82
|
+
* this turn are now in the message array, and no provider call is in flight.
|
|
83
|
+
*
|
|
84
|
+
* Hosts that persist a transcript flush here. Without it a crash mid-run loses
|
|
85
|
+
* the WHOLE turn — including tool results whose side effects already landed on
|
|
86
|
+
* disk — because the only flush happens after the loop returns.
|
|
87
|
+
*
|
|
88
|
+
* Yielded immediately after tool results are appended, so it pairs with
|
|
89
|
+
* `turn_end` (which covers the assistant half) to cover every message.
|
|
90
|
+
*/
|
|
91
|
+
interface AgentCheckpointEvent {
|
|
92
|
+
type: "checkpoint";
|
|
93
|
+
turn: number;
|
|
94
|
+
}
|
|
73
95
|
interface AgentDoneEvent {
|
|
74
96
|
type: "agent_done";
|
|
75
97
|
totalTurns: number;
|
|
@@ -163,7 +185,7 @@ interface AgentFollowUpMessageEvent {
|
|
|
163
185
|
type: "follow_up_message";
|
|
164
186
|
content: Message["content"];
|
|
165
187
|
}
|
|
166
|
-
type AgentEvent = AgentTextDeltaEvent | AgentThinkingDeltaEvent | AgentToolCallStartEvent | AgentToolCallUpdateEvent | AgentToolCallEndEvent | AgentToolCallDeltaEvent | AgentServerToolCallEvent | AgentServerToolResultEvent | AgentSteeringMessageEvent | AgentFollowUpMessageEvent | AgentRetryEvent | AgentTurnEndEvent | AgentDoneEvent | AgentMaxTurnsEvent | AgentTurnBudgetExtendedEvent | AgentTruncatedEvent | AgentErrorEvent;
|
|
188
|
+
type AgentEvent = AgentTextDeltaEvent | AgentThinkingDeltaEvent | AgentToolCallStartEvent | AgentToolCallUpdateEvent | AgentToolCallEndEvent | AgentToolCallDeltaEvent | AgentServerToolCallEvent | AgentServerToolResultEvent | AgentSteeringMessageEvent | AgentFollowUpMessageEvent | AgentRetryEvent | AgentTurnEndEvent | AgentCheckpointEvent | AgentDoneEvent | AgentMaxTurnsEvent | AgentTurnBudgetExtendedEvent | AgentTruncatedEvent | AgentErrorEvent;
|
|
167
189
|
interface TransformContextOptions {
|
|
168
190
|
/** Force a transform after the provider reports context overflow. */
|
|
169
191
|
force?: boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,13 @@ interface AgentTool<T extends z.ZodType = z.ZodType> extends Tool {
|
|
|
20
20
|
* batch runs in source order so stateful mutations cannot race each other.
|
|
21
21
|
*/
|
|
22
22
|
executionMode?: ToolExecutionMode;
|
|
23
|
+
/**
|
|
24
|
+
* Overrides the loop's default per-tool timeout. A tool that owns a longer
|
|
25
|
+
* internal budget than the default must declare it here, or the loop cancels
|
|
26
|
+
* it first and the tool's own timeout — with its specific, actionable error
|
|
27
|
+
* message — becomes unreachable.
|
|
28
|
+
*/
|
|
29
|
+
timeoutMs?: number;
|
|
23
30
|
execute: (args: z.infer<T>, context: ToolContext) => ToolExecuteResult | Promise<ToolExecuteResult>;
|
|
24
31
|
}
|
|
25
32
|
interface AgentTextDeltaEvent {
|
|
@@ -70,6 +77,21 @@ interface AgentTurnEndEvent {
|
|
|
70
77
|
usage: Usage;
|
|
71
78
|
timing: AgentTurnTiming;
|
|
72
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* A safe point between steps: the assistant message and every tool result for
|
|
82
|
+
* this turn are now in the message array, and no provider call is in flight.
|
|
83
|
+
*
|
|
84
|
+
* Hosts that persist a transcript flush here. Without it a crash mid-run loses
|
|
85
|
+
* the WHOLE turn — including tool results whose side effects already landed on
|
|
86
|
+
* disk — because the only flush happens after the loop returns.
|
|
87
|
+
*
|
|
88
|
+
* Yielded immediately after tool results are appended, so it pairs with
|
|
89
|
+
* `turn_end` (which covers the assistant half) to cover every message.
|
|
90
|
+
*/
|
|
91
|
+
interface AgentCheckpointEvent {
|
|
92
|
+
type: "checkpoint";
|
|
93
|
+
turn: number;
|
|
94
|
+
}
|
|
73
95
|
interface AgentDoneEvent {
|
|
74
96
|
type: "agent_done";
|
|
75
97
|
totalTurns: number;
|
|
@@ -163,7 +185,7 @@ interface AgentFollowUpMessageEvent {
|
|
|
163
185
|
type: "follow_up_message";
|
|
164
186
|
content: Message["content"];
|
|
165
187
|
}
|
|
166
|
-
type AgentEvent = AgentTextDeltaEvent | AgentThinkingDeltaEvent | AgentToolCallStartEvent | AgentToolCallUpdateEvent | AgentToolCallEndEvent | AgentToolCallDeltaEvent | AgentServerToolCallEvent | AgentServerToolResultEvent | AgentSteeringMessageEvent | AgentFollowUpMessageEvent | AgentRetryEvent | AgentTurnEndEvent | AgentDoneEvent | AgentMaxTurnsEvent | AgentTurnBudgetExtendedEvent | AgentTruncatedEvent | AgentErrorEvent;
|
|
188
|
+
type AgentEvent = AgentTextDeltaEvent | AgentThinkingDeltaEvent | AgentToolCallStartEvent | AgentToolCallUpdateEvent | AgentToolCallEndEvent | AgentToolCallDeltaEvent | AgentServerToolCallEvent | AgentServerToolResultEvent | AgentSteeringMessageEvent | AgentFollowUpMessageEvent | AgentRetryEvent | AgentTurnEndEvent | AgentCheckpointEvent | AgentDoneEvent | AgentMaxTurnsEvent | AgentTurnBudgetExtendedEvent | AgentTruncatedEvent | AgentErrorEvent;
|
|
167
189
|
interface TransformContextOptions {
|
|
168
190
|
/** Force a transform after the provider reports context overflow. */
|
|
169
191
|
force?: boolean;
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ function isLocalBackendUrl(baseUrl) {
|
|
|
35
35
|
|
|
36
36
|
// src/agent-loop.ts
|
|
37
37
|
var DEFAULT_MAX_TURNS = 300;
|
|
38
|
+
var DEFAULT_TOOL_TIMEOUT_MS = 3e5;
|
|
38
39
|
var _diagFn = null;
|
|
39
40
|
function setStreamDiagnostic(fn) {
|
|
40
41
|
_diagFn = fn;
|
|
@@ -950,6 +951,7 @@ async function* agentLoop(messages, options) {
|
|
|
950
951
|
);
|
|
951
952
|
const executionResult = hasSequentialToolCall ? yield* executeToolCallsMixed(toolCalls, toolResults, executionOptions) : yield* executeToolCallsParallel(toolCalls, toolResults, executionOptions);
|
|
952
953
|
messages.push({ role: "tool", content: executionResult.toolResults });
|
|
954
|
+
yield { type: "checkpoint", turn };
|
|
953
955
|
const toolsAborted = executionResult.aborted;
|
|
954
956
|
if (fatalToolArgumentError) {
|
|
955
957
|
if (fatalToolArgumentRecoverable && !toolArgumentAutoContinueUsed) {
|
|
@@ -1080,7 +1082,7 @@ async function executeSingleToolCall(toolCall, options, pushEvent) {
|
|
|
1080
1082
|
try {
|
|
1081
1083
|
const parsed = tool.parameters.parse(toolCall.args);
|
|
1082
1084
|
const callerSignal = options.signal;
|
|
1083
|
-
const toolTimeout = AbortSignal.timeout(
|
|
1085
|
+
const toolTimeout = AbortSignal.timeout(tool.timeoutMs ?? DEFAULT_TOOL_TIMEOUT_MS);
|
|
1084
1086
|
const ctx = {
|
|
1085
1087
|
signal: callerSignal ? AbortSignal.any([callerSignal, toolTimeout]) : toolTimeout,
|
|
1086
1088
|
toolCallId: toolCall.id,
|