klaus-agent 0.2.2 → 0.3.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @klaus-ai/agent
1
+ # klaus-agent
2
2
 
3
3
  Universal agent framework SDK. Inject tools, skills, and systemPrompt to build your agent — no wrapper needed.
4
4
 
@@ -7,13 +7,13 @@ Universal agent framework SDK. Inject tools, skills, and systemPrompt to build y
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npm install @klaus-ai/agent
10
+ npm install klaus-agent
11
11
  ```
12
12
 
13
13
  ## Quick Start
14
14
 
15
15
  ```typescript
16
- import { createAgent } from "@klaus-ai/agent";
16
+ import { createAgent } from "klaus-agent";
17
17
  import { Type } from "@sinclair/typebox";
18
18
 
19
19
  const agent = createAgent({
@@ -45,7 +45,7 @@ const messages = await agent.prompt("Say hello");
45
45
 
46
46
  ## Architecture
47
47
 
48
- Single package, 14 modules, zero wrappers. All capabilities are built-in and opt-in via config.
48
+ Single package, 15 modules, zero wrappers. All capabilities are built-in and opt-in via config.
49
49
 
50
50
  ```
51
51
  src/
@@ -63,6 +63,7 @@ src/
63
63
  ├── skills/ Markdown skill discovery + template rendering
64
64
  ├── wire/ Typed async event channel with replay buffer
65
65
  ├── background/ In-process async task manager
66
+ ├── planning/ Two-phase planning + structured todo + nag injection
66
67
  └── utils/ ID generation + JSONL helpers
67
68
  ```
68
69
 
@@ -123,7 +124,7 @@ const agent2 = createAgent({
123
124
  });
124
125
 
125
126
  // Register a fully custom provider
126
- import { registerProvider } from "@klaus-ai/agent";
127
+ import { registerProvider } from "klaus-agent";
127
128
  registerProvider("my-provider", (config) => new MyProvider(config.apiKey, config.baseUrl));
128
129
  ```
129
130
 
@@ -190,7 +191,7 @@ Tools use TypeBox schemas for parameter validation. The executor supports sequen
190
191
 
191
192
  ```typescript
192
193
  import { Type } from "@sinclair/typebox";
193
- import type { AgentTool } from "@klaus-ai/agent";
194
+ import type { AgentTool } from "klaus-agent";
194
195
 
195
196
  const readFile: AgentTool = {
196
197
  name: "read_file",
@@ -288,22 +289,25 @@ Session file format: first line is a header `{ type: "session", version: 1, id,
288
289
 
289
290
  ### Compaction
290
291
 
291
- Automatic context compression when token count exceeds threshold.
292
+ Two-layer context compression: micro compaction (silent, every turn) and auto compaction (LLM summarization on threshold).
292
293
 
293
294
  ```typescript
294
295
  const agent = createAgent({
295
296
  compaction: {
296
297
  enabled: true,
297
- maxContextTokens: 200000, // Defaults to model.maxContextTokens
298
- reserveTokens: 16384, // Reserve for output
299
- keepRecentTokens: 20000, // Keep recent messages
298
+ maxContextTokens: 200000, // Defaults to model.maxContextTokens
299
+ reserveTokens: 16384, // Reserve for output
300
+ keepRecentTokens: 20000, // Keep recent messages during auto compaction
301
+ keepRecentToolResults: 3, // Micro compaction: keep last N tool results intact (default: 3)
300
302
  customSummarizer: mySummarizer, // Optional custom summarizer
301
303
  },
302
304
  ...
303
305
  });
304
306
  ```
305
307
 
306
- Flow: estimate tokens check threshold find cut point (respects tool_result boundaries) summarize discarded messages via LLM replace with `<compaction-summary>` persist to session.
308
+ **Micro compaction** (every turn): Old tool results beyond the most recent N are replaced with `[Previous: used {toolName}]` before each LLM call. No LLM cost, no persistent mutation operates only on the context view.
309
+
310
+ **Auto compaction** (on threshold): estimate tokens → check threshold → find cut point (respects tool_result boundaries) → summarize discarded messages via LLM → replace with `<compaction-summary>` → persist to session.
307
311
 
308
312
  Built-in `LLMSummarizer` uses the same provider to generate summaries. Supports incremental summarization with `previousSummary`.
309
313
 
@@ -384,7 +388,7 @@ Subagents share the parent's approval state (yolo, autoApproveActions) but have
384
388
  Event-driven plugin system with 18 event types across agent lifecycle, tool execution, LLM requests, context, compaction, session, and background tasks.
385
389
 
386
390
  ```typescript
387
- import type { ExtensionFactory } from "@klaus-ai/agent";
391
+ import type { ExtensionFactory } from "klaus-agent";
388
392
 
389
393
  const myExtension: ExtensionFactory = (api) => {
390
394
  // Register event handlers
@@ -536,6 +540,38 @@ handle.abort();
536
540
 
537
541
  Built-in tools: `start_background_task`, `check_task_status`, `get_task_result`.
538
542
 
543
+ ### Planning (Two-Phase Todo)
544
+
545
+ Optional two-phase planning system inspired by [learn-claude-code](https://github.com/anthropics/learn-claude-code) s03 (TodoWrite) and pi-mono's plan-mode extension. Combines structured todo tracking with phase-gated tool access and nag reminders.
546
+
547
+ ```typescript
548
+ const agent = createAgent({
549
+ planning: {
550
+ readOnlyTools: ["read_file", "search"], // Tools available during planning phase
551
+ nagAfterRounds: 3, // Remind model to update todos after N rounds
552
+ nagMessage: "<reminder>Update todos.</reminder>", // Custom nag text
553
+ maxTodos: 50, // Upper bound on todo items (default: 50)
554
+ },
555
+ ...
556
+ });
557
+
558
+ // Access planning state
559
+ console.log(agent.planning?.phase); // "planning" | "executing"
560
+ console.log(agent.planning?.todos); // readonly TodoItem[]
561
+ ```
562
+
563
+ **Workflow:**
564
+
565
+ 1. Agent starts in **planning phase** — only `readOnlyTools` + `todo` + `plan_mode` tools are available
566
+ 2. The LLM uses the `todo` tool to create a structured plan (only one `in_progress` item allowed at a time)
567
+ 3. The LLM calls `plan_mode({ action: "start_execution" })` to switch to **execution phase**
568
+ 4. In execution phase, all tools are available; if the LLM goes 3+ rounds without updating todos, a `<reminder>` is automatically injected
569
+ 5. The LLM can switch back to planning at any time via `plan_mode({ action: "switch_to_planning" })`
570
+
571
+ Built-in tools: `todo`, `plan_mode`.
572
+
573
+ If `readOnlyTools` is omitted or empty, all tools remain available during planning (phase separation is advisory only via the tool descriptions).
574
+
539
575
  ### Hooks
540
576
 
541
577
  User-level hooks for transforming context and intercepting tool calls:
@@ -597,7 +633,7 @@ agent.subscribe((event) => {
597
633
  ## Full Example
598
634
 
599
635
  ```typescript
600
- import { createAgent } from "@klaus-ai/agent";
636
+ import { createAgent } from "klaus-agent";
601
637
  import { Type } from "@sinclair/typebox";
602
638
 
603
639
  const agent = createAgent({
@@ -640,6 +676,7 @@ const agent = createAgent({
640
676
 
641
677
  wire: { bufferSize: 100 },
642
678
  backgroundTasks: { factories: { build: buildTaskFactory } },
679
+ planning: { readOnlyTools: ["read_file", "search"], nagAfterRounds: 3 },
643
680
 
644
681
  hooks: {
645
682
  transformContext: async (msgs) => msgs,
@@ -682,6 +719,7 @@ await agent.dispose();
682
719
  | `mcp` | `{ servers, clientFactory }` | no | — | MCP server configs |
683
720
  | `wire` | `{ bufferSize }` | no | `{ bufferSize: 0 }` | Event channel config |
684
721
  | `backgroundTasks` | `{ factories }` | no | — | Background task factories |
722
+ | `planning` | `PlanningConfig` | no | — | Two-phase planning with todo tracking and nag reminders |
685
723
  | `provider` | `LLMProvider` | no | — | Custom LLM provider (bypasses registry) |
686
724
 
687
725
  ### `Agent` Instance
@@ -705,6 +743,7 @@ await agent.dispose();
705
743
  | `mcpAdapter` | `MCPAdapter` (if MCP configured). |
706
744
  | `wire` | `Wire` event channel (always available). |
707
745
  | `backgroundTasks` | `BackgroundTaskManager` (if configured). |
746
+ | `planning` | `PlanningManager` (if configured). |
708
747
  | `setSystemPrompt(prompt)` | Update system prompt. |
709
748
  | `setModel(model)` | Update model config. |
710
749
  | `setTools(tools)` | Replace tools (not while running). |
package/README.zh-CN.md CHANGED
@@ -1,17 +1,17 @@
1
- # @klaus-ai/agent
1
+ # klaus-agent
2
2
 
3
3
  通用 Agent 框架 SDK。注入 tools、skills、systemPrompt 即可构建 agent,无需再包一层。
4
4
 
5
5
  ## 安装
6
6
 
7
7
  ```bash
8
- npm install @klaus-ai/agent
8
+ npm install klaus-agent
9
9
  ```
10
10
 
11
11
  ## 快速开始
12
12
 
13
13
  ```typescript
14
- import { createAgent } from "@klaus-ai/agent";
14
+ import { createAgent } from "klaus-agent";
15
15
  import { Type } from "@sinclair/typebox";
16
16
 
17
17
  const agent = createAgent({
@@ -43,7 +43,7 @@ const messages = await agent.prompt("Say hello");
43
43
 
44
44
  ## 架构
45
45
 
46
- 单包架构,14 个模块,零包装层。所有能力内置,通过 config 按需启用。
46
+ 单包架构,15 个模块,零包装层。所有能力内置,通过 config 按需启用。
47
47
 
48
48
  ```
49
49
  src/
@@ -61,6 +61,7 @@ src/
61
61
  ├── skills/ Markdown 技能发现 + 模板渲染
62
62
  ├── wire/ 类型化异步事件通道,支持回放缓冲
63
63
  ├── background/ 进程内异步任务管理器
64
+ ├── planning/ 两阶段规划 + 结构化 todo + nag 注入
64
65
  └── utils/ ID 生成 + JSONL 工具
65
66
  ```
66
67
 
@@ -121,7 +122,7 @@ const agent2 = createAgent({
121
122
  });
122
123
 
123
124
  // 注册完全自定义的 Provider
124
- import { registerProvider } from "@klaus-ai/agent";
125
+ import { registerProvider } from "klaus-agent";
125
126
  registerProvider("my-provider", (config) => new MyProvider(config.apiKey, config.baseUrl));
126
127
  ```
127
128
 
@@ -188,7 +189,7 @@ interface ToolResultMessage {
188
189
 
189
190
  ```typescript
190
191
  import { Type } from "@sinclair/typebox";
191
- import type { AgentTool } from "@klaus-ai/agent";
192
+ import type { AgentTool } from "klaus-agent";
192
193
 
193
194
  const readFile: AgentTool = {
194
195
  name: "read_file",
@@ -286,22 +287,25 @@ agent.session.branch(entryId);
286
287
 
287
288
  ### 压缩
288
289
 
289
- Token 数超过阈值时自动压缩上下文。
290
+ 两层上下文压缩:微压缩(静默,每轮执行)和自动压缩(LLM 摘要,阈值触发)。
290
291
 
291
292
  ```typescript
292
293
  const agent = createAgent({
293
294
  compaction: {
294
295
  enabled: true,
295
- maxContextTokens: 200000, // 默认使用 model.maxContextTokens
296
- reserveTokens: 16384, // 为输出预留的 token 数
297
- keepRecentTokens: 20000, // 保留最近消息的 token 数
296
+ maxContextTokens: 200000, // 默认使用 model.maxContextTokens
297
+ reserveTokens: 16384, // 为输出预留的 token 数
298
+ keepRecentTokens: 20000, // 自动压缩时保留最近消息的 token 数
299
+ keepRecentToolResults: 3, // 微压缩:保留最近 N 个工具结果(默认 3)
298
300
  customSummarizer: mySummarizer, // 可选自定义摘要器
299
301
  },
300
302
  ...
301
303
  });
302
304
  ```
303
305
 
304
- 流程:估算 token 检查阈值 找到切割点(尊重 tool_result 边界)→ 通过 LLM 摘要被丢弃的消息 替换为 `<compaction-summary>` → 持久化到会话。
306
+ **微压缩**(每轮):每次 LLM 调用前,将最近 N 个以外的旧 tool_result 替换为 `[Previous: used {toolName}]`。无 LLM 开销,不修改持久化状态——仅作用于上下文视图。
307
+
308
+ **自动压缩**(阈值触发):估算 token → 检查阈值 → 找到切割点(尊重 tool_result 边界)→ 通过 LLM 摘要被丢弃的消息 → 替换为 `<compaction-summary>` → 持久化到会话。
305
309
 
306
310
  内置 `LLMSummarizer` 使用同一 Provider 生成摘要,支持基于 `previousSummary` 的增量摘要。
307
311
 
@@ -382,7 +386,7 @@ agent.laborMarket.removeDynamic("analyst");
382
386
  事件驱动的插件系统,覆盖 Agent 生命周期、工具执行、LLM 请求、上下文、压缩、会话和后台任务共 18 种事件类型。
383
387
 
384
388
  ```typescript
385
- import type { ExtensionFactory } from "@klaus-ai/agent";
389
+ import type { ExtensionFactory } from "klaus-agent";
386
390
 
387
391
  const myExtension: ExtensionFactory = (api) => {
388
392
  // 注册事件处理器
@@ -534,6 +538,38 @@ handle.abort();
534
538
 
535
539
  内置工具:`start_background_task`、`check_task_status`、`get_task_result`。
536
540
 
541
+ ### Planning(两阶段 Todo)
542
+
543
+ 可选的两阶段规划系统。结合结构化 todo 管理、阶段性工具访问控制和 nag 提醒。
544
+
545
+ ```typescript
546
+ const agent = createAgent({
547
+ planning: {
548
+ readOnlyTools: ["read_file", "search"], // 规划阶段可用的工具
549
+ nagAfterRounds: 3, // 连续 N 轮不更新 todo 后注入提醒
550
+ nagMessage: "<reminder>更新你的 todo。</reminder>", // 自定义提醒文本
551
+ maxTodos: 50, // todo 数量上限(默认 50)
552
+ },
553
+ ...
554
+ });
555
+
556
+ // 访问规划状态
557
+ console.log(agent.planning?.phase); // "planning" | "executing"
558
+ console.log(agent.planning?.todos); // readonly TodoItem[]
559
+ ```
560
+
561
+ **工作流:**
562
+
563
+ 1. Agent 启动后进入 **planning 阶段** — 只有 `readOnlyTools` + `todo` + `plan_mode` 工具可用
564
+ 2. LLM 使用 `todo` 工具创建结构化计划(同一时间只允许一个 `in_progress` 项)
565
+ 3. LLM 调用 `plan_mode({ action: "start_execution" })` 切换到 **execution 阶段**
566
+ 4. 执行阶段所有工具可用;如果 LLM 连续 3+ 轮不更新 todo,自动注入 `<reminder>`
567
+ 5. 随时可通过 `plan_mode({ action: "switch_to_planning" })` 切回规划阶段
568
+
569
+ 内置工具:`todo`、`plan_mode`。
570
+
571
+ 如果 `readOnlyTools` 未配置或为空,规划阶段所有工具仍可用(阶段分离仅通过工具描述建议模型遵守)。
572
+
537
573
  ### Hooks
538
574
 
539
575
  用户级 hook,用于转换上下文和拦截工具调用:
@@ -595,7 +631,7 @@ agent.subscribe((event) => {
595
631
  ## 完整示例
596
632
 
597
633
  ```typescript
598
- import { createAgent } from "@klaus-ai/agent";
634
+ import { createAgent } from "klaus-agent";
599
635
  import { Type } from "@sinclair/typebox";
600
636
 
601
637
  const agent = createAgent({
@@ -638,6 +674,7 @@ const agent = createAgent({
638
674
 
639
675
  wire: { bufferSize: 100 },
640
676
  backgroundTasks: { factories: { build: buildTaskFactory } },
677
+ planning: { readOnlyTools: ["read_file", "search"], nagAfterRounds: 3 },
641
678
 
642
679
  hooks: {
643
680
  transformContext: async (msgs) => msgs,
@@ -680,6 +717,7 @@ await agent.dispose();
680
717
  | `mcp` | `{ servers, clientFactory }` | 否 | — | MCP 服务器配置 |
681
718
  | `wire` | `{ bufferSize }` | 否 | `{ bufferSize: 0 }` | 事件通道配置 |
682
719
  | `backgroundTasks` | `{ factories }` | 否 | — | 后台任务工厂 |
720
+ | `planning` | `PlanningConfig` | 否 | — | 两阶段规划,含 todo 管理和 nag 提醒 |
683
721
  | `provider` | `LLMProvider` | 否 | — | 自定义 LLM Provider(绕过注册中心) |
684
722
 
685
723
  ### `Agent` 实例
@@ -703,6 +741,7 @@ await agent.dispose();
703
741
  | `mcpAdapter` | `MCPAdapter`(需配置 MCP)。 |
704
742
  | `wire` | `Wire` 事件通道(始终可用)。 |
705
743
  | `backgroundTasks` | `BackgroundTaskManager`(需配置)。 |
744
+ | `planning` | `PlanningManager`(需配置)。 |
706
745
  | `setSystemPrompt(prompt)` | 更新系统提示词。 |
707
746
  | `setModel(model)` | 更新模型配置。 |
708
747
  | `setTools(tools)` | 替换工具(运行中不可调用)。 |
@@ -1,6 +1,8 @@
1
- import type { AgentMessage } from "../types.js";
1
+ import type { AgentMessage, Message } from "../types.js";
2
2
  import type { CutPointResult } from "./types.js";
3
3
  export declare function estimateTokens(messages: AgentMessage[]): number;
4
4
  export declare function shouldCompact(contextTokens: number, maxContextTokens: number, reserveTokens: number): boolean;
5
5
  export declare function findCutPoint(messages: AgentMessage[], keepRecentTokens: number): CutPointResult;
6
+ /** Replace old tool_result content with `[Previous: used {toolName}]`, keeping the most recent N intact. */
7
+ export declare function microCompact(messages: Message[], keepRecent: number): Message[];
6
8
  export declare function messagesToText(messages: AgentMessage[]): string;
@@ -79,6 +79,40 @@ export function findCutPoint(messages, keepRecentTokens) {
79
79
  "role" in messages[cutIndex - 1] && messages[cutIndex - 1].role === "assistant";
80
80
  return { firstKeptIndex: cutIndex, isSplitTurn };
81
81
  }
82
+ /** Replace old tool_result content with `[Previous: used {toolName}]`, keeping the most recent N intact. */
83
+ export function microCompact(messages, keepRecent) {
84
+ const toolResultIndices = [];
85
+ for (let i = 0; i < messages.length; i++) {
86
+ if (messages[i].role === "tool_result") {
87
+ toolResultIndices.push(i);
88
+ }
89
+ }
90
+ if (toolResultIndices.length <= keepRecent)
91
+ return messages;
92
+ const toReplace = toolResultIndices.slice(0, -keepRecent);
93
+ const result = [...messages];
94
+ for (const idx of toReplace) {
95
+ const msg = result[idx];
96
+ let toolName = "tool";
97
+ for (let j = idx - 1; j >= 0; j--) {
98
+ const prev = result[j];
99
+ if (prev.role === "assistant") {
100
+ const call = prev.content.find((b) => b.type === "tool_call" && b.id === msg.toolCallId);
101
+ if (call) {
102
+ toolName = call.name;
103
+ break;
104
+ }
105
+ }
106
+ }
107
+ result[idx] = {
108
+ role: "tool_result",
109
+ toolCallId: msg.toolCallId,
110
+ content: `[Previous: used ${toolName}]`,
111
+ ...(msg.isError && { isError: msg.isError }),
112
+ };
113
+ }
114
+ return result;
115
+ }
82
116
  export function messagesToText(messages) {
83
117
  const parts = [];
84
118
  for (const msg of messages) {
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/compaction/compaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/compaction/compaction.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export interface CompactionConfig {
4
4
  keepRecentTokens?: number;
5
5
  maxContextTokens?: number;
6
6
  customSummarizer?: CompactionSummarizer;
7
+ /** Number of recent tool results to keep intact during micro compaction. Default: 3. */
8
+ keepRecentToolResults?: number;
7
9
  }
8
10
  export interface CompactionSummarizer {
9
11
  summarize(messages: CompactionInput[], previousSummary?: string): Promise<string>;
@@ -7,6 +7,7 @@ import type { CheckpointManager } from "../checkpoint/checkpoint-manager.js";
7
7
  import type { InjectionManager } from "../injection/injection-manager.js";
8
8
  import type { ExtensionRunner } from "../extensions/runner.js";
9
9
  import type { CompactionConfig } from "../compaction/types.js";
10
+ import type { PlanningManager } from "../planning/planning-manager.js";
10
11
  export interface AgentLoopConfig {
11
12
  provider: LLMProvider;
12
13
  modelId: string;
@@ -33,6 +34,7 @@ export interface AgentLoopConfig {
33
34
  compaction?: CompactionConfig & {
34
35
  summarize?: (messages: AgentMessage[]) => Promise<string>;
35
36
  };
37
+ planningManager?: PlanningManager;
36
38
  modelCost?: ModelCost;
37
39
  }
38
40
  export declare function runAgentLoop(initialMessages: AgentMessage[], config: AgentLoopConfig): Promise<AgentMessage[]>;
@@ -1,7 +1,8 @@
1
1
  // Agent loop — nested while loop with full integration
2
2
  // session, compaction, checkpoint, injection, extension all wired in
3
+ import { PLANNING_TOOL_NAMES } from "../planning/types.js";
3
4
  import { executeToolCalls } from "../tools/executor.js";
4
- import { estimateTokens, shouldCompact, findCutPoint } from "../compaction/compaction.js";
5
+ import { estimateTokens, shouldCompact, findCutPoint, microCompact } from "../compaction/compaction.js";
5
6
  import { normalizeHistory } from "../injection/history-normalizer.js";
6
7
  import { calculateCost } from "../providers/shared.js";
7
8
  function defaultConvertToLlm(messages) {
@@ -45,6 +46,7 @@ export async function runAgentLoop(initialMessages, config) {
45
46
  : config.tools;
46
47
  // Mutable copies of config values that before_agent_start can override
47
48
  let { modelId, systemPrompt, thinkingLevel } = config;
49
+ const keepRecentToolResults = compaction?.keepRecentToolResults ?? 3;
48
50
  // --- before_agent_start: let extensions modify agent config ---
49
51
  if (extensionRunner) {
50
52
  const result = await extensionRunner.emitBeforeAgentStart({
@@ -169,8 +171,15 @@ export async function runAgentLoop(initialMessages, config) {
169
171
  if (config.capabilities?.vision === false) {
170
172
  llmMessages = stripImages(llmMessages);
171
173
  }
174
+ // --- Micro compaction: shorten old tool results ---
175
+ llmMessages = microCompact(llmMessages, keepRecentToolResults);
176
+ // --- Phase-aware tool filtering ---
177
+ let visibleTools = allTools;
178
+ if (config.planningManager?.phase === "planning" && config.planningManager.allowedInPlanning.size > 2) {
179
+ visibleTools = allTools.filter((t) => config.planningManager.allowedInPlanning.has(t.name));
180
+ }
172
181
  // --- Stream LLM response ---
173
- const toolDefs = toolsToDefinitions(allTools);
182
+ const toolDefs = toolsToDefinitions(visibleTools);
174
183
  let requestOptions = {
175
184
  model: modelId,
176
185
  systemPrompt,
@@ -236,7 +245,7 @@ export async function runAgentLoop(initialMessages, config) {
236
245
  const toolResults = [];
237
246
  if (toolCalls.length > 0) {
238
247
  const results = await executeToolCalls(toolCalls, {
239
- tools: allTools,
248
+ tools: visibleTools,
240
249
  mode: config.toolExecution,
241
250
  approval: config.approval,
242
251
  agentName: config.agentName,
@@ -275,6 +284,13 @@ export async function runAgentLoop(initialMessages, config) {
275
284
  for (const rm of resultMessages) {
276
285
  await sessionManager?.appendMessage(rm);
277
286
  }
287
+ // --- Planning: tick round counter (reset happens inside updateTodos when todo tool is called) ---
288
+ if (config.planningManager) {
289
+ const calledTodo = toolCalls.some((tc) => tc.name === PLANNING_TOOL_NAMES.todo);
290
+ if (!calledTodo) {
291
+ config.planningManager.tickRound();
292
+ }
293
+ }
278
294
  hasMoreWork = true;
279
295
  }
280
296
  onEvent({ type: "turn_end", message: assistantMessage, toolResults });
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/core/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/core/agent-loop.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import type { SubagentConfig } from "../multi-agent/types.js";
11
11
  import type { SkillSource } from "../skills/types.js";
12
12
  import type { MCPServerConfig, MCPClient } from "../tools/mcp-adapter.js";
13
13
  import type { TaskFactory } from "../background/types.js";
14
+ import type { PlanningConfig } from "../planning/types.js";
14
15
  import { SessionManager } from "../session/session-manager.js";
15
16
  import { CheckpointManager } from "../checkpoint/checkpoint-manager.js";
16
17
  import { InjectionManager } from "../injection/injection-manager.js";
@@ -19,6 +20,7 @@ import { LaborMarket } from "../multi-agent/labor-market.js";
19
20
  import { MCPAdapter } from "../tools/mcp-adapter.js";
20
21
  import { Wire } from "../wire/wire.js";
21
22
  import { BackgroundTaskManager } from "../background/task-manager.js";
23
+ import { PlanningManager } from "../planning/planning-manager.js";
22
24
  export interface AgentConfig {
23
25
  model: ModelConfig;
24
26
  systemPrompt: string | (() => string | Promise<string>);
@@ -47,6 +49,7 @@ export interface AgentConfig {
47
49
  backgroundTasks?: {
48
50
  factories?: Record<string, TaskFactory>;
49
51
  };
52
+ planning?: PlanningConfig;
50
53
  }
51
54
  export declare class Agent {
52
55
  private _state;
@@ -67,6 +70,7 @@ export declare class Agent {
67
70
  private _mcpAdapter;
68
71
  private _wire;
69
72
  private _backgroundTaskManager;
73
+ private _planningManager;
70
74
  private _initialized;
71
75
  constructor(config: AgentConfig);
72
76
  prompt(input: string | AgentMessage | AgentMessage[]): Promise<AgentMessage[]>;
@@ -85,6 +89,7 @@ export declare class Agent {
85
89
  get mcpAdapter(): MCPAdapter | undefined;
86
90
  get wire(): Wire;
87
91
  get backgroundTasks(): BackgroundTaskManager | undefined;
92
+ get planning(): PlanningManager | undefined;
88
93
  setSystemPrompt(prompt: string): void;
89
94
  setModel(model: ModelConfig): void;
90
95
  setTools(tools: AgentTool[]): void;