oh-my-opencode-slim 2.0.0-beta.0 → 2.0.0-beta.1
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/config/constants.d.ts +1 -1
- package/dist/hooks/phase-reminder/index.d.ts +1 -1
- package/dist/index.js +32 -7
- package/dist/tui.js +1 -3
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@ export declare const DEFAULT_TIMEOUT_MS: number;
|
|
|
20
20
|
export declare const MAX_POLL_TIME_MS: number;
|
|
21
21
|
export declare const FALLBACK_FAILOVER_TIMEOUT_MS = 15000;
|
|
22
22
|
export declare const DEFAULT_MAX_SUBAGENT_DEPTH = 3;
|
|
23
|
-
export declare const PHASE_REMINDER_TEXT = "!IMPORTANT!
|
|
23
|
+
export declare const PHASE_REMINDER_TEXT = "!IMPORTANT! Scheduler workflow: plan lanes/dependencies \u2192 dispatch background specialists \u2192 track task IDs \u2192 poll task_status \u2192 reconcile terminal results \u2192 verify. Do not consume running-job output or advance dependent work. !END!";
|
|
24
24
|
export declare const TMUX_SPAWN_DELAY_MS = 500;
|
|
25
25
|
export declare const COUNCILLOR_STAGGER_MS = 250;
|
|
26
26
|
export declare const STABLE_POLLS_THRESHOLD = 3;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const PHASE_REMINDER = "<internal_reminder>!IMPORTANT!
|
|
1
|
+
export declare const PHASE_REMINDER = "<internal_reminder>!IMPORTANT! Scheduler workflow: plan lanes/dependencies \u2192 dispatch background specialists \u2192 track task IDs \u2192 poll task_status \u2192 reconcile terminal results \u2192 verify. Do not consume running-job output or advance dependent work. !END!</internal_reminder>";
|
|
2
2
|
interface MessageInfo {
|
|
3
3
|
role: string;
|
|
4
4
|
agent?: string;
|
package/dist/index.js
CHANGED
|
@@ -18302,9 +18302,7 @@ var POLL_INTERVAL_BACKGROUND_MS = 2000;
|
|
|
18302
18302
|
var DEFAULT_TIMEOUT_MS = 2 * 60 * 1000;
|
|
18303
18303
|
var MAX_POLL_TIME_MS = 5 * 60 * 1000;
|
|
18304
18304
|
var DEFAULT_MAX_SUBAGENT_DEPTH = 3;
|
|
18305
|
-
var PHASE_REMINDER_TEXT = `!IMPORTANT!
|
|
18306
|
-
Understand → build a short work graph with independent lanes, dependencies, and advisory ownership → dispatch independent specialists as background tasks → record task/session IDs → continue orchestration → poll task_status for terminal results → reconcile → verify.
|
|
18307
|
-
Only consume outputs or advance dependent work when background results are terminal. !END!`;
|
|
18305
|
+
var PHASE_REMINDER_TEXT = `!IMPORTANT! Scheduler workflow: plan lanes/dependencies → dispatch background specialists → track task IDs → poll task_status → reconcile terminal results → verify. Do not consume running-job output or advance dependent work. !END!`;
|
|
18308
18306
|
var TMUX_SPAWN_DELAY_MS = 500;
|
|
18309
18307
|
var COUNCILLOR_STAGGER_MS = 250;
|
|
18310
18308
|
var DEFAULT_DISABLED_AGENTS = ["observer"];
|
|
@@ -22724,6 +22722,9 @@ class BackgroundJobBoard {
|
|
|
22724
22722
|
const existing = this.jobs.get(input.taskID);
|
|
22725
22723
|
if (!existing)
|
|
22726
22724
|
return;
|
|
22725
|
+
if (existing.state === "reconciled") {
|
|
22726
|
+
return existing;
|
|
22727
|
+
}
|
|
22727
22728
|
const now = input.now ?? Date.now();
|
|
22728
22729
|
const terminal = TERMINAL_STATES.has(input.state);
|
|
22729
22730
|
const updated = {
|
|
@@ -23008,7 +23009,7 @@ class SessionManager {
|
|
|
23008
23009
|
return;
|
|
23009
23010
|
return [
|
|
23010
23011
|
"### Resumable Sessions",
|
|
23011
|
-
"Reuse only
|
|
23012
|
+
"Reuse only completed/reconciled threads. Poll running jobs from Background Job Board.",
|
|
23012
23013
|
"",
|
|
23013
23014
|
...lines
|
|
23014
23015
|
].join(`
|
|
@@ -24280,6 +24281,31 @@ var RESUMABLE_SESSIONS_END = "</resumable_sessions>";
|
|
|
24280
24281
|
var BACKGROUND_COMPLETION_COMPLETED = /^Background task completed: /;
|
|
24281
24282
|
var BACKGROUND_COMPLETION_FAILED = /^Background task failed: /;
|
|
24282
24283
|
var MAX_PROCESSED_INJECTED_COMPLETIONS = 500;
|
|
24284
|
+
function djb2Hash(str) {
|
|
24285
|
+
let hash = 5381;
|
|
24286
|
+
for (let i = 0;i < str.length; i++) {
|
|
24287
|
+
hash = (hash << 5) + hash + str.charCodeAt(i);
|
|
24288
|
+
}
|
|
24289
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
24290
|
+
}
|
|
24291
|
+
function createOccurrenceId(part, message, partIndex) {
|
|
24292
|
+
if (typeof part.id === "string") {
|
|
24293
|
+
return part.id;
|
|
24294
|
+
}
|
|
24295
|
+
if (typeof message.info.id === "string") {
|
|
24296
|
+
return `${message.info.id}:${partIndex}`;
|
|
24297
|
+
}
|
|
24298
|
+
const sessionID = message.info.sessionID ?? "unknown";
|
|
24299
|
+
const content = typeof part.text === "string" ? part.text : "";
|
|
24300
|
+
const status = parseTaskStatusOutput(content);
|
|
24301
|
+
if (status) {
|
|
24302
|
+
const stableKey = `${sessionID}:${status.taskID}:${status.state}:${status.result ?? ""}`;
|
|
24303
|
+
const hash2 = djb2Hash(stableKey);
|
|
24304
|
+
return `anon:${hash2}`;
|
|
24305
|
+
}
|
|
24306
|
+
const hash = djb2Hash(`${sessionID}:${content}`);
|
|
24307
|
+
return `anon:${hash}`;
|
|
24308
|
+
}
|
|
24283
24309
|
function isAgentName(value) {
|
|
24284
24310
|
return typeof value === "string" && AGENT_NAME_SET.has(value);
|
|
24285
24311
|
}
|
|
@@ -24395,7 +24421,7 @@ function createTaskSessionManagerHook(_ctx, options) {
|
|
|
24395
24421
|
}
|
|
24396
24422
|
return updated;
|
|
24397
24423
|
}
|
|
24398
|
-
function updateFromInjectedCompletion(part, message,
|
|
24424
|
+
function updateFromInjectedCompletion(part, message, _messageIndex, partIndex) {
|
|
24399
24425
|
if (part.type !== "text" || typeof part.text !== "string") {
|
|
24400
24426
|
return;
|
|
24401
24427
|
}
|
|
@@ -24411,7 +24437,7 @@ function createTaskSessionManagerHook(_ctx, options) {
|
|
|
24411
24437
|
return;
|
|
24412
24438
|
if (isFailed && status.state !== "error")
|
|
24413
24439
|
return;
|
|
24414
|
-
const occurrenceId =
|
|
24440
|
+
const occurrenceId = createOccurrenceId(part, message, partIndex);
|
|
24415
24441
|
if (processedInjectedCompletions.has(occurrenceId))
|
|
24416
24442
|
return;
|
|
24417
24443
|
const updated = updateBackgroundJobFromOutput(part.text);
|
|
@@ -24661,7 +24687,6 @@ function createTaskSessionManagerHook(_ctx, options) {
|
|
|
24661
24687
|
if (!sessionId)
|
|
24662
24688
|
return;
|
|
24663
24689
|
sessionManager.dropTask(sessionId);
|
|
24664
|
-
backgroundJobBoard.drop(sessionId);
|
|
24665
24690
|
sessionManager.clearParent(sessionId);
|
|
24666
24691
|
backgroundJobBoard.clearParent(sessionId);
|
|
24667
24692
|
terminalJobsInjectedByParent.delete(sessionId);
|
package/dist/tui.js
CHANGED
|
@@ -68,9 +68,7 @@ var POLL_INTERVAL_BACKGROUND_MS = 2000;
|
|
|
68
68
|
var DEFAULT_TIMEOUT_MS = 2 * 60 * 1000;
|
|
69
69
|
var MAX_POLL_TIME_MS = 5 * 60 * 1000;
|
|
70
70
|
var DEFAULT_MAX_SUBAGENT_DEPTH = 3;
|
|
71
|
-
var PHASE_REMINDER_TEXT = `!IMPORTANT!
|
|
72
|
-
Understand → build a short work graph with independent lanes, dependencies, and advisory ownership → dispatch independent specialists as background tasks → record task/session IDs → continue orchestration → poll task_status for terminal results → reconcile → verify.
|
|
73
|
-
Only consume outputs or advance dependent work when background results are terminal. !END!`;
|
|
71
|
+
var PHASE_REMINDER_TEXT = `!IMPORTANT! Scheduler workflow: plan lanes/dependencies → dispatch background specialists → track task IDs → poll task_status → reconcile terminal results → verify. Do not consume running-job output or advance dependent work. !END!`;
|
|
74
72
|
var TMUX_SPAWN_DELAY_MS = 500;
|
|
75
73
|
var COUNCILLOR_STAGGER_MS = 250;
|
|
76
74
|
var DEFAULT_DISABLED_AGENTS = ["observer"];
|
package/package.json
CHANGED