omnius 1.0.88 → 1.0.89
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 +14 -54
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -544514,9 +544514,6 @@ ${memoryLines.join("\n")}`
|
|
|
544514
544514
|
const churnBlock = this._renderWriteChurnBlock(turn);
|
|
544515
544515
|
if (churnBlock)
|
|
544516
544516
|
_injections.push(churnBlock);
|
|
544517
|
-
const progressBlock = this._renderProgressNudgeBlock(turn);
|
|
544518
|
-
if (progressBlock)
|
|
544519
|
-
_injections.push(progressBlock);
|
|
544520
544517
|
const knowledgeBlock = this._renderKnowledgeBlock(recentToolResults);
|
|
544521
544518
|
if (knowledgeBlock)
|
|
544522
544519
|
_injections.push(knowledgeBlock);
|
|
@@ -545062,55 +545059,6 @@ ${memoryLines.join("\n")}`
|
|
|
545062
545059
|
return { tc, output: _decomp2Block };
|
|
545063
545060
|
}
|
|
545064
545061
|
}
|
|
545065
|
-
const PROGRESS_GATE_BYPASS_TOOLS = /* @__PURE__ */ new Set([
|
|
545066
|
-
"todo_write",
|
|
545067
|
-
"todo_read",
|
|
545068
|
-
"task_complete",
|
|
545069
|
-
"ask_user",
|
|
545070
|
-
"phase_recall"
|
|
545071
|
-
// useful for the agent to consult prior phase state before updating
|
|
545072
|
-
]);
|
|
545073
|
-
if (this._progressGateActive && !PROGRESS_GATE_BYPASS_TOOLS.has(tc.name)) {
|
|
545074
|
-
this.emit({
|
|
545075
|
-
type: "tool_call",
|
|
545076
|
-
toolName: tc.name,
|
|
545077
|
-
toolArgs: tc.arguments,
|
|
545078
|
-
turn,
|
|
545079
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
545080
|
-
});
|
|
545081
|
-
const recentWrites = [];
|
|
545082
|
-
for (const [path12, info] of this._worldFacts.files) {
|
|
545083
|
-
if ((info.writeCount ?? 0) > 0 && (info.lastWriteTurn ?? -1) >= 0 && turn - (info.lastWriteTurn ?? 0) <= 8) {
|
|
545084
|
-
recentWrites.push({ path: path12, turn: info.lastWriteTurn ?? 0 });
|
|
545085
|
-
}
|
|
545086
|
-
}
|
|
545087
|
-
recentWrites.sort((a2, b) => b.turn - a2.turn);
|
|
545088
|
-
const showWrites = recentWrites.slice(0, 16);
|
|
545089
|
-
const gateMsg = [
|
|
545090
|
-
`[PROGRESS GATE — call todo_write FIRST before any other tool]`,
|
|
545091
|
-
``,
|
|
545092
|
-
`You have completed ${this._writesSinceLastTodoWrite} file modification${this._writesSinceLastTodoWrite === 1 ? "" : "s"} since your last todo_write call.`,
|
|
545093
|
-
`The next tool call MUST be todo_write to mark progress. This is enforced — non-todo tool calls are intercepted until plan state is updated.`,
|
|
545094
|
-
``,
|
|
545095
|
-
`Recent file modifications (use these to decide what's done):`,
|
|
545096
|
-
...showWrites.map((w) => ` • ${w.path} (turn ${w.turn})`),
|
|
545097
|
-
recentWrites.length > showWrites.length ? ` • ... +${recentWrites.length - showWrites.length} more` : "",
|
|
545098
|
-
``,
|
|
545099
|
-
`Required action: call todo_write with the updated todo array — mark anything completed that these writes satisfy, advance the next item to in_progress, keep the rest pending.`,
|
|
545100
|
-
`After todo_write succeeds, this gate releases and you can continue normal work.`,
|
|
545101
|
-
``,
|
|
545102
|
-
`Why this exists: without the explicit progress update, your next turn will see the same in_progress todo, re-plan the same work, and re-emit identical tool calls (the "plan replay" failure mode that causes byte-identical writes to appear twice).`
|
|
545103
|
-
].filter(Boolean).join("\n");
|
|
545104
|
-
this.emit({
|
|
545105
|
-
type: "tool_result",
|
|
545106
|
-
toolName: tc.name,
|
|
545107
|
-
success: false,
|
|
545108
|
-
content: gateMsg.slice(0, 120),
|
|
545109
|
-
turn,
|
|
545110
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
545111
|
-
});
|
|
545112
|
-
return { tc, output: gateMsg };
|
|
545113
|
-
}
|
|
545114
545062
|
const _argsKeyForBudget = `${tc.name}:${argsKey}`;
|
|
545115
545063
|
const _isCachedHit = recentToolResults.has(_argsKeyForBudget);
|
|
545116
545064
|
const budgetRemaining = toolCallBudget.get(tc.name);
|
|
@@ -571511,10 +571459,19 @@ var init_status_bar = __esm({
|
|
|
571511
571459
|
syncEnd() {
|
|
571512
571460
|
this.termWrite("\x1B[?2026l");
|
|
571513
571461
|
}
|
|
571514
|
-
/** Force a complete footer redraw (public wrapper for renderFooterAndPositionInput)
|
|
571462
|
+
/** Force a complete footer redraw (public wrapper for renderFooterAndPositionInput).
|
|
571463
|
+
*
|
|
571464
|
+
* IMPORTANT: do NOT call `updateFooterHeight()` here. The inner render
|
|
571465
|
+
* function captures `oldFooterTop` from the CURRENT `_currentFooterHeight`
|
|
571466
|
+
* BEFORE updating it, so it can detect height changes and clear the
|
|
571467
|
+
* rows that the old (taller) footer used to occupy. Pre-calling
|
|
571468
|
+
* `updateFooterHeight` here would mutate the height to the new value
|
|
571469
|
+
* first, leaving the inner render to think nothing changed and skipping
|
|
571470
|
+
* the transition-row clear — which is exactly what caused stale prompt
|
|
571471
|
+
* text to remain on the input box's top unicode border after submitting
|
|
571472
|
+
* a multi-line input. */
|
|
571515
571473
|
redrawFooter() {
|
|
571516
571474
|
if (!this.active) return;
|
|
571517
|
-
this.updateFooterHeight();
|
|
571518
571475
|
this.renderFooterAndPositionInput();
|
|
571519
571476
|
}
|
|
571520
571477
|
/** Callback to get available slash commands for suggestion matching */
|
|
@@ -654588,6 +654545,9 @@ ${result.content.slice(0, 2e3)}${result.content.length > 2e3 ? "\n[truncated]" :
|
|
|
654588
654545
|
if (!setupReady) return;
|
|
654589
654546
|
persistHistoryLine(line);
|
|
654590
654547
|
const input = line.trim();
|
|
654548
|
+
if (statusBar?.isActive && line.length > 0) {
|
|
654549
|
+
statusBar.redrawFooter();
|
|
654550
|
+
}
|
|
654591
654551
|
if (!input) {
|
|
654592
654552
|
if (pasteBuffer.length > 0) {
|
|
654593
654553
|
if (pasteIndicatorShown) {
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.89",
|
|
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.89",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED