@ponythewhite/base-context 1.0.14 → 1.0.16
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/CHANGELOG.md +18 -0
- package/dist/base-context-runtime/pyproject.toml +1 -1
- package/dist/base-context-runtime/src/rlm/bash.py +19 -0
- package/dist/base-context-runtime/src/rlm/job_watch.py +156 -0
- package/dist/base-context-runtime/src/rlm/repl.md +28 -6
- package/dist/base-context-runtime/src/rlm/repl.py +6 -1
- package/dist/base-context-runtime/test/test_bash.py +4 -4
- package/dist/base-context-runtime/test/test_job_watch.py +67 -0
- package/dist/base-context-runtime/uv.lock +1 -1
- package/dist/build-info.json +1 -1
- package/dist/bundle/{bundled-modules-UODO7ZR7.js → bundled-modules-2DMTK7VK.js} +2 -2
- package/dist/bundle/{chunk-SX7CAXWU.js → chunk-MSH6QRP5.js} +1730 -867
- package/dist/bundle/{chunk-NLRWERWA.js → chunk-T2OK7SRV.js} +53 -21
- package/dist/bundle/{cli-main-6GXXIMQQ.js → cli-main-WL2L5IEQ.js} +2 -2
- package/dist/bundle/cli.js +1 -1
- package/dist/bundle/{main-HF64B4HM.js → main-XPIEIEQJ.js} +2 -2
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +191 -33
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +11 -9
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/history-index-worker.d.ts.map +1 -1
- package/dist/core/history-index-worker.js +22 -1
- package/dist/core/history-index-worker.js.map +1 -1
- package/dist/core/history-index.d.ts +2 -0
- package/dist/core/history-index.d.ts.map +1 -1
- package/dist/core/history-index.js.map +1 -1
- package/dist/core/inference-coordinator.d.ts.map +1 -1
- package/dist/core/inference-coordinator.js +13 -2
- package/dist/core/inference-coordinator.js.map +1 -1
- package/dist/core/job-watch.d.ts +120 -0
- package/dist/core/job-watch.d.ts.map +1 -0
- package/dist/core/job-watch.js +648 -0
- package/dist/core/job-watch.js.map +1 -0
- package/dist/core/kernel/repl-manager.d.ts +5 -1
- package/dist/core/kernel/repl-manager.d.ts.map +1 -1
- package/dist/core/kernel/repl-manager.js +57 -0
- package/dist/core/kernel/repl-manager.js.map +1 -1
- package/dist/core/kernel/shared.d.ts +12 -0
- package/dist/core/kernel/shared.d.ts.map +1 -1
- package/dist/core/kernel/shared.js.map +1 -1
- package/dist/core/prompts/rlm.d.ts.map +1 -1
- package/dist/core/prompts/rlm.js +49 -39
- package/dist/core/prompts/rlm.js.map +1 -1
- package/dist/core/session-manager.d.ts +10 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +66 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/tools/prime-context.d.ts.map +1 -1
- package/dist/core/tools/prime-context.js +1 -1
- package/dist/core/tools/prime-context.js.map +1 -1
- package/dist/modes/daemon/daemon-mode.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-mode.js +17 -17
- package/dist/modes/daemon/daemon-mode.js.map +1 -1
- package/dist/modes/daemon/daemon-worker-client.d.ts +1 -0
- package/dist/modes/daemon/daemon-worker-client.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-worker-client.js +8 -0
- package/dist/modes/daemon/daemon-worker-client.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +2 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +31 -5
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/skills/agent-message/SKILL.md +8 -2
- package/dist/skills/bounded-inspect/SKILL.md +78 -0
- package/dist/skills/bounded-inspect/pyproject.toml +16 -0
- package/dist/skills/bounded-inspect/src/bounded_inspect/__init__.py +313 -0
- package/dist/skills/bounded-inspect/src/bounded_inspect/__main__.py +3 -0
- package/dist/skills/job-watch/SKILL.md +43 -0
- package/dist/skills/job-watch/pyproject.toml +13 -0
- package/dist/skills/job-watch/src/job_watch/__init__.py +61 -0
- package/dist/skills/rlm-heartbeat/SKILL.md +10 -6
- package/dist/utils/file-lines.d.ts.map +1 -1
- package/dist/utils/file-lines.js +6 -2
- package/dist/utils/file-lines.js.map +1 -1
- package/docs/rlm-runtime.md +4 -1
- package/docs/skills.md +18 -26
- package/docs/upstream-1.0.15.md +83 -0
- package/package.json +4 -4
- package/skills/agent-message/SKILL.md +8 -2
- package/skills/bounded-inspect/SKILL.md +78 -0
- package/skills/bounded-inspect/pyproject.toml +16 -0
- package/skills/bounded-inspect/src/bounded_inspect/__init__.py +313 -0
- package/skills/bounded-inspect/src/bounded_inspect/__main__.py +3 -0
- package/skills/job-watch/SKILL.md +43 -0
- package/skills/job-watch/pyproject.toml +13 -0
- package/skills/job-watch/src/job_watch/__init__.py +61 -0
- package/skills/rlm-heartbeat/SKILL.md +10 -6
|
@@ -1846,13 +1846,16 @@ export class InteractiveMode {
|
|
|
1846
1846
|
}
|
|
1847
1847
|
async refreshConnectionCatalog() {
|
|
1848
1848
|
this.invalidateConnectionModelRefresh();
|
|
1849
|
+
const read = this.captureConnectionStateRead();
|
|
1849
1850
|
const [state, commands, modelCatalog, resources] = await Promise.all([
|
|
1850
1851
|
this.agentConnection.getState(),
|
|
1851
1852
|
this.agentConnection.getCommands().catch(() => []),
|
|
1852
1853
|
this.agentConnection.getModelCatalog(),
|
|
1853
1854
|
this.agentConnection.getResourceSnapshot(),
|
|
1854
1855
|
]);
|
|
1855
|
-
this.
|
|
1856
|
+
if (!this.isConnectionStateReadCurrent(read))
|
|
1857
|
+
return;
|
|
1858
|
+
this.applyConnectionStateSnapshot(state, read);
|
|
1856
1859
|
this.connectionCommands = commands;
|
|
1857
1860
|
this.applyConnectionModelCatalog(modelCatalog);
|
|
1858
1861
|
this.connectionModelsFetchedAt = Date.now();
|
|
@@ -1889,7 +1892,23 @@ export class InteractiveMode {
|
|
|
1889
1892
|
getScopedHeartbeats() {
|
|
1890
1893
|
return scopeHeartbeatsToSession(this.heartbeatCatalog, this.connectionState, this.subagentSnapshots.values());
|
|
1891
1894
|
}
|
|
1892
|
-
|
|
1895
|
+
captureConnectionStateRead() {
|
|
1896
|
+
return {
|
|
1897
|
+
connection: this.agentConnection,
|
|
1898
|
+
generation: this.sessionEventGeneration,
|
|
1899
|
+
goal: this.connectionState?.goal,
|
|
1900
|
+
};
|
|
1901
|
+
}
|
|
1902
|
+
isConnectionStateReadCurrent(read) {
|
|
1903
|
+
return read.connection === this.agentConnection && read.generation === this.sessionEventGeneration;
|
|
1904
|
+
}
|
|
1905
|
+
applyConnectionStateSnapshot(state, read) {
|
|
1906
|
+
const current = this.connectionState;
|
|
1907
|
+
// A pending read must not replace a goal observation applied after that read began.
|
|
1908
|
+
// Authoritative replacement/resync snapshots apply without a read capture.
|
|
1909
|
+
if (read && current?.sessionId === state.sessionId && current.goal !== read.goal) {
|
|
1910
|
+
state = { ...state, goal: current.goal };
|
|
1911
|
+
}
|
|
1893
1912
|
this.bindPromptStashSession(state.sessionId);
|
|
1894
1913
|
this.connectionState = state;
|
|
1895
1914
|
this.scheduleHeartbeatManagerRefresh();
|
|
@@ -5098,9 +5117,10 @@ export class InteractiveMode {
|
|
|
5098
5117
|
return `Goal paused (${this.formatGoalElapsed(goal.timeUsedSeconds)})`;
|
|
5099
5118
|
case "budget_limited":
|
|
5100
5119
|
return `Goal budget limited (${this.formatGoalElapsed(goal.timeUsedSeconds)})`;
|
|
5120
|
+
case "error":
|
|
5121
|
+
return theme.fg("error", "Goal error") + theme.getFgAnsi("muted");
|
|
5101
5122
|
case "idle":
|
|
5102
5123
|
case "complete":
|
|
5103
|
-
case "error":
|
|
5104
5124
|
return undefined;
|
|
5105
5125
|
default: {
|
|
5106
5126
|
const _exhaustive = goal.status;
|
|
@@ -5469,13 +5489,16 @@ export class InteractiveMode {
|
|
|
5469
5489
|
this.ui.requestRender();
|
|
5470
5490
|
}
|
|
5471
5491
|
async renderInitialMessages() {
|
|
5492
|
+
const read = this.captureConnectionStateRead();
|
|
5472
5493
|
const snapshot = await this.agentConnection.getInitialSnapshot();
|
|
5494
|
+
if (!this.isConnectionStateReadCurrent(read))
|
|
5495
|
+
return;
|
|
5473
5496
|
const context = this.getSessionContextFromConnectionSnapshot(snapshot);
|
|
5474
5497
|
const state = snapshot.state;
|
|
5475
5498
|
const streamingMessage = snapshot.streamingMessage;
|
|
5476
5499
|
this.rlmNodeId = snapshot.parent?.childId;
|
|
5477
5500
|
this.seedSubagentSummary(snapshot.children);
|
|
5478
|
-
this.applyConnectionStateSnapshot(state);
|
|
5501
|
+
this.applyConnectionStateSnapshot(state, read);
|
|
5479
5502
|
this.restoreTurnStartFromMessages(context.messages);
|
|
5480
5503
|
await this.renderSessionContext(context, {
|
|
5481
5504
|
updateFooter: true,
|
|
@@ -6306,10 +6329,13 @@ export class InteractiveMode {
|
|
|
6306
6329
|
return showFullPaneOverlay(this.ui, component, options);
|
|
6307
6330
|
}
|
|
6308
6331
|
async showSettingsSelector() {
|
|
6332
|
+
const read = this.captureConnectionStateRead();
|
|
6309
6333
|
let state;
|
|
6310
6334
|
try {
|
|
6311
6335
|
state = await this.agentConnection.getState();
|
|
6312
|
-
this.
|
|
6336
|
+
if (!this.isConnectionStateReadCurrent(read))
|
|
6337
|
+
return;
|
|
6338
|
+
this.applyConnectionStateSnapshot(state, read);
|
|
6313
6339
|
}
|
|
6314
6340
|
catch (error) {
|
|
6315
6341
|
this.showError(error instanceof Error ? error.message : String(error));
|