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.
@@ -13,6 +13,9 @@ import { LLMSummarizer, agentMessagesToCompactionInput } from "../compaction/sum
13
13
  import { Wire } from "../wire/wire.js";
14
14
  import { BackgroundTaskManager } from "../background/task-manager.js";
15
15
  import { createBackgroundTaskTools } from "../background/tools.js";
16
+ import { PlanningManager } from "../planning/planning-manager.js";
17
+ import { createPlanningTools } from "../planning/tools.js";
18
+ import { PlanningNagProvider } from "../planning/nag-injection.js";
16
19
  import { runAgentLoop } from "./agent-loop.js";
17
20
  export class Agent {
18
21
  _state;
@@ -34,6 +37,7 @@ export class Agent {
34
37
  _mcpAdapter;
35
38
  _wire;
36
39
  _backgroundTaskManager;
40
+ _planningManager;
37
41
  _initialized = false;
38
42
  constructor(config) {
39
43
  this._config = config;
@@ -90,6 +94,10 @@ export class Agent {
90
94
  }
91
95
  });
92
96
  }
97
+ // Planning
98
+ if (config.planning) {
99
+ this._planningManager = new PlanningManager(config.planning);
100
+ }
93
101
  }
94
102
  // --- Public API ---
95
103
  async prompt(input) {
@@ -160,6 +168,9 @@ export class Agent {
160
168
  get backgroundTasks() {
161
169
  return this._backgroundTaskManager;
162
170
  }
171
+ get planning() {
172
+ return this._planningManager;
173
+ }
163
174
  setSystemPrompt(prompt) {
164
175
  this._state.systemPrompt = prompt;
165
176
  }
@@ -262,6 +273,18 @@ export class Agent {
262
273
  const bgTools = createBackgroundTaskTools(this._backgroundTaskManager, this._config.backgroundTasks?.factories);
263
274
  this._state.tools = [...this._state.tools, ...bgTools];
264
275
  }
276
+ // Planning tools + nag injection
277
+ if (this._planningManager) {
278
+ this._state.tools = [...this._state.tools, ...createPlanningTools(this._planningManager)];
279
+ // Register nag provider into injection manager (create one if needed)
280
+ const nagProvider = new PlanningNagProvider(this._planningManager);
281
+ if (this._injectionManager) {
282
+ this._injectionManager.addProvider(nagProvider);
283
+ }
284
+ else {
285
+ this._injectionManager = new InjectionManager([nagProvider]);
286
+ }
287
+ }
265
288
  }
266
289
  _normalizeInput(input) {
267
290
  if (typeof input === "string") {
@@ -333,6 +356,7 @@ export class Agent {
333
356
  injectionManager: this._injectionManager,
334
357
  extensionRunner: this._extensionRunner,
335
358
  compaction: compactionWithSummarizer,
359
+ planningManager: this._planningManager,
336
360
  });
337
361
  this._state.messages = result;
338
362
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -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
  export interface CreateAgentConfig {
15
16
  model: ModelConfig;
16
17
  systemPrompt: string | (() => string | Promise<string>);
@@ -38,6 +39,7 @@ export interface CreateAgentConfig {
38
39
  backgroundTasks?: {
39
40
  factories?: Record<string, TaskFactory>;
40
41
  };
42
+ planning?: PlanningConfig;
41
43
  provider?: LLMProvider;
42
44
  }
43
45
  export declare function createAgent(config: CreateAgentConfig): Agent;
@@ -61,12 +63,15 @@ export { ExtensionRunner } from "./extensions/runner.js";
61
63
  export { discoverSkills } from "./skills/discovery.js";
62
64
  export { loadSkill, renderSkillTemplate } from "./skills/loader.js";
63
65
  export { MCPAdapter } from "./tools/mcp-adapter.js";
64
- export { estimateTokens, shouldCompact, findCutPoint } from "./compaction/compaction.js";
66
+ export { estimateTokens, shouldCompact, findCutPoint, microCompact } from "./compaction/compaction.js";
65
67
  export { calculateCost } from "./providers/shared.js";
66
68
  export { LLMSummarizer } from "./compaction/summarizer.js";
67
69
  export { Wire } from "./wire/wire.js";
68
70
  export { BackgroundTaskManager } from "./background/task-manager.js";
69
71
  export { createBackgroundTaskTools } from "./background/tools.js";
72
+ export { PlanningManager } from "./planning/planning-manager.js";
73
+ export { createPlanningTools } from "./planning/tools.js";
74
+ export { PlanningNagProvider } from "./planning/nag-injection.js";
70
75
  export type { AgentMessage, AgentEvent, AgentState, AgentHooks, ModelConfig, ThinkingLevel, AgentTool, ApprovalConfig, CustomAgentMessages, } from "./types.js";
71
76
  export type { AgentToolResult, ToolExecutionContext, BeforeToolCallContext, BeforeToolCallResult, AfterToolCallContext, AfterToolCallResult, } from "./tools/types.js";
72
77
  export type { Approval, ApprovalRequest, ApprovalResponse, } from "./approval/types.js";
@@ -81,3 +86,5 @@ export type { Skill, SkillSource } from "./skills/types.js";
81
86
  export type { MCPServerConfig, MCPTransport, MCPServerStatus, MCPClient } from "./tools/mcp-adapter.js";
82
87
  export type { WireMessage, WireSubscriber, WireSubscription } from "./wire/types.js";
83
88
  export type { BackgroundTaskStatus, BackgroundTaskInfo, BackgroundTaskHandle, BackgroundTaskEvent, TaskFactory, } from "./background/types.js";
89
+ export type { PlanningConfig, PlanPhase, TodoItem, TodoStatus, } from "./planning/types.js";
90
+ export { PLANNING_TOOL_NAMES } from "./planning/types.js";
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ export function createAgent(config) {
26
26
  mcp: config.mcp,
27
27
  wire: config.wire,
28
28
  backgroundTasks: config.backgroundTasks,
29
+ planning: config.planning,
29
30
  });
30
31
  }
31
32
  // Re-export classes
@@ -49,10 +50,14 @@ export { ExtensionRunner } from "./extensions/runner.js";
49
50
  export { discoverSkills } from "./skills/discovery.js";
50
51
  export { loadSkill, renderSkillTemplate } from "./skills/loader.js";
51
52
  export { MCPAdapter } from "./tools/mcp-adapter.js";
52
- export { estimateTokens, shouldCompact, findCutPoint } from "./compaction/compaction.js";
53
+ export { estimateTokens, shouldCompact, findCutPoint, microCompact } from "./compaction/compaction.js";
53
54
  export { calculateCost } from "./providers/shared.js";
54
55
  export { LLMSummarizer } from "./compaction/summarizer.js";
55
56
  export { Wire } from "./wire/wire.js";
56
57
  export { BackgroundTaskManager } from "./background/task-manager.js";
57
58
  export { createBackgroundTaskTools } from "./background/tools.js";
59
+ export { PlanningManager } from "./planning/planning-manager.js";
60
+ export { createPlanningTools } from "./planning/tools.js";
61
+ export { PlanningNagProvider } from "./planning/nag-injection.js";
62
+ export { PLANNING_TOOL_NAMES } from "./planning/types.js";
58
63
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { DynamicInjectionProvider, DynamicInjection } from "../injection/types.js";
2
+ import type { AgentMessage } from "../types.js";
3
+ import type { PlanningManager } from "./planning-manager.js";
4
+ export declare class PlanningNagProvider implements DynamicInjectionProvider {
5
+ private _manager;
6
+ constructor(_manager: PlanningManager);
7
+ getInjections(_history: AgentMessage[]): Promise<DynamicInjection[]>;
8
+ }
@@ -0,0 +1,21 @@
1
+ // Nag injection provider — reminds model to update todos when it hasn't for N rounds
2
+ export class PlanningNagProvider {
3
+ _manager;
4
+ constructor(_manager) {
5
+ this._manager = _manager;
6
+ }
7
+ async getInjections(_history) {
8
+ if (!this._manager.shouldNag())
9
+ return [];
10
+ // Reset after check so the next nag waits another N rounds.
11
+ // Kept here (not in shouldNag) so shouldNag() stays side-effect-free.
12
+ this._manager.resetRoundCounter();
13
+ return [
14
+ {
15
+ type: "planning-nag",
16
+ content: this._manager.getNagMessage(),
17
+ },
18
+ ];
19
+ }
20
+ }
21
+ //# sourceMappingURL=nag-injection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nag-injection.js","sourceRoot":"","sources":["../../src/planning/nag-injection.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAMrF,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAEjD,KAAK,CAAC,aAAa,CAAC,QAAwB;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAAE,OAAO,EAAE,CAAC;QAE1C,4DAA4D;QAC5D,sEAAsE;QACtE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAElC,OAAO;YACL;gBACE,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;aACvC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import type { TodoItem, TodoStatus, PlanPhase, PlanningConfig } from "./types.js";
2
+ export declare class PlanningManager {
3
+ private _state;
4
+ private _config;
5
+ private _allowedInPlanning;
6
+ constructor(config?: PlanningConfig);
7
+ get phase(): PlanPhase;
8
+ get todos(): readonly Readonly<TodoItem>[];
9
+ get roundsSinceTodoUpdate(): number;
10
+ get config(): Readonly<PlanningConfig>;
11
+ /** Pre-built set of tool names allowed during planning phase. */
12
+ get allowedInPlanning(): ReadonlySet<string>;
13
+ startExecution(): string;
14
+ switchToPlanning(): string;
15
+ updateTodos(items: Array<{
16
+ id: string;
17
+ text: string;
18
+ status: TodoStatus;
19
+ }>): string;
20
+ render(): string;
21
+ /** Call once per agent loop step (after tool execution). */
22
+ tickRound(): void;
23
+ /** Reset the round counter (called when the model updates todos). */
24
+ resetRoundCounter(): void;
25
+ shouldNag(): boolean;
26
+ getNagMessage(): string;
27
+ }
@@ -0,0 +1,109 @@
1
+ // Planning manager — two-phase planning with structured todo tracking
2
+ import { PLANNING_TOOL_NAMES } from "./types.js";
3
+ import { generateId } from "../utils/id.js";
4
+ export class PlanningManager {
5
+ _state;
6
+ _config;
7
+ _allowedInPlanning;
8
+ constructor(config = {}) {
9
+ this._config = config;
10
+ const allowed = new Set(config.readOnlyTools ?? []);
11
+ allowed.add(PLANNING_TOOL_NAMES.todo);
12
+ allowed.add(PLANNING_TOOL_NAMES.planMode);
13
+ this._allowedInPlanning = allowed;
14
+ this._state = {
15
+ phase: "planning",
16
+ todos: [],
17
+ roundsSinceTodoUpdate: 0,
18
+ };
19
+ }
20
+ get phase() {
21
+ return this._state.phase;
22
+ }
23
+ get todos() {
24
+ return this._state.todos;
25
+ }
26
+ get roundsSinceTodoUpdate() {
27
+ return this._state.roundsSinceTodoUpdate;
28
+ }
29
+ get config() {
30
+ return this._config;
31
+ }
32
+ /** Pre-built set of tool names allowed during planning phase. */
33
+ get allowedInPlanning() {
34
+ return this._allowedInPlanning;
35
+ }
36
+ // --- Phase control ---
37
+ startExecution() {
38
+ if (this._state.todos.length === 0) {
39
+ throw new Error("Cannot start execution: no todos defined. Create a plan first.");
40
+ }
41
+ this._state.phase = "executing";
42
+ this.resetRoundCounter();
43
+ return `Switched to execution phase. ${this._state.todos.length} todo(s) to complete.\n\n${this.render()}`;
44
+ }
45
+ switchToPlanning() {
46
+ this._state.phase = "planning";
47
+ this.resetRoundCounter();
48
+ return `Switched to planning phase. Tools restricted to read-only.\n\n${this.render()}`;
49
+ }
50
+ // --- Todo CRUD ---
51
+ updateTodos(items) {
52
+ const max = this._config.maxTodos ?? 50;
53
+ if (items.length > max) {
54
+ throw new Error(`Too many todos: ${items.length} exceeds limit of ${max}.`);
55
+ }
56
+ let inProgressCount = 0;
57
+ const validated = [];
58
+ for (const item of items) {
59
+ const status = item.status ?? "pending";
60
+ if (status === "in_progress")
61
+ inProgressCount++;
62
+ validated.push({
63
+ id: item.id || generateId(),
64
+ text: item.text,
65
+ status,
66
+ });
67
+ }
68
+ if (inProgressCount > 1) {
69
+ throw new Error("Only one todo can be in_progress at a time.");
70
+ }
71
+ this._state.todos = validated;
72
+ this.resetRoundCounter();
73
+ return this.render();
74
+ }
75
+ // --- Render ---
76
+ render() {
77
+ if (this._state.todos.length === 0) {
78
+ return `[phase: ${this._state.phase}] No todos.`;
79
+ }
80
+ const lines = this._state.todos.map((t) => {
81
+ const icon = t.status === "completed" ? "[x]" : t.status === "in_progress" ? "[>]" : "[ ]";
82
+ return `${icon} ${t.id}: ${t.text}`;
83
+ });
84
+ const done = this._state.todos.filter((t) => t.status === "completed").length;
85
+ const total = this._state.todos.length;
86
+ return `[phase: ${this._state.phase}] Progress: ${done}/${total}\n${lines.join("\n")}`;
87
+ }
88
+ // --- Nag tracking ---
89
+ /** Call once per agent loop step (after tool execution). */
90
+ tickRound() {
91
+ this._state.roundsSinceTodoUpdate++;
92
+ }
93
+ /** Reset the round counter (called when the model updates todos). */
94
+ resetRoundCounter() {
95
+ this._state.roundsSinceTodoUpdate = 0;
96
+ }
97
+ shouldNag() {
98
+ if (this._state.phase !== "executing")
99
+ return false;
100
+ if (this._state.todos.length === 0)
101
+ return false;
102
+ const threshold = this._config.nagAfterRounds ?? 3;
103
+ return this._state.roundsSinceTodoUpdate >= threshold;
104
+ }
105
+ getNagMessage() {
106
+ return this._config.nagMessage ?? "<reminder>Update your todos to reflect current progress.</reminder>";
107
+ }
108
+ }
109
+ //# sourceMappingURL=planning-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-manager.js","sourceRoot":"","sources":["../../src/planning/planning-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AgentTool } from "../tools/types.js";
2
+ import type { PlanningManager } from "./planning-manager.js";
3
+ export declare function createPlanningTools(manager: PlanningManager): AgentTool[];
@@ -0,0 +1,50 @@
1
+ // Planning tools — todo management + phase switching
2
+ import { Type } from "@sinclair/typebox";
3
+ import { PLANNING_TOOL_NAMES } from "./types.js";
4
+ export function createPlanningTools(manager) {
5
+ return [
6
+ {
7
+ name: PLANNING_TOOL_NAMES.todo,
8
+ label: "Todo",
9
+ description: "Manage your task list. Use this tool to plan work, track progress, and stay on track. " +
10
+ "Only one todo can be in_progress at a time. Update todos frequently to reflect your current state.",
11
+ parameters: Type.Object({
12
+ items: Type.Array(Type.Object({
13
+ id: Type.String({ description: "Unique ID for the todo item." }),
14
+ text: Type.String({ description: "Description of the task." }),
15
+ status: Type.Union([Type.Literal("pending"), Type.Literal("in_progress"), Type.Literal("completed")], { description: "Task status. Only one item can be in_progress at a time." }),
16
+ }), { description: "The full updated todo list (replaces previous list)." }),
17
+ }),
18
+ async execute(_toolCallId, params) {
19
+ const result = manager.updateTodos(params.items);
20
+ return { content: [{ type: "text", text: result }] };
21
+ },
22
+ },
23
+ {
24
+ name: PLANNING_TOOL_NAMES.planMode,
25
+ label: "Plan Mode",
26
+ description: "Switch between planning and execution phases. " +
27
+ "In planning phase, only read-only tools are available — use this time to analyze and create todos. " +
28
+ "In execution phase, all tools are available and nag reminders will prompt you to update todos.",
29
+ parameters: Type.Object({
30
+ action: Type.Union([Type.Literal("start_execution"), Type.Literal("switch_to_planning"), Type.Literal("status")], { description: "Action to perform." }),
31
+ }),
32
+ async execute(_toolCallId, params) {
33
+ let result;
34
+ switch (params.action) {
35
+ case "start_execution":
36
+ result = manager.startExecution();
37
+ break;
38
+ case "switch_to_planning":
39
+ result = manager.switchToPlanning();
40
+ break;
41
+ case "status":
42
+ result = manager.render();
43
+ break;
44
+ }
45
+ return { content: [{ type: "text", text: result }] };
46
+ },
47
+ },
48
+ ];
49
+ }
50
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/planning/tools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,MAAM,UAAU,mBAAmB,CAAC,OAAwB;IAC1D,OAAO;QACL;YACE,IAAI,EAAE,mBAAmB,CAAC,IAAI;YAC9B,KAAK,EAAE,MAAM;YACb,WAAW,EACT,wFAAwF;gBACxF,oGAAoG;YACtG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CACf,IAAI,CAAC,MAAM,CAAC;oBACV,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;oBAChE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;oBAC9D,MAAM,EAAE,IAAI,CAAC,KAAK,CAChB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EACjF,EAAE,WAAW,EAAE,0DAA0D,EAAE,CAC5E;iBACF,CAAC,EACF,EAAE,WAAW,EAAE,sDAAsD,EAAE,CACxE;aACF,CAAC;YACF,KAAK,CAAC,OAAO,CACX,WAAmB,EACnB,MAA0E;gBAE1E,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACvD,CAAC;SACF;QACD;YACE,IAAI,EAAE,mBAAmB,CAAC,QAAQ;YAClC,KAAK,EAAE,WAAW;YAClB,WAAW,EACT,gDAAgD;gBAChD,qGAAqG;gBACrG,gGAAgG;YAClG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,MAAM,EAAE,IAAI,CAAC,KAAK,CAChB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAC7F,EAAE,WAAW,EAAE,oBAAoB,EAAE,CACtC;aACF,CAAC;YACF,KAAK,CAAC,OAAO,CACX,WAAmB,EACnB,MAAuE;gBAEvE,IAAI,MAAc,CAAC;gBACnB,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtB,KAAK,iBAAiB;wBACpB,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;wBAClC,MAAM;oBACR,KAAK,oBAAoB;wBACvB,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;wBACpC,MAAM;oBACR,KAAK,QAAQ;wBACX,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;wBAC1B,MAAM;gBACV,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YACvD,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ export declare const PLANNING_TOOL_NAMES: {
2
+ readonly todo: "todo";
3
+ readonly planMode: "plan_mode";
4
+ };
5
+ export type TodoStatus = "pending" | "in_progress" | "completed";
6
+ export interface TodoItem {
7
+ id: string;
8
+ text: string;
9
+ status: TodoStatus;
10
+ }
11
+ export type PlanPhase = "planning" | "executing";
12
+ export interface PlanningState {
13
+ phase: PlanPhase;
14
+ todos: TodoItem[];
15
+ roundsSinceTodoUpdate: number;
16
+ }
17
+ export interface PlanningConfig {
18
+ /**
19
+ * Tool names allowed during the planning phase (read-only tools).
20
+ * If omitted or empty, all tools are available during planning
21
+ * (phase separation is advisory only via system prompt).
22
+ */
23
+ readOnlyTools?: string[];
24
+ /** Number of rounds without a todo update before injecting a nag reminder. Default: 3. */
25
+ nagAfterRounds?: number;
26
+ /** Custom nag reminder text. */
27
+ nagMessage?: string;
28
+ /** Maximum number of todo items. Default: 50. */
29
+ maxTodos?: number;
30
+ }
@@ -0,0 +1,6 @@
1
+ // Planning module types — two-phase planning + structured todo tracking
2
+ export const PLANNING_TOOL_NAMES = {
3
+ todo: "todo",
4
+ planMode: "plan_mode",
5
+ };
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/planning/types.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;CACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "klaus-agent",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "Universal agent framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  // Compaction logic — token estimation, cut point detection, shouldCompact
2
2
 
3
- import type { AgentMessage, Message } from "../types.js";
3
+ import type { AgentMessage, Message, ToolResultMessage, ToolCallBlock } from "../types.js";
4
4
  import type { CutPointResult } from "./types.js";
5
5
 
6
6
  const CHARS_PER_TOKEN = 4;
@@ -97,6 +97,48 @@ export function findCutPoint(
97
97
  return { firstKeptIndex: cutIndex, isSplitTurn };
98
98
  }
99
99
 
100
+ /** Replace old tool_result content with `[Previous: used {toolName}]`, keeping the most recent N intact. */
101
+ export function microCompact(messages: Message[], keepRecent: number): Message[] {
102
+ const toolResultIndices: number[] = [];
103
+ for (let i = 0; i < messages.length; i++) {
104
+ if (messages[i].role === "tool_result") {
105
+ toolResultIndices.push(i);
106
+ }
107
+ }
108
+
109
+ if (toolResultIndices.length <= keepRecent) return messages;
110
+
111
+ const toReplace = toolResultIndices.slice(0, -keepRecent);
112
+ const result = [...messages];
113
+
114
+ for (const idx of toReplace) {
115
+ const msg = result[idx] as ToolResultMessage;
116
+
117
+ let toolName = "tool";
118
+ for (let j = idx - 1; j >= 0; j--) {
119
+ const prev = result[j];
120
+ if (prev.role === "assistant") {
121
+ const call = prev.content.find(
122
+ (b): b is ToolCallBlock => b.type === "tool_call" && b.id === msg.toolCallId,
123
+ );
124
+ if (call) {
125
+ toolName = call.name;
126
+ break;
127
+ }
128
+ }
129
+ }
130
+
131
+ result[idx] = {
132
+ role: "tool_result",
133
+ toolCallId: msg.toolCallId,
134
+ content: `[Previous: used ${toolName}]`,
135
+ ...(msg.isError && { isError: msg.isError }),
136
+ };
137
+ }
138
+
139
+ return result;
140
+ }
141
+
100
142
  export function messagesToText(messages: AgentMessage[]): string {
101
143
  const parts: string[] = [];
102
144
  for (const msg of messages) {
@@ -6,6 +6,9 @@ export interface CompactionConfig {
6
6
  keepRecentTokens?: number;
7
7
  maxContextTokens?: number;
8
8
  customSummarizer?: CompactionSummarizer;
9
+
10
+ /** Number of recent tool results to keep intact during micro compaction. Default: 3. */
11
+ keepRecentToolResults?: number;
9
12
  }
10
13
 
11
14
  export interface CompactionSummarizer {
@@ -22,8 +22,10 @@ import type { CheckpointManager } from "../checkpoint/checkpoint-manager.js";
22
22
  import type { InjectionManager } from "../injection/injection-manager.js";
23
23
  import type { ExtensionRunner } from "../extensions/runner.js";
24
24
  import type { CompactionConfig } from "../compaction/types.js";
25
+ import type { PlanningManager } from "../planning/planning-manager.js";
26
+ import { PLANNING_TOOL_NAMES } from "../planning/types.js";
25
27
  import { executeToolCalls, type ToolCallResult } from "../tools/executor.js";
26
- import { estimateTokens, shouldCompact, findCutPoint } from "../compaction/compaction.js";
28
+ import { estimateTokens, shouldCompact, findCutPoint, microCompact } from "../compaction/compaction.js";
27
29
  import { normalizeHistory } from "../injection/history-normalizer.js";
28
30
  import { calculateCost } from "../providers/shared.js";
29
31
 
@@ -50,6 +52,7 @@ export interface AgentLoopConfig {
50
52
  injectionManager?: InjectionManager;
51
53
  extensionRunner?: ExtensionRunner;
52
54
  compaction?: CompactionConfig & { summarize?: (messages: AgentMessage[]) => Promise<string> };
55
+ planningManager?: PlanningManager;
53
56
  modelCost?: ModelCost;
54
57
  }
55
58
 
@@ -106,6 +109,7 @@ export async function runAgentLoop(
106
109
 
107
110
  // Mutable copies of config values that before_agent_start can override
108
111
  let { modelId, systemPrompt, thinkingLevel } = config;
112
+ const keepRecentToolResults = compaction?.keepRecentToolResults ?? 3;
109
113
 
110
114
  // --- before_agent_start: let extensions modify agent config ---
111
115
  if (extensionRunner) {
@@ -248,8 +252,17 @@ export async function runAgentLoop(
248
252
  llmMessages = stripImages(llmMessages);
249
253
  }
250
254
 
255
+ // --- Micro compaction: shorten old tool results ---
256
+ llmMessages = microCompact(llmMessages, keepRecentToolResults);
257
+
258
+ // --- Phase-aware tool filtering ---
259
+ let visibleTools = allTools;
260
+ if (config.planningManager?.phase === "planning" && config.planningManager.allowedInPlanning.size > 2) {
261
+ visibleTools = allTools.filter((t) => config.planningManager!.allowedInPlanning.has(t.name));
262
+ }
263
+
251
264
  // --- Stream LLM response ---
252
- const toolDefs = toolsToDefinitions(allTools);
265
+ const toolDefs = toolsToDefinitions(visibleTools);
253
266
  let requestOptions: LLMRequestOptions = {
254
267
  model: modelId,
255
268
  systemPrompt,
@@ -319,7 +332,7 @@ export async function runAgentLoop(
319
332
 
320
333
  if (toolCalls.length > 0) {
321
334
  const results = await executeToolCalls(toolCalls, {
322
- tools: allTools,
335
+ tools: visibleTools,
323
336
  mode: config.toolExecution,
324
337
  approval: config.approval,
325
338
  agentName: config.agentName,
@@ -360,6 +373,14 @@ export async function runAgentLoop(
360
373
  await sessionManager?.appendMessage(rm);
361
374
  }
362
375
 
376
+ // --- Planning: tick round counter (reset happens inside updateTodos when todo tool is called) ---
377
+ if (config.planningManager) {
378
+ const calledTodo = toolCalls.some((tc) => tc.name === PLANNING_TOOL_NAMES.todo);
379
+ if (!calledTodo) {
380
+ config.planningManager.tickRound();
381
+ }
382
+ }
383
+
363
384
  hasMoreWork = true;
364
385
  }
365
386