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.
Files changed (97) hide show
  1. package/dist/commands/context-hub.d.ts.map +1 -1
  2. package/dist/commands/context-hub.js +26 -0
  3. package/dist/commands/context-hub.js.map +1 -1
  4. package/dist/commands/init.d.ts +2 -0
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +37 -3
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/migrate-tenet.d.ts +25 -0
  9. package/dist/commands/migrate-tenet.d.ts.map +1 -0
  10. package/dist/commands/migrate-tenet.js +252 -0
  11. package/dist/commands/migrate-tenet.js.map +1 -0
  12. package/dist/commands/peter.d.ts.map +1 -1
  13. package/dist/commands/peter.js +47 -5
  14. package/dist/commands/peter.js.map +1 -1
  15. package/dist/commands/pi.d.ts +1 -0
  16. package/dist/commands/pi.d.ts.map +1 -1
  17. package/dist/commands/pi.js +5 -1
  18. package/dist/commands/pi.js.map +1 -1
  19. package/dist/commands/pivot.d.ts +28 -0
  20. package/dist/commands/pivot.d.ts.map +1 -0
  21. package/dist/commands/pivot.js +219 -0
  22. package/dist/commands/pivot.js.map +1 -0
  23. package/dist/commands/services-create.js +348 -0
  24. package/dist/commands/services-create.js.map +1 -1
  25. package/dist/dashboard-static/assets/index-BVrmW-ZI.js +154 -0
  26. package/dist/dashboard-static/assets/{index-CW8oWAdr.css → index-DtruPD44.css} +1 -1
  27. package/dist/dashboard-static/index.html +2 -2
  28. package/dist/index.js +26 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/agent-generator.d.ts.map +1 -1
  31. package/dist/lib/agent-generator.js +15 -0
  32. package/dist/lib/agent-generator.js.map +1 -1
  33. package/dist/lib/counterfactual-engine.d.ts +136 -0
  34. package/dist/lib/counterfactual-engine.d.ts.map +1 -0
  35. package/dist/lib/counterfactual-engine.js +417 -0
  36. package/dist/lib/counterfactual-engine.js.map +1 -0
  37. package/dist/lib/dynamics-model.d.ts +107 -0
  38. package/dist/lib/dynamics-model.d.ts.map +1 -0
  39. package/dist/lib/dynamics-model.js +363 -0
  40. package/dist/lib/dynamics-model.js.map +1 -0
  41. package/dist/lib/eval-snapshot.d.ts.map +1 -1
  42. package/dist/lib/eval-snapshot.js +15 -4
  43. package/dist/lib/eval-snapshot.js.map +1 -1
  44. package/dist/lib/invariant-monitor.d.ts +50 -0
  45. package/dist/lib/invariant-monitor.d.ts.map +1 -0
  46. package/dist/lib/invariant-monitor.js +400 -0
  47. package/dist/lib/invariant-monitor.js.map +1 -0
  48. package/dist/lib/meta-orchestrator.d.ts +40 -3
  49. package/dist/lib/meta-orchestrator.d.ts.map +1 -1
  50. package/dist/lib/meta-orchestrator.js +181 -2
  51. package/dist/lib/meta-orchestrator.js.map +1 -1
  52. package/dist/lib/openclaw-sdk.d.ts +8 -0
  53. package/dist/lib/openclaw-sdk.d.ts.map +1 -1
  54. package/dist/lib/openclaw-sdk.js +11 -0
  55. package/dist/lib/openclaw-sdk.js.map +1 -1
  56. package/dist/lib/peter-parker-bridge.d.ts +37 -1
  57. package/dist/lib/peter-parker-bridge.d.ts.map +1 -1
  58. package/dist/lib/peter-parker-bridge.js +201 -1
  59. package/dist/lib/peter-parker-bridge.js.map +1 -1
  60. package/dist/lib/service-detector.d.ts +1 -1
  61. package/dist/lib/service-detector.d.ts.map +1 -1
  62. package/dist/lib/service-detector.js +26 -6
  63. package/dist/lib/service-detector.js.map +1 -1
  64. package/dist/lib/service-gtm.d.ts +1 -1
  65. package/dist/lib/service-gtm.d.ts.map +1 -1
  66. package/dist/lib/state-capture.d.ts +36 -0
  67. package/dist/lib/state-capture.d.ts.map +1 -0
  68. package/dist/lib/state-capture.js +541 -0
  69. package/dist/lib/state-capture.js.map +1 -0
  70. package/dist/lib/stratus-client.d.ts +78 -2
  71. package/dist/lib/stratus-client.d.ts.map +1 -1
  72. package/dist/lib/stratus-client.js +432 -1
  73. package/dist/lib/stratus-client.js.map +1 -1
  74. package/dist/lib/world-model-store.d.ts +172 -0
  75. package/dist/lib/world-model-store.d.ts.map +1 -0
  76. package/dist/lib/world-model-store.js +487 -0
  77. package/dist/lib/world-model-store.js.map +1 -0
  78. package/dist/types/world-model.d.ts +478 -0
  79. package/dist/types/world-model.d.ts.map +1 -0
  80. package/dist/types/world-model.js +80 -0
  81. package/dist/types/world-model.js.map +1 -0
  82. package/dist/utils/jfl-config.d.ts +5 -0
  83. package/dist/utils/jfl-config.d.ts.map +1 -1
  84. package/dist/utils/jfl-config.js +13 -1
  85. package/dist/utils/jfl-config.js.map +1 -1
  86. package/package.json +1 -1
  87. package/packages/pi/extensions/hud-tool.ts +2 -24
  88. package/packages/pi/extensions/index.ts +48 -25
  89. package/packages/pi/extensions/onboarding-v1.ts +455 -0
  90. package/packages/pi/extensions/onboarding-v2.ts +516 -0
  91. package/packages/pi/extensions/onboarding-v3.ts +675 -0
  92. package/packages/pi/extensions/pivot-tool.ts +59 -0
  93. package/packages/pi/extensions/session.ts +58 -0
  94. package/packages/pi/extensions/types.ts +2 -0
  95. package/packages/pi/skills/pivot/SKILL.md +91 -0
  96. package/template/.claude/settings.json +9 -0
  97. 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
- interface StratusResponse {
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":"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"}
1
+ {"version":3,"file":"stratus-client.d.ts","sourceRoot":"","sources":["../../src/lib/stratus-client.ts"],"names":[],"mappings":"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"}