omnius 1.0.702 → 1.0.703
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 +54 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -683247,16 +683247,70 @@ ${related.content}`),
|
|
|
683247
683247
|
"[/ACTIVE USER STEERING]"
|
|
683248
683248
|
].filter(Boolean).join("\n");
|
|
683249
683249
|
}
|
|
683250
|
+
// Upper bound on how many model turns an admitted steering input may be
|
|
683251
|
+
// re-injected while it remains completely un-reconciled. A well-behaved
|
|
683252
|
+
// model reconciles a media/additive follow-up in one turn; anything past
|
|
683253
|
+
// this budget is a stuck reconciliation, not deliberation.
|
|
683254
|
+
static STEERING_RECONCILIATION_TURN_BUDGET = 6;
|
|
683250
683255
|
_markActiveSteeringVisible(turn) {
|
|
683251
683256
|
const active = this._activeSteering;
|
|
683252
683257
|
if (!active || isSteeringScopeResolved(active) || active.visibleRequestTurns.includes(turn))
|
|
683253
683258
|
return;
|
|
683259
|
+
if (this._maybeAutoResolveUnreconciledSteering(active, turn))
|
|
683260
|
+
return;
|
|
683254
683261
|
active.visibleRequestTurns.push(turn);
|
|
683255
683262
|
for (const input of [active.input, ...active.relatedInputs ?? []]) {
|
|
683256
683263
|
input.state = "visible_in_request";
|
|
683257
683264
|
this._emitSteeringLifecycle(input, `visible in model request at turn ${turn}`);
|
|
683258
683265
|
}
|
|
683259
683266
|
}
|
|
683267
|
+
/**
|
|
683268
|
+
* Force-resolve an admitted steering input that the model has left entirely
|
|
683269
|
+
* un-reconciled for longer than the reconciliation turn budget.
|
|
683270
|
+
*
|
|
683271
|
+
* The reconciliation gate keeps a mid-run steering input in front of the
|
|
683272
|
+
* model — re-injecting the ACTIVE USER STEERING slot on every request — until
|
|
683273
|
+
* the model emits a valid [STEERING_RECONCILIATION] decision. When the model
|
|
683274
|
+
* never emits one (observed repeatedly with smaller local models when the
|
|
683275
|
+
* steering is a media/attachment follow-up), the scope stays gated forever:
|
|
683276
|
+
* the slot, including the attachment summary, is re-sent turn after turn and
|
|
683277
|
+
* re-rendered in the Telegram transcript, producing an unbounded "heard
|
|
683278
|
+
* media …" loop and severe context bloat.
|
|
683279
|
+
*
|
|
683280
|
+
* When the budget is exhausted we apply the documented default for
|
|
683281
|
+
* additive/media-only steering (taskDisposition = continue): the input stays
|
|
683282
|
+
* retained as context, the old plan is un-gated, and re-injection stops. A
|
|
683283
|
+
* replacement is never forced — that must remain an explicit model decision.
|
|
683284
|
+
* Only the pure "no reconciliation at all" stall is handled here; a model
|
|
683285
|
+
* advancing through evidence phases holds a live reconciliation object and is
|
|
683286
|
+
* making genuine progress, so it is left untouched.
|
|
683287
|
+
*/
|
|
683288
|
+
_maybeAutoResolveUnreconciledSteering(active, turn) {
|
|
683289
|
+
if (isSteeringScopeResolved(active))
|
|
683290
|
+
return false;
|
|
683291
|
+
if (!active.requiresReconciliation || active.reconciliation)
|
|
683292
|
+
return false;
|
|
683293
|
+
if (active.visibleRequestTurns.length < _AgenticRunner.STEERING_RECONCILIATION_TURN_BUDGET)
|
|
683294
|
+
return false;
|
|
683295
|
+
const reinjections = active.visibleRequestTurns.length;
|
|
683296
|
+
const forced = {
|
|
683297
|
+
inputId: active.input.inputId,
|
|
683298
|
+
status: "applied",
|
|
683299
|
+
changedConstraints: [],
|
|
683300
|
+
revisedNextAction: "Continue the current task. The delivered user attachment/message is retained as additive context.",
|
|
683301
|
+
taskDisposition: "continue"
|
|
683302
|
+
};
|
|
683303
|
+
active.reconciliation = forced;
|
|
683304
|
+
active.reconciledTurn = turn;
|
|
683305
|
+
active.requiresReconciliation = false;
|
|
683306
|
+
active.gatesOldPlan = false;
|
|
683307
|
+
this._taskState.nextAction = forced.revisedNextAction;
|
|
683308
|
+
for (const input of [active.input, ...active.relatedInputs ?? []]) {
|
|
683309
|
+
input.state = "reconciled";
|
|
683310
|
+
this._emitSteeringLifecycle(input, `auto-reconciled continue after ${reinjections} unreconciled re-injections at turn ${turn}`);
|
|
683311
|
+
}
|
|
683312
|
+
return true;
|
|
683313
|
+
}
|
|
683260
683314
|
/** Parse the registered control region, never a semantic textual mention. */
|
|
683261
683315
|
_reconcileActiveSteeringFromModel(content, turn, messages2) {
|
|
683262
683316
|
const active = this._activeSteering;
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.703",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.703",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED