open-agents-ai 0.187.524 → 0.187.526
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 +93 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -525987,6 +525987,24 @@ var init_agenticRunner = __esm({
|
|
|
525987
525987
|
// updated directive text names the 4 valid creative-edit tools and
|
|
525988
525988
|
// explicitly excludes todo_write/memory_write/list_directory.
|
|
525989
525989
|
_reg61CooldownUntilTurn = -1;
|
|
525990
|
+
// BFC-61.G (root-cause from batch529-midi-coerce, 2026-05-03): REG-61
|
|
525991
|
+
// PERPETUAL gate until obeyed. Replaces BFC-61.E's one-shot counter,
|
|
525992
|
+
// which empirically warned but did not change behavior — agents took
|
|
525993
|
+
// the [BLOCKED] tool_result and on the very next turn issued ANOTHER
|
|
525994
|
+
// read (counter cleared, gate inert). batch529 measured 6 blocks across
|
|
525995
|
+
// 7 fires; ZERO of those blocks were followed by a creative edit on
|
|
525996
|
+
// the agent's next turn.
|
|
525997
|
+
//
|
|
525998
|
+
// Semantics: when REG-61 fires, this latch goes true. While true, every
|
|
525999
|
+
// non-bypass tool call gets BLOCKED with a synthetic error result. The
|
|
526000
|
+
// bypass set includes the 4 creative-edit tools plus web_search /
|
|
526001
|
+
// task_complete / ask_user (escape hatches). Any creative edit dispatch
|
|
526002
|
+
// clears the latch ("directive satisfied"). Shell, file_read, todo_*,
|
|
526003
|
+
// grep_search, list_directory etc. are NOT in bypass — those are the
|
|
526004
|
+
// exact patterns batch528/529 agents used to ignore REG-61.
|
|
526005
|
+
//
|
|
526006
|
+
// Kill switch: OA_DISABLE_REG61_COERCE=1 disables BOTH set and enforce.
|
|
526007
|
+
_reg61PerpetualGateActive = false;
|
|
525990
526008
|
// MEM_PATH item #9: adaptive retrieval cache. When the (goalHash, recent-tool-sig)
|
|
525991
526009
|
// hasn't changed since last retrieval, skip the PPR call entirely and reuse
|
|
525992
526010
|
// the previous memoryLines.
|
|
@@ -526475,6 +526493,9 @@ Your hypotheses MUST address this specific error, not generic causes.
|
|
|
526475
526493
|
if (_readsInWindow < REG61_MIN_READS)
|
|
526476
526494
|
return;
|
|
526477
526495
|
this._reg61CooldownUntilTurn = turn + REG61_COOLDOWN;
|
|
526496
|
+
if (process.env["OA_DISABLE_REG61_COERCE"] !== "1") {
|
|
526497
|
+
this._reg61PerpetualGateActive = true;
|
|
526498
|
+
}
|
|
526478
526499
|
const _gapDesc = this._lastFileWriteTurn < 0 ? `no creative edits yet this run` : `${turn - this._lastFileWriteTurn} turns since last creative edit (turn ${this._lastFileWriteTurn})`;
|
|
526479
526500
|
const reg61Msg = `[FIRST-EDIT NUDGE — REG-61]
|
|
526480
526501
|
You have made ${_readsInWindow} read/exploration calls in the trailing window — ${_gapDesc}. Reading is preparation; writing is progress. Runs that stay in pure-read mode produce zero deliverables.
|
|
@@ -528313,6 +528334,7 @@ Respond with your assessment, then take action.`;
|
|
|
528313
528334
|
this._fileWriteTimestamps = [];
|
|
528314
528335
|
this._aborting = false;
|
|
528315
528336
|
this._reg61CooldownUntilTurn = -1;
|
|
528337
|
+
this._reg61PerpetualGateActive = false;
|
|
528316
528338
|
if (!globalThis.__oa_rca1_sigterm_installed) {
|
|
528317
528339
|
globalThis.__oa_rca1_sigterm_installed = true;
|
|
528318
528340
|
const _sigtermHandler = () => {
|
|
@@ -530341,6 +530363,77 @@ ${memoryLines.join("\n")}`
|
|
|
530341
530363
|
});
|
|
530342
530364
|
}
|
|
530343
530365
|
}
|
|
530366
|
+
const REG61_EDIT_TOOLS = /* @__PURE__ */ new Set([
|
|
530367
|
+
"file_write",
|
|
530368
|
+
"file_edit",
|
|
530369
|
+
"batch_edit",
|
|
530370
|
+
"file_patch"
|
|
530371
|
+
]);
|
|
530372
|
+
const REG61_BYPASS_TOOLS = /* @__PURE__ */ new Set([
|
|
530373
|
+
...REG61_EDIT_TOOLS,
|
|
530374
|
+
// Escape hatches: explicitly allowed while gate is active so
|
|
530375
|
+
// the agent can: search for unknown info (web_search), exit
|
|
530376
|
+
// cleanly (task_complete), or escalate to human (ask_user).
|
|
530377
|
+
// shell, file_read, todo_*, grep_search, list_directory are
|
|
530378
|
+
// NOT in bypass — those are the exact patterns batch528/529
|
|
530379
|
+
// agents used to ignore REG-61.
|
|
530380
|
+
"web_search",
|
|
530381
|
+
"task_complete",
|
|
530382
|
+
"ask_user"
|
|
530383
|
+
]);
|
|
530384
|
+
if (REG61_EDIT_TOOLS.has(tc.name) && this._reg61PerpetualGateActive) {
|
|
530385
|
+
this._reg61PerpetualGateActive = false;
|
|
530386
|
+
this.emit({
|
|
530387
|
+
type: "status",
|
|
530388
|
+
content: `REG-61 GATE CLEARED — '${tc.name}' satisfied REG-61 directive at turn ${turn}`,
|
|
530389
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
530390
|
+
});
|
|
530391
|
+
}
|
|
530392
|
+
if (this._reg61PerpetualGateActive && !REG61_BYPASS_TOOLS.has(tc.name) && process.env["OA_DISABLE_REG61_COERCE"] !== "1") {
|
|
530393
|
+
this.emit({
|
|
530394
|
+
type: "tool_call",
|
|
530395
|
+
toolName: tc.name,
|
|
530396
|
+
toolArgs: tc.arguments,
|
|
530397
|
+
turn,
|
|
530398
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
530399
|
+
});
|
|
530400
|
+
const reg61BlockMsg = [
|
|
530401
|
+
`[BLOCKED — REG-61 directive in effect]`,
|
|
530402
|
+
``,
|
|
530403
|
+
`A REG-61 FIRST-EDIT NUDGE was issued earlier and has not yet been satisfied. The directive: your next tool call MUST be a creative edit. You issued '${tc.name}' instead, which is a read/explore/shell call. This call has been BLOCKED.`,
|
|
530404
|
+
``,
|
|
530405
|
+
`Issue EXACTLY ONE of these to clear the directive:`,
|
|
530406
|
+
` • file_write — create a new file`,
|
|
530407
|
+
` • file_edit — modify an existing file (find/replace)`,
|
|
530408
|
+
` • batch_edit — multiple find/replace edits in one call`,
|
|
530409
|
+
` • file_patch — apply a unified diff`,
|
|
530410
|
+
``,
|
|
530411
|
+
`These tools are also allowed while the directive is active (will not be blocked, will not clear the gate):`,
|
|
530412
|
+
` • web_search — for genuinely-unknown APIs / error strings`,
|
|
530413
|
+
` • task_complete — to exit if you cannot make any progress`,
|
|
530414
|
+
` • ask_user — to escalate to human (if available)`,
|
|
530415
|
+
``,
|
|
530416
|
+
`Until you issue a creative edit, ALL of these will be BLOCKED again on every turn: file_read, file_explore, list_directory, grep_search, shell, todo_write, todo_read, memory_read, memory_write, etc. Pick the smallest concrete change that moves work forward — even a partial stub or a single-line edit counts.`
|
|
530417
|
+
].join("\n");
|
|
530418
|
+
this.emit({
|
|
530419
|
+
type: "tool_result",
|
|
530420
|
+
toolName: tc.name,
|
|
530421
|
+
success: false,
|
|
530422
|
+
content: reg61BlockMsg.slice(0, 120),
|
|
530423
|
+
turn,
|
|
530424
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
530425
|
+
});
|
|
530426
|
+
this.emit({
|
|
530427
|
+
type: "status",
|
|
530428
|
+
content: `REG-61 COERCION BLOCK — rejected '${tc.name}' at turn ${turn}; gate stays active until creative edit dispatches`,
|
|
530429
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
530430
|
+
});
|
|
530431
|
+
this._tagSyntheticFailure({
|
|
530432
|
+
mode: "step_repetition",
|
|
530433
|
+
rationale: `REG-61 perpetual coercion block on '${tc.name}' — agent ignored FIRST-EDIT NUDGE`
|
|
530434
|
+
});
|
|
530435
|
+
return { tc, output: reg61BlockMsg };
|
|
530436
|
+
}
|
|
530344
530437
|
const PROGRESS_GATE_BYPASS_TOOLS = /* @__PURE__ */ new Set([
|
|
530345
530438
|
"todo_write",
|
|
530346
530439
|
"todo_read",
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "open-agents-ai",
|
|
3
|
-
"version": "0.187.
|
|
3
|
+
"version": "0.187.526",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "open-agents-ai",
|
|
9
|
-
"version": "0.187.
|
|
9
|
+
"version": "0.187.526",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "CC-BY-NC-4.0",
|
|
12
12
|
"dependencies": {
|
package/package.json
CHANGED