@mneme-ai/core 2.19.32 → 2.19.33
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/autonomic_scheduler/b4_context_shift.test.d.ts +12 -0
- package/dist/autonomic_scheduler/b4_context_shift.test.d.ts.map +1 -0
- package/dist/autonomic_scheduler/b4_context_shift.test.js +213 -0
- package/dist/autonomic_scheduler/b4_context_shift.test.js.map +1 -0
- package/dist/autonomic_scheduler/index.d.ts +44 -0
- package/dist/autonomic_scheduler/index.d.ts.map +1 -1
- package/dist/autonomic_scheduler/index.js +68 -1
- package/dist/autonomic_scheduler/index.js.map +1 -1
- package/dist/conversation_compiler/b1_extract_decisions.test.d.ts +2 -0
- package/dist/conversation_compiler/b1_extract_decisions.test.d.ts.map +1 -0
- package/dist/conversation_compiler/b1_extract_decisions.test.js +150 -0
- package/dist/conversation_compiler/b1_extract_decisions.test.js.map +1 -0
- package/dist/conversation_compiler/index.d.ts +19 -1
- package/dist/conversation_compiler/index.d.ts.map +1 -1
- package/dist/conversation_compiler/index.js +128 -39
- package/dist/conversation_compiler/index.js.map +1 -1
- package/dist/cosmic/aurelian_v1933.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1933.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1933.test.js +82 -0
- package/dist/cosmic/aurelian_v1933.test.js.map +1 -0
- package/dist/cosmic/v1933_integration.test.d.ts +2 -0
- package/dist/cosmic/v1933_integration.test.d.ts.map +1 -0
- package/dist/cosmic/v1933_integration.test.js +128 -0
- package/dist/cosmic/v1933_integration.test.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/tool_browser/index.d.ts +128 -0
- package/dist/tool_browser/index.d.ts.map +1 -0
- package/dist/tool_browser/index.js +218 -0
- package/dist/tool_browser/index.js.map +1 -0
- package/dist/tool_browser/tool_browser.test.d.ts +2 -0
- package/dist/tool_browser/tool_browser.test.d.ts.map +1 -0
- package/dist/tool_browser/tool_browser.test.js +167 -0
- package/dist/tool_browser/tool_browser.test.js.map +1 -0
- package/dist/tool_tier/index.d.ts.map +1 -1
- package/dist/tool_tier/index.js +23 -5
- package/dist/tool_tier/index.js.map +1 -1
- package/dist/truth_sensor_pack/index.d.ts +105 -0
- package/dist/truth_sensor_pack/index.d.ts.map +1 -0
- package/dist/truth_sensor_pack/index.js +201 -0
- package/dist/truth_sensor_pack/index.js.map +1 -0
- package/dist/truth_sensor_pack/truth_sensor_pack.test.d.ts +2 -0
- package/dist/truth_sensor_pack/truth_sensor_pack.test.d.ts.map +1 -0
- package/dist/truth_sensor_pack/truth_sensor_pack.test.js +153 -0
- package/dist/truth_sensor_pack/truth_sensor_pack.test.js.map +1 -0
- package/dist/whats_new.d.ts.map +1 -1
- package/dist/whats_new.js +8 -0
- package/dist/whats_new.js.map +1 -1
- package/dist/wrapper_genesis/index.d.ts.map +1 -1
- package/dist/wrapper_genesis/index.js +13 -0
- package/dist/wrapper_genesis/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.33 B4 REGRESSION — SLEEP + DREAMSPACE must tick for active devs.
|
|
3
|
+
*
|
|
4
|
+
* Pre-v2.19.33: required wall-clock idle 30/60min. Active dev = NEVER tick.
|
|
5
|
+
* Post-v2.19.33: fires on branch switch / commit cycle / 30+min no-commit gap.
|
|
6
|
+
*
|
|
7
|
+
* A/B comparison: same simulated 8-hour active-dev workday, two schedules.
|
|
8
|
+
* LEGACY (pre-fix): sleep ticks 0, dreamspace ticks 0
|
|
9
|
+
* ACTIVE_DEV (post-fix): sleep ticks ≥3, dreamspace ticks ≥3
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=b4_context_shift.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"b4_context_shift.test.d.ts","sourceRoot":"","sources":["../../src/autonomic_scheduler/b4_context_shift.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.33 B4 REGRESSION — SLEEP + DREAMSPACE must tick for active devs.
|
|
3
|
+
*
|
|
4
|
+
* Pre-v2.19.33: required wall-clock idle 30/60min. Active dev = NEVER tick.
|
|
5
|
+
* Post-v2.19.33: fires on branch switch / commit cycle / 30+min no-commit gap.
|
|
6
|
+
*
|
|
7
|
+
* A/B comparison: same simulated 8-hour active-dev workday, two schedules.
|
|
8
|
+
* LEGACY (pre-fix): sleep ticks 0, dreamspace ticks 0
|
|
9
|
+
* ACTIVE_DEV (post-fix): sleep ticks ≥3, dreamspace ticks ≥3
|
|
10
|
+
*/
|
|
11
|
+
import { describe, it, expect } from "vitest";
|
|
12
|
+
import { decideTicks, freshHealthRecord, DEFAULT_SCHEDULES, DEFAULT_SCHEDULES_LEGACY, DEFAULT_SCHEDULES_ACTIVE_DEV, } from "./index.js";
|
|
13
|
+
const SECRET = "b4-test-secret";
|
|
14
|
+
describe("v2.19.33 B4 REGRESSION — SLEEP + DREAMSPACE tick on context shifts", () => {
|
|
15
|
+
it("SLEEP fires on branch switch (no wall-clock idle needed)", () => {
|
|
16
|
+
const health = [{ ...freshHealthRecord("sleep"), lastTickMs: 100 }];
|
|
17
|
+
const plan = decideTicks({
|
|
18
|
+
health,
|
|
19
|
+
events: { hasBranchSwitch: true, idleMs: 0 },
|
|
20
|
+
nowMs: 100 + 1000,
|
|
21
|
+
secret: SECRET,
|
|
22
|
+
});
|
|
23
|
+
const sleep = plan.entries.find((e) => e.organ === "sleep");
|
|
24
|
+
expect(sleep?.shouldTick).toBe(true);
|
|
25
|
+
expect(sleep?.details).toContain("branch switch");
|
|
26
|
+
});
|
|
27
|
+
it("DREAMSPACE fires on commit cycle (no wall-clock idle needed)", () => {
|
|
28
|
+
const health = [{ ...freshHealthRecord("dreamspace"), lastTickMs: 100 }];
|
|
29
|
+
const plan = decideTicks({
|
|
30
|
+
health,
|
|
31
|
+
events: { hasCommitCycle: true, idleMs: 0 },
|
|
32
|
+
nowMs: 100 + 1000,
|
|
33
|
+
secret: SECRET,
|
|
34
|
+
});
|
|
35
|
+
const ds = plan.entries.find((e) => e.organ === "dreamspace");
|
|
36
|
+
expect(ds?.shouldTick).toBe(true);
|
|
37
|
+
expect(ds?.details).toContain("commit cycle");
|
|
38
|
+
});
|
|
39
|
+
it("SLEEP fires on 30+min no-commit gap (active-dev fallback)", () => {
|
|
40
|
+
const health = [{ ...freshHealthRecord("sleep"), lastTickMs: 0 }];
|
|
41
|
+
const plan = decideTicks({
|
|
42
|
+
health,
|
|
43
|
+
events: { msSinceLastCommit: 31 * 60_000, idleMs: 0 },
|
|
44
|
+
nowMs: 100_000,
|
|
45
|
+
secret: SECRET,
|
|
46
|
+
});
|
|
47
|
+
const sleep = plan.entries.find((e) => e.organ === "sleep");
|
|
48
|
+
expect(sleep?.shouldTick).toBe(true);
|
|
49
|
+
expect(sleep?.details).toContain("no-commit");
|
|
50
|
+
});
|
|
51
|
+
it("DREAMSPACE fires on 60+min no-commit gap", () => {
|
|
52
|
+
const health = [{ ...freshHealthRecord("dreamspace"), lastTickMs: 0 }];
|
|
53
|
+
const plan = decideTicks({
|
|
54
|
+
health,
|
|
55
|
+
events: { msSinceLastCommit: 61 * 60_000, idleMs: 0 },
|
|
56
|
+
nowMs: 100_000,
|
|
57
|
+
secret: SECRET,
|
|
58
|
+
});
|
|
59
|
+
const ds = plan.entries.find((e) => e.organ === "dreamspace");
|
|
60
|
+
expect(ds?.shouldTick).toBe(true);
|
|
61
|
+
expect(ds?.details).toContain("no-commit");
|
|
62
|
+
});
|
|
63
|
+
it("DREAMSPACE does NOT fire on 10min no-commit (below threshold)", () => {
|
|
64
|
+
const health = [{ ...freshHealthRecord("dreamspace"), lastTickMs: 100 }];
|
|
65
|
+
const plan = decideTicks({
|
|
66
|
+
health,
|
|
67
|
+
events: { msSinceLastCommit: 10 * 60_000, idleMs: 0 },
|
|
68
|
+
nowMs: 100 + 5 * 60_000,
|
|
69
|
+
secret: SECRET,
|
|
70
|
+
});
|
|
71
|
+
const ds = plan.entries.find((e) => e.organ === "dreamspace");
|
|
72
|
+
expect(ds?.shouldTick).toBe(false);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe("v2.19.33 B4 — manual force (mneme sleep --force)", () => {
|
|
76
|
+
it("forceOrgans: ['sleep'] fires sleep regardless of interval/idle", () => {
|
|
77
|
+
const health = [{ ...freshHealthRecord("sleep"), lastTickMs: Date.now() }];
|
|
78
|
+
const plan = decideTicks({
|
|
79
|
+
health,
|
|
80
|
+
events: { forceOrgans: ["sleep"], idleMs: 0 },
|
|
81
|
+
nowMs: Date.now() + 1000,
|
|
82
|
+
secret: SECRET,
|
|
83
|
+
});
|
|
84
|
+
const sleep = plan.entries.find((e) => e.organ === "sleep");
|
|
85
|
+
expect(sleep?.shouldTick).toBe(true);
|
|
86
|
+
expect(sleep?.reason).toBe("manual");
|
|
87
|
+
});
|
|
88
|
+
it("force does NOT bypass circuit-breaker cooldown", () => {
|
|
89
|
+
const now = Date.now();
|
|
90
|
+
const health = [{
|
|
91
|
+
...freshHealthRecord("sleep"),
|
|
92
|
+
lastTickMs: now,
|
|
93
|
+
cooldownUntilMs: now + 60 * 60_000,
|
|
94
|
+
}];
|
|
95
|
+
const plan = decideTicks({
|
|
96
|
+
health,
|
|
97
|
+
events: { forceOrgans: ["sleep"] },
|
|
98
|
+
nowMs: now + 1000,
|
|
99
|
+
secret: SECRET,
|
|
100
|
+
});
|
|
101
|
+
const sleep = plan.entries.find((e) => e.organ === "sleep");
|
|
102
|
+
expect(sleep?.shouldTick).toBe(false);
|
|
103
|
+
expect(sleep?.reason).toBe("circuit_open");
|
|
104
|
+
});
|
|
105
|
+
it("forceOrgans: ['dreamspace'] only fires dreamspace, not sleep", () => {
|
|
106
|
+
const health = [
|
|
107
|
+
{ ...freshHealthRecord("sleep"), lastTickMs: 100 },
|
|
108
|
+
{ ...freshHealthRecord("dreamspace"), lastTickMs: 100 },
|
|
109
|
+
];
|
|
110
|
+
const plan = decideTicks({
|
|
111
|
+
health,
|
|
112
|
+
events: { forceOrgans: ["dreamspace"], idleMs: 0 },
|
|
113
|
+
nowMs: 100 + 1000,
|
|
114
|
+
secret: SECRET,
|
|
115
|
+
});
|
|
116
|
+
const sleep = plan.entries.find((e) => e.organ === "sleep");
|
|
117
|
+
const ds = plan.entries.find((e) => e.organ === "dreamspace");
|
|
118
|
+
expect(ds?.shouldTick).toBe(true);
|
|
119
|
+
expect(sleep?.shouldTick).toBe(false);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
describe("v2.19.33 B4 A/B — 8-hour active dev workday simulation", () => {
|
|
123
|
+
// Simulate an 8hr active-dev session: 16 commits over 8 hours, 3 branch
|
|
124
|
+
// switches, NEVER 30min idle. Count ticks under LEGACY vs ACTIVE_DEV.
|
|
125
|
+
function simulateWorkday(schedules) {
|
|
126
|
+
let health = [
|
|
127
|
+
freshHealthRecord("breath"),
|
|
128
|
+
freshHealthRecord("reflex"),
|
|
129
|
+
freshHealthRecord("sleep"),
|
|
130
|
+
freshHealthRecord("dreamspace"),
|
|
131
|
+
freshHealthRecord("hormonal"),
|
|
132
|
+
];
|
|
133
|
+
let sleepTicks = 0, dreamTicks = 0;
|
|
134
|
+
const startMs = 1_700_000_000_000;
|
|
135
|
+
// Tick every 30s (daemon cadence)
|
|
136
|
+
const tickEveryMs = 30_000;
|
|
137
|
+
const totalMs = 8 * 60 * 60_000; // 8 hours
|
|
138
|
+
let lastCommitMs = startMs;
|
|
139
|
+
let lastBranchSwitchMs = startMs;
|
|
140
|
+
const branchSwitchTimes = [startMs + 2 * 60 * 60_000, startMs + 4 * 60 * 60_000, startMs + 6 * 60 * 60_000];
|
|
141
|
+
// 16 commits spread evenly
|
|
142
|
+
const commitTimes = Array.from({ length: 16 }, (_, i) => startMs + (i + 1) * (totalMs / 17));
|
|
143
|
+
for (let t = startMs; t < startMs + totalMs; t += tickEveryMs) {
|
|
144
|
+
// Determine signals for this tick window
|
|
145
|
+
const recentCommit = commitTimes.some((ct) => ct > t - tickEveryMs && ct <= t);
|
|
146
|
+
if (recentCommit)
|
|
147
|
+
lastCommitMs = t;
|
|
148
|
+
const recentBranchSwitch = branchSwitchTimes.some((bt) => bt > t - tickEveryMs && bt <= t);
|
|
149
|
+
if (recentBranchSwitch)
|
|
150
|
+
lastBranchSwitchMs = t;
|
|
151
|
+
const events = {
|
|
152
|
+
hasGitEvent: recentCommit,
|
|
153
|
+
hasCommitCycle: recentCommit,
|
|
154
|
+
hasBranchSwitch: recentBranchSwitch,
|
|
155
|
+
msSinceLastCommit: t - lastCommitMs,
|
|
156
|
+
idleMs: 0, // active dev — NEVER idle
|
|
157
|
+
};
|
|
158
|
+
const plan = decideTicks({ schedules, health, events, nowMs: t, secret: SECRET });
|
|
159
|
+
for (const entry of plan.entries) {
|
|
160
|
+
if (!entry.shouldTick)
|
|
161
|
+
continue;
|
|
162
|
+
const h = health.find((x) => x.organ === entry.organ);
|
|
163
|
+
if (!h)
|
|
164
|
+
continue;
|
|
165
|
+
h.lastTickMs = t;
|
|
166
|
+
h.totalTicks++;
|
|
167
|
+
if (entry.organ === "sleep")
|
|
168
|
+
sleepTicks++;
|
|
169
|
+
if (entry.organ === "dreamspace")
|
|
170
|
+
dreamTicks++;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return { sleep: sleepTicks, dreamspace: dreamTicks };
|
|
174
|
+
}
|
|
175
|
+
it("A: LEGACY schedules (pre-v2.19.33) — SLEEP + DREAMSPACE tick 0 in 8hr workday", () => {
|
|
176
|
+
const r = simulateWorkday(DEFAULT_SCHEDULES_LEGACY);
|
|
177
|
+
expect(r.sleep).toBe(0);
|
|
178
|
+
expect(r.dreamspace).toBe(0);
|
|
179
|
+
});
|
|
180
|
+
it("B: ACTIVE_DEV schedules (post-v2.19.33) — SLEEP ticks ≥3, DREAMSPACE ticks ≥3", () => {
|
|
181
|
+
const r = simulateWorkday(DEFAULT_SCHEDULES_ACTIVE_DEV);
|
|
182
|
+
expect(r.sleep).toBeGreaterThanOrEqual(3);
|
|
183
|
+
expect(r.dreamspace).toBeGreaterThanOrEqual(3);
|
|
184
|
+
});
|
|
185
|
+
it("A/B DELTA: post-fix produces measurably more ticks (≥6 total vs 0)", () => {
|
|
186
|
+
const a = simulateWorkday(DEFAULT_SCHEDULES_LEGACY);
|
|
187
|
+
const b = simulateWorkday(DEFAULT_SCHEDULES_ACTIVE_DEV);
|
|
188
|
+
const aTotal = a.sleep + a.dreamspace;
|
|
189
|
+
const bTotal = b.sleep + b.dreamspace;
|
|
190
|
+
expect(bTotal - aTotal).toBeGreaterThanOrEqual(6);
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
describe("v2.19.33 B4 — DEFAULT_SCHEDULES is now ACTIVE_DEV variant", () => {
|
|
194
|
+
it("DEFAULT_SCHEDULES === DEFAULT_SCHEDULES_ACTIVE_DEV (v2.19.33 default)", () => {
|
|
195
|
+
expect(DEFAULT_SCHEDULES).toBe(DEFAULT_SCHEDULES_ACTIVE_DEV);
|
|
196
|
+
});
|
|
197
|
+
it("legacy schedules still exported for backward compat", () => {
|
|
198
|
+
expect(DEFAULT_SCHEDULES_LEGACY.length).toBe(DEFAULT_SCHEDULES_ACTIVE_DEV.length);
|
|
199
|
+
});
|
|
200
|
+
it("sleep + dreamspace in ACTIVE_DEV have fireOnContextShift=true", () => {
|
|
201
|
+
const sleep = DEFAULT_SCHEDULES_ACTIVE_DEV.find((s) => s.organ === "sleep");
|
|
202
|
+
const ds = DEFAULT_SCHEDULES_ACTIVE_DEV.find((s) => s.organ === "dreamspace");
|
|
203
|
+
expect(sleep?.fireOnContextShift).toBe(true);
|
|
204
|
+
expect(ds?.fireOnContextShift).toBe(true);
|
|
205
|
+
});
|
|
206
|
+
it("breath + reflex + hormonal in ACTIVE_DEV have fireOnContextShift=false", () => {
|
|
207
|
+
for (const organ of ["breath", "reflex", "hormonal"]) {
|
|
208
|
+
const s = DEFAULT_SCHEDULES_ACTIVE_DEV.find((x) => x.organ === organ);
|
|
209
|
+
expect(s?.fireOnContextShift).toBe(false);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
//# sourceMappingURL=b4_context_shift.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"b4_context_shift.test.js","sourceRoot":"","sources":["../../src/autonomic_scheduler/b4_context_shift.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,34 @@ export interface OrganSchedule {
|
|
|
48
48
|
fireOnEvent?: boolean;
|
|
49
49
|
/** Require idleMs > this to consider firing (0 = no idle requirement). */
|
|
50
50
|
requireIdleMs?: number;
|
|
51
|
+
/**
|
|
52
|
+
* v2.19.33 B4 fix — fire on semantic context shifts the active dev actually
|
|
53
|
+
* generates (commit cycle complete / branch switch / N-min no-commit gap).
|
|
54
|
+
* This unblocks SLEEP + DREAMSPACE for devs who work 16-19hr/day and never
|
|
55
|
+
* accumulate wall-clock idle. See EventSignals.hasContextShift*.
|
|
56
|
+
*/
|
|
57
|
+
fireOnContextShift?: boolean;
|
|
51
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Pre-v2.19.33 schedule set kept for backward compatibility. NEW code should
|
|
61
|
+
* use DEFAULT_SCHEDULES_ACTIVE_DEV (v2.19.33 default for nucleus daemon).
|
|
62
|
+
*/
|
|
63
|
+
export declare const DEFAULT_SCHEDULES_LEGACY: readonly OrganSchedule[];
|
|
64
|
+
/**
|
|
65
|
+
* v2.19.33 B4 fix — "scheduler adapts to user, not user to scheduler".
|
|
66
|
+
*
|
|
67
|
+
* Pre-v2.19.33 SLEEP + DREAMSPACE required wall-clock idle (30/60min). Active
|
|
68
|
+
* devs (16-19hr/day) NEVER reached the threshold so the organs ticked 0 times
|
|
69
|
+
* in practice. v2.19.33 makes them fire on SEMANTIC CONTEXT SHIFTS the user
|
|
70
|
+
* actually generates:
|
|
71
|
+
*
|
|
72
|
+
* - sleep → on branch switch OR 30min no-commit gap OR wall-idle 30min
|
|
73
|
+
* - dreamspace → on commit cycle OR 60min no-commit gap OR wall-idle 60min
|
|
74
|
+
*
|
|
75
|
+
* Both still respect the interval guard (don't fire more than once per interval).
|
|
76
|
+
*/
|
|
77
|
+
export declare const DEFAULT_SCHEDULES_ACTIVE_DEV: readonly OrganSchedule[];
|
|
78
|
+
/** Default exposed as the ACTIVE_DEV variant from v2.19.33 onward. */
|
|
52
79
|
export declare const DEFAULT_SCHEDULES: readonly OrganSchedule[];
|
|
53
80
|
export interface OrganHealthRecord {
|
|
54
81
|
organ: OrganKind;
|
|
@@ -80,6 +107,23 @@ export interface EventSignals {
|
|
|
80
107
|
hasFileSaveEvent?: boolean;
|
|
81
108
|
/** Idle ms since last user activity. */
|
|
82
109
|
idleMs?: number;
|
|
110
|
+
/**
|
|
111
|
+
* v2.19.33 B4 — semantic-context-shift signals. The caller (daemon) sets
|
|
112
|
+
* these from real git/IDE observations so SLEEP + DREAMSPACE can fire
|
|
113
|
+
* even when the dev never goes wall-clock idle.
|
|
114
|
+
*/
|
|
115
|
+
/** Branch switched since last tick (git symbolic-ref HEAD changed). */
|
|
116
|
+
hasBranchSwitch?: boolean;
|
|
117
|
+
/** A commit cycle just completed (≥1 fresh commit since last tick). */
|
|
118
|
+
hasCommitCycle?: boolean;
|
|
119
|
+
/** ms since last commit (caller derives from `git log -1 --format=%ct`). */
|
|
120
|
+
msSinceLastCommit?: number;
|
|
121
|
+
/**
|
|
122
|
+
* Caller-explicit overrides — `mneme sleep --force` translates to
|
|
123
|
+
* `{ forceOrgans: ["sleep"] }`. Any organ in this list fires regardless
|
|
124
|
+
* of interval / idle / context-shift (still subject to cooldown).
|
|
125
|
+
*/
|
|
126
|
+
forceOrgans?: OrganKind[];
|
|
83
127
|
}
|
|
84
128
|
/**
|
|
85
129
|
* Pure decision: which organs should tick RIGHT NOW given health records +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/autonomic_scheduler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAIpC,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC;AAElF,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,QAAQ,GACR,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/autonomic_scheduler/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,13 +41,39 @@ import { createHmac, timingSafeEqual } from "node:crypto";
|
|
|
41
41
|
const PROTOCOL_VERSION = 1;
|
|
42
42
|
const DEFAULT_FAILURE_THRESHOLD = 3;
|
|
43
43
|
const DEFAULT_COOLDOWN_MS = 60 * 60 * 1000; // 1 hour
|
|
44
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Pre-v2.19.33 schedule set kept for backward compatibility. NEW code should
|
|
46
|
+
* use DEFAULT_SCHEDULES_ACTIVE_DEV (v2.19.33 default for nucleus daemon).
|
|
47
|
+
*/
|
|
48
|
+
export const DEFAULT_SCHEDULES_LEGACY = [
|
|
45
49
|
{ organ: "breath", intervalMs: 60_000, fireOnEvent: false, requireIdleMs: 0 },
|
|
46
50
|
{ organ: "reflex", intervalMs: 5 * 60_000, fireOnEvent: true, requireIdleMs: 0 },
|
|
47
51
|
{ organ: "sleep", intervalMs: 30 * 60_000, fireOnEvent: false, requireIdleMs: 30 * 60_000 },
|
|
48
52
|
{ organ: "dreamspace", intervalMs: 60 * 60_000, fireOnEvent: false, requireIdleMs: 60 * 60_000 },
|
|
49
53
|
{ organ: "hormonal", intervalMs: 5 * 60_000, fireOnEvent: true, requireIdleMs: 0 },
|
|
50
54
|
];
|
|
55
|
+
/**
|
|
56
|
+
* v2.19.33 B4 fix — "scheduler adapts to user, not user to scheduler".
|
|
57
|
+
*
|
|
58
|
+
* Pre-v2.19.33 SLEEP + DREAMSPACE required wall-clock idle (30/60min). Active
|
|
59
|
+
* devs (16-19hr/day) NEVER reached the threshold so the organs ticked 0 times
|
|
60
|
+
* in practice. v2.19.33 makes them fire on SEMANTIC CONTEXT SHIFTS the user
|
|
61
|
+
* actually generates:
|
|
62
|
+
*
|
|
63
|
+
* - sleep → on branch switch OR 30min no-commit gap OR wall-idle 30min
|
|
64
|
+
* - dreamspace → on commit cycle OR 60min no-commit gap OR wall-idle 60min
|
|
65
|
+
*
|
|
66
|
+
* Both still respect the interval guard (don't fire more than once per interval).
|
|
67
|
+
*/
|
|
68
|
+
export const DEFAULT_SCHEDULES_ACTIVE_DEV = [
|
|
69
|
+
{ organ: "breath", intervalMs: 60_000, fireOnEvent: false, requireIdleMs: 0, fireOnContextShift: false },
|
|
70
|
+
{ organ: "reflex", intervalMs: 5 * 60_000, fireOnEvent: true, requireIdleMs: 0, fireOnContextShift: false },
|
|
71
|
+
{ organ: "sleep", intervalMs: 30 * 60_000, fireOnEvent: false, requireIdleMs: 30 * 60_000, fireOnContextShift: true },
|
|
72
|
+
{ organ: "dreamspace", intervalMs: 60 * 60_000, fireOnEvent: false, requireIdleMs: 60 * 60_000, fireOnContextShift: true },
|
|
73
|
+
{ organ: "hormonal", intervalMs: 5 * 60_000, fireOnEvent: true, requireIdleMs: 0, fireOnContextShift: false },
|
|
74
|
+
];
|
|
75
|
+
/** Default exposed as the ACTIVE_DEV variant from v2.19.33 onward. */
|
|
76
|
+
export const DEFAULT_SCHEDULES = DEFAULT_SCHEDULES_ACTIVE_DEV;
|
|
51
77
|
export function freshHealthRecord(organ) {
|
|
52
78
|
return {
|
|
53
79
|
organ,
|
|
@@ -95,6 +121,7 @@ function safeEqHex(a, b) {
|
|
|
95
121
|
export function decideTicks(input) {
|
|
96
122
|
const schedules = input.schedules ?? DEFAULT_SCHEDULES;
|
|
97
123
|
const healthByOrgan = new Map(input.health.map((h) => [h.organ, h]));
|
|
124
|
+
const forceSet = new Set(input.events.forceOrgans ?? []);
|
|
98
125
|
const entries = [];
|
|
99
126
|
for (const s of schedules) {
|
|
100
127
|
const h = healthByOrgan.get(s.organ) ?? freshHealthRecord(s.organ);
|
|
@@ -106,6 +133,14 @@ export function decideTicks(input) {
|
|
|
106
133
|
});
|
|
107
134
|
continue;
|
|
108
135
|
}
|
|
136
|
+
// v2.19.33 B4 — explicit user force (`mneme sleep --force`) bypasses interval/idle.
|
|
137
|
+
if (forceSet.has(s.organ)) {
|
|
138
|
+
entries.push({
|
|
139
|
+
organ: s.organ, shouldTick: true, reason: "manual",
|
|
140
|
+
details: `forced by caller (e.g., 'mneme ${s.organ} --force')`,
|
|
141
|
+
});
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
109
144
|
const hasEvent = (s.fireOnEvent && (input.events.hasGitEvent || input.events.hasFileSaveEvent));
|
|
110
145
|
if (hasEvent) {
|
|
111
146
|
entries.push({
|
|
@@ -114,6 +149,38 @@ export function decideTicks(input) {
|
|
|
114
149
|
});
|
|
115
150
|
continue;
|
|
116
151
|
}
|
|
152
|
+
// v2.19.33 B4 — context-shift fires: branch switch (sleep) / commit cycle (dreamspace) /
|
|
153
|
+
// long no-commit gap (either). These let SLEEP + DREAMSPACE tick for active devs who
|
|
154
|
+
// never accumulate wall-clock idle.
|
|
155
|
+
if (s.fireOnContextShift) {
|
|
156
|
+
// SLEEP: triggered by branch switch
|
|
157
|
+
if (s.organ === "sleep" && input.events.hasBranchSwitch) {
|
|
158
|
+
entries.push({
|
|
159
|
+
organ: s.organ, shouldTick: true, reason: "event_triggered",
|
|
160
|
+
details: "branch switch detected (context-shift trigger)",
|
|
161
|
+
});
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
// DREAMSPACE: triggered by commit-cycle completion
|
|
165
|
+
if (s.organ === "dreamspace" && input.events.hasCommitCycle) {
|
|
166
|
+
entries.push({
|
|
167
|
+
organ: s.organ, shouldTick: true, reason: "event_triggered",
|
|
168
|
+
details: "commit cycle complete (context-shift trigger)",
|
|
169
|
+
});
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
// Long no-commit gap (applies to both) — defaults: sleep 30min, dreamspace 60min
|
|
173
|
+
const noCommitThreshold = s.organ === "dreamspace" ? 60 * 60_000 : 30 * 60_000;
|
|
174
|
+
if (input.events.msSinceLastCommit !== undefined
|
|
175
|
+
&& input.events.msSinceLastCommit >= noCommitThreshold
|
|
176
|
+
&& (h.lastTickMs === 0 || input.nowMs - h.lastTickMs >= s.intervalMs)) {
|
|
177
|
+
entries.push({
|
|
178
|
+
organ: s.organ, shouldTick: true, reason: "event_triggered",
|
|
179
|
+
details: `no-commit ${Math.round(input.events.msSinceLastCommit / 60_000)}m (context-shift trigger)`,
|
|
180
|
+
});
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
117
184
|
// First-tick semantics: lastTickMs===0 means "never ticked" — fire immediately
|
|
118
185
|
// so a fresh daemon doesn't sit dormant for 60s waiting for the first interval.
|
|
119
186
|
const dueByInterval = h.lastTickMs === 0 || (input.nowMs - h.lastTickMs) >= s.intervalMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/autonomic_scheduler/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,gBAAgB,GAAG,CAAU,CAAC;AACpC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAsBrD,MAAM,CAAC,MAAM,iBAAiB,GAA6B;IACzD,EAAE,KAAK,EAAE,QAAQ,EAAM,UAAU,EAAE,MAAM,EAAS,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE;IACxF,EAAE,KAAK,EAAE,QAAQ,EAAM,UAAU,EAAE,CAAC,GAAG,MAAM,EAAK,WAAW,EAAE,IAAI,EAAG,aAAa,EAAE,CAAC,EAAE;IACxF,EAAE,KAAK,EAAE,OAAO,EAAO,UAAU,EAAE,EAAE,GAAG,MAAM,EAAI,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,GAAG,MAAM,EAAE;IAClG,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,GAAG,MAAM,EAAI,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,GAAG,MAAM,EAAE;IAClG,EAAE,KAAK,EAAE,UAAU,EAAI,UAAU,EAAE,CAAC,GAAG,MAAM,EAAK,WAAW,EAAE,IAAI,EAAG,aAAa,EAAE,CAAC,EAAE;CACzF,CAAC;AAaF,MAAM,UAAU,iBAAiB,CAAC,KAAgB;IAChD,OAAO;QACL,KAAK;QACL,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,mBAAmB,EAAE,CAAC;QACtB,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;QACjB,aAAa,EAAE,CAAC;KACjB,CAAC;AACJ,CAAC;AAyBD,SAAS,KAAK,CAAC,CAAU;IACvB,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACnH,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,8BAA8B,gBAAgB,EAAE,CAAC;AAC7G,CAAC;AAED,SAAS,OAAO,CAAC,IAAa,EAAE,MAAc;IAC5C,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,IAAI,CAAC;QAAC,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAAC,CAAC;IAC7E,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,KAM3B;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,iBAAiB,CAAC;IACvD,MAAM,aAAa,GAAG,IAAI,GAAG,CAA+B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc;gBACzD,OAAO,EAAE,yBAAyB,CAAC,CAAC,mBAAmB,oCAAoC,SAAS,aAAa;aAClH,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAChG,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB;gBAC3D,OAAO,EAAE,8BAA8B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG;aAC9G,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,+EAA+E;QAC/E,gFAAgF;QAChF,MAAM,aAAa,GAAG,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;QACzF,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;QACpG,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI;gBAChC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc;gBACtE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;aAC9H,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc;YACzD,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa;SACzM,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAA0B,EAAE,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/F,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAW,EAAE,MAAe;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC;AAoBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KASlC;IACC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,WAAW,CAAC;QACvB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;IACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,IAAI,mBAAmB,CAAC;IACzD,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAC7C,CAAC;IACF,8EAA8E;IAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,iBAAiB,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;gBAC3D,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aACxB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC1B,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;YACtB,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;YAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;gBAC1D,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aAC5C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,CAAC,CAAC,mBAAmB,EAAE,CAAC;YACxB,CAAC,CAAC,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,mBAAmB,IAAI,SAAS,EAAE,CAAC;gBACvC,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC7C,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;gBAC1D,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAC5C,YAAY,EAAG,CAAW,CAAC,OAAO;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAA6B;QACrC,CAAC,EAAE,gBAAgB;QACnB,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ;QACR,SAAS;KACV,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAc,EAAE,MAAe;IAC/D,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC;AAYD,MAAM,UAAU,YAAY,CAAC,MAA2B,EAAE,KAAa;IACrE,IAAI,UAAU,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC;QAC3B,cAAc,IAAI,CAAC,CAAC,cAAc,CAAC;QACnC,aAAa,IAAI,CAAC,CAAC,aAAa,CAAC;QACjC,IAAI,CAAC,CAAC,eAAe,GAAG,KAAK;YAAE,UAAU,EAAE,CAAC;aACvC,IAAI,CAAC,CAAC,mBAAmB,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;IAClD,CAAC;IACD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,UAAU;QACV,cAAc;QACd,aAAa;QACb,WAAW,EAAE,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,UAAU;QAC/D,gBAAgB,EAAE,UAAU;QAC5B,aAAa,EAAE,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAiB;IAC/C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,kBAAkB,CAAC,CAAC,WAAW,aAAa,CAAC,CAAC,UAAU,YAAY,GAAG,iBAAiB,CAAC,CAAC,aAAa,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC3I,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAW;IACxC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnG,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC3D,OAAO,mBAAmB,IAAI,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;AAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/autonomic_scheduler/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"b1_extract_decisions.test.d.ts","sourceRoot":"","sources":["../../src/conversation_compiler/b1_extract_decisions.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.33 B1 REGRESSION — extractDecisions undercounted multiple-clause EN
|
|
3
|
+
* transcripts (BUG report 2026-05-17). Pins the canonical bug case forever
|
|
4
|
+
* + A/B compares strict / balanced / liberal modes + verifies new
|
|
5
|
+
* review_required pattern.
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect } from "vitest";
|
|
8
|
+
import { extractDecisions, runAgreement } from "./index.js";
|
|
9
|
+
describe("v2.19.33 B1 REGRESSION — multi-clause EN transcript", () => {
|
|
10
|
+
// CANONICAL BUG: "every commit must pass test \n deploy needs 2 reviewers"
|
|
11
|
+
// expected: 2 decisions ; pre-v2.19.33 actual: 1 decision.
|
|
12
|
+
it("canonical bug: 'every commit must pass test \\n deploy needs 2 reviewers' → 2 decisions", () => {
|
|
13
|
+
const d = extractDecisions({
|
|
14
|
+
transcript: "every commit must pass test\ndeploy needs 2 reviewers",
|
|
15
|
+
});
|
|
16
|
+
expect(d.length).toBeGreaterThanOrEqual(2);
|
|
17
|
+
expect(d.some((x) => x.pattern === "test_required")).toBe(true);
|
|
18
|
+
expect(d.some((x) => x.pattern === "review_required")).toBe(true);
|
|
19
|
+
const rev = d.find((x) => x.pattern === "review_required");
|
|
20
|
+
expect(rev?.params?.["minReviewers"]).toBe(2);
|
|
21
|
+
});
|
|
22
|
+
it("variant: 'all commits must have tests AND 3 approvals required' → 2 decisions", () => {
|
|
23
|
+
const d = extractDecisions({
|
|
24
|
+
transcript: "all commits must have tests.\n3 approvals required for merge.",
|
|
25
|
+
});
|
|
26
|
+
expect(d.some((x) => x.pattern === "test_required")).toBe(true);
|
|
27
|
+
const rev = d.find((x) => x.pattern === "review_required");
|
|
28
|
+
expect(rev?.params?.["minReviewers"]).toBe(3);
|
|
29
|
+
});
|
|
30
|
+
it("Thai variant: 'ทุก commit ต้อง pass test\\nPR ต้องมี 2 คน review' → 2 decisions", () => {
|
|
31
|
+
const d = extractDecisions({
|
|
32
|
+
transcript: "ทุก commit ต้อง pass test\nPR ต้องมี 2 คน review",
|
|
33
|
+
});
|
|
34
|
+
expect(d.some((x) => x.pattern === "test_required")).toBe(true);
|
|
35
|
+
expect(d.some((x) => x.pattern === "review_required")).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
it("3-clause transcript captures all 3 distinct patterns", () => {
|
|
38
|
+
const d = extractDecisions({
|
|
39
|
+
transcript: "Every commit must pass test.\nDeploy needs 2 reviewers.\nNever commit secrets.",
|
|
40
|
+
});
|
|
41
|
+
const patterns = new Set(d.map((x) => x.pattern));
|
|
42
|
+
expect(patterns.has("test_required")).toBe(true);
|
|
43
|
+
expect(patterns.has("review_required")).toBe(true);
|
|
44
|
+
expect(patterns.has("no_secret_in_code")).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
it("checker enforces minReviewers: 2 approvals when min=2 → ok", () => {
|
|
47
|
+
const d = extractDecisions({ transcript: "deploy needs 2 reviewers" });
|
|
48
|
+
const rev = d.find((x) => x.pattern === "review_required");
|
|
49
|
+
expect(rev).toBeDefined();
|
|
50
|
+
const agreement = {
|
|
51
|
+
v: 1, agreementId: "test-1", name: "test", decisions: [rev],
|
|
52
|
+
transcriptSha256: "x".repeat(64), sourceSha256: "y".repeat(64),
|
|
53
|
+
generatedSource: "// generated", proposedBy: "test",
|
|
54
|
+
compiledAt: new Date().toISOString(), sig: "z".repeat(64),
|
|
55
|
+
};
|
|
56
|
+
const results = runAgreement({ agreement, target: { approvalCount: 2 } });
|
|
57
|
+
expect(results[0].ok).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it("checker enforces minReviewers: 1 approval when min=2 → blocked", () => {
|
|
60
|
+
const d = extractDecisions({ transcript: "deploy needs 2 reviewers" });
|
|
61
|
+
const rev = d.find((x) => x.pattern === "review_required");
|
|
62
|
+
const agreement = {
|
|
63
|
+
v: 1, agreementId: "test-2", name: "test", decisions: [rev],
|
|
64
|
+
transcriptSha256: "x".repeat(64), sourceSha256: "y".repeat(64),
|
|
65
|
+
generatedSource: "// generated", proposedBy: "test",
|
|
66
|
+
compiledAt: new Date().toISOString(), sig: "z".repeat(64),
|
|
67
|
+
};
|
|
68
|
+
const results = runAgreement({ agreement, target: { approvalCount: 1 } });
|
|
69
|
+
expect(results[0].ok).toBe(false);
|
|
70
|
+
expect(results[0].severity).toBe("block");
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe("v2.19.33 B1 A/B MODES — strict vs balanced vs liberal", () => {
|
|
74
|
+
// MEASURED A/B: same transcript, count decisions per mode.
|
|
75
|
+
// We expect: strict ≤ balanced ≤ liberal (precision ↓ → recall ↑).
|
|
76
|
+
const noisyTranscript = [
|
|
77
|
+
"Every commit must pass test.", // RULE: test_required
|
|
78
|
+
"Deploy needs 2 reviewers.", // RULE: review_required (new in v2.19.33)
|
|
79
|
+
"You should also lint the code.", // manual (liberal only — soft 'should')
|
|
80
|
+
"Let's keep the README in sync with releases.", // manual (liberal — soft 'let's')
|
|
81
|
+
"Everyone must follow the security guidelines.", // manual (balanced+liberal — strong 'must')
|
|
82
|
+
"Random sentence about food.", // ignored
|
|
83
|
+
].join("\n");
|
|
84
|
+
it("strict mode: only RULES match — no manual fallback", () => {
|
|
85
|
+
const d = extractDecisions({ transcript: noisyTranscript, mode: "strict" });
|
|
86
|
+
expect(d.every((x) => x.pattern !== "manual")).toBe(true);
|
|
87
|
+
// RULES hit: test_required + review_required = 2
|
|
88
|
+
expect(d.length).toBe(2);
|
|
89
|
+
});
|
|
90
|
+
it("balanced mode (default): RULES + strong manual verbs", () => {
|
|
91
|
+
const d = extractDecisions({ transcript: noisyTranscript, mode: "balanced" });
|
|
92
|
+
// RULES: 2 + manual ('must'): 1 (security guidelines) = 3
|
|
93
|
+
expect(d.length).toBe(3);
|
|
94
|
+
expect(d.some((x) => x.pattern === "manual")).toBe(true);
|
|
95
|
+
});
|
|
96
|
+
it("liberal mode: RULES + permissive manual ('should', 'let's')", () => {
|
|
97
|
+
const d = extractDecisions({ transcript: noisyTranscript, mode: "liberal" });
|
|
98
|
+
// Should capture: 2 RULES + 'should lint' + 'let's keep README' + 'must follow'
|
|
99
|
+
expect(d.length).toBeGreaterThanOrEqual(4);
|
|
100
|
+
});
|
|
101
|
+
it("ORDERING: strict ≤ balanced ≤ liberal (recall increases)", () => {
|
|
102
|
+
const s = extractDecisions({ transcript: noisyTranscript, mode: "strict" });
|
|
103
|
+
const b = extractDecisions({ transcript: noisyTranscript, mode: "balanced" });
|
|
104
|
+
const l = extractDecisions({ transcript: noisyTranscript, mode: "liberal" });
|
|
105
|
+
expect(s.length).toBeLessThanOrEqual(b.length);
|
|
106
|
+
expect(b.length).toBeLessThanOrEqual(l.length);
|
|
107
|
+
});
|
|
108
|
+
it("default mode (omitted) === balanced", () => {
|
|
109
|
+
const def = extractDecisions({ transcript: noisyTranscript });
|
|
110
|
+
const bal = extractDecisions({ transcript: noisyTranscript, mode: "balanced" });
|
|
111
|
+
expect(def.length).toBe(bal.length);
|
|
112
|
+
expect(def.map((d) => d.pattern).sort()).toEqual(bal.map((d) => d.pattern).sort());
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe("v2.19.33 B1 SENTENCE SPLIT — boundary handling", () => {
|
|
116
|
+
it("splits on newline first (Thai-friendly)", () => {
|
|
117
|
+
const d = extractDecisions({
|
|
118
|
+
transcript: "ทุก commit ต้อง pass test\nห้าม push main ตรงๆ",
|
|
119
|
+
});
|
|
120
|
+
expect(d.length).toBeGreaterThanOrEqual(2);
|
|
121
|
+
});
|
|
122
|
+
it("splits on period+capital boundary (English)", () => {
|
|
123
|
+
const d = extractDecisions({
|
|
124
|
+
transcript: "Every commit must pass test. Deploy needs 2 reviewers.",
|
|
125
|
+
});
|
|
126
|
+
expect(d.length).toBeGreaterThanOrEqual(2);
|
|
127
|
+
});
|
|
128
|
+
it("does NOT split on version numbers (v2.19.32 stays intact)", () => {
|
|
129
|
+
const d = extractDecisions({
|
|
130
|
+
transcript: "every commit must pass test before merging v2.19.32",
|
|
131
|
+
});
|
|
132
|
+
expect(d.some((x) => x.pattern === "test_required")).toBe(true);
|
|
133
|
+
});
|
|
134
|
+
it("RESILIENCE: 100 random multi-clause transcripts never crash", () => {
|
|
135
|
+
const verbs = ["must", "needs", "required", "should", "ห้าม", "ต้อง"];
|
|
136
|
+
const nouns = ["commit", "deploy", "PR", "review", "test", "secret", "console.log"];
|
|
137
|
+
for (let i = 0; i < 100; i++) {
|
|
138
|
+
const sentences = Array.from({ length: 5 }, () => {
|
|
139
|
+
const v = verbs[Math.floor(Math.random() * verbs.length)];
|
|
140
|
+
const n = nouns[Math.floor(Math.random() * nouns.length)];
|
|
141
|
+
return `${i}: ${n} ${v} something at ${Date.now()}`;
|
|
142
|
+
});
|
|
143
|
+
const transcript = sentences.join("\n");
|
|
144
|
+
// No specific assertion — just that it doesn't throw.
|
|
145
|
+
const result = extractDecisions({ transcript, mode: "balanced" });
|
|
146
|
+
expect(Array.isArray(result)).toBe(true);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=b1_extract_decisions.test.js.map
|