open-agents-ai 0.187.521 → 0.187.522

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.js CHANGED
@@ -525969,6 +525969,17 @@ var init_agenticRunner = __esm({
525969
525969
  // (daemon timeout). End-of-Task block uses this to set finalStatus="timeout"
525970
525970
  // in the session_gist instead of "abandoned".
525971
525971
  _aborting = false;
525972
+ // REG-61 (root-cause from batch523 stax read-paralysis): one-shot early
525973
+ // nudge that fires ONCE when the agent has read >=5 things without making
525974
+ // a single creative edit. REG-44 catches this class but only at turn≥12
525975
+ // (window of 15) — by then the read habit is entrenched and the agent
525976
+ // ignores the prompt. REG-61 fires at turn >=4 with a much harder
525977
+ // directive: "your next tool call must be a creative edit that creates
525978
+ // a deliverable." This is the SAME shape as the osm-vs-stax breakthrough:
525979
+ // osm's first creative edit at call #48 was package.json (build harness),
525980
+ // stax never made one. Generic across ecosystems — names no specific
525981
+ // file/manifest format, just "deliverable".
525982
+ _reg61Fired = false;
525972
525983
  // MEM_PATH item #9: adaptive retrieval cache. When the (goalHash, recent-tool-sig)
525973
525984
  // hasn't changed since last retrieval, skip the PPR call entirely and reuse
525974
525985
  // the previous memoryLines.
@@ -528178,6 +528189,7 @@ Respond with your assessment, then take action.`;
528178
528189
  this._lastFileWriteTurn = -1;
528179
528190
  this._fileWriteTimestamps = [];
528180
528191
  this._aborting = false;
528192
+ this._reg61Fired = false;
528181
528193
  if (!globalThis.__oa_rca1_sigterm_installed) {
528182
528194
  globalThis.__oa_rca1_sigterm_installed = true;
528183
528195
  const _sigtermHandler = () => {
@@ -528601,6 +528613,49 @@ TASK: ${task}` : task;
528601
528613
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
528602
528614
  });
528603
528615
  }
528616
+ const REG61_TURN_FLOOR = 4;
528617
+ const REG61_MIN_READS = 3;
528618
+ if (!this._reg61Fired && turn >= REG61_TURN_FLOOR && this._lastFileWriteTurn < 0 && process.env["OA_DISABLE_REG61"] !== "1") {
528619
+ const _readClassNames = /* @__PURE__ */ new Set([
528620
+ "file_read",
528621
+ "file_explore",
528622
+ "list_directory",
528623
+ "grep_search",
528624
+ "glob_find",
528625
+ "find_files",
528626
+ "code_neighbors",
528627
+ "repo_map",
528628
+ "codebase_map",
528629
+ "semantic_map",
528630
+ "symbol_search",
528631
+ "todo_read",
528632
+ "memory_read",
528633
+ "memory_search"
528634
+ ]);
528635
+ let _readsThisRun = 0;
528636
+ for (const c9 of toolCallLog) {
528637
+ if (_readClassNames.has(c9.name))
528638
+ _readsThisRun++;
528639
+ }
528640
+ if (_readsThisRun >= REG61_MIN_READS) {
528641
+ this._reg61Fired = true;
528642
+ const reg61Msg = `[FIRST-EDIT NUDGE — REG-61]
528643
+ You have made ${_readsThisRun} read/exploration calls without yet producing a creative edit. Reading is preparation; writing is progress. Successful runs produce their first deliverable EARLY and iterate from there — runs that stay in pure-read mode produce zero deliverables.
528644
+
528645
+ Your NEXT tool call MUST be a creative edit:
528646
+ • file_write — create a new file (preferred for greenfield)
528647
+ • file_edit — modify an existing file
528648
+ • batch_edit / file_patch — multi-line changes
528649
+
528650
+ Pick the SMALLEST concrete deliverable from the spec — typically the project entry point or the file most other modules depend on. Write a stub or skeleton if the full implementation is too large; you can iterate later. Do NOT issue another file_read, list_directory, grep_search, or shell-cat before producing this first edit. After the edit lands, continue normally.`;
528651
+ messages2.push({ role: "system", content: reg61Msg });
528652
+ this.emit({
528653
+ type: "status",
528654
+ content: `REG-61 FIRST-EDIT NUDGE — fired at turn ${turn}; reads_so_far=${_readsThisRun}`,
528655
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
528656
+ });
528657
+ }
528658
+ }
528604
528659
  const REG58_NO_WRITE_BUDGET = 30;
528605
528660
  if (turn > stagnationCooldownUntilTurn && this._lastFileWriteTurn >= 0 && turn - this._lastFileWriteTurn >= REG58_NO_WRITE_BUDGET && process.env["OA_DISABLE_REG58"] !== "1") {
528606
528661
  const gap = turn - this._lastFileWriteTurn;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.521",
3
+ "version": "0.187.522",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "open-agents-ai",
9
- "version": "0.187.521",
9
+ "version": "0.187.522",
10
10
  "hasInstallScript": true,
11
11
  "license": "CC-BY-NC-4.0",
12
12
  "dependencies": {
@@ -7036,9 +7036,9 @@
7036
7036
  }
7037
7037
  },
7038
7038
  "node_modules/yaml": {
7039
- "version": "2.8.3",
7040
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
7041
- "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
7039
+ "version": "2.8.4",
7040
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz",
7041
+ "integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==",
7042
7042
  "license": "ISC",
7043
7043
  "bin": {
7044
7044
  "yaml": "bin.mjs"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.521",
3
+ "version": "0.187.522",
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",