hackwriter 0.0.2 → 0.0.4

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.
Files changed (133) hide show
  1. package/dist/agent/Agent.d.ts +1 -1
  2. package/dist/agent/Agent.d.ts.map +1 -1
  3. package/dist/agent/AgentExecutor.d.ts +17 -4
  4. package/dist/agent/AgentExecutor.d.ts.map +1 -1
  5. package/dist/agent/AgentExecutor.js +166 -84
  6. package/dist/agent/AgentExecutor.js.map +1 -1
  7. package/dist/agent/AgentTypes.d.ts +33 -0
  8. package/dist/agent/AgentTypes.d.ts.map +1 -0
  9. package/dist/agent/AgentTypes.js +13 -0
  10. package/dist/agent/AgentTypes.js.map +1 -0
  11. package/dist/agent/ApprovalManager.d.ts +26 -3
  12. package/dist/agent/ApprovalManager.d.ts.map +1 -1
  13. package/dist/agent/ApprovalManager.js +62 -27
  14. package/dist/agent/ApprovalManager.js.map +1 -1
  15. package/dist/agent/ApprovalProvider.d.ts +21 -0
  16. package/dist/agent/ApprovalProvider.d.ts.map +1 -0
  17. package/dist/agent/ApprovalProvider.js +2 -0
  18. package/dist/agent/ApprovalProvider.js.map +1 -0
  19. package/dist/agent/CompactionPrompt.d.ts +12 -0
  20. package/dist/agent/CompactionPrompt.d.ts.map +1 -0
  21. package/dist/agent/CompactionPrompt.js +23 -0
  22. package/dist/agent/CompactionPrompt.js.map +1 -0
  23. package/dist/agent/ContextCompressor.d.ts +2 -2
  24. package/dist/agent/ContextCompressor.d.ts.map +1 -1
  25. package/dist/agent/ContextCompressor.js +14 -22
  26. package/dist/agent/ContextCompressor.js.map +1 -1
  27. package/dist/agent/ConversationContext.d.ts +2 -2
  28. package/dist/agent/ConversationContext.d.ts.map +1 -1
  29. package/dist/agent/ConversationContext.js +40 -154
  30. package/dist/agent/ConversationContext.js.map +1 -1
  31. package/dist/agent/ModelFactory.d.ts +2 -2
  32. package/dist/agent/ModelFactory.d.ts.map +1 -1
  33. package/dist/agent/ModelFactory.js +14 -7
  34. package/dist/agent/ModelFactory.js.map +1 -1
  35. package/dist/cli.js +13 -25
  36. package/dist/cli.js.map +1 -1
  37. package/dist/commands/setup.d.ts.map +1 -1
  38. package/dist/commands/setup.js +65 -41
  39. package/dist/commands/setup.js.map +1 -1
  40. package/dist/config/ConfigSchema.d.ts +5 -3
  41. package/dist/config/ConfigSchema.d.ts.map +1 -1
  42. package/dist/config/ConfigSchema.js +12 -9
  43. package/dist/config/ConfigSchema.js.map +1 -1
  44. package/dist/config/Configuration.d.ts +2 -2
  45. package/dist/config/Configuration.d.ts.map +1 -1
  46. package/dist/config/ConfigurationLoader.d.ts +1 -1
  47. package/dist/config/ConfigurationLoader.d.ts.map +1 -1
  48. package/dist/config/ConfigurationLoader.js +4 -4
  49. package/dist/config/ConfigurationLoader.js.map +1 -1
  50. package/dist/messaging/MessageBus.d.ts +1 -1
  51. package/dist/messaging/MessageBus.d.ts.map +1 -1
  52. package/dist/messaging/MessageTypes.d.ts +2 -2
  53. package/dist/messaging/MessageTypes.d.ts.map +1 -1
  54. package/dist/session/SessionManager.js +1 -1
  55. package/dist/session/SessionManager.js.map +1 -1
  56. package/dist/tools/base/Tool.d.ts +2 -1
  57. package/dist/tools/base/Tool.d.ts.map +1 -1
  58. package/dist/tools/base/Tool.js.map +1 -1
  59. package/dist/tools/base/ToolRegistry.d.ts +1 -1
  60. package/dist/tools/base/ToolRegistry.d.ts.map +1 -1
  61. package/dist/tools/file/ListFilesTool.d.ts +1 -1
  62. package/dist/tools/file/ListFilesTool.d.ts.map +1 -1
  63. package/dist/tools/file/ListFilesTool.js +1 -1
  64. package/dist/tools/file/ListFilesTool.js.map +1 -1
  65. package/dist/tools/file/ReadFileTool.d.ts +1 -1
  66. package/dist/tools/file/ReadFileTool.d.ts.map +1 -1
  67. package/dist/tools/file/ReadFileTool.js +1 -1
  68. package/dist/tools/file/ReadFileTool.js.map +1 -1
  69. package/dist/tools/file/WriteFileTool.d.ts +2 -2
  70. package/dist/tools/file/WriteFileTool.d.ts.map +1 -1
  71. package/dist/tools/file/WriteFileTool.js +1 -1
  72. package/dist/tools/file/WriteFileTool.js.map +1 -1
  73. package/dist/tools/file/index.d.ts +3 -3
  74. package/dist/tools/file/index.d.ts.map +1 -1
  75. package/dist/tools/file/index.js +3 -3
  76. package/dist/tools/file/index.js.map +1 -1
  77. package/dist/tools/hackmd/CreateNoteTool.d.ts +3 -3
  78. package/dist/tools/hackmd/CreateNoteTool.d.ts.map +1 -1
  79. package/dist/tools/hackmd/CreateNoteTool.js +3 -3
  80. package/dist/tools/hackmd/CreateNoteTool.js.map +1 -1
  81. package/dist/tools/hackmd/DeleteNoteTool.d.ts +2 -2
  82. package/dist/tools/hackmd/DeleteNoteTool.d.ts.map +1 -1
  83. package/dist/tools/hackmd/DeleteNoteTool.js +2 -2
  84. package/dist/tools/hackmd/DeleteNoteTool.js.map +1 -1
  85. package/dist/tools/hackmd/ExportNoteTool.d.ts +1 -1
  86. package/dist/tools/hackmd/ExportNoteTool.d.ts.map +1 -1
  87. package/dist/tools/hackmd/ExportNoteTool.js +1 -1
  88. package/dist/tools/hackmd/ExportNoteTool.js.map +1 -1
  89. package/dist/tools/hackmd/GetHistoryTool.d.ts +1 -1
  90. package/dist/tools/hackmd/GetHistoryTool.d.ts.map +1 -1
  91. package/dist/tools/hackmd/GetHistoryTool.js +1 -1
  92. package/dist/tools/hackmd/GetHistoryTool.js.map +1 -1
  93. package/dist/tools/hackmd/GetUserInfoTool.d.ts +2 -2
  94. package/dist/tools/hackmd/GetUserInfoTool.d.ts.map +1 -1
  95. package/dist/tools/hackmd/GetUserInfoTool.js +10 -10
  96. package/dist/tools/hackmd/GetUserInfoTool.js.map +1 -1
  97. package/dist/tools/hackmd/ListNotesTool.d.ts +1 -1
  98. package/dist/tools/hackmd/ListNotesTool.d.ts.map +1 -1
  99. package/dist/tools/hackmd/ListNotesTool.js +3 -3
  100. package/dist/tools/hackmd/ListNotesTool.js.map +1 -1
  101. package/dist/tools/hackmd/ListTeamsTool.d.ts +1 -1
  102. package/dist/tools/hackmd/ListTeamsTool.d.ts.map +1 -1
  103. package/dist/tools/hackmd/ListTeamsTool.js +1 -1
  104. package/dist/tools/hackmd/ListTeamsTool.js.map +1 -1
  105. package/dist/tools/hackmd/ReadNoteTool.d.ts +1 -1
  106. package/dist/tools/hackmd/ReadNoteTool.d.ts.map +1 -1
  107. package/dist/tools/hackmd/ReadNoteTool.js +2 -2
  108. package/dist/tools/hackmd/ReadNoteTool.js.map +1 -1
  109. package/dist/tools/hackmd/SearchNotesTool.d.ts +1 -1
  110. package/dist/tools/hackmd/SearchNotesTool.d.ts.map +1 -1
  111. package/dist/tools/hackmd/SearchNotesTool.js +1 -1
  112. package/dist/tools/hackmd/SearchNotesTool.js.map +1 -1
  113. package/dist/tools/hackmd/UpdateNoteTool.d.ts +2 -2
  114. package/dist/tools/hackmd/UpdateNoteTool.d.ts.map +1 -1
  115. package/dist/tools/hackmd/UpdateNoteTool.js +2 -2
  116. package/dist/tools/hackmd/UpdateNoteTool.js.map +1 -1
  117. package/dist/tools/hackmd/errorHandler.d.ts +1 -1
  118. package/dist/tools/hackmd/errorHandler.d.ts.map +1 -1
  119. package/dist/tools/hackmd/errorHandler.js +1 -1
  120. package/dist/tools/hackmd/errorHandler.js.map +1 -1
  121. package/dist/tools/hackmd/index.d.ts +10 -10
  122. package/dist/tools/hackmd/index.d.ts.map +1 -1
  123. package/dist/tools/hackmd/index.js +10 -10
  124. package/dist/tools/hackmd/index.js.map +1 -1
  125. package/dist/ui/shell/CommandRegistry.d.ts +1 -1
  126. package/dist/ui/shell/CommandRegistry.d.ts.map +1 -1
  127. package/dist/ui/shell/InteractiveShell.d.ts +1 -1
  128. package/dist/ui/shell/InteractiveShell.d.ts.map +1 -1
  129. package/dist/ui/shell/InteractiveShell.js +4 -4
  130. package/dist/ui/shell/InteractiveShell.js.map +1 -1
  131. package/dist/ui/shell/OutputRenderer.d.ts +1 -1
  132. package/dist/ui/shell/OutputRenderer.d.ts.map +1 -1
  133. package/package.json +16 -14
@@ -1,4 +1,4 @@
1
- import type { ToolRegistry } from '../tools/base/ToolRegistry';
1
+ import type { ToolRegistry } from '../tools/base/ToolRegistry.js';
2
2
  export interface Agent {
3
3
  name: string;
4
4
  modelName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../src/agent/Agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC5B"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../src/agent/Agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC5B"}
@@ -1,6 +1,6 @@
1
- import type { LanguageModel } from 'ai';
2
- import type { Agent } from './Agent';
3
- import type { ConversationContext } from './ConversationContext';
1
+ import type { LanguageModel } from "ai";
2
+ import type { Agent } from "./Agent.js";
3
+ import type { ConversationContext } from "./ConversationContext.js";
4
4
  export interface ExecutorStatus {
5
5
  contextUsage: number;
6
6
  tokenCount: number;
@@ -16,13 +16,19 @@ export declare class AgentExecutor {
16
16
  private maxRetriesPerStep;
17
17
  private reservedTokens;
18
18
  private currentStep;
19
+ private consecutiveEmptyMessages;
20
+ private recentToolCalls;
21
+ private readonly MAX_EMPTY_MESSAGES;
22
+ private readonly MAX_SAME_TOOL_REPEATS;
19
23
  constructor(agent: Agent, context: ConversationContext, model: LanguageModel, loopControl?: {
20
24
  maxStepsPerRun?: number;
21
25
  maxRetriesPerStep?: number;
26
+ reservedTokens?: number;
22
27
  });
23
28
  get status(): ExecutorStatus;
24
29
  execute(userInput: string): Promise<void>;
25
30
  private runLoop;
31
+ private handleHalt;
26
32
  private executeStep;
27
33
  private executeTools;
28
34
  private shouldCompressContext;
@@ -31,6 +37,13 @@ export declare class AgentExecutor {
31
37
  private normalizeToolInput;
32
38
  private createAssistantMessage;
33
39
  private createToolResultPart;
34
- private calculateUsageTokens;
40
+ /**
41
+ * Extract text content from a message for stuck detection
42
+ */
43
+ private extractMessageText;
44
+ /**
45
+ * Inject a system/controller message to help agent recover from stuck state
46
+ */
47
+ private injectControllerMessage;
35
48
  }
36
49
  //# sourceMappingURL=AgentExecutor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentExecutor.d.ts","sourceRoot":"","sources":["../../src/agent/AgentExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,IAAI,CAAC;AAGZ,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAMjE,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAqBD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAoB;IAEtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAK;gBAGtB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,aAAa,EACpB,WAAW,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;IAWH,IAAI,MAAM,IAAI,cAAc,CAM3B;IAEK,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAqBjC,OAAO;YA2CP,WAAW;YA2GX,YAAY;IA6D1B,OAAO,CAAC,qBAAqB;YAOf,eAAe;IAc7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,oBAAoB;CAS7B"}
1
+ {"version":3,"file":"AgentExecutor.d.ts","sourceRoot":"","sources":["../../src/agent/AgentExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,IAAI,CAAC;AAGZ,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAQpE,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AA0BD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAoB;IAEtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAK;IAGxB,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAK;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAK;gBAGzC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,aAAa,EACpB,WAAW,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAeH,IAAI,MAAM,IAAI,cAAc,CAM3B;IAEK,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAqBjC,OAAO;IAmDrB,OAAO,CAAC,UAAU;YA2BJ,WAAW;YAgKX,YAAY;IAqE1B,OAAO,CAAC,qBAAqB;YAMf,eAAe;IAa7B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;YACW,uBAAuB;CAQtC"}
@@ -1,7 +1,8 @@
1
- import { jsonSchema, streamText } from 'ai';
2
- import { MessageBus } from '../messaging/MessageBus';
3
- import { ContextCompressor } from './ContextCompressor';
4
- import { Logger } from '../utils/Logger';
1
+ import { jsonSchema, streamText } from "ai";
2
+ import { MessageBus } from "../messaging/MessageBus.js";
3
+ import { ContextCompressor } from "./ContextCompressor.js";
4
+ import { Logger } from "../utils/Logger.js";
5
+ import { stepContinue, stepHalt } from "./AgentTypes.js";
5
6
  export class AgentExecutor {
6
7
  context;
7
8
  agent;
@@ -10,8 +11,13 @@ export class AgentExecutor {
10
11
  compressor;
11
12
  maxSteps;
12
13
  maxRetriesPerStep;
13
- reservedTokens = 50000;
14
+ reservedTokens;
14
15
  currentStep = 0;
16
+ // Stuck detection
17
+ consecutiveEmptyMessages = 0;
18
+ recentToolCalls = [];
19
+ MAX_EMPTY_MESSAGES = 2;
20
+ MAX_SAME_TOOL_REPEATS = 5;
15
21
  constructor(agent, context, model, loopControl) {
16
22
  this.agent = agent;
17
23
  this.context = context;
@@ -20,6 +26,10 @@ export class AgentExecutor {
20
26
  this.compressor = new ContextCompressor(model);
21
27
  this.maxSteps = loopControl?.maxStepsPerRun ?? 100;
22
28
  this.maxRetriesPerStep = loopControl?.maxRetriesPerStep ?? 2;
29
+ // Reserve 25% of context or 50k tokens, whichever is smaller
30
+ this.reservedTokens =
31
+ loopControl?.reservedTokens ??
32
+ Math.min(50000, Math.floor(agent.maxContextSize * 0.25));
23
33
  }
24
34
  get status() {
25
35
  return {
@@ -29,57 +39,81 @@ export class AgentExecutor {
29
39
  };
30
40
  }
31
41
  async execute(userInput) {
32
- Logger.debug('AgentExecutor', 'Starting execution', {
42
+ Logger.debug("AgentExecutor", "Starting execution", {
33
43
  input: userInput.slice(0, 100),
34
- currentTokens: this.context.tokenCount
44
+ currentTokens: this.context.tokenCount,
35
45
  });
36
46
  const userMessage = {
37
- role: 'user',
47
+ role: "user",
38
48
  content: userInput,
39
49
  };
40
50
  await this.context.createCheckpoint();
41
51
  await this.context.addMessage(userMessage);
42
52
  await this.runLoop();
43
- Logger.debug('AgentExecutor', 'Execution completed', {
53
+ Logger.debug("AgentExecutor", "Execution completed", {
44
54
  finalTokens: this.context.tokenCount,
45
- totalSteps: this.currentStep
55
+ totalSteps: this.currentStep,
46
56
  });
47
57
  }
48
58
  async runLoop() {
49
59
  this.currentStep = 1;
60
+ this.consecutiveEmptyMessages = 0;
61
+ this.recentToolCalls = [];
50
62
  while (true) {
51
- Logger.debug('AgentExecutor', `Step ${this.currentStep}/${this.maxSteps}`);
63
+ Logger.debug("AgentExecutor", `Step ${this.currentStep}/${this.maxSteps}`);
52
64
  this.messageBus.publish({
53
- type: 'step_started',
54
- stepNumber: this.currentStep
65
+ type: "step_started",
66
+ stepNumber: this.currentStep,
55
67
  });
56
68
  // Check if context compression needed
57
69
  if (this.shouldCompressContext()) {
58
- Logger.info('AgentExecutor', 'Context compression triggered', {
70
+ Logger.info("AgentExecutor", "Context compression triggered", {
59
71
  currentTokens: this.context.tokenCount,
60
- maxTokens: this.agent.maxContextSize
72
+ maxTokens: this.agent.maxContextSize,
61
73
  });
62
- this.messageBus.publish({ type: 'compression_started' });
74
+ this.messageBus.publish({ type: "compression_started" });
63
75
  await this.compressContext();
64
- this.messageBus.publish({ type: 'compression_completed' });
65
- Logger.info('AgentExecutor', 'Context compression completed', {
66
- newTokenCount: this.context.tokenCount
76
+ this.messageBus.publish({ type: "compression_completed" });
77
+ Logger.info("AgentExecutor", "Context compression completed", {
78
+ newTokenCount: this.context.tokenCount,
67
79
  });
68
80
  }
69
81
  await this.context.createCheckpoint();
70
82
  // Execute single step
71
- const shouldContinue = await this.executeStep();
72
- if (!shouldContinue) {
73
- Logger.debug('AgentExecutor', 'No tool calls - execution finished');
74
- this.messageBus.publish({ type: 'step_completed' });
83
+ const outcome = await this.executeStep();
84
+ if (outcome.kind === "halt") {
85
+ this.handleHalt(outcome.halt);
86
+ this.messageBus.publish({ type: "step_completed" });
75
87
  return;
76
88
  }
77
89
  this.currentStep++;
78
90
  if (this.currentStep > this.maxSteps) {
79
- throw new Error(`Maximum steps (${this.maxSteps}) reached`);
91
+ const halt = { kind: "max_steps" };
92
+ this.handleHalt(halt);
93
+ this.messageBus.publish({ type: "step_completed" });
94
+ return;
80
95
  }
81
96
  }
82
97
  }
98
+ handleHalt(halt) {
99
+ switch (halt.kind) {
100
+ case "done":
101
+ Logger.debug("AgentExecutor", "Execution completed naturally");
102
+ break;
103
+ case "max_steps":
104
+ Logger.warn("AgentExecutor", `Maximum steps (${this.maxSteps}) reached`);
105
+ throw new Error(`Maximum steps (${this.maxSteps}) reached`);
106
+ case "error":
107
+ Logger.error("AgentExecutor", "Execution halted due to error", halt.error);
108
+ throw halt.error;
109
+ case "stuck":
110
+ Logger.warn("AgentExecutor", "Agent appears stuck - halting");
111
+ throw new Error("Agent stuck in loop");
112
+ case "await_user":
113
+ Logger.debug("AgentExecutor", "Waiting for user input");
114
+ break;
115
+ }
116
+ }
83
117
  async executeStep() {
84
118
  const stream = streamText({
85
119
  model: this.model,
@@ -90,36 +124,36 @@ export class AgentExecutor {
90
124
  });
91
125
  const toolCalls = [];
92
126
  const assistantParts = [];
93
- let pendingText = '';
127
+ let pendingText = "";
94
128
  const flushText = () => {
95
129
  if (!pendingText.length) {
96
130
  return;
97
131
  }
98
- assistantParts.push({ type: 'text', text: pendingText });
99
- pendingText = '';
132
+ assistantParts.push({ type: "text", text: pendingText });
133
+ pendingText = "";
100
134
  };
101
135
  try {
102
136
  const streamIterator = stream.fullStream;
103
137
  for await (const chunk of streamIterator) {
104
138
  switch (chunk.type) {
105
- case 'text-delta': {
139
+ case "text-delta": {
106
140
  pendingText += chunk.text;
107
- this.messageBus.publish({ type: 'text_chunk', text: chunk.text });
141
+ this.messageBus.publish({ type: "text_chunk", text: chunk.text });
108
142
  break;
109
143
  }
110
- case 'text-end': {
144
+ case "text-end": {
111
145
  flushText();
112
146
  break;
113
147
  }
114
- case 'tool-input-delta': {
148
+ case "tool-input-delta": {
115
149
  this.messageBus.publish({
116
- type: 'tool_arguments_chunk',
150
+ type: "tool_arguments_chunk",
117
151
  toolCallId: chunk.toolCallId,
118
152
  chunk: chunk.inputTextDelta,
119
153
  });
120
154
  break;
121
155
  }
122
- case 'tool-call': {
156
+ case "tool-call": {
123
157
  flushText();
124
158
  const normalizedInput = this.normalizeToolInput(chunk.input);
125
159
  const toolCall = {
@@ -129,13 +163,13 @@ export class AgentExecutor {
129
163
  };
130
164
  toolCalls.push(toolCall);
131
165
  assistantParts.push({
132
- type: 'tool-call',
166
+ type: "tool-call",
133
167
  toolCallId: chunk.toolCallId,
134
168
  toolName: chunk.toolName,
135
169
  input: normalizedInput,
136
170
  });
137
171
  this.messageBus.publish({
138
- type: 'tool_call_started',
172
+ type: "tool_call_started",
139
173
  toolCall: {
140
174
  id: toolCall.id,
141
175
  name: toolCall.name,
@@ -143,18 +177,21 @@ export class AgentExecutor {
143
177
  });
144
178
  break;
145
179
  }
146
- case 'tool-result': {
180
+ case "tool-result": {
147
181
  flushText();
148
182
  assistantParts.push({
149
- type: 'tool-result',
183
+ type: "tool-result",
150
184
  toolCallId: chunk.toolCallId,
151
185
  toolName: chunk.toolName,
152
186
  output: chunk.output,
153
187
  });
154
188
  break;
155
189
  }
156
- case 'error': {
157
- throw chunk.error instanceof Error ? chunk.error : new Error(String(chunk.error));
190
+ case "error": {
191
+ const error = chunk.error instanceof Error
192
+ ? chunk.error
193
+ : new Error(String(chunk.error));
194
+ return stepHalt({ kind: "error", error });
158
195
  }
159
196
  default:
160
197
  // Ignore other chunk types (start/finish markers, reasoning, sources, etc.)
@@ -162,26 +199,64 @@ export class AgentExecutor {
162
199
  }
163
200
  }
164
201
  }
202
+ catch (error) {
203
+ const err = error instanceof Error ? error : new Error(String(error));
204
+ return stepHalt({ kind: "error", error: err });
205
+ }
165
206
  finally {
166
207
  flushText();
167
208
  }
168
209
  const assistantMessage = this.createAssistantMessage(assistantParts);
169
210
  await this.context.addMessage(assistantMessage);
170
211
  const usage = await stream.usage;
171
- await this.context.updateTokenCount(this.calculateUsageTokens(usage));
212
+ // Use inputTokens as it represents prompt/context size better than totalTokens
213
+ const contextTokens = usage?.inputTokens ?? this.context.tokenCount;
214
+ await this.context.setTokenCount(contextTokens);
215
+ // Check for stuck: consecutive empty messages
216
+ const messageText = this.extractMessageText(assistantMessage);
217
+ if (!messageText.trim() && toolCalls.length === 0) {
218
+ this.consecutiveEmptyMessages++;
219
+ if (this.consecutiveEmptyMessages >= this.MAX_EMPTY_MESSAGES) {
220
+ Logger.warn("AgentExecutor", "Detected consecutive empty messages");
221
+ return stepHalt({ kind: "stuck" });
222
+ }
223
+ }
224
+ else {
225
+ this.consecutiveEmptyMessages = 0;
226
+ }
172
227
  if (toolCalls.length > 0) {
228
+ // Track tool calls for stuck detection
229
+ for (const call of toolCalls) {
230
+ this.recentToolCalls.push(call.name);
231
+ }
232
+ // Keep only last N tool calls
233
+ if (this.recentToolCalls.length > this.MAX_SAME_TOOL_REPEATS) {
234
+ this.recentToolCalls = this.recentToolCalls.slice(-this.MAX_SAME_TOOL_REPEATS);
235
+ }
236
+ // Check if same tool called repeatedly
237
+ if (this.recentToolCalls.length === this.MAX_SAME_TOOL_REPEATS) {
238
+ const allSame = this.recentToolCalls.every((name) => name === this.recentToolCalls[0]);
239
+ if (allSame) {
240
+ Logger.warn("AgentExecutor", `Tool "${this.recentToolCalls[0]}" called ${this.MAX_SAME_TOOL_REPEATS} times in a row`);
241
+ // Inject controller message to help agent recover
242
+ await this.injectControllerMessage(`You've called the tool "${this.recentToolCalls[0]}" ${this.MAX_SAME_TOOL_REPEATS} times in a row. ` +
243
+ `This suggests you may be stuck. Please try a different approach or provide your final answer.`);
244
+ this.recentToolCalls = []; // Reset after intervention
245
+ }
246
+ }
173
247
  const results = await this.executeTools(toolCalls);
174
248
  const toolResultMessage = {
175
- role: 'tool',
176
- content: results.map(result => this.createToolResultPart(result)),
249
+ role: "tool",
250
+ content: results.map((result) => this.createToolResultPart(result)),
177
251
  };
178
252
  await this.context.addMessage(toolResultMessage);
179
- return true;
253
+ return stepContinue();
180
254
  }
181
- return false;
255
+ // No tool calls - execution complete
256
+ return stepHalt({ kind: "done" });
182
257
  }
183
258
  async executeTools(toolCalls) {
184
- Logger.debug('AgentExecutor', `Executing ${toolCalls.length} tool(s): ${toolCalls.map(t => t.name).join(', ')}`);
259
+ Logger.debug("AgentExecutor", `Executing ${toolCalls.length} tool(s): ${toolCalls.map((t) => t.name).join(", ")}`);
185
260
  return await Promise.all(toolCalls.map(async (call) => {
186
261
  const tool = this.agent.toolRegistry.get(call.name);
187
262
  if (!tool) {
@@ -192,7 +267,7 @@ export class AgentExecutor {
192
267
  output: `Tool ${call.name} not found`,
193
268
  };
194
269
  this.messageBus.publish({
195
- type: 'tool_failed',
270
+ type: "tool_failed",
196
271
  toolCallId: call.id,
197
272
  error: errorResult.output,
198
273
  });
@@ -200,9 +275,9 @@ export class AgentExecutor {
200
275
  }
201
276
  try {
202
277
  const result = await tool.call(call.input);
203
- Logger.debug('AgentExecutor', `Tool ${call.name}: ${result.ok ? '' : ''} ${result.brief ?? ''}`);
278
+ Logger.debug("AgentExecutor", `Tool ${call.name}: ${result.ok ? "" : ""} ${result.brief ?? ""}`);
204
279
  this.messageBus.publish({
205
- type: 'tool_completed',
280
+ type: "tool_completed",
206
281
  toolCallId: call.id,
207
282
  result,
208
283
  });
@@ -213,7 +288,7 @@ export class AgentExecutor {
213
288
  };
214
289
  }
215
290
  catch (error) {
216
- Logger.error('AgentExecutor', `Tool ${call.name} failed`, error);
291
+ Logger.error("AgentExecutor", `Tool ${call.name} failed`, error);
217
292
  const errorResult = {
218
293
  toolCallId: call.id,
219
294
  toolName: call.name,
@@ -221,7 +296,7 @@ export class AgentExecutor {
221
296
  output: error instanceof Error ? error.message : String(error),
222
297
  };
223
298
  this.messageBus.publish({
224
- type: 'tool_failed',
299
+ type: "tool_failed",
225
300
  toolCallId: call.id,
226
301
  error: errorResult.output,
227
302
  });
@@ -230,15 +305,14 @@ export class AgentExecutor {
230
305
  }));
231
306
  }
232
307
  shouldCompressContext() {
233
- return (this.context.tokenCount + this.reservedTokens >=
234
- this.agent.maxContextSize);
308
+ return (this.context.tokenCount + this.reservedTokens >= this.agent.maxContextSize);
235
309
  }
236
310
  async compressContext() {
237
- const compressed = await this.compressor.compress(this.context.getHistory(), this.agent.systemPrompt);
311
+ const compressed = await this.compressor.compress(this.context.getHistory());
238
312
  await this.context.revertToCheckpoint(0);
239
313
  await this.context.createCheckpoint();
240
314
  await this.context.addMessage({
241
- role: 'assistant',
315
+ role: "assistant",
242
316
  content: `<system>Previous context compressed:\n${compressed}</system>`,
243
317
  });
244
318
  }
@@ -253,54 +327,62 @@ export class AgentExecutor {
253
327
  return tools;
254
328
  }
255
329
  normalizeToolInput(input) {
256
- if (input && typeof input === 'object' && !Array.isArray(input)) {
330
+ if (input && typeof input === "object" && !Array.isArray(input)) {
257
331
  return input;
258
332
  }
259
333
  return {};
260
334
  }
261
335
  createAssistantMessage(parts) {
262
336
  if (parts.length === 0) {
263
- return { role: 'assistant', content: '' };
337
+ return { role: "assistant", content: "" };
264
338
  }
265
- if (parts.length === 1 && parts[0].type === 'text') {
266
- return { role: 'assistant', content: parts[0].text };
339
+ if (parts.length === 1 && parts[0].type === "text") {
340
+ return { role: "assistant", content: parts[0].text };
267
341
  }
268
- return { role: 'assistant', content: parts };
342
+ return { role: "assistant", content: parts };
269
343
  }
270
344
  createToolResultPart(result) {
345
+ // If tool provides structured json, use it; otherwise use text-based output
346
+ const value = (result.json ?? {
347
+ ok: result.ok,
348
+ output: result.output,
349
+ message: result.message ?? null,
350
+ brief: result.brief ?? null,
351
+ });
271
352
  return {
272
- type: 'tool-result',
353
+ type: "tool-result",
273
354
  toolCallId: result.toolCallId,
274
355
  toolName: result.toolName,
275
356
  output: result.ok
276
- ? {
277
- type: 'json',
278
- value: {
279
- ok: true,
280
- output: result.output,
281
- message: result.message ?? null,
282
- brief: result.brief ?? null,
283
- },
284
- }
285
- : {
286
- type: 'error-json',
287
- value: {
288
- ok: false,
289
- output: result.output,
290
- message: result.message ?? null,
291
- brief: result.brief ?? null,
292
- },
293
- },
357
+ ? { type: "json", value: value }
358
+ : { type: "error-json", value: value },
294
359
  };
295
360
  }
296
- calculateUsageTokens(usage) {
297
- if (!usage) {
298
- return 0;
361
+ /**
362
+ * Extract text content from a message for stuck detection
363
+ */
364
+ extractMessageText(message) {
365
+ if (typeof message.content === "string") {
366
+ return message.content;
299
367
  }
300
- if (typeof usage.totalTokens === 'number') {
301
- return usage.totalTokens;
368
+ if (Array.isArray(message.content)) {
369
+ return message.content
370
+ .filter((part) => part.type === "text")
371
+ .map((part) => part.text)
372
+ .join("");
302
373
  }
303
- return (usage.inputTokens ?? 0) + (usage.outputTokens ?? 0);
374
+ return "";
375
+ }
376
+ /**
377
+ * Inject a system/controller message to help agent recover from stuck state
378
+ */
379
+ async injectControllerMessage(message) {
380
+ const controllerMessage = {
381
+ role: "assistant",
382
+ content: `<system>${message}</system>`,
383
+ };
384
+ await this.context.addMessage(controllerMessage);
385
+ Logger.info("AgentExecutor", "Injected controller message", { message });
304
386
  }
305
387
  }
306
388
  //# sourceMappingURL=AgentExecutor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentExecutor.js","sourceRoot":"","sources":["../../src/agent/AgentExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentExecutor.js","sourceRoot":"","sources":["../../src/agent/AgentExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Halt kinds represent different reasons why agent execution stops
3
+ */
4
+ export type Halt = {
5
+ kind: 'done';
6
+ } | {
7
+ kind: 'max_steps';
8
+ } | {
9
+ kind: 'error';
10
+ error: Error;
11
+ } | {
12
+ kind: 'stuck';
13
+ } | {
14
+ kind: 'await_user';
15
+ };
16
+ /**
17
+ * Step outcome represents result of executing a single agent step
18
+ */
19
+ export type StepOutcome = {
20
+ kind: 'continue';
21
+ } | {
22
+ kind: 'halt';
23
+ halt: Halt;
24
+ };
25
+ /**
26
+ * Creates a continue outcome
27
+ */
28
+ export declare function stepContinue(): StepOutcome;
29
+ /**
30
+ * Creates a halt outcome
31
+ */
32
+ export declare function stepHalt(halt: Halt): StepOutcome;
33
+ //# sourceMappingURL=AgentTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentTypes.d.ts","sourceRoot":"","sources":["../../src/agent/AgentTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjC;;GAEG;AACH,wBAAgB,YAAY,IAAI,WAAW,CAE1C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAEhD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Creates a continue outcome
3
+ */
4
+ export function stepContinue() {
5
+ return { kind: 'continue' };
6
+ }
7
+ /**
8
+ * Creates a halt outcome
9
+ */
10
+ export function stepHalt(halt) {
11
+ return { kind: 'halt', halt };
12
+ }
13
+ //# sourceMappingURL=AgentTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentTypes.js","sourceRoot":"","sources":["../../src/agent/AgentTypes.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAU;IACjC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC"}