zeitlich 0.2.7 → 0.2.9
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 +93 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +92 -41
- package/dist/index.js.map +1 -1
- package/dist/{workflow-CyYHDbrr.d.cts → workflow-C2ShwjC7.d.cts} +50 -18
- package/dist/{workflow-CyYHDbrr.d.ts → workflow-C2ShwjC7.d.ts} +50 -18
- package/dist/workflow.cjs +88 -39
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +1 -1
- package/dist/workflow.d.ts +1 -1
- package/dist/workflow.js +87 -38
- package/dist/workflow.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/model-invoker.ts +7 -3
- package/src/lib/session.ts +44 -10
- package/src/lib/state-manager.ts +56 -0
- package/src/lib/tool-router.ts +33 -21
- package/src/lib/types.ts +18 -8
- package/src/tools/ask-user-question/handler.ts +3 -3
- package/src/tools/read-file/tool.ts +2 -2
- package/src/tools/subagent/handler.ts +2 -1
- package/src/tools/subagent/tool.ts +4 -4
- package/src/tools/write-file/tool.ts +4 -5
- package/src/workflow.ts +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as AgentResponse, a as ActivityToolHandler, G as GlobArgs, F as FileEditArgs, B as BashArgs } from './workflow-
|
|
2
|
-
export { b as AGENT_HANDLER_NAMES, c as AgentConfig, d as AgentFile, e as AgentState, f as AgentStateManager, g as AgentStatus, h as AppendToolResultFn, i as AskUserQuestionArgs, j as BaseAgentState, k as BaseThreadManager, l as FileReadArgs, m as FileWriteArgs, n as GrepArgs, I as InferToolResults, J as JsonPrimitive, o as JsonSerializable, p as JsonValue, P as ParsedToolCall, q as ParsedToolCallUnion, r as PostToolUseFailureHook, s as PostToolUseFailureHookContext, t as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, y as PreToolUseHookResult, z as ProcessToolCallsContext, R as RawToolCall, C as RunAgentActivity, D as RunAgentConfig, S as SessionEndHook, E as SessionEndHookContext, H as SessionExitReason, K as SessionLifecycleHooks, L as SessionStartHook, M as SessionStartHookContext, N as SubagentArgs, O as SubagentConfig, Q as SubagentHooks, T as SubagentInput, U as TaskCreateArgs, V as TaskGetArgs, W as TaskListArgs, X as TaskStatus, Y as TaskUpdateArgs, Z as ThreadManager, _ as ThreadManagerConfig, $ as ThreadOps, a0 as ToolArgs, a1 as ToolCallResult, a2 as ToolCallResultUnion, a3 as ToolDefinition, a4 as ToolHandler, a5 as ToolHandlerContext, a6 as ToolHandlerResponse, a7 as ToolHooks, a8 as ToolMap, a9 as ToolMessageContent, aa as ToolNames, ab as ToolResult, ac as ToolResultConfig, ad as ToolRouter, ae as ToolWithHandler, af as WorkflowTask, ag as ZeitlichSession, ah as ZeitlichSharedActivities, ai as askUserQuestionTool, aj as bashTool, ak as createAgentStateManager, al as createAskUserQuestionHandler, am as createBashToolDescription, an as createSession, ao as createSharedActivities, ap as createSubagentTool, aq as createTaskCreateHandler, ar as createTaskGetHandler, as as createTaskListHandler, at as createTaskUpdateHandler, au as createThreadManager, av as createToolRouter, aw as defineSubagent, ax as defineTool, ay as editTool, az as globTool, aA as grepTool, aB as hasNoOtherToolCalls, aC as isTerminalStatus, aD as proxyDefaultThreadOps, aE as
|
|
1
|
+
import { A as AgentResponse, a as ActivityToolHandler, G as GlobArgs, F as FileEditArgs, B as BashArgs } from './workflow-C2ShwjC7.cjs';
|
|
2
|
+
export { b as AGENT_HANDLER_NAMES, c as AgentConfig, d as AgentFile, e as AgentState, f as AgentStateManager, g as AgentStatus, h as AppendToolResultFn, i as AskUserQuestionArgs, j as BaseAgentState, k as BaseThreadManager, l as FileReadArgs, m as FileWriteArgs, n as GrepArgs, I as InferToolResults, J as JsonPrimitive, o as JsonSerializable, p as JsonValue, P as ParsedToolCall, q as ParsedToolCallUnion, r as PostToolUseFailureHook, s as PostToolUseFailureHookContext, t as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, y as PreToolUseHookResult, z as ProcessToolCallsContext, R as RawToolCall, C as RunAgentActivity, D as RunAgentConfig, S as SessionEndHook, E as SessionEndHookContext, H as SessionExitReason, K as SessionLifecycleHooks, L as SessionStartHook, M as SessionStartHookContext, N as SubagentArgs, O as SubagentConfig, Q as SubagentHooks, T as SubagentInput, U as TaskCreateArgs, V as TaskGetArgs, W as TaskListArgs, X as TaskStatus, Y as TaskUpdateArgs, Z as ThreadManager, _ as ThreadManagerConfig, $ as ThreadOps, a0 as ToolArgs, a1 as ToolCallResult, a2 as ToolCallResultUnion, a3 as ToolDefinition, a4 as ToolHandler, a5 as ToolHandlerContext, a6 as ToolHandlerResponse, a7 as ToolHooks, a8 as ToolMap, a9 as ToolMessageContent, aa as ToolNames, ab as ToolResult, ac as ToolResultConfig, ad as ToolRouter, ae as ToolWithHandler, af as WorkflowTask, ag as ZeitlichSession, ah as ZeitlichSharedActivities, ai as askUserQuestionTool, aj as bashTool, ak as createAgentStateManager, al as createAskUserQuestionHandler, am as createBashToolDescription, an as createSession, ao as createSharedActivities, ap as createSubagentTool, aq as createTaskCreateHandler, ar as createTaskGetHandler, as as createTaskListHandler, at as createTaskUpdateHandler, au as createThreadManager, av as createToolRouter, aw as defineSubagent, ax as defineTool, ay as editTool, az as globTool, aA as grepTool, aB as hasNoOtherToolCalls, aC as isTerminalStatus, aD as proxyDefaultThreadOps, aE as readFileTool, aF as taskCreateTool, aG as taskGetTool, aH as taskListTool, aI as taskUpdateTool, aJ as withAutoAppend, aK as writeFileTool } from './workflow-C2ShwjC7.cjs';
|
|
3
3
|
import { SimplePlugin } from '@temporalio/plugin';
|
|
4
4
|
import Redis from 'ioredis';
|
|
5
5
|
import { WorkflowClient } from '@temporalio/client';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as AgentResponse, a as ActivityToolHandler, G as GlobArgs, F as FileEditArgs, B as BashArgs } from './workflow-
|
|
2
|
-
export { b as AGENT_HANDLER_NAMES, c as AgentConfig, d as AgentFile, e as AgentState, f as AgentStateManager, g as AgentStatus, h as AppendToolResultFn, i as AskUserQuestionArgs, j as BaseAgentState, k as BaseThreadManager, l as FileReadArgs, m as FileWriteArgs, n as GrepArgs, I as InferToolResults, J as JsonPrimitive, o as JsonSerializable, p as JsonValue, P as ParsedToolCall, q as ParsedToolCallUnion, r as PostToolUseFailureHook, s as PostToolUseFailureHookContext, t as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, y as PreToolUseHookResult, z as ProcessToolCallsContext, R as RawToolCall, C as RunAgentActivity, D as RunAgentConfig, S as SessionEndHook, E as SessionEndHookContext, H as SessionExitReason, K as SessionLifecycleHooks, L as SessionStartHook, M as SessionStartHookContext, N as SubagentArgs, O as SubagentConfig, Q as SubagentHooks, T as SubagentInput, U as TaskCreateArgs, V as TaskGetArgs, W as TaskListArgs, X as TaskStatus, Y as TaskUpdateArgs, Z as ThreadManager, _ as ThreadManagerConfig, $ as ThreadOps, a0 as ToolArgs, a1 as ToolCallResult, a2 as ToolCallResultUnion, a3 as ToolDefinition, a4 as ToolHandler, a5 as ToolHandlerContext, a6 as ToolHandlerResponse, a7 as ToolHooks, a8 as ToolMap, a9 as ToolMessageContent, aa as ToolNames, ab as ToolResult, ac as ToolResultConfig, ad as ToolRouter, ae as ToolWithHandler, af as WorkflowTask, ag as ZeitlichSession, ah as ZeitlichSharedActivities, ai as askUserQuestionTool, aj as bashTool, ak as createAgentStateManager, al as createAskUserQuestionHandler, am as createBashToolDescription, an as createSession, ao as createSharedActivities, ap as createSubagentTool, aq as createTaskCreateHandler, ar as createTaskGetHandler, as as createTaskListHandler, at as createTaskUpdateHandler, au as createThreadManager, av as createToolRouter, aw as defineSubagent, ax as defineTool, ay as editTool, az as globTool, aA as grepTool, aB as hasNoOtherToolCalls, aC as isTerminalStatus, aD as proxyDefaultThreadOps, aE as
|
|
1
|
+
import { A as AgentResponse, a as ActivityToolHandler, G as GlobArgs, F as FileEditArgs, B as BashArgs } from './workflow-C2ShwjC7.js';
|
|
2
|
+
export { b as AGENT_HANDLER_NAMES, c as AgentConfig, d as AgentFile, e as AgentState, f as AgentStateManager, g as AgentStatus, h as AppendToolResultFn, i as AskUserQuestionArgs, j as BaseAgentState, k as BaseThreadManager, l as FileReadArgs, m as FileWriteArgs, n as GrepArgs, I as InferToolResults, J as JsonPrimitive, o as JsonSerializable, p as JsonValue, P as ParsedToolCall, q as ParsedToolCallUnion, r as PostToolUseFailureHook, s as PostToolUseFailureHookContext, t as PostToolUseFailureHookResult, u as PostToolUseHook, v as PostToolUseHookContext, w as PreToolUseHook, x as PreToolUseHookContext, y as PreToolUseHookResult, z as ProcessToolCallsContext, R as RawToolCall, C as RunAgentActivity, D as RunAgentConfig, S as SessionEndHook, E as SessionEndHookContext, H as SessionExitReason, K as SessionLifecycleHooks, L as SessionStartHook, M as SessionStartHookContext, N as SubagentArgs, O as SubagentConfig, Q as SubagentHooks, T as SubagentInput, U as TaskCreateArgs, V as TaskGetArgs, W as TaskListArgs, X as TaskStatus, Y as TaskUpdateArgs, Z as ThreadManager, _ as ThreadManagerConfig, $ as ThreadOps, a0 as ToolArgs, a1 as ToolCallResult, a2 as ToolCallResultUnion, a3 as ToolDefinition, a4 as ToolHandler, a5 as ToolHandlerContext, a6 as ToolHandlerResponse, a7 as ToolHooks, a8 as ToolMap, a9 as ToolMessageContent, aa as ToolNames, ab as ToolResult, ac as ToolResultConfig, ad as ToolRouter, ae as ToolWithHandler, af as WorkflowTask, ag as ZeitlichSession, ah as ZeitlichSharedActivities, ai as askUserQuestionTool, aj as bashTool, ak as createAgentStateManager, al as createAskUserQuestionHandler, am as createBashToolDescription, an as createSession, ao as createSharedActivities, ap as createSubagentTool, aq as createTaskCreateHandler, ar as createTaskGetHandler, as as createTaskListHandler, at as createTaskUpdateHandler, au as createThreadManager, av as createToolRouter, aw as defineSubagent, ax as defineTool, ay as editTool, az as globTool, aA as grepTool, aB as hasNoOtherToolCalls, aC as isTerminalStatus, aD as proxyDefaultThreadOps, aE as readFileTool, aF as taskCreateTool, aG as taskGetTool, aH as taskListTool, aI as taskUpdateTool, aJ as withAutoAppend, aK as writeFileTool } from './workflow-C2ShwjC7.js';
|
|
3
3
|
import { SimplePlugin } from '@temporalio/plugin';
|
|
4
4
|
import Redis from 'ioredis';
|
|
5
5
|
import { WorkflowClient } from '@temporalio/client';
|
package/dist/index.js
CHANGED
|
@@ -7,18 +7,18 @@ import { Context } from '@temporalio/activity';
|
|
|
7
7
|
import { Bash } from 'just-bash';
|
|
8
8
|
|
|
9
9
|
// src/lib/session.ts
|
|
10
|
-
var
|
|
10
|
+
var SUBAGENT_TOOL_NAME = "Subagent";
|
|
11
11
|
function buildSubagentDescription(subagents) {
|
|
12
12
|
const subagentList = subagents.map((s) => `- **${s.agentName}**: ${s.description}`).join("\n");
|
|
13
13
|
return `Launch a new agent to handle complex tasks autonomously.
|
|
14
14
|
|
|
15
|
-
The ${
|
|
15
|
+
The ${SUBAGENT_TOOL_NAME} tool launches specialized agents (subprocesses) that autonomously handle complex tasks. Each agent type has specific capabilities and tools available to it.
|
|
16
16
|
|
|
17
17
|
Available agent types:
|
|
18
18
|
|
|
19
19
|
${subagentList}
|
|
20
20
|
|
|
21
|
-
When using the ${
|
|
21
|
+
When using the ${SUBAGENT_TOOL_NAME} tool, you must specify a subagent parameter to select which agent type to use.
|
|
22
22
|
|
|
23
23
|
Usage notes:
|
|
24
24
|
|
|
@@ -37,7 +37,7 @@ function createSubagentTool(subagents) {
|
|
|
37
37
|
}
|
|
38
38
|
const names = subagents.map((s) => s.agentName);
|
|
39
39
|
return {
|
|
40
|
-
name:
|
|
40
|
+
name: SUBAGENT_TOOL_NAME,
|
|
41
41
|
description: buildSubagentDescription(subagents),
|
|
42
42
|
schema: z13.object({
|
|
43
43
|
subagent: z13.enum(names).describe("The type of subagent to launch"),
|
|
@@ -65,11 +65,12 @@ function createSubagentHandler(subagents) {
|
|
|
65
65
|
args: [input],
|
|
66
66
|
taskQueue: config.taskQueue ?? parentTaskQueue
|
|
67
67
|
};
|
|
68
|
-
const { toolResponse, data } = typeof config.workflow === "string" ? await executeChild(config.workflow, childOpts) : await executeChild(config.workflow, childOpts);
|
|
68
|
+
const { toolResponse, data, usage } = typeof config.workflow === "string" ? await executeChild(config.workflow, childOpts) : await executeChild(config.workflow, childOpts);
|
|
69
69
|
const validated = config.resultSchema ? config.resultSchema.parse(data) : null;
|
|
70
70
|
return {
|
|
71
71
|
toolResponse,
|
|
72
|
-
data: validated
|
|
72
|
+
data: validated,
|
|
73
|
+
...usage && { usage }
|
|
73
74
|
};
|
|
74
75
|
};
|
|
75
76
|
}
|
|
@@ -81,20 +82,17 @@ function createToolRouter(options) {
|
|
|
81
82
|
for (const [_key, tool] of Object.entries(options.tools)) {
|
|
82
83
|
toolMap.set(tool.name, tool);
|
|
83
84
|
}
|
|
84
|
-
const isEnabled = (tool) => tool.enabled
|
|
85
|
+
const isEnabled = (tool) => tool.enabled?.() ?? true;
|
|
85
86
|
if (options.subagents) {
|
|
86
|
-
|
|
87
|
-
(s) => s.enabled !== false
|
|
88
|
-
);
|
|
89
|
-
if (enabledSubagents.length > 0) {
|
|
87
|
+
if (options.subagents.length > 0) {
|
|
90
88
|
const subagentHooksMap = /* @__PURE__ */ new Map();
|
|
91
|
-
for (const s of
|
|
89
|
+
for (const s of options.subagents) {
|
|
92
90
|
if (s.hooks) subagentHooksMap.set(s.agentName, s.hooks);
|
|
93
91
|
}
|
|
94
92
|
const resolveSubagentName = (args) => args.subagent;
|
|
95
|
-
toolMap.set(
|
|
96
|
-
...createSubagentTool(
|
|
97
|
-
handler: createSubagentHandler(
|
|
93
|
+
toolMap.set(SUBAGENT_TOOL_NAME, {
|
|
94
|
+
...createSubagentTool(options.subagents),
|
|
95
|
+
handler: createSubagentHandler(options.subagents),
|
|
98
96
|
...subagentHooksMap.size > 0 && {
|
|
99
97
|
hooks: {
|
|
100
98
|
onPreToolUse: async (ctx) => {
|
|
@@ -285,13 +283,19 @@ function createToolRouter(options) {
|
|
|
285
283
|
return Array.from(toolMap.entries()).filter(([, tool]) => isEnabled(tool)).map(([name]) => name);
|
|
286
284
|
},
|
|
287
285
|
getToolDefinitions() {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
286
|
+
const activeSubagents = options.subagents?.filter((subagent) => isEnabled(subagent)) ?? [];
|
|
287
|
+
return [
|
|
288
|
+
...Array.from(toolMap).filter(
|
|
289
|
+
([, tool]) => isEnabled(tool) && tool.name !== SUBAGENT_TOOL_NAME
|
|
290
|
+
).map(([name, tool]) => ({
|
|
291
|
+
name,
|
|
292
|
+
description: tool.description,
|
|
293
|
+
schema: tool.schema,
|
|
294
|
+
strict: tool.strict,
|
|
295
|
+
max_uses: tool.max_uses
|
|
296
|
+
})),
|
|
297
|
+
...activeSubagents.length > 0 ? [createSubagentTool(activeSubagents)] : []
|
|
298
|
+
];
|
|
295
299
|
},
|
|
296
300
|
// --- Methods for processing tool calls ---
|
|
297
301
|
async processToolCalls(toolCalls, context) {
|
|
@@ -404,6 +408,7 @@ function hasNoOtherToolCalls(toolCalls, excludeName) {
|
|
|
404
408
|
var createSession = async ({
|
|
405
409
|
threadId,
|
|
406
410
|
agentName,
|
|
411
|
+
description,
|
|
407
412
|
maxTurns = 50,
|
|
408
413
|
metadata = {},
|
|
409
414
|
runAgent,
|
|
@@ -443,7 +448,9 @@ var createSession = async ({
|
|
|
443
448
|
}
|
|
444
449
|
};
|
|
445
450
|
return {
|
|
446
|
-
runSession: async ({
|
|
451
|
+
runSession: async ({
|
|
452
|
+
stateManager
|
|
453
|
+
}) => {
|
|
447
454
|
setHandler(
|
|
448
455
|
defineUpdate(`add${agentName}Message`),
|
|
449
456
|
async (message) => {
|
|
@@ -470,7 +477,6 @@ var createSession = async ({
|
|
|
470
477
|
metadata
|
|
471
478
|
});
|
|
472
479
|
}
|
|
473
|
-
stateManager.setTools(toolRouter.getToolDefinitions());
|
|
474
480
|
await initializeThread(threadId);
|
|
475
481
|
if (appendSystemPrompt && systemPrompt && systemPrompt.trim() !== "") {
|
|
476
482
|
await appendSystemMessage(threadId, systemPrompt);
|
|
@@ -481,15 +487,25 @@ var createSession = async ({
|
|
|
481
487
|
while (stateManager.isRunning() && !stateManager.isTerminal() && stateManager.getTurns() < maxTurns) {
|
|
482
488
|
stateManager.incrementTurns();
|
|
483
489
|
const currentTurn = stateManager.getTurns();
|
|
484
|
-
|
|
490
|
+
stateManager.setTools(toolRouter.getToolDefinitions());
|
|
491
|
+
const { message, rawToolCalls, usage } = await runAgent({
|
|
485
492
|
threadId,
|
|
486
493
|
agentName,
|
|
487
|
-
metadata
|
|
494
|
+
metadata,
|
|
495
|
+
systemPrompt,
|
|
496
|
+
description
|
|
488
497
|
});
|
|
498
|
+
if (usage) {
|
|
499
|
+
stateManager.updateUsage(usage);
|
|
500
|
+
}
|
|
489
501
|
if (!toolRouter.hasTools() || rawToolCalls.length === 0) {
|
|
490
502
|
stateManager.complete();
|
|
491
503
|
exitReason = "completed";
|
|
492
|
-
return
|
|
504
|
+
return {
|
|
505
|
+
finalMessage: message,
|
|
506
|
+
exitReason,
|
|
507
|
+
usage: stateManager.getTotalUsage()
|
|
508
|
+
};
|
|
493
509
|
}
|
|
494
510
|
const parsedToolCalls = [];
|
|
495
511
|
for (const tc of rawToolCalls) {
|
|
@@ -506,9 +522,17 @@ var createSession = async ({
|
|
|
506
522
|
});
|
|
507
523
|
}
|
|
508
524
|
}
|
|
509
|
-
await toolRouter.processToolCalls(
|
|
510
|
-
|
|
511
|
-
|
|
525
|
+
const toolCallResults = await toolRouter.processToolCalls(
|
|
526
|
+
parsedToolCalls,
|
|
527
|
+
{
|
|
528
|
+
turn: currentTurn
|
|
529
|
+
}
|
|
530
|
+
);
|
|
531
|
+
for (const result of toolCallResults) {
|
|
532
|
+
if (result.usage) {
|
|
533
|
+
stateManager.updateUsage(result.usage);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
512
536
|
if (stateManager.getStatus() === "WAITING_FOR_INPUT") {
|
|
513
537
|
const conditionMet = await condition(
|
|
514
538
|
() => stateManager.getStatus() === "RUNNING",
|
|
@@ -530,7 +554,11 @@ var createSession = async ({
|
|
|
530
554
|
} finally {
|
|
531
555
|
await callSessionEnd(exitReason, stateManager.getTurns());
|
|
532
556
|
}
|
|
533
|
-
return
|
|
557
|
+
return {
|
|
558
|
+
finalMessage: null,
|
|
559
|
+
exitReason,
|
|
560
|
+
usage: stateManager.getTotalUsage()
|
|
561
|
+
};
|
|
534
562
|
}
|
|
535
563
|
};
|
|
536
564
|
};
|
|
@@ -567,6 +595,11 @@ function createAgentStateManager({
|
|
|
567
595
|
let version = initialState?.version ?? 0;
|
|
568
596
|
let turns = initialState?.turns ?? 0;
|
|
569
597
|
let tools = initialState?.tools ?? [];
|
|
598
|
+
let totalInputTokens = 0;
|
|
599
|
+
let totalOutputTokens = 0;
|
|
600
|
+
let totalCachedWriteTokens = 0;
|
|
601
|
+
let totalCachedReadTokens = 0;
|
|
602
|
+
let totalReasonTokens = 0;
|
|
570
603
|
const tasks = new Map(initialState?.tasks);
|
|
571
604
|
const {
|
|
572
605
|
status: _,
|
|
@@ -681,6 +714,23 @@ function createAgentStateManager({
|
|
|
681
714
|
version++;
|
|
682
715
|
}
|
|
683
716
|
return deleted;
|
|
717
|
+
},
|
|
718
|
+
updateUsage(usage) {
|
|
719
|
+
totalInputTokens += usage.inputTokens ?? 0;
|
|
720
|
+
totalOutputTokens += usage.outputTokens ?? 0;
|
|
721
|
+
totalCachedWriteTokens += usage.cachedWriteTokens ?? 0;
|
|
722
|
+
totalCachedReadTokens += usage.cachedReadTokens ?? 0;
|
|
723
|
+
totalReasonTokens += usage.reasonTokens ?? 0;
|
|
724
|
+
},
|
|
725
|
+
getTotalUsage() {
|
|
726
|
+
return {
|
|
727
|
+
totalInputTokens,
|
|
728
|
+
totalOutputTokens,
|
|
729
|
+
totalCachedWriteTokens,
|
|
730
|
+
totalCachedReadTokens,
|
|
731
|
+
totalReasonTokens,
|
|
732
|
+
turns
|
|
733
|
+
};
|
|
684
734
|
}
|
|
685
735
|
};
|
|
686
736
|
}
|
|
@@ -733,7 +783,7 @@ Examples:
|
|
|
733
783
|
}),
|
|
734
784
|
strict: true
|
|
735
785
|
};
|
|
736
|
-
var
|
|
786
|
+
var readFileTool = {
|
|
737
787
|
name: "FileRead",
|
|
738
788
|
description: `Read file contents with optional pagination.
|
|
739
789
|
|
|
@@ -756,22 +806,21 @@ The tool returns the file content in an appropriate format:
|
|
|
756
806
|
}),
|
|
757
807
|
strict: true
|
|
758
808
|
};
|
|
759
|
-
var
|
|
809
|
+
var writeFileTool = {
|
|
760
810
|
name: "FileWrite",
|
|
761
811
|
description: `Create or overwrite a file with new content.
|
|
762
812
|
|
|
763
813
|
Usage:
|
|
764
|
-
- Provide the absolute path to the file
|
|
765
814
|
- The file will be created if it doesn't exist
|
|
766
815
|
- If the file exists, it will be completely overwritten
|
|
767
816
|
|
|
768
817
|
IMPORTANT:
|
|
769
818
|
- You must read the file first (in this session) before writing to it
|
|
770
819
|
- This is an atomic write operation - the entire file is replaced
|
|
771
|
-
- Path must be
|
|
820
|
+
- Path must be relative to the root of the file system (e.g., "docs/readme.md", not "/docs/readme.md")
|
|
772
821
|
`,
|
|
773
822
|
schema: z.object({
|
|
774
|
-
file_path: z.string().describe("The
|
|
823
|
+
file_path: z.string().describe("The path to the file to write"),
|
|
775
824
|
content: z.string().describe("The content to write to the file")
|
|
776
825
|
}),
|
|
777
826
|
strict: true
|
|
@@ -1033,7 +1082,7 @@ Usage notes:
|
|
|
1033
1082
|
};
|
|
1034
1083
|
|
|
1035
1084
|
// src/tools/ask-user-question/handler.ts
|
|
1036
|
-
var createAskUserQuestionHandler = () => (args) => {
|
|
1085
|
+
var createAskUserQuestionHandler = () => async (args) => {
|
|
1037
1086
|
return {
|
|
1038
1087
|
toolResponse: "Question submitted",
|
|
1039
1088
|
data: { questions: args.questions }
|
|
@@ -1232,9 +1281,11 @@ async function invokeModel({
|
|
|
1232
1281
|
args: tc.args
|
|
1233
1282
|
})),
|
|
1234
1283
|
usage: {
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1284
|
+
inputTokens: response.usage_metadata?.input_tokens,
|
|
1285
|
+
outputTokens: response.usage_metadata?.output_tokens,
|
|
1286
|
+
reasonTokens: response.usage_metadata?.output_token_details?.reasoning,
|
|
1287
|
+
cachedWriteTokens: response.usage_metadata?.input_token_details?.cache_creation,
|
|
1288
|
+
cachedReadTokens: response.usage_metadata?.input_token_details?.cache_read
|
|
1238
1289
|
}
|
|
1239
1290
|
};
|
|
1240
1291
|
}
|
|
@@ -1407,6 +1458,6 @@ var toTree = async (fs, opts = {}) => {
|
|
|
1407
1458
|
return base + subtree;
|
|
1408
1459
|
};
|
|
1409
1460
|
|
|
1410
|
-
export { AGENT_HANDLER_NAMES, ZeitlichPlugin, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashHandler, createBashToolDescription, createEditHandler, createGlobHandler, createSession, createSharedActivities, createSubagentTool, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createThreadManager, createToolRouter, defineSubagent, defineTool, editTool, globTool, grepTool, hasNoOtherToolCalls, invokeModel, isTerminalStatus, proxyDefaultThreadOps,
|
|
1461
|
+
export { AGENT_HANDLER_NAMES, ZeitlichPlugin, askUserQuestionTool, bashTool, createAgentStateManager, createAskUserQuestionHandler, createBashHandler, createBashToolDescription, createEditHandler, createGlobHandler, createSession, createSharedActivities, createSubagentTool, createTaskCreateHandler, createTaskGetHandler, createTaskListHandler, createTaskUpdateHandler, createThreadManager, createToolRouter, defineSubagent, defineTool, editTool, globTool, grepTool, hasNoOtherToolCalls, invokeModel, isTerminalStatus, proxyDefaultThreadOps, readFileTool, taskCreateTool, taskGetTool, taskListTool, taskUpdateTool, toTree, withAutoAppend, writeFileTool };
|
|
1411
1462
|
//# sourceMappingURL=index.js.map
|
|
1412
1463
|
//# sourceMappingURL=index.js.map
|