open-agents-ai 0.187.250 → 0.187.252

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 (2) hide show
  1. package/dist/index.js +25 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -273043,6 +273043,28 @@ Do NOT re-run it. Use the result you already have and proceed to the next step.`
273043
273043
  break;
273044
273044
  }
273045
273045
  }
273046
+ {
273047
+ const recentCalls = this._littlemanToolOutcomes.slice(-5);
273048
+ if (recentCalls.length >= 3) {
273049
+ let consecutiveShortResults = 0;
273050
+ for (let i2 = recentCalls.length - 1; i2 >= 0; i2--) {
273051
+ const o2 = recentCalls[i2];
273052
+ if (o2.succeeded && o2.preview.length <= 10) {
273053
+ consecutiveShortResults++;
273054
+ } else {
273055
+ break;
273056
+ }
273057
+ }
273058
+ if (consecutiveShortResults >= 3) {
273059
+ this.pendingUserMessages.push(`[LITTLEMAN] You have sent ${consecutiveShortResults} consecutive outputs without reading any input. In an interactive session, you MUST alternate: receive input, then respond, then receive again. STOP sending and call your input/listening tool NOW to hear what the other side said.`);
273060
+ this.emit({
273061
+ type: "status",
273062
+ content: `Littleman: blocked runaway output (${consecutiveShortResults} consecutive sends without receive)`,
273063
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
273064
+ });
273065
+ }
273066
+ }
273067
+ }
273046
273068
  const succCount = this._littlemanToolOutcomes.filter((o2) => o2.succeeded).length;
273047
273069
  const failCount = this._littlemanToolOutcomes.filter((o2) => !o2.succeeded).length;
273048
273070
  this.emit({
@@ -327040,8 +327062,8 @@ function createTaskCompleteTool(modelTier) {
327040
327062
  if (_interactiveSessionActive) {
327041
327063
  return {
327042
327064
  success: false,
327043
- output: "",
327044
- error: `task_complete BLOCKED — interactive session still active. ${_interactiveSessionReason} You MUST continue the interaction loop until the session ends. Do NOT call task_complete until you receive a termination signal (e.g. "ended", "disconnected", "closed", SESSION_ACTIVE=false). Resume the loop NOW.`
327065
+ output: `SESSION STILL ACTIVE. Call your next interaction tool NOW. Do NOT produce text — call a tool immediately to continue the session.`,
327066
+ error: `task_complete BLOCKED — interactive session still active. ${_interactiveSessionReason} You MUST continue the interaction loop until the session ends. Do NOT call task_complete until you receive a termination signal (e.g. "ended", "disconnected", "closed", SESSION_ACTIVE=false). YOUR NEXT ACTION: call the listening/polling tool to continue the session.`
327045
327067
  };
327046
327068
  }
327047
327069
  try {
@@ -327061,7 +327083,7 @@ function createTaskCompleteTool(modelTier) {
327061
327083
  error: `task_complete BLOCKED — ${incomplete.length} todo item(s) still incomplete. You must either:
327062
327084
  1. Continue working on the remaining items, OR
327063
327085
  2. If they're actually done, call todo_write with status='completed' for each one, THEN call task_complete again.
327064
- 3. If you are in an interactive session (call, chat, monitoring), RESUME THE LOOP — do not stall.
327086
+ 3. If you are in an interactive session (call, chat, monitoring), RESUME THE LOOP — call your next interaction tool NOW.
327065
327087
 
327066
327088
  Incomplete items:
327067
327089
  ${incompleteList}${more}`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.250",
3
+ "version": "0.187.252",
4
4
  "description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",