@mneme-ai/core 2.19.21 → 2.19.23
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_breath/autonomic_breath.test.d.ts +2 -0
- package/dist/autonomic_breath/autonomic_breath.test.d.ts.map +1 -0
- package/dist/autonomic_breath/autonomic_breath.test.js +140 -0
- package/dist/autonomic_breath/autonomic_breath.test.js.map +1 -0
- package/dist/autonomic_breath/index.d.ts +135 -0
- package/dist/autonomic_breath/index.d.ts.map +1 -0
- package/dist/autonomic_breath/index.js +180 -0
- package/dist/autonomic_breath/index.js.map +1 -0
- package/dist/catalog_parity/catalog_parity.test.d.ts +2 -0
- package/dist/catalog_parity/catalog_parity.test.d.ts.map +1 -0
- package/dist/catalog_parity/catalog_parity.test.js +104 -0
- package/dist/catalog_parity/catalog_parity.test.js.map +1 -0
- package/dist/catalog_parity/index.d.ts +69 -0
- package/dist/catalog_parity/index.d.ts.map +1 -0
- package/dist/catalog_parity/index.js +118 -0
- package/dist/catalog_parity/index.js.map +1 -0
- package/dist/cosmic/aurelian_v1922.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1922.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1922.test.js +48 -0
- package/dist/cosmic/aurelian_v1922.test.js.map +1 -0
- package/dist/cosmic/aurelian_v1923.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1923.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1923.test.js +89 -0
- package/dist/cosmic/aurelian_v1923.test.js.map +1 -0
- package/dist/dynamic/pack-schema.d.ts +14 -14
- package/dist/hippocampus_dreams/hippocampus_dreams.test.d.ts +2 -0
- package/dist/hippocampus_dreams/hippocampus_dreams.test.d.ts.map +1 -0
- package/dist/hippocampus_dreams/hippocampus_dreams.test.js +106 -0
- package/dist/hippocampus_dreams/hippocampus_dreams.test.js.map +1 -0
- package/dist/hippocampus_dreams/index.d.ts +79 -0
- package/dist/hippocampus_dreams/index.d.ts.map +1 -0
- package/dist/hippocampus_dreams/index.js +122 -0
- package/dist/hippocampus_dreams/index.js.map +1 -0
- package/dist/hormonal/hormonal.test.d.ts +2 -0
- package/dist/hormonal/hormonal.test.d.ts.map +1 -0
- package/dist/hormonal/hormonal.test.js +116 -0
- package/dist/hormonal/hormonal.test.js.map +1 -0
- package/dist/hormonal/index.d.ts +105 -0
- package/dist/hormonal/index.d.ts.map +1 -0
- package/dist/hormonal/index.js +132 -0
- package/dist/hormonal/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/periodic/periodic.test.js +1 -1
- package/dist/periodic/periodic.test.js.map +1 -1
- package/dist/proprioception/index.d.ts +82 -0
- package/dist/proprioception/index.d.ts.map +1 -0
- package/dist/proprioception/index.js +170 -0
- package/dist/proprioception/index.js.map +1 -0
- package/dist/proprioception/proprioception.test.d.ts +2 -0
- package/dist/proprioception/proprioception.test.d.ts.map +1 -0
- package/dist/proprioception/proprioception.test.js +159 -0
- package/dist/proprioception/proprioception.test.js.map +1 -0
- package/dist/reflex/index.d.ts +210 -0
- package/dist/reflex/index.d.ts.map +1 -0
- package/dist/reflex/index.js +298 -0
- package/dist/reflex/index.js.map +1 -0
- package/dist/reflex/reflex.test.d.ts +2 -0
- package/dist/reflex/reflex.test.d.ts.map +1 -0
- package/dist/reflex/reflex.test.js +379 -0
- package/dist/reflex/reflex.test.js.map +1 -0
- package/dist/spinal_reflex/index.d.ts +86 -0
- package/dist/spinal_reflex/index.d.ts.map +1 -0
- package/dist/spinal_reflex/index.js +180 -0
- package/dist/spinal_reflex/index.js.map +1 -0
- package/dist/spinal_reflex/spinal_reflex.test.d.ts +2 -0
- package/dist/spinal_reflex/spinal_reflex.test.d.ts.map +1 -0
- package/dist/spinal_reflex/spinal_reflex.test.js +168 -0
- package/dist/spinal_reflex/spinal_reflex.test.js.map +1 -0
- package/dist/thalamus/index.d.ts +92 -0
- package/dist/thalamus/index.d.ts.map +1 -0
- package/dist/thalamus/index.js +95 -0
- package/dist/thalamus/index.js.map +1 -0
- package/dist/thalamus/thalamus.test.d.ts +2 -0
- package/dist/thalamus/thalamus.test.d.ts.map +1 -0
- package/dist/thalamus/thalamus.test.js +101 -0
- package/dist/thalamus/thalamus.test.js.map +1 -0
- package/dist/whats_new.d.ts.map +1 -1
- package/dist/whats_new.js +16 -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 +41 -0
- package/dist/wrapper_genesis/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hippocampus_dreams.test.js","sourceRoot":"","sources":["../../src/hippocampus_dreams/hippocampus_dreams.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.23 — MNEME HIPPOCAMPUS-DREAMS (organ #5 of LIMBIC)
|
|
3
|
+
*
|
|
4
|
+
* "ตอน user หลับ daemon ฝัน → ฝึก reflex จาก yesterday"
|
|
5
|
+
*
|
|
6
|
+
* Diagnosis: v2.19.22 REFLEX learns ONLY from same-day observations.
|
|
7
|
+
* Patterns from last week / last month are LOST when the daemon is
|
|
8
|
+
* restarted (in-memory) or when the cache GCs (TTL expired).
|
|
9
|
+
* v2.19.14 DREAMS exists as a cycle but is not wired to consolidate
|
|
10
|
+
* into REFLEX patterns.
|
|
11
|
+
*
|
|
12
|
+
* Fix: HIPPOCAMPUS-DREAMS reads yesterday's pheromone trail, extracts
|
|
13
|
+
* stable patterns (event sig + tool that fired >= K times), and
|
|
14
|
+
* PROMOTES them to BUILTIN_RULES-style priors. Daemon calls this
|
|
15
|
+
* during the dream-tier idle period. The next day's REFLEX starts
|
|
16
|
+
* warm, not cold.
|
|
17
|
+
*
|
|
18
|
+
* Composes onto:
|
|
19
|
+
* - v2.19.22 REFLEX (PheromoneRecord shape; eventCacheKey)
|
|
20
|
+
* - v2.19.23 SPINAL_REFLEX (output is BuiltinReflexRule)
|
|
21
|
+
* - v2.19.14 DREAMS (caller scheduling pattern; dream cycle infra)
|
|
22
|
+
* - v2.19.10 PROOF-CARRYING (consolidation creates HMAC certificate)
|
|
23
|
+
*
|
|
24
|
+
* Honest scope:
|
|
25
|
+
* - PURE FUNCTION consolidator. Caller schedules the call (e.g.,
|
|
26
|
+
* daemon idle hook at 03:00 local time).
|
|
27
|
+
* - Pattern threshold (default 3 occurrences for promotion) configurable.
|
|
28
|
+
* - Output is a list of new rules + a consolidation report; caller
|
|
29
|
+
* persists the rules to JSON and reloads on next boot.
|
|
30
|
+
* - HMAC-signed report so daemon can audit consolidation history.
|
|
31
|
+
*/
|
|
32
|
+
declare const PROTOCOL_VERSION: 1;
|
|
33
|
+
export interface YesterdayObservation {
|
|
34
|
+
eventKind: "file_save" | "git_commit" | "terminal_command" | "user_chat" | "tool_call";
|
|
35
|
+
/** Stable signature over event (already hashed by REFLEX caller). */
|
|
36
|
+
eventSig: string;
|
|
37
|
+
/** Tool that followed this event. */
|
|
38
|
+
toolName: string;
|
|
39
|
+
/** Args (for argsTemplate of the promoted rule). */
|
|
40
|
+
args: Record<string, unknown>;
|
|
41
|
+
ts: number;
|
|
42
|
+
}
|
|
43
|
+
export interface PromotedRule {
|
|
44
|
+
id: string;
|
|
45
|
+
eventKind: YesterdayObservation["eventKind"];
|
|
46
|
+
eventSig: string;
|
|
47
|
+
toolName: string;
|
|
48
|
+
argsTemplate: Record<string, unknown>;
|
|
49
|
+
occurrenceCount: number;
|
|
50
|
+
/** confidence promoted from frequency in yesterday's trail. */
|
|
51
|
+
priorConfidence: number;
|
|
52
|
+
reason: string;
|
|
53
|
+
}
|
|
54
|
+
export interface ConsolidationReport {
|
|
55
|
+
v: typeof PROTOCOL_VERSION;
|
|
56
|
+
consolidatedAt: number;
|
|
57
|
+
totalObservations: number;
|
|
58
|
+
uniqueEventSigs: number;
|
|
59
|
+
promotedRules: PromotedRule[];
|
|
60
|
+
promotionThreshold: number;
|
|
61
|
+
/** promotedRules.length / uniqueEventSigs — ratio of patterns stable enough to keep. */
|
|
62
|
+
crystallisationRatio: number;
|
|
63
|
+
sig: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Consolidate yesterday's pheromone trail into promoted rules. Patterns
|
|
67
|
+
* that fired >= threshold times become priors for tomorrow's REFLEX
|
|
68
|
+
* cold-start. Returns an HMAC-signed report.
|
|
69
|
+
*/
|
|
70
|
+
export declare function consolidateMemory(input: {
|
|
71
|
+
yesterdayObservations: YesterdayObservation[];
|
|
72
|
+
consolidatedAt?: number;
|
|
73
|
+
promotionThreshold?: number;
|
|
74
|
+
secret?: string;
|
|
75
|
+
}): ConsolidationReport;
|
|
76
|
+
export declare function verifyConsolidation(r: ConsolidationReport, secret?: string): boolean;
|
|
77
|
+
export declare function formatConsolidationLine(r: ConsolidationReport): string;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hippocampus_dreams/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAGpC,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,WAAW,GAAG,YAAY,GAAG,kBAAkB,GAAG,WAAW,GAAG,WAAW,CAAC;IACvF,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;CACb;AAsBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,CAmDtB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGpF;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAGtE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.23 — MNEME HIPPOCAMPUS-DREAMS (organ #5 of LIMBIC)
|
|
3
|
+
*
|
|
4
|
+
* "ตอน user หลับ daemon ฝัน → ฝึก reflex จาก yesterday"
|
|
5
|
+
*
|
|
6
|
+
* Diagnosis: v2.19.22 REFLEX learns ONLY from same-day observations.
|
|
7
|
+
* Patterns from last week / last month are LOST when the daemon is
|
|
8
|
+
* restarted (in-memory) or when the cache GCs (TTL expired).
|
|
9
|
+
* v2.19.14 DREAMS exists as a cycle but is not wired to consolidate
|
|
10
|
+
* into REFLEX patterns.
|
|
11
|
+
*
|
|
12
|
+
* Fix: HIPPOCAMPUS-DREAMS reads yesterday's pheromone trail, extracts
|
|
13
|
+
* stable patterns (event sig + tool that fired >= K times), and
|
|
14
|
+
* PROMOTES them to BUILTIN_RULES-style priors. Daemon calls this
|
|
15
|
+
* during the dream-tier idle period. The next day's REFLEX starts
|
|
16
|
+
* warm, not cold.
|
|
17
|
+
*
|
|
18
|
+
* Composes onto:
|
|
19
|
+
* - v2.19.22 REFLEX (PheromoneRecord shape; eventCacheKey)
|
|
20
|
+
* - v2.19.23 SPINAL_REFLEX (output is BuiltinReflexRule)
|
|
21
|
+
* - v2.19.14 DREAMS (caller scheduling pattern; dream cycle infra)
|
|
22
|
+
* - v2.19.10 PROOF-CARRYING (consolidation creates HMAC certificate)
|
|
23
|
+
*
|
|
24
|
+
* Honest scope:
|
|
25
|
+
* - PURE FUNCTION consolidator. Caller schedules the call (e.g.,
|
|
26
|
+
* daemon idle hook at 03:00 local time).
|
|
27
|
+
* - Pattern threshold (default 3 occurrences for promotion) configurable.
|
|
28
|
+
* - Output is a list of new rules + a consolidation report; caller
|
|
29
|
+
* persists the rules to JSON and reloads on next boot.
|
|
30
|
+
* - HMAC-signed report so daemon can audit consolidation history.
|
|
31
|
+
*/
|
|
32
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
33
|
+
const PROTOCOL_VERSION = 1;
|
|
34
|
+
const DEFAULT_PROMOTION_THRESHOLD = 3;
|
|
35
|
+
function canon(v) {
|
|
36
|
+
if (v === null || typeof v !== "object")
|
|
37
|
+
return JSON.stringify(v);
|
|
38
|
+
if (Array.isArray(v))
|
|
39
|
+
return "[" + v.map(canon).join(",") + "]";
|
|
40
|
+
const keys = Object.keys(v).sort();
|
|
41
|
+
return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
|
|
42
|
+
}
|
|
43
|
+
function defaultSecret() {
|
|
44
|
+
return process.env["MNEME_HIPPOCAMPUS_SECRET"] || `mneme-hippocampus-dreams-v${PROTOCOL_VERSION}`;
|
|
45
|
+
}
|
|
46
|
+
function hmacHex(body, secret) {
|
|
47
|
+
return createHmac("sha256", secret).update(canon(body)).digest("hex");
|
|
48
|
+
}
|
|
49
|
+
function safeEqHex(a, b) {
|
|
50
|
+
try {
|
|
51
|
+
return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Consolidate yesterday's pheromone trail into promoted rules. Patterns
|
|
59
|
+
* that fired >= threshold times become priors for tomorrow's REFLEX
|
|
60
|
+
* cold-start. Returns an HMAC-signed report.
|
|
61
|
+
*/
|
|
62
|
+
export function consolidateMemory(input) {
|
|
63
|
+
const threshold = input.promotionThreshold ?? DEFAULT_PROMOTION_THRESHOLD;
|
|
64
|
+
const buckets = new Map();
|
|
65
|
+
for (const o of input.yesterdayObservations) {
|
|
66
|
+
const key = `${o.eventSig}::${o.toolName}`;
|
|
67
|
+
const prev = buckets.get(key);
|
|
68
|
+
if (prev) {
|
|
69
|
+
prev.count++;
|
|
70
|
+
prev.sample = o; // last-wins so argsTemplate is freshest
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
buckets.set(key, { count: 1, sample: o });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Count occurrences per eventSig (for confidence denominator)
|
|
77
|
+
const eventSigTotals = new Map();
|
|
78
|
+
for (const o of input.yesterdayObservations) {
|
|
79
|
+
eventSigTotals.set(o.eventSig, (eventSigTotals.get(o.eventSig) ?? 0) + 1);
|
|
80
|
+
}
|
|
81
|
+
// Promote
|
|
82
|
+
const promoted = [];
|
|
83
|
+
for (const [key, b] of buckets) {
|
|
84
|
+
if (b.count < threshold)
|
|
85
|
+
continue;
|
|
86
|
+
const total = eventSigTotals.get(b.sample.eventSig);
|
|
87
|
+
const confidence = b.count / total;
|
|
88
|
+
promoted.push({
|
|
89
|
+
id: `hippo_${b.sample.eventSig.slice(0, 8)}_${b.sample.toolName.replace(/[^a-zA-Z0-9]/g, "_")}`,
|
|
90
|
+
eventKind: b.sample.eventKind,
|
|
91
|
+
eventSig: b.sample.eventSig,
|
|
92
|
+
toolName: b.sample.toolName,
|
|
93
|
+
argsTemplate: b.sample.args,
|
|
94
|
+
occurrenceCount: b.count,
|
|
95
|
+
priorConfidence: Math.min(1, Math.max(0, confidence)),
|
|
96
|
+
reason: `Consolidated from ${b.count} ${b.sample.eventKind} observations yesterday (${(confidence * 100).toFixed(0)}% of event sig ${b.sample.eventSig.slice(0, 8)})`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
promoted.sort((a, b) => b.priorConfidence - a.priorConfidence || a.id.localeCompare(b.id));
|
|
100
|
+
const uniqueEventSigs = eventSigTotals.size;
|
|
101
|
+
const consolidatedAt = input.consolidatedAt ?? Date.now();
|
|
102
|
+
const body = {
|
|
103
|
+
v: PROTOCOL_VERSION,
|
|
104
|
+
consolidatedAt,
|
|
105
|
+
totalObservations: input.yesterdayObservations.length,
|
|
106
|
+
uniqueEventSigs,
|
|
107
|
+
promotedRules: promoted,
|
|
108
|
+
promotionThreshold: threshold,
|
|
109
|
+
crystallisationRatio: uniqueEventSigs === 0 ? 0 : promoted.length / uniqueEventSigs,
|
|
110
|
+
};
|
|
111
|
+
const sig = hmacHex(body, input.secret ?? defaultSecret());
|
|
112
|
+
return { ...body, sig };
|
|
113
|
+
}
|
|
114
|
+
export function verifyConsolidation(r, secret) {
|
|
115
|
+
const { sig, ...body } = r;
|
|
116
|
+
return safeEqHex(hmacHex(body, secret ?? defaultSecret()), sig);
|
|
117
|
+
}
|
|
118
|
+
export function formatConsolidationLine(r) {
|
|
119
|
+
const pct = (r.crystallisationRatio * 100).toFixed(0);
|
|
120
|
+
return `💤 HIPPOCAMPUS · ${r.totalObservations} obs · ${r.uniqueEventSigs} sigs · ${r.promotedRules.length} promoted (${pct}% crystallised)`;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hippocampus_dreams/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hormonal.test.d.ts","sourceRoot":"","sources":["../../src/hormonal/hormonal.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { neutralState, updateHormones, tuneFromHormones, emptyLedger, recordHormonal, verifyLedger, formatHormonalLine, } from "./index.js";
|
|
3
|
+
const SECRET = "hormonal-test-secret-997744";
|
|
4
|
+
describe("v2.19.23 HORMONAL · neutralState + invariants", () => {
|
|
5
|
+
it("neutralState: focus 0.5, fatigue 0.0, mood 0.5", () => {
|
|
6
|
+
const s = neutralState(0);
|
|
7
|
+
expect(s.focus).toBe(0.5);
|
|
8
|
+
expect(s.fatigue).toBe(0.0);
|
|
9
|
+
expect(s.mood).toBe(0.5);
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
describe("v2.19.23 HORMONAL · updateHormones", () => {
|
|
13
|
+
it("toolError raises fatigue", () => {
|
|
14
|
+
const s = updateHormones({ state: neutralState(0), observation: { toolError: true, elapsedMs: 0 } });
|
|
15
|
+
expect(s.fatigue).toBeGreaterThan(0);
|
|
16
|
+
});
|
|
17
|
+
it("cacheHit=true raises mood", () => {
|
|
18
|
+
const s = updateHormones({ state: neutralState(0), observation: { cacheHit: true, elapsedMs: 0 } });
|
|
19
|
+
expect(s.mood).toBeGreaterThan(0.5);
|
|
20
|
+
});
|
|
21
|
+
it("rapidAction raises focus", () => {
|
|
22
|
+
const s = updateHormones({ state: neutralState(0), observation: { rapidAction: true, elapsedMs: 0 } });
|
|
23
|
+
expect(s.focus).toBeGreaterThan(0.5);
|
|
24
|
+
});
|
|
25
|
+
it("successfulCommit raises mood", () => {
|
|
26
|
+
const s = updateHormones({ state: neutralState(0), observation: { successfulCommit: true, elapsedMs: 0 } });
|
|
27
|
+
expect(s.mood).toBeGreaterThan(0.5);
|
|
28
|
+
});
|
|
29
|
+
it("all signals clamped to [0,1]", () => {
|
|
30
|
+
let s = neutralState(0);
|
|
31
|
+
for (let i = 0; i < 1000; i++) {
|
|
32
|
+
s = updateHormones({ state: s, observation: { toolError: true, cacheHit: true, rapidAction: true, elapsedMs: 0 } });
|
|
33
|
+
}
|
|
34
|
+
expect(s.focus).toBeLessThanOrEqual(1);
|
|
35
|
+
expect(s.focus).toBeGreaterThanOrEqual(0);
|
|
36
|
+
expect(s.fatigue).toBeLessThanOrEqual(1);
|
|
37
|
+
expect(s.mood).toBeLessThanOrEqual(1);
|
|
38
|
+
});
|
|
39
|
+
it("natural decay toward baselines (fatigue -> 0, focus/mood -> 0.5)", () => {
|
|
40
|
+
let s = { v: 1, focus: 0.9, fatigue: 0.9, mood: 0.9, ts: 0 };
|
|
41
|
+
s = updateHormones({ state: s, observation: { elapsedMs: 60 * 60_000 } }); // 1 hour
|
|
42
|
+
// After natural decay only (no observation deltas)
|
|
43
|
+
expect(s.fatigue).toBeLessThan(0.9);
|
|
44
|
+
expect(Math.abs(s.focus - 0.5)).toBeLessThan(Math.abs(0.9 - 0.5));
|
|
45
|
+
expect(Math.abs(s.mood - 0.5)).toBeLessThan(Math.abs(0.9 - 0.5));
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe("v2.19.23 HORMONAL · tuneFromHormones (cross-organ adjustment)", () => {
|
|
49
|
+
it("neutral state -> midrange config", () => {
|
|
50
|
+
const c = tuneFromHormones(neutralState(0));
|
|
51
|
+
expect(c.breathHeartbeatMs).toBe(50);
|
|
52
|
+
expect(c.reflexPrefetchBudgetMs).toBe(150);
|
|
53
|
+
expect(c.dreamIdleThresholdMs).toBe(30 * 60_000 - 0.5 * 20 * 60_000); // 30 - 10 = 20min
|
|
54
|
+
expect(c.negevTaxMultiplier).toBe(1.0);
|
|
55
|
+
});
|
|
56
|
+
it("high fatigue -> longer breath + stricter negev", () => {
|
|
57
|
+
const c = tuneFromHormones({ v: 1, focus: 0.5, fatigue: 1.0, mood: 0.5, ts: 0 });
|
|
58
|
+
expect(c.breathHeartbeatMs).toBe(200);
|
|
59
|
+
expect(c.negevTaxMultiplier).toBe(1.5);
|
|
60
|
+
});
|
|
61
|
+
it("high focus -> shorter prefetch (don't interrupt deep work)", () => {
|
|
62
|
+
const c = tuneFromHormones({ v: 1, focus: 1.0, fatigue: 0.0, mood: 0.5, ts: 0 });
|
|
63
|
+
expect(c.reflexPrefetchBudgetMs).toBe(100);
|
|
64
|
+
});
|
|
65
|
+
it("high mood -> shorter dream threshold (work harder)", () => {
|
|
66
|
+
const c = tuneFromHormones({ v: 1, focus: 0.5, fatigue: 0.0, mood: 1.0, ts: 0 });
|
|
67
|
+
expect(c.dreamIdleThresholdMs).toBe(10 * 60_000);
|
|
68
|
+
});
|
|
69
|
+
it("MEASURED 100% determinism: same state -> same config (50 trials)", () => {
|
|
70
|
+
const state = { v: 1, focus: 0.7, fatigue: 0.3, mood: 0.6, ts: 0 };
|
|
71
|
+
const first = JSON.stringify(tuneFromHormones(state));
|
|
72
|
+
let allEqual = true;
|
|
73
|
+
for (let i = 0; i < 50; i++) {
|
|
74
|
+
if (JSON.stringify(tuneFromHormones(state)) !== first) {
|
|
75
|
+
allEqual = false;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
expect(allEqual).toBe(true);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe("v2.19.23 HORMONAL · ledger (HMAC chain)", () => {
|
|
83
|
+
it("recordHormonal chains; verify passes untampered", () => {
|
|
84
|
+
let L = emptyLedger();
|
|
85
|
+
let s = neutralState(0);
|
|
86
|
+
L = recordHormonal({ ledger: L, state: s, observation: { elapsedMs: 0, toolError: true }, secret: SECRET });
|
|
87
|
+
s = updateHormones({ state: s, observation: { elapsedMs: 0, toolError: true } });
|
|
88
|
+
L = recordHormonal({ ledger: L, state: s, observation: { elapsedMs: 0, cacheHit: true }, secret: SECRET });
|
|
89
|
+
expect(L.records).toHaveLength(2);
|
|
90
|
+
expect(L.records[1].prevSig).toBe(L.records[0].sig);
|
|
91
|
+
expect(verifyLedger(L, SECRET).ok).toBe(true);
|
|
92
|
+
});
|
|
93
|
+
it("verifyLedger detects tamper at exact step", () => {
|
|
94
|
+
let L = emptyLedger();
|
|
95
|
+
let s = neutralState(0);
|
|
96
|
+
for (let i = 0; i < 4; i++) {
|
|
97
|
+
L = recordHormonal({ ledger: L, state: s, observation: { elapsedMs: 0 }, secret: SECRET });
|
|
98
|
+
}
|
|
99
|
+
const tampered = {
|
|
100
|
+
...L,
|
|
101
|
+
records: L.records.map((r, i) => (i === 2 ? { ...r, state: { ...r.state, fatigue: 0.99 } } : r)),
|
|
102
|
+
};
|
|
103
|
+
const v = verifyLedger(tampered, SECRET);
|
|
104
|
+
expect(v.ok).toBe(false);
|
|
105
|
+
expect(v.brokenAt).toBe(2);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe("v2.19.23 HORMONAL · formatter", () => {
|
|
109
|
+
it("formatHormonalLine includes all 3 signals", () => {
|
|
110
|
+
const line = formatHormonalLine(neutralState(0));
|
|
111
|
+
expect(line).toContain("focus");
|
|
112
|
+
expect(line).toContain("fatigue");
|
|
113
|
+
expect(line).toContain("mood");
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=hormonal.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hormonal.test.js","sourceRoot":"","sources":["../../src/hormonal/hormonal.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.23 — MNEME HORMONAL (organ #6 of LIMBIC) · slow signal across all organs
|
|
3
|
+
*
|
|
4
|
+
* "mood / focus / fatigue ปรับ behavior ทั้งระบบ"
|
|
5
|
+
*
|
|
6
|
+
* Diagnosis: every organ has its own tunables (BREATH heartbeat budget,
|
|
7
|
+
* REFLEX prefetch budget, DREAM idle threshold, NEGEV token budget).
|
|
8
|
+
* Without a meta-signal, every organ tunes itself in isolation — system
|
|
9
|
+
* never adapts to "AI agent is hitting a lot of errors today; slow
|
|
10
|
+
* down" or "user is in a deep flow; minimize interruptions".
|
|
11
|
+
*
|
|
12
|
+
* Fix: HORMONAL ships 3 slow-changing signals (focus / fatigue / mood)
|
|
13
|
+
* that every organ reads. Caller updates the state from observation
|
|
14
|
+
* feeds (error rate raises fatigue; cache hit raises mood; rapid
|
|
15
|
+
* commits raise focus). Every organ exposes a tunable that takes
|
|
16
|
+
* HormonalState as an optional argument.
|
|
17
|
+
*
|
|
18
|
+
* Composes onto:
|
|
19
|
+
* - v2.19.23 BREATH (heartbeatBudgetMs reads fatigue)
|
|
20
|
+
* - v2.19.22 REFLEX (prefetch budgetMs reads focus)
|
|
21
|
+
* - v2.19.23 THALAMUS (dream threshold reads mood)
|
|
22
|
+
* - v2.19.13 NEGEV (token-tax intensity reads fatigue)
|
|
23
|
+
*
|
|
24
|
+
* Honest scope:
|
|
25
|
+
* - 3 signals, each 0..1 clamped.
|
|
26
|
+
* - HMAC-chained ledger for tamper-evident state evolution.
|
|
27
|
+
* - Adjustments are LINEAR + DETERMINISTIC; no ML.
|
|
28
|
+
* - This is METADATA, not state-machine. Caller updates frequency at
|
|
29
|
+
* own cadence (e.g., daemon every 60s).
|
|
30
|
+
*/
|
|
31
|
+
declare const PROTOCOL_VERSION: 1;
|
|
32
|
+
export interface HormonalState {
|
|
33
|
+
v: typeof PROTOCOL_VERSION;
|
|
34
|
+
/** 0..1 — high = user is in deep work; minimize interruptions. */
|
|
35
|
+
focus: number;
|
|
36
|
+
/** 0..1 — high = AI agent / daemon hitting errors; slow down. */
|
|
37
|
+
fatigue: number;
|
|
38
|
+
/** 0..1 — high = recent cache hits + successful commits; lean forward. */
|
|
39
|
+
mood: number;
|
|
40
|
+
/** ms since epoch of last update. */
|
|
41
|
+
ts: number;
|
|
42
|
+
}
|
|
43
|
+
export interface HormonalObservation {
|
|
44
|
+
/** +1 per cache hit; -0.5 per cache miss. */
|
|
45
|
+
cacheHit?: boolean;
|
|
46
|
+
/** Raises fatigue by 0.05. */
|
|
47
|
+
toolError?: boolean;
|
|
48
|
+
/** Raises mood by 0.02. */
|
|
49
|
+
successfulCommit?: boolean;
|
|
50
|
+
/** Raises focus by 0.05 per rapid action (>2 actions/min). */
|
|
51
|
+
rapidAction?: boolean;
|
|
52
|
+
/** ms since previous update; used for natural decay. */
|
|
53
|
+
elapsedMs: number;
|
|
54
|
+
}
|
|
55
|
+
export interface HormonalRecord {
|
|
56
|
+
v: typeof PROTOCOL_VERSION;
|
|
57
|
+
ts: number;
|
|
58
|
+
state: HormonalState;
|
|
59
|
+
observation: HormonalObservation;
|
|
60
|
+
prevSig: string | null;
|
|
61
|
+
sig: string;
|
|
62
|
+
}
|
|
63
|
+
export interface HormonalLedger {
|
|
64
|
+
v: typeof PROTOCOL_VERSION;
|
|
65
|
+
records: HormonalRecord[];
|
|
66
|
+
}
|
|
67
|
+
export declare function neutralState(ts?: number): HormonalState;
|
|
68
|
+
/**
|
|
69
|
+
* Apply an observation to evolve the hormonal state. Each signal decays
|
|
70
|
+
* naturally toward 0.5 (focus / mood) or 0.0 (fatigue) at
|
|
71
|
+
* DEFAULT_DECAY_PER_MIN; observation deltas are added after decay.
|
|
72
|
+
*/
|
|
73
|
+
export declare function updateHormones(input: {
|
|
74
|
+
state: HormonalState;
|
|
75
|
+
observation: HormonalObservation;
|
|
76
|
+
decayPerMin?: number;
|
|
77
|
+
nowMs?: number;
|
|
78
|
+
}): HormonalState;
|
|
79
|
+
export interface TunedConfig {
|
|
80
|
+
/** BREATH: heartbeat check budget; high fatigue -> longer. */
|
|
81
|
+
breathHeartbeatMs: number;
|
|
82
|
+
/** REFLEX: prefetch budget; high focus -> shorter (don't interrupt). */
|
|
83
|
+
reflexPrefetchBudgetMs: number;
|
|
84
|
+
/** THALAMUS: idle threshold for dream tier; high mood -> shorter (work harder). */
|
|
85
|
+
dreamIdleThresholdMs: number;
|
|
86
|
+
/** NEGEV: token-tax intensity; high fatigue -> stricter. */
|
|
87
|
+
negevTaxMultiplier: number;
|
|
88
|
+
}
|
|
89
|
+
export declare function tuneFromHormones(state: HormonalState): TunedConfig;
|
|
90
|
+
export declare function emptyLedger(): HormonalLedger;
|
|
91
|
+
export declare function recordHormonal(input: {
|
|
92
|
+
ledger: HormonalLedger;
|
|
93
|
+
state: HormonalState;
|
|
94
|
+
observation: HormonalObservation;
|
|
95
|
+
nowMs?: number;
|
|
96
|
+
secret?: string;
|
|
97
|
+
}): HormonalLedger;
|
|
98
|
+
export declare function verifyLedger(ledger: HormonalLedger, secret?: string): {
|
|
99
|
+
ok: boolean;
|
|
100
|
+
brokenAt?: number;
|
|
101
|
+
reason?: string;
|
|
102
|
+
};
|
|
103
|
+
export declare function formatHormonalLine(s: HormonalState): string;
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hormonal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAIpC,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAsBD,wBAAgB,YAAY,CAAC,EAAE,SAAI,GAAG,aAAa,CAElD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,CAqBhB;AAED,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mFAAmF;IACnF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,CAOlE;AAED,wBAAgB,WAAW,IAAI,cAAc,CAE5C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,cAAc,CAWjB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAWzH;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAE3D"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.23 — MNEME HORMONAL (organ #6 of LIMBIC) · slow signal across all organs
|
|
3
|
+
*
|
|
4
|
+
* "mood / focus / fatigue ปรับ behavior ทั้งระบบ"
|
|
5
|
+
*
|
|
6
|
+
* Diagnosis: every organ has its own tunables (BREATH heartbeat budget,
|
|
7
|
+
* REFLEX prefetch budget, DREAM idle threshold, NEGEV token budget).
|
|
8
|
+
* Without a meta-signal, every organ tunes itself in isolation — system
|
|
9
|
+
* never adapts to "AI agent is hitting a lot of errors today; slow
|
|
10
|
+
* down" or "user is in a deep flow; minimize interruptions".
|
|
11
|
+
*
|
|
12
|
+
* Fix: HORMONAL ships 3 slow-changing signals (focus / fatigue / mood)
|
|
13
|
+
* that every organ reads. Caller updates the state from observation
|
|
14
|
+
* feeds (error rate raises fatigue; cache hit raises mood; rapid
|
|
15
|
+
* commits raise focus). Every organ exposes a tunable that takes
|
|
16
|
+
* HormonalState as an optional argument.
|
|
17
|
+
*
|
|
18
|
+
* Composes onto:
|
|
19
|
+
* - v2.19.23 BREATH (heartbeatBudgetMs reads fatigue)
|
|
20
|
+
* - v2.19.22 REFLEX (prefetch budgetMs reads focus)
|
|
21
|
+
* - v2.19.23 THALAMUS (dream threshold reads mood)
|
|
22
|
+
* - v2.19.13 NEGEV (token-tax intensity reads fatigue)
|
|
23
|
+
*
|
|
24
|
+
* Honest scope:
|
|
25
|
+
* - 3 signals, each 0..1 clamped.
|
|
26
|
+
* - HMAC-chained ledger for tamper-evident state evolution.
|
|
27
|
+
* - Adjustments are LINEAR + DETERMINISTIC; no ML.
|
|
28
|
+
* - This is METADATA, not state-machine. Caller updates frequency at
|
|
29
|
+
* own cadence (e.g., daemon every 60s).
|
|
30
|
+
*/
|
|
31
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
32
|
+
const PROTOCOL_VERSION = 1;
|
|
33
|
+
const DEFAULT_DECAY_PER_MIN = 0.02;
|
|
34
|
+
const CLAMP = (x) => Math.max(0, Math.min(1, x));
|
|
35
|
+
function canon(v) {
|
|
36
|
+
if (v === null || typeof v !== "object")
|
|
37
|
+
return JSON.stringify(v);
|
|
38
|
+
if (Array.isArray(v))
|
|
39
|
+
return "[" + v.map(canon).join(",") + "]";
|
|
40
|
+
const keys = Object.keys(v).sort();
|
|
41
|
+
return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
|
|
42
|
+
}
|
|
43
|
+
function defaultSecret() {
|
|
44
|
+
return process.env["MNEME_HORMONAL_SECRET"] || `mneme-hormonal-v${PROTOCOL_VERSION}`;
|
|
45
|
+
}
|
|
46
|
+
function hmacHex(body, secret) {
|
|
47
|
+
return createHmac("sha256", secret).update(canon(body)).digest("hex");
|
|
48
|
+
}
|
|
49
|
+
function safeEqHex(a, b) {
|
|
50
|
+
try {
|
|
51
|
+
return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function neutralState(ts = 0) {
|
|
58
|
+
return { v: PROTOCOL_VERSION, focus: 0.5, fatigue: 0.0, mood: 0.5, ts };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Apply an observation to evolve the hormonal state. Each signal decays
|
|
62
|
+
* naturally toward 0.5 (focus / mood) or 0.0 (fatigue) at
|
|
63
|
+
* DEFAULT_DECAY_PER_MIN; observation deltas are added after decay.
|
|
64
|
+
*/
|
|
65
|
+
export function updateHormones(input) {
|
|
66
|
+
const decay = input.decayPerMin ?? DEFAULT_DECAY_PER_MIN;
|
|
67
|
+
const minutes = input.observation.elapsedMs / 60_000;
|
|
68
|
+
const decayAmount = decay * minutes;
|
|
69
|
+
// Natural decay toward baselines
|
|
70
|
+
let focus = input.state.focus + (0.5 - input.state.focus) * Math.min(1, decayAmount);
|
|
71
|
+
let fatigue = input.state.fatigue + (0.0 - input.state.fatigue) * Math.min(1, decayAmount);
|
|
72
|
+
let mood = input.state.mood + (0.5 - input.state.mood) * Math.min(1, decayAmount);
|
|
73
|
+
// Observation deltas
|
|
74
|
+
if (input.observation.cacheHit === true)
|
|
75
|
+
mood += 0.05;
|
|
76
|
+
if (input.observation.cacheHit === false)
|
|
77
|
+
mood -= 0.025;
|
|
78
|
+
if (input.observation.toolError)
|
|
79
|
+
fatigue += 0.05;
|
|
80
|
+
if (input.observation.successfulCommit)
|
|
81
|
+
mood += 0.02;
|
|
82
|
+
if (input.observation.rapidAction)
|
|
83
|
+
focus += 0.05;
|
|
84
|
+
return {
|
|
85
|
+
v: PROTOCOL_VERSION,
|
|
86
|
+
focus: CLAMP(focus),
|
|
87
|
+
fatigue: CLAMP(fatigue),
|
|
88
|
+
mood: CLAMP(mood),
|
|
89
|
+
ts: input.nowMs ?? input.state.ts + input.observation.elapsedMs,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
export function tuneFromHormones(state) {
|
|
93
|
+
return {
|
|
94
|
+
breathHeartbeatMs: Math.round(50 + state.fatigue * 150), // 50..200
|
|
95
|
+
reflexPrefetchBudgetMs: Math.round(200 - state.focus * 100), // 200..100
|
|
96
|
+
dreamIdleThresholdMs: Math.round(30 * 60_000 - state.mood * 20 * 60_000), // 30min..10min
|
|
97
|
+
negevTaxMultiplier: 1 + state.fatigue * 0.5, // 1.0..1.5
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export function emptyLedger() {
|
|
101
|
+
return { v: PROTOCOL_VERSION, records: [] };
|
|
102
|
+
}
|
|
103
|
+
export function recordHormonal(input) {
|
|
104
|
+
const prev = input.ledger.records[input.ledger.records.length - 1];
|
|
105
|
+
const body = {
|
|
106
|
+
v: PROTOCOL_VERSION,
|
|
107
|
+
ts: input.nowMs ?? input.state.ts,
|
|
108
|
+
state: input.state,
|
|
109
|
+
observation: input.observation,
|
|
110
|
+
prevSig: prev ? prev.sig : null,
|
|
111
|
+
};
|
|
112
|
+
const sig = hmacHex(body, input.secret ?? defaultSecret());
|
|
113
|
+
return { v: PROTOCOL_VERSION, records: [...input.ledger.records, { ...body, sig }] };
|
|
114
|
+
}
|
|
115
|
+
export function verifyLedger(ledger, secret) {
|
|
116
|
+
const sec = secret ?? defaultSecret();
|
|
117
|
+
let prevSig = null;
|
|
118
|
+
for (let i = 0; i < ledger.records.length; i++) {
|
|
119
|
+
const r = ledger.records[i];
|
|
120
|
+
const { sig, ...body } = r;
|
|
121
|
+
if (body.prevSig !== prevSig)
|
|
122
|
+
return { ok: false, brokenAt: i, reason: `prevSig mismatch at step ${i}` };
|
|
123
|
+
if (!safeEqHex(hmacHex(body, sec), sig))
|
|
124
|
+
return { ok: false, brokenAt: i, reason: `HMAC mismatch at step ${i}` };
|
|
125
|
+
prevSig = sig;
|
|
126
|
+
}
|
|
127
|
+
return { ok: true };
|
|
128
|
+
}
|
|
129
|
+
export function formatHormonalLine(s) {
|
|
130
|
+
return `💊 HORMONAL · focus=${s.focus.toFixed(2)} · fatigue=${s.fatigue.toFixed(2)} · mood=${s.mood.toFixed(2)}`;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hormonal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,gBAAgB,GAAG,CAAU,CAAC;AACpC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAyCzD,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,uBAAuB,CAAC,IAAI,mBAAmB,gBAAgB,EAAE,CAAC;AACvF,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,MAAM,UAAU,YAAY,CAAC,EAAE,GAAG,CAAC;IACjC,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAK9B;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,IAAI,qBAAqB,CAAC;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC;IACrD,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;IACpC,iCAAiC;IACjC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACrF,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3F,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAClF,qBAAqB;IACrB,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,KAAK,IAAI;QAAE,IAAI,IAAI,IAAI,CAAC;IACtD,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,KAAK,KAAK;QAAE,IAAI,IAAI,KAAK,CAAC;IACxD,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,IAAI,IAAI,CAAC;IACjD,IAAI,KAAK,CAAC,WAAW,CAAC,gBAAgB;QAAE,IAAI,IAAI,IAAI,CAAC;IACrD,IAAI,KAAK,CAAC,WAAW,CAAC,WAAW;QAAE,KAAK,IAAI,IAAI,CAAC;IACjD,OAAO;QACL,CAAC,EAAE,gBAAgB;QACnB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;QACjB,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS;KAChE,CAAC;AACJ,CAAC;AAaD,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,OAAO;QACL,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAmB,UAAU;QACpF,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,EAAe,WAAW;QACrF,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,eAAe;QACzF,kBAAkB,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG,EAA+B,WAAW;KACtF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAM9B;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,GAAgC;QACxC,CAAC,EAAE,gBAAgB;QACnB,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QACjC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;KAChC,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAsB,EAAE,MAAe;IAClE,MAAM,GAAG,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC;IACtC,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,4BAA4B,CAAC,EAAE,EAAE,CAAC;QACzG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,yBAAyB,CAAC,EAAE,EAAE,CAAC;QACjH,OAAO,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAgB;IACjD,OAAO,uBAAuB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACnH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -249,6 +249,14 @@ export * as reverseCaptionInjection from "./reverse_caption_injection/index.js";
|
|
|
249
249
|
export * as provenanceDna from "./provenance_dna/index.js";
|
|
250
250
|
export * as textronCaptcha from "./textron_captcha/index.js";
|
|
251
251
|
export * as snnAutoPromote from "./snn_auto_promote/index.js";
|
|
252
|
+
export * as reflex from "./reflex/index.js";
|
|
253
|
+
export * as catalogParity from "./catalog_parity/index.js";
|
|
254
|
+
export * as autonomicBreath from "./autonomic_breath/index.js";
|
|
255
|
+
export * as thalamus from "./thalamus/index.js";
|
|
256
|
+
export * as proprioception from "./proprioception/index.js";
|
|
257
|
+
export * as spinalReflex from "./spinal_reflex/index.js";
|
|
258
|
+
export * as hippocampusDreams from "./hippocampus_dreams/index.js";
|
|
259
|
+
export * as hormonal from "./hormonal/index.js";
|
|
252
260
|
export * as wrapperGenesplicing from "./wrapper_genesplicing/index.js";
|
|
253
261
|
export * as wrapperGenesis from "./wrapper_genesis/index.js";
|
|
254
262
|
export * as dreamConsolidation from "./dream_consolidation/index.js";
|