open-agents-ai 0.187.525 → 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 +84 -62
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -525987,20 +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.
|
|
525991
|
-
//
|
|
525992
|
-
//
|
|
525993
|
-
//
|
|
525994
|
-
//
|
|
525995
|
-
//
|
|
525996
|
-
//
|
|
525997
|
-
//
|
|
525998
|
-
//
|
|
525999
|
-
//
|
|
526000
|
-
//
|
|
526001
|
-
//
|
|
526002
|
-
//
|
|
526003
|
-
|
|
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;
|
|
526004
526008
|
// MEM_PATH item #9: adaptive retrieval cache. When the (goalHash, recent-tool-sig)
|
|
526005
526009
|
// hasn't changed since last retrieval, skip the PPR call entirely and reuse
|
|
526006
526010
|
// the previous memoryLines.
|
|
@@ -526490,7 +526494,7 @@ Your hypotheses MUST address this specific error, not generic causes.
|
|
|
526490
526494
|
return;
|
|
526491
526495
|
this._reg61CooldownUntilTurn = turn + REG61_COOLDOWN;
|
|
526492
526496
|
if (process.env["OA_DISABLE_REG61_COERCE"] !== "1") {
|
|
526493
|
-
this.
|
|
526497
|
+
this._reg61PerpetualGateActive = true;
|
|
526494
526498
|
}
|
|
526495
526499
|
const _gapDesc = this._lastFileWriteTurn < 0 ? `no creative edits yet this run` : `${turn - this._lastFileWriteTurn} turns since last creative edit (turn ${this._lastFileWriteTurn})`;
|
|
526496
526500
|
const reg61Msg = `[FIRST-EDIT NUDGE — REG-61]
|
|
@@ -528330,7 +528334,7 @@ Respond with your assessment, then take action.`;
|
|
|
528330
528334
|
this._fileWriteTimestamps = [];
|
|
528331
528335
|
this._aborting = false;
|
|
528332
528336
|
this._reg61CooldownUntilTurn = -1;
|
|
528333
|
-
this.
|
|
528337
|
+
this._reg61PerpetualGateActive = false;
|
|
528334
528338
|
if (!globalThis.__oa_rca1_sigterm_installed) {
|
|
528335
528339
|
globalThis.__oa_rca1_sigterm_installed = true;
|
|
528336
528340
|
const _sigtermHandler = () => {
|
|
@@ -530365,52 +530369,70 @@ ${memoryLines.join("\n")}`
|
|
|
530365
530369
|
"batch_edit",
|
|
530366
530370
|
"file_patch"
|
|
530367
530371
|
]);
|
|
530368
|
-
|
|
530369
|
-
|
|
530370
|
-
|
|
530371
|
-
|
|
530372
|
-
|
|
530373
|
-
|
|
530374
|
-
|
|
530375
|
-
|
|
530376
|
-
|
|
530377
|
-
|
|
530378
|
-
|
|
530379
|
-
|
|
530380
|
-
|
|
530381
|
-
|
|
530382
|
-
|
|
530383
|
-
|
|
530384
|
-
|
|
530385
|
-
|
|
530386
|
-
|
|
530387
|
-
|
|
530388
|
-
|
|
530389
|
-
|
|
530390
|
-
|
|
530391
|
-
|
|
530392
|
-
|
|
530393
|
-
|
|
530394
|
-
|
|
530395
|
-
|
|
530396
|
-
|
|
530397
|
-
|
|
530398
|
-
|
|
530399
|
-
|
|
530400
|
-
|
|
530401
|
-
|
|
530402
|
-
|
|
530403
|
-
|
|
530404
|
-
|
|
530405
|
-
|
|
530406
|
-
|
|
530407
|
-
|
|
530408
|
-
|
|
530409
|
-
|
|
530410
|
-
|
|
530411
|
-
|
|
530412
|
-
|
|
530413
|
-
|
|
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 };
|
|
530414
530436
|
}
|
|
530415
530437
|
const PROGRESS_GATE_BYPASS_TOOLS = /* @__PURE__ */ new Set([
|
|
530416
530438
|
"todo_write",
|
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