jfl 0.7.1 → 0.8.0
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/commands/context-hub.d.ts.map +1 -1
- package/dist/commands/context-hub.js +26 -0
- package/dist/commands/context-hub.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +37 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate-tenet.d.ts +25 -0
- package/dist/commands/migrate-tenet.d.ts.map +1 -0
- package/dist/commands/migrate-tenet.js +252 -0
- package/dist/commands/migrate-tenet.js.map +1 -0
- package/dist/commands/peter.d.ts.map +1 -1
- package/dist/commands/peter.js +47 -5
- package/dist/commands/peter.js.map +1 -1
- package/dist/commands/pi.d.ts +1 -0
- package/dist/commands/pi.d.ts.map +1 -1
- package/dist/commands/pi.js +5 -1
- package/dist/commands/pi.js.map +1 -1
- package/dist/commands/pivot.d.ts +28 -0
- package/dist/commands/pivot.d.ts.map +1 -0
- package/dist/commands/pivot.js +219 -0
- package/dist/commands/pivot.js.map +1 -0
- package/dist/commands/services-create.js +348 -0
- package/dist/commands/services-create.js.map +1 -1
- package/dist/dashboard-static/assets/index-BVrmW-ZI.js +154 -0
- package/dist/dashboard-static/assets/{index-CW8oWAdr.css → index-DtruPD44.css} +1 -1
- package/dist/dashboard-static/index.html +2 -2
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-generator.d.ts.map +1 -1
- package/dist/lib/agent-generator.js +15 -0
- package/dist/lib/agent-generator.js.map +1 -1
- package/dist/lib/counterfactual-engine.d.ts +136 -0
- package/dist/lib/counterfactual-engine.d.ts.map +1 -0
- package/dist/lib/counterfactual-engine.js +417 -0
- package/dist/lib/counterfactual-engine.js.map +1 -0
- package/dist/lib/dynamics-model.d.ts +107 -0
- package/dist/lib/dynamics-model.d.ts.map +1 -0
- package/dist/lib/dynamics-model.js +363 -0
- package/dist/lib/dynamics-model.js.map +1 -0
- package/dist/lib/eval-snapshot.d.ts.map +1 -1
- package/dist/lib/eval-snapshot.js +15 -4
- package/dist/lib/eval-snapshot.js.map +1 -1
- package/dist/lib/invariant-monitor.d.ts +50 -0
- package/dist/lib/invariant-monitor.d.ts.map +1 -0
- package/dist/lib/invariant-monitor.js +400 -0
- package/dist/lib/invariant-monitor.js.map +1 -0
- package/dist/lib/meta-orchestrator.d.ts +40 -3
- package/dist/lib/meta-orchestrator.d.ts.map +1 -1
- package/dist/lib/meta-orchestrator.js +181 -2
- package/dist/lib/meta-orchestrator.js.map +1 -1
- package/dist/lib/openclaw-sdk.d.ts +8 -0
- package/dist/lib/openclaw-sdk.d.ts.map +1 -1
- package/dist/lib/openclaw-sdk.js +11 -0
- package/dist/lib/openclaw-sdk.js.map +1 -1
- package/dist/lib/peter-parker-bridge.d.ts +37 -1
- package/dist/lib/peter-parker-bridge.d.ts.map +1 -1
- package/dist/lib/peter-parker-bridge.js +201 -1
- package/dist/lib/peter-parker-bridge.js.map +1 -1
- package/dist/lib/service-detector.d.ts +1 -1
- package/dist/lib/service-detector.d.ts.map +1 -1
- package/dist/lib/service-detector.js +26 -6
- package/dist/lib/service-detector.js.map +1 -1
- package/dist/lib/service-gtm.d.ts +1 -1
- package/dist/lib/service-gtm.d.ts.map +1 -1
- package/dist/lib/state-capture.d.ts +36 -0
- package/dist/lib/state-capture.d.ts.map +1 -0
- package/dist/lib/state-capture.js +541 -0
- package/dist/lib/state-capture.js.map +1 -0
- package/dist/lib/stratus-client.d.ts +78 -2
- package/dist/lib/stratus-client.d.ts.map +1 -1
- package/dist/lib/stratus-client.js +432 -1
- package/dist/lib/stratus-client.js.map +1 -1
- package/dist/lib/world-model-store.d.ts +172 -0
- package/dist/lib/world-model-store.d.ts.map +1 -0
- package/dist/lib/world-model-store.js +487 -0
- package/dist/lib/world-model-store.js.map +1 -0
- package/dist/types/world-model.d.ts +478 -0
- package/dist/types/world-model.d.ts.map +1 -0
- package/dist/types/world-model.js +80 -0
- package/dist/types/world-model.js.map +1 -0
- package/dist/utils/jfl-config.d.ts +5 -0
- package/dist/utils/jfl-config.d.ts.map +1 -1
- package/dist/utils/jfl-config.js +13 -1
- package/dist/utils/jfl-config.js.map +1 -1
- package/package.json +1 -1
- package/packages/pi/extensions/hud-tool.ts +2 -24
- package/packages/pi/extensions/index.ts +48 -25
- package/packages/pi/extensions/onboarding-v1.ts +455 -0
- package/packages/pi/extensions/onboarding-v2.ts +516 -0
- package/packages/pi/extensions/onboarding-v3.ts +675 -0
- package/packages/pi/extensions/pivot-tool.ts +59 -0
- package/packages/pi/extensions/session.ts +58 -0
- package/packages/pi/extensions/types.ts +2 -0
- package/packages/pi/skills/pivot/SKILL.md +91 -0
- package/template/.claude/settings.json +9 -0
- package/dist/dashboard-static/assets/index-Ck8f9dcM.js +0 -121
|
@@ -0,0 +1,541 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Capture Module
|
|
3
|
+
*
|
|
4
|
+
* Captures the current WorldState from the live system by pulling data from:
|
|
5
|
+
* - meta-orchestrator (active agents, EMA rewards)
|
|
6
|
+
* - hub-client (connections, health)
|
|
7
|
+
* - eval-store (recent scores)
|
|
8
|
+
* - git (worktrees, commits, PRs)
|
|
9
|
+
* - training-buffer (pending work)
|
|
10
|
+
*
|
|
11
|
+
* @purpose Capture WorldState snapshots from live system for dynamics learning
|
|
12
|
+
* @spec world-model-roadmap.md#state-capture
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "fs";
|
|
15
|
+
import { join, dirname } from "path";
|
|
16
|
+
import { execSync, spawnSync } from "child_process";
|
|
17
|
+
import { getHubConfig } from "./hub-client.js";
|
|
18
|
+
import { readEvals, getLatestEval } from "./eval-store.js";
|
|
19
|
+
import { loadAllAgentConfigs } from "./agent-config.js";
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Helpers
|
|
22
|
+
// ============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Find project root by looking for .jfl directory
|
|
25
|
+
*/
|
|
26
|
+
function findProjectRoot(startDir) {
|
|
27
|
+
let dir = startDir || process.cwd();
|
|
28
|
+
while (dir !== dirname(dir)) {
|
|
29
|
+
if (existsSync(join(dir, ".jfl", "config.json")))
|
|
30
|
+
return dir;
|
|
31
|
+
if (existsSync(join(dir, ".jfl")))
|
|
32
|
+
return dir;
|
|
33
|
+
dir = dirname(dir);
|
|
34
|
+
}
|
|
35
|
+
return startDir || process.cwd();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Run a git command and return stdout, or empty string on error
|
|
39
|
+
*/
|
|
40
|
+
function gitCommand(command, cwd) {
|
|
41
|
+
try {
|
|
42
|
+
return execSync(`git ${command}`, {
|
|
43
|
+
cwd,
|
|
44
|
+
encoding: "utf-8",
|
|
45
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
46
|
+
}).trim();
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return "";
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Count files changed in last N hours
|
|
54
|
+
*/
|
|
55
|
+
function countRecentChanges(cwd, hours) {
|
|
56
|
+
const since = `${hours} hours ago`;
|
|
57
|
+
const result = gitCommand(`log --oneline --since="${since}"`, cwd);
|
|
58
|
+
return result ? result.split("\n").filter(l => l.trim()).length : 0;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get lines changed in last N hours (code churn)
|
|
62
|
+
*/
|
|
63
|
+
function getCodeChurn(cwd, hours) {
|
|
64
|
+
const since = `${hours} hours ago`;
|
|
65
|
+
const result = gitCommand(`log --numstat --since="${since}"`, cwd);
|
|
66
|
+
if (!result)
|
|
67
|
+
return 0;
|
|
68
|
+
let totalLines = 0;
|
|
69
|
+
for (const line of result.split("\n")) {
|
|
70
|
+
const match = line.match(/^(\d+)\s+(\d+)/);
|
|
71
|
+
if (match) {
|
|
72
|
+
totalLines += parseInt(match[1], 10) + parseInt(match[2], 10);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return totalLines;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Count open PRs (via gh CLI if available)
|
|
79
|
+
*/
|
|
80
|
+
function countOpenPRs(cwd) {
|
|
81
|
+
try {
|
|
82
|
+
const result = spawnSync("gh", ["pr", "list", "--state", "open", "--json", "number"], {
|
|
83
|
+
cwd,
|
|
84
|
+
encoding: "utf-8",
|
|
85
|
+
timeout: 5000,
|
|
86
|
+
});
|
|
87
|
+
if (result.status === 0 && result.stdout) {
|
|
88
|
+
const prs = JSON.parse(result.stdout);
|
|
89
|
+
return prs.length;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// gh CLI not available or error
|
|
94
|
+
}
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if a human is actively editing (look for IDE lock files)
|
|
99
|
+
*/
|
|
100
|
+
function detectHumanActivity(cwd) {
|
|
101
|
+
// Check for VS Code workspace state
|
|
102
|
+
const vscodePath = join(cwd, ".vscode");
|
|
103
|
+
if (existsSync(vscodePath)) {
|
|
104
|
+
try {
|
|
105
|
+
const stat = statSync(vscodePath);
|
|
106
|
+
const ageMs = Date.now() - stat.mtimeMs;
|
|
107
|
+
if (ageMs < 300000)
|
|
108
|
+
return true; // Modified in last 5 minutes
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Ignore stat errors
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Check for nvim swap files
|
|
115
|
+
const swapFiles = readdirSync(cwd).filter(f => f.endsWith(".swp") || f.startsWith("."));
|
|
116
|
+
if (swapFiles.some(f => f.includes(".swp")))
|
|
117
|
+
return true;
|
|
118
|
+
// Check for Cursor workspace
|
|
119
|
+
const cursorPath = join(cwd, ".cursor");
|
|
120
|
+
if (existsSync(cursorPath)) {
|
|
121
|
+
try {
|
|
122
|
+
const stat = statSync(cursorPath);
|
|
123
|
+
const ageMs = Date.now() - stat.mtimeMs;
|
|
124
|
+
if (ageMs < 300000)
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Ignore stat errors
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get worktree allocations from git
|
|
135
|
+
*/
|
|
136
|
+
function getWorktreeAllocations(cwd) {
|
|
137
|
+
const result = gitCommand("worktree list --porcelain", cwd);
|
|
138
|
+
if (!result)
|
|
139
|
+
return {};
|
|
140
|
+
const allocations = {};
|
|
141
|
+
const blocks = result.split("\n\n").filter(b => b.trim());
|
|
142
|
+
for (const block of blocks) {
|
|
143
|
+
const lines = block.split("\n");
|
|
144
|
+
const worktreeLine = lines.find(l => l.startsWith("worktree "));
|
|
145
|
+
const branchLine = lines.find(l => l.startsWith("branch "));
|
|
146
|
+
if (worktreeLine && branchLine) {
|
|
147
|
+
const path = worktreeLine.replace("worktree ", "");
|
|
148
|
+
const branch = branchLine.replace("branch refs/heads/", "");
|
|
149
|
+
// Extract agent ID from branch name (e.g., "agent-cli-speed-...")
|
|
150
|
+
const agentMatch = branch.match(/^agent-([^-]+(?:-[^-]+)?)-/);
|
|
151
|
+
if (agentMatch) {
|
|
152
|
+
allocations[agentMatch[1]] = path;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return allocations;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get file locks from .jfl/locks directory
|
|
160
|
+
*/
|
|
161
|
+
function getFileLocks(projectRoot) {
|
|
162
|
+
const locksDir = join(projectRoot, ".jfl", "locks");
|
|
163
|
+
if (!existsSync(locksDir))
|
|
164
|
+
return [];
|
|
165
|
+
const locks = [];
|
|
166
|
+
const files = readdirSync(locksDir);
|
|
167
|
+
for (const file of files) {
|
|
168
|
+
try {
|
|
169
|
+
const content = readFileSync(join(locksDir, file), "utf-8");
|
|
170
|
+
const lockData = JSON.parse(content);
|
|
171
|
+
if (lockData.path)
|
|
172
|
+
locks.push(lockData.path);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// Skip invalid lock files
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return locks;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Read meta-orchestrator state
|
|
182
|
+
*/
|
|
183
|
+
function readOrchestratorState(projectRoot) {
|
|
184
|
+
const statePath = join(projectRoot, ".jfl", "meta-orchestrator-state.json");
|
|
185
|
+
if (!existsSync(statePath)) {
|
|
186
|
+
return { activeAgents: [], performances: {} };
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
const state = JSON.parse(readFileSync(statePath, "utf-8"));
|
|
190
|
+
const activeAgents = Object.keys(state.performances || {});
|
|
191
|
+
const performances = {};
|
|
192
|
+
for (const [agent, perf] of Object.entries(state.performances || {})) {
|
|
193
|
+
const p = perf;
|
|
194
|
+
// Calculate consecutive failures from recent rewards
|
|
195
|
+
const recentRewards = p.recentRewards || [];
|
|
196
|
+
let consecutiveFailures = 0;
|
|
197
|
+
for (let i = recentRewards.length - 1; i >= 0; i--) {
|
|
198
|
+
if (recentRewards[i] <= 0)
|
|
199
|
+
consecutiveFailures++;
|
|
200
|
+
else
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
performances[agent] = {
|
|
204
|
+
emaReward: p.emaReward || 0,
|
|
205
|
+
totalRounds: p.totalRounds || 0,
|
|
206
|
+
consecutiveFailures,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
return { activeAgents, performances };
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return { activeAgents: [], performances: {} };
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get build status from CI/service events
|
|
217
|
+
*/
|
|
218
|
+
function getBuildStatus(projectRoot) {
|
|
219
|
+
const eventsPath = join(projectRoot, ".jfl", "service-events.jsonl");
|
|
220
|
+
if (!existsSync(eventsPath)) {
|
|
221
|
+
return { default: "idle" };
|
|
222
|
+
}
|
|
223
|
+
const statuses = {};
|
|
224
|
+
try {
|
|
225
|
+
const lines = readFileSync(eventsPath, "utf-8").split("\n").filter(l => l.trim());
|
|
226
|
+
const recentEvents = lines.slice(-50); // Check last 50 events
|
|
227
|
+
for (const line of recentEvents) {
|
|
228
|
+
try {
|
|
229
|
+
const event = JSON.parse(line);
|
|
230
|
+
if (event.type === "build:completed") {
|
|
231
|
+
const repo = event.data?.repo || "default";
|
|
232
|
+
statuses[repo] = event.data?.success ? "success" : "failed";
|
|
233
|
+
}
|
|
234
|
+
else if (event.type === "build:started") {
|
|
235
|
+
const repo = event.data?.repo || "default";
|
|
236
|
+
statuses[repo] = "building";
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
// Skip malformed events
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
// Ignore read errors
|
|
246
|
+
}
|
|
247
|
+
if (Object.keys(statuses).length === 0) {
|
|
248
|
+
statuses.default = "idle";
|
|
249
|
+
}
|
|
250
|
+
return statuses;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Count failing tests from most recent test run
|
|
254
|
+
*/
|
|
255
|
+
function countFailingTests(projectRoot) {
|
|
256
|
+
// Check for test results in various formats
|
|
257
|
+
const testResultPaths = [
|
|
258
|
+
join(projectRoot, "test-results.json"),
|
|
259
|
+
join(projectRoot, "coverage", "test-results.json"),
|
|
260
|
+
join(projectRoot, ".jfl", "test-results.json"),
|
|
261
|
+
];
|
|
262
|
+
for (const resultPath of testResultPaths) {
|
|
263
|
+
if (existsSync(resultPath)) {
|
|
264
|
+
try {
|
|
265
|
+
const results = JSON.parse(readFileSync(resultPath, "utf-8"));
|
|
266
|
+
if (typeof results.numFailedTests === "number") {
|
|
267
|
+
return results.numFailedTests;
|
|
268
|
+
}
|
|
269
|
+
if (Array.isArray(results.testResults)) {
|
|
270
|
+
return results.testResults.filter((t) => t.status === "failed").length;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
// Try next path
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Fallback: check eval entries for test info
|
|
279
|
+
const evals = readEvals(projectRoot);
|
|
280
|
+
if (evals.length > 0) {
|
|
281
|
+
const latest = evals[evals.length - 1];
|
|
282
|
+
if (latest.metrics?.testsFailed !== undefined) {
|
|
283
|
+
return latest.metrics.testsFailed;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return 0;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Count pending evals from eval queue
|
|
290
|
+
*/
|
|
291
|
+
function countPendingEvals(projectRoot) {
|
|
292
|
+
const queuePath = join(projectRoot, ".jfl", "eval-queue.jsonl");
|
|
293
|
+
if (!existsSync(queuePath))
|
|
294
|
+
return 0;
|
|
295
|
+
try {
|
|
296
|
+
const lines = readFileSync(queuePath, "utf-8").split("\n").filter(l => l.trim());
|
|
297
|
+
return lines.filter(l => {
|
|
298
|
+
try {
|
|
299
|
+
const entry = JSON.parse(l);
|
|
300
|
+
return entry.status === "pending" || entry.status === "running";
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
}).length;
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
return 0;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// ============================================================================
|
|
312
|
+
// Main Capture Function
|
|
313
|
+
// ============================================================================
|
|
314
|
+
/**
|
|
315
|
+
* Capture the current WorldState from the live system
|
|
316
|
+
*
|
|
317
|
+
* @param projectRoot - Project root directory (auto-detected if not provided)
|
|
318
|
+
* @param agentId - Agent ID whose perspective this state represents
|
|
319
|
+
* @returns Complete WorldState snapshot
|
|
320
|
+
*/
|
|
321
|
+
export async function captureWorldState(projectRoot, agentId = "system") {
|
|
322
|
+
const root = projectRoot || findProjectRoot();
|
|
323
|
+
const timestamp = Date.now();
|
|
324
|
+
// Get orchestrator state
|
|
325
|
+
const orchestratorState = readOrchestratorState(root);
|
|
326
|
+
// Get configured agents
|
|
327
|
+
const configuredAgents = loadAllAgentConfigs(root);
|
|
328
|
+
const agentNames = configuredAgents.map(a => a.name);
|
|
329
|
+
// Get hub connection count
|
|
330
|
+
let hubConnections = 0;
|
|
331
|
+
try {
|
|
332
|
+
const hubConfig = getHubConfig(root);
|
|
333
|
+
if (hubConfig) {
|
|
334
|
+
hubConnections = 1; // Hub is running
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
catch {
|
|
338
|
+
// Hub not available
|
|
339
|
+
}
|
|
340
|
+
// Get worktree allocations
|
|
341
|
+
const worktreeAllocation = getWorktreeAllocations(root);
|
|
342
|
+
// Add "none" for agents without worktrees
|
|
343
|
+
for (const agent of agentNames) {
|
|
344
|
+
if (!worktreeAllocation[agent]) {
|
|
345
|
+
worktreeAllocation[agent] = "none";
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Get build status
|
|
349
|
+
const buildStatus = getBuildStatus(root);
|
|
350
|
+
// Get file locks
|
|
351
|
+
const fileLocks = getFileLocks(root);
|
|
352
|
+
// Count pending evals
|
|
353
|
+
const pendingEvals = countPendingEvals(root);
|
|
354
|
+
// Context state
|
|
355
|
+
const recentCommits = countRecentChanges(root, 24);
|
|
356
|
+
const openPRs = countOpenPRs(root);
|
|
357
|
+
const failingTests = countFailingTests(root);
|
|
358
|
+
const codeChurn = getCodeChurn(root, 24);
|
|
359
|
+
const humanActivity = detectHumanActivity(root);
|
|
360
|
+
// Agent state
|
|
361
|
+
const agentPerf = orchestratorState.performances[agentId];
|
|
362
|
+
const latestEval = getLatestEval(agentId, root);
|
|
363
|
+
// Get action history from training buffer
|
|
364
|
+
const trainingBufferPath = join(root, ".jfl", "training-buffer.jsonl");
|
|
365
|
+
let actionHistory = [];
|
|
366
|
+
if (existsSync(trainingBufferPath)) {
|
|
367
|
+
try {
|
|
368
|
+
const lines = readFileSync(trainingBufferPath, "utf-8").split("\n").filter(l => l.trim());
|
|
369
|
+
const recentEntries = lines.slice(-10);
|
|
370
|
+
actionHistory = recentEntries.map(l => {
|
|
371
|
+
try {
|
|
372
|
+
const entry = JSON.parse(l);
|
|
373
|
+
return entry.action?.type || "unknown";
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
return "unknown";
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
// Ignore errors
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
const state = {
|
|
385
|
+
timestamp,
|
|
386
|
+
agentId,
|
|
387
|
+
systemState: {
|
|
388
|
+
activeAgents: orchestratorState.activeAgents.length > 0
|
|
389
|
+
? orchestratorState.activeAgents
|
|
390
|
+
: agentNames,
|
|
391
|
+
worktreeAllocation,
|
|
392
|
+
hubConnections,
|
|
393
|
+
buildStatus,
|
|
394
|
+
fileLocks,
|
|
395
|
+
pendingEvals,
|
|
396
|
+
},
|
|
397
|
+
contextState: {
|
|
398
|
+
recentCommits,
|
|
399
|
+
openPRs,
|
|
400
|
+
failingTests,
|
|
401
|
+
codeChurn,
|
|
402
|
+
humanActivity,
|
|
403
|
+
},
|
|
404
|
+
agentState: {
|
|
405
|
+
lastEvalScore: latestEval?.composite ?? agentPerf?.emaReward ?? 0,
|
|
406
|
+
rewardEMA: agentPerf?.emaReward ?? 0,
|
|
407
|
+
actionHistory,
|
|
408
|
+
consecutiveFailures: agentPerf?.consecutiveFailures ?? 0,
|
|
409
|
+
},
|
|
410
|
+
};
|
|
411
|
+
return state;
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Capture a minimal WorldState (faster, for high-frequency use)
|
|
415
|
+
*/
|
|
416
|
+
export function captureWorldStateSync(projectRoot, agentId = "system") {
|
|
417
|
+
const root = projectRoot || findProjectRoot();
|
|
418
|
+
const timestamp = Date.now();
|
|
419
|
+
const orchestratorState = readOrchestratorState(root);
|
|
420
|
+
const agentPerf = orchestratorState.performances[agentId];
|
|
421
|
+
return {
|
|
422
|
+
timestamp,
|
|
423
|
+
agentId,
|
|
424
|
+
systemState: {
|
|
425
|
+
activeAgents: orchestratorState.activeAgents,
|
|
426
|
+
worktreeAllocation: {},
|
|
427
|
+
hubConnections: getHubConfig(root) ? 1 : 0,
|
|
428
|
+
buildStatus: { default: "idle" },
|
|
429
|
+
fileLocks: [],
|
|
430
|
+
pendingEvals: 0,
|
|
431
|
+
},
|
|
432
|
+
contextState: {
|
|
433
|
+
recentCommits: 0,
|
|
434
|
+
openPRs: 0,
|
|
435
|
+
failingTests: 0,
|
|
436
|
+
codeChurn: 0,
|
|
437
|
+
humanActivity: false,
|
|
438
|
+
},
|
|
439
|
+
agentState: {
|
|
440
|
+
lastEvalScore: agentPerf?.emaReward ?? 0,
|
|
441
|
+
rewardEMA: agentPerf?.emaReward ?? 0,
|
|
442
|
+
actionHistory: [],
|
|
443
|
+
consecutiveFailures: agentPerf?.consecutiveFailures ?? 0,
|
|
444
|
+
},
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Create an AgentAction from a task description
|
|
449
|
+
*/
|
|
450
|
+
export function createAgentAction(agentId, actionType, payload = {}, confidence) {
|
|
451
|
+
return {
|
|
452
|
+
agentId,
|
|
453
|
+
actionType: actionType,
|
|
454
|
+
actionPayload: payload,
|
|
455
|
+
confidence,
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Compute state similarity for finding similar historical transitions
|
|
460
|
+
* Uses a simple feature-based heuristic when embeddings aren't available
|
|
461
|
+
*/
|
|
462
|
+
export function computeStateSimilarity(state1, state2) {
|
|
463
|
+
// If we have embeddings from the same model, use cosine similarity
|
|
464
|
+
if (state1.stateEmbedding && state2.stateEmbedding) {
|
|
465
|
+
// Only compare embeddings from the same model to avoid meaningless comparisons
|
|
466
|
+
if (state1.stateEmbedding.modelId === state2.stateEmbedding.modelId &&
|
|
467
|
+
state1.stateEmbedding.modelVersion === state2.stateEmbedding.modelVersion) {
|
|
468
|
+
return cosineSimilarity(state1.stateEmbedding.vector, state2.stateEmbedding.vector);
|
|
469
|
+
}
|
|
470
|
+
// Different embedding models - fall through to feature-based similarity
|
|
471
|
+
}
|
|
472
|
+
// Feature-based similarity
|
|
473
|
+
let similarity = 0;
|
|
474
|
+
let maxSimilarity = 0;
|
|
475
|
+
// Same agent? (weight: 20%)
|
|
476
|
+
maxSimilarity += 0.2;
|
|
477
|
+
if (state1.agentId === state2.agentId)
|
|
478
|
+
similarity += 0.2;
|
|
479
|
+
// Similar eval score? (weight: 20%)
|
|
480
|
+
maxSimilarity += 0.2;
|
|
481
|
+
const scoreDiff = Math.abs(state1.agentState.lastEvalScore - state2.agentState.lastEvalScore);
|
|
482
|
+
if (scoreDiff < 0.1)
|
|
483
|
+
similarity += 0.2;
|
|
484
|
+
else if (scoreDiff < 0.25)
|
|
485
|
+
similarity += 0.1;
|
|
486
|
+
// Similar hub status? (weight: 10%)
|
|
487
|
+
maxSimilarity += 0.1;
|
|
488
|
+
if ((state1.systemState.hubConnections > 0) ===
|
|
489
|
+
(state2.systemState.hubConnections > 0)) {
|
|
490
|
+
similarity += 0.1;
|
|
491
|
+
}
|
|
492
|
+
// Similar build status? (weight: 15%)
|
|
493
|
+
maxSimilarity += 0.15;
|
|
494
|
+
const builds1 = Object.values(state1.systemState.buildStatus);
|
|
495
|
+
const builds2 = Object.values(state2.systemState.buildStatus);
|
|
496
|
+
if (builds1[0] === builds2[0])
|
|
497
|
+
similarity += 0.15;
|
|
498
|
+
// Similar failure streak? (weight: 15%)
|
|
499
|
+
maxSimilarity += 0.15;
|
|
500
|
+
const failDiff = Math.abs(state1.agentState.consecutiveFailures -
|
|
501
|
+
state2.agentState.consecutiveFailures);
|
|
502
|
+
if (failDiff === 0)
|
|
503
|
+
similarity += 0.15;
|
|
504
|
+
else if (failDiff <= 1)
|
|
505
|
+
similarity += 0.1;
|
|
506
|
+
else if (failDiff <= 2)
|
|
507
|
+
similarity += 0.05;
|
|
508
|
+
// Human activity same? (weight: 10%)
|
|
509
|
+
maxSimilarity += 0.1;
|
|
510
|
+
if (state1.contextState.humanActivity === state2.contextState.humanActivity) {
|
|
511
|
+
similarity += 0.1;
|
|
512
|
+
}
|
|
513
|
+
// Similar code churn? (weight: 10%)
|
|
514
|
+
maxSimilarity += 0.1;
|
|
515
|
+
const churnRatio = Math.min(state1.contextState.codeChurn, state2.contextState.codeChurn) / (Math.max(state1.contextState.codeChurn, state2.contextState.codeChurn) + 1);
|
|
516
|
+
if (churnRatio > 0.5)
|
|
517
|
+
similarity += 0.1;
|
|
518
|
+
else if (churnRatio > 0.25)
|
|
519
|
+
similarity += 0.05;
|
|
520
|
+
return similarity / maxSimilarity;
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Cosine similarity between two vectors
|
|
524
|
+
*/
|
|
525
|
+
function cosineSimilarity(a, b) {
|
|
526
|
+
if (a.length !== b.length)
|
|
527
|
+
return 0;
|
|
528
|
+
let dotProduct = 0;
|
|
529
|
+
let normA = 0;
|
|
530
|
+
let normB = 0;
|
|
531
|
+
for (let i = 0; i < a.length; i++) {
|
|
532
|
+
dotProduct += a[i] * b[i];
|
|
533
|
+
normA += a[i] * a[i];
|
|
534
|
+
normB += b[i] * b[i];
|
|
535
|
+
}
|
|
536
|
+
const denominator = Math.sqrt(normA) * Math.sqrt(normB);
|
|
537
|
+
if (denominator === 0)
|
|
538
|
+
return 0;
|
|
539
|
+
return dotProduct / denominator;
|
|
540
|
+
}
|
|
541
|
+
//# sourceMappingURL=state-capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-capture.js","sourceRoot":"","sources":["../../src/lib/state-capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides reasoning-based analysis and synthesis capabilities
|
|
5
5
|
* for Context Hub journal entries and project documentation.
|
|
6
|
+
* Extended with world model dynamics prediction support.
|
|
6
7
|
*
|
|
7
|
-
* @purpose Client for calling Stratus X1 reasoning API to synthesize context
|
|
8
|
+
* @purpose Client for calling Stratus X1 reasoning API to synthesize context and predict dynamics
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
+
import type { WorldState, AgentAction, PredictionResult, StateTransition, CounterfactualScenario } from "../types/world-model.js";
|
|
11
|
+
/**
|
|
12
|
+
* Response from Stratus API
|
|
13
|
+
*/
|
|
14
|
+
export interface StratusResponse {
|
|
10
15
|
id: string;
|
|
11
16
|
object: string;
|
|
12
17
|
created: number;
|
|
@@ -68,6 +73,19 @@ export declare class StratusClient {
|
|
|
68
73
|
private apiKey;
|
|
69
74
|
private model;
|
|
70
75
|
private timeout;
|
|
76
|
+
private circuitBreaker;
|
|
77
|
+
/**
|
|
78
|
+
* Check if circuit breaker is open (should skip Stratus calls)
|
|
79
|
+
*/
|
|
80
|
+
isCircuitOpen(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Record a failure for circuit breaker
|
|
83
|
+
*/
|
|
84
|
+
private recordFailure;
|
|
85
|
+
/**
|
|
86
|
+
* Record a success for circuit breaker
|
|
87
|
+
*/
|
|
88
|
+
private recordSuccess;
|
|
71
89
|
private readDotenv;
|
|
72
90
|
constructor(options?: {
|
|
73
91
|
baseUrl?: string;
|
|
@@ -97,6 +115,64 @@ export declare class StratusClient {
|
|
|
97
115
|
* Format synthesis result as human-readable text
|
|
98
116
|
*/
|
|
99
117
|
formatSynthesis(synthesis: SynthesisResult): string;
|
|
118
|
+
/**
|
|
119
|
+
* Predict the outcome of an action given the current state
|
|
120
|
+
* Used by dynamics-model.ts when historical aggregation isn't sufficient
|
|
121
|
+
*
|
|
122
|
+
* NOTE: Uses temperature=0 for prediction consistency per refinements doc.
|
|
123
|
+
* Circuit-breaker: if Stratus fails 3x in 5 min, returns fallback immediately.
|
|
124
|
+
*
|
|
125
|
+
* @param state - Current world state
|
|
126
|
+
* @param action - Action to predict outcome for
|
|
127
|
+
* @param context - Optional similar historical transitions for context
|
|
128
|
+
* @returns Predicted outcome with confidence and reasoning
|
|
129
|
+
*/
|
|
130
|
+
predictOutcome(state: WorldState, action: AgentAction, context?: StateTransition[]): Promise<PredictionResult>;
|
|
131
|
+
/**
|
|
132
|
+
* Validate prediction response structure
|
|
133
|
+
*/
|
|
134
|
+
private validatePredictionResponse;
|
|
135
|
+
/**
|
|
136
|
+
* Generate counterfactual scenarios for a completed transition
|
|
137
|
+
*
|
|
138
|
+
* @param transition - The actual transition that occurred
|
|
139
|
+
* @param alternativeActions - Alternative actions to evaluate
|
|
140
|
+
* @returns Array of counterfactual scenarios
|
|
141
|
+
*/
|
|
142
|
+
generateCounterfactuals(transition: StateTransition, alternativeActions: AgentAction[]): Promise<CounterfactualScenario[]>;
|
|
143
|
+
/**
|
|
144
|
+
* Simulate a multi-step trajectory from a starting state
|
|
145
|
+
*
|
|
146
|
+
* @param state - Starting state
|
|
147
|
+
* @param actionSequence - Sequence of actions to simulate
|
|
148
|
+
* @param maxSteps - Maximum steps to simulate
|
|
149
|
+
* @returns Simulated trajectory of state transitions
|
|
150
|
+
*/
|
|
151
|
+
simulateTrajectory(state: WorldState, actionSequence: AgentAction[], maxSteps?: number): Promise<StateTransition[]>;
|
|
152
|
+
/**
|
|
153
|
+
* Format WorldState for prompt
|
|
154
|
+
*/
|
|
155
|
+
private formatWorldStateForPrompt;
|
|
156
|
+
/**
|
|
157
|
+
* Format AgentAction for prompt
|
|
158
|
+
*/
|
|
159
|
+
private formatActionForPrompt;
|
|
160
|
+
/**
|
|
161
|
+
* Format WorldOutcome for prompt
|
|
162
|
+
*/
|
|
163
|
+
private formatOutcomeForPrompt;
|
|
164
|
+
/**
|
|
165
|
+
* Format historical transitions for context
|
|
166
|
+
*/
|
|
167
|
+
private formatContextTransitions;
|
|
168
|
+
/**
|
|
169
|
+
* Determine counterfactual type
|
|
170
|
+
*/
|
|
171
|
+
private determineCounterfactualType;
|
|
172
|
+
/**
|
|
173
|
+
* Parse JSON from LLM response (handles markdown code blocks)
|
|
174
|
+
*/
|
|
175
|
+
private parseJsonFromResponse;
|
|
100
176
|
}
|
|
101
177
|
export {};
|
|
102
178
|
//# sourceMappingURL=stratus-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stratus-client.d.ts","sourceRoot":"","sources":["../../src/lib/stratus-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"stratus-client.d.ts","sourceRoot":"","sources":["../../src/lib/stratus-client.ts"],"names":[],"mappings":"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"}
|