@runcore-sh/runcore 0.1.9 → 0.1.10
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/cli.js +232 -11
- package/dist/cli.js.map +1 -1
- package/dist/files/deep-index.d.ts +59 -0
- package/dist/files/deep-index.d.ts.map +1 -0
- package/dist/files/deep-index.js +337 -0
- package/dist/files/deep-index.js.map +1 -0
- package/dist/files/import.d.ts +44 -0
- package/dist/files/import.d.ts.map +1 -0
- package/dist/files/import.js +213 -0
- package/dist/files/import.js.map +1 -0
- package/dist/files/index-local.d.ts +37 -0
- package/dist/files/index-local.d.ts.map +1 -0
- package/dist/files/index-local.js +198 -0
- package/dist/files/index-local.js.map +1 -0
- package/dist/nerve/state.d.ts +1 -1
- package/dist/nerve/state.d.ts.map +1 -1
- package/dist/nerve/state.js +1 -1
- package/dist/nerve/state.js.map +1 -1
- package/dist/posture/engine.d.ts +41 -0
- package/dist/posture/engine.d.ts.map +1 -0
- package/dist/posture/engine.js +217 -0
- package/dist/posture/engine.js.map +1 -0
- package/dist/posture/index.d.ts +11 -0
- package/dist/posture/index.d.ts.map +1 -0
- package/dist/posture/index.js +10 -0
- package/dist/posture/index.js.map +1 -0
- package/dist/posture/middleware.d.ts +30 -0
- package/dist/posture/middleware.d.ts.map +1 -0
- package/dist/posture/middleware.js +92 -0
- package/dist/posture/middleware.js.map +1 -0
- package/dist/posture/types.d.ts +61 -0
- package/dist/posture/types.d.ts.map +1 -0
- package/dist/posture/types.js +48 -0
- package/dist/posture/types.js.map +1 -0
- package/dist/server.d.ts +3 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +191 -45
- package/dist/server.js.map +1 -1
- package/dist/tier/bond.d.ts +51 -0
- package/dist/tier/bond.d.ts.map +1 -0
- package/dist/tier/bond.js +154 -0
- package/dist/tier/bond.js.map +1 -0
- package/dist/tier/freeze.d.ts +21 -0
- package/dist/tier/freeze.d.ts.map +1 -0
- package/dist/tier/freeze.js +73 -0
- package/dist/tier/freeze.js.map +1 -0
- package/dist/tier/gate.d.ts +11 -0
- package/dist/tier/gate.d.ts.map +1 -0
- package/dist/tier/gate.js +25 -0
- package/dist/tier/gate.js.map +1 -0
- package/dist/tier/heartbeat.d.ts +22 -0
- package/dist/tier/heartbeat.d.ts.map +1 -0
- package/dist/tier/heartbeat.js +128 -0
- package/dist/tier/heartbeat.js.map +1 -0
- package/dist/tier/token.d.ts +22 -0
- package/dist/tier/token.d.ts.map +1 -0
- package/dist/tier/token.js +100 -0
- package/dist/tier/token.js.map +1 -0
- package/dist/tier/types.d.ts +44 -0
- package/dist/tier/types.d.ts.map +1 -0
- package/dist/tier/types.js +61 -0
- package/dist/tier/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local indexing — process imported files through Ollama for semantic retrieval.
|
|
3
|
+
*
|
|
4
|
+
* All processing runs on-device. The membrane guarantees that if any content
|
|
5
|
+
* accidentally reaches a cloud LLM, sensitive data is replaced with typed
|
|
6
|
+
* placeholders before network egress.
|
|
7
|
+
*
|
|
8
|
+
* Pipeline:
|
|
9
|
+
* 1. Read imported files from brain/
|
|
10
|
+
* 2. Scan for sensitive terms → auto-register with SensitiveRegistry
|
|
11
|
+
* 3. Generate summaries via local Ollama (never cloud)
|
|
12
|
+
* 4. Store summaries as semantic memory entries (brain/memory/semantic.jsonl)
|
|
13
|
+
*
|
|
14
|
+
* The import manifest (brain/.core/import-manifest.json) tracks what's been
|
|
15
|
+
* indexed so we don't re-process files.
|
|
16
|
+
*/
|
|
17
|
+
/** Scan text for potential sensitive content and auto-register with the registry. */
|
|
18
|
+
export declare function detectSensitiveTerms(text: string, fileName: string): {
|
|
19
|
+
category: string;
|
|
20
|
+
hint: string;
|
|
21
|
+
}[];
|
|
22
|
+
/**
|
|
23
|
+
* Index imported files locally using Ollama.
|
|
24
|
+
* Generates summaries and stores as semantic memory.
|
|
25
|
+
* All processing stays on-device.
|
|
26
|
+
*/
|
|
27
|
+
export declare function indexImportedFiles(options: {
|
|
28
|
+
/** Force local-only (Ollama). If false, uses whatever provider is configured. */
|
|
29
|
+
localOnly?: boolean;
|
|
30
|
+
/** Max files to index per run */
|
|
31
|
+
batchSize?: number;
|
|
32
|
+
}): Promise<{
|
|
33
|
+
indexed: number;
|
|
34
|
+
sensitive: number;
|
|
35
|
+
skipped: number;
|
|
36
|
+
}>;
|
|
37
|
+
//# sourceMappingURL=index-local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-local.d.ts","sourceRoot":"","sources":["../../src/files/index-local.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA8BH,qFAAqF;AACrF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAoCtC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoHnE"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local indexing — process imported files through Ollama for semantic retrieval.
|
|
3
|
+
*
|
|
4
|
+
* All processing runs on-device. The membrane guarantees that if any content
|
|
5
|
+
* accidentally reaches a cloud LLM, sensitive data is replaced with typed
|
|
6
|
+
* placeholders before network egress.
|
|
7
|
+
*
|
|
8
|
+
* Pipeline:
|
|
9
|
+
* 1. Read imported files from brain/
|
|
10
|
+
* 2. Scan for sensitive terms → auto-register with SensitiveRegistry
|
|
11
|
+
* 3. Generate summaries via local Ollama (never cloud)
|
|
12
|
+
* 4. Store summaries as semantic memory entries (brain/memory/semantic.jsonl)
|
|
13
|
+
*
|
|
14
|
+
* The import manifest (brain/.core/import-manifest.json) tracks what's been
|
|
15
|
+
* indexed so we don't re-process files.
|
|
16
|
+
*/
|
|
17
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
18
|
+
import { join, resolve, extname } from "node:path";
|
|
19
|
+
import { existsSync } from "node:fs";
|
|
20
|
+
import { createLogger } from "../utils/logger.js";
|
|
21
|
+
const log = createLogger("index-local");
|
|
22
|
+
const BRAIN_DIR = resolve(process.cwd(), "brain");
|
|
23
|
+
const INDEX_MANIFEST_PATH = join(BRAIN_DIR, ".core", "index-manifest.json");
|
|
24
|
+
async function loadIndexManifest() {
|
|
25
|
+
try {
|
|
26
|
+
const raw = await readFile(INDEX_MANIFEST_PATH, "utf-8");
|
|
27
|
+
return JSON.parse(raw);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return { indexed: [], lastRun: "" };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function saveIndexManifest(manifest) {
|
|
34
|
+
await writeFile(INDEX_MANIFEST_PATH, JSON.stringify(manifest, null, 2), "utf-8");
|
|
35
|
+
}
|
|
36
|
+
/** Scan text for potential sensitive content and auto-register with the registry. */
|
|
37
|
+
export function detectSensitiveTerms(text, fileName) {
|
|
38
|
+
const found = [];
|
|
39
|
+
// Email addresses
|
|
40
|
+
const emails = text.match(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g);
|
|
41
|
+
if (emails) {
|
|
42
|
+
for (const email of new Set(emails)) {
|
|
43
|
+
found.push({ category: "EMAIL", hint: email });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Phone numbers
|
|
47
|
+
const phones = text.match(/\b(?:\+?1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b/g);
|
|
48
|
+
if (phones) {
|
|
49
|
+
for (const phone of new Set(phones)) {
|
|
50
|
+
found.push({ category: "PHONE", hint: phone });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Physical addresses (simple heuristic: number + street name + type)
|
|
54
|
+
const addresses = text.match(/\b\d{1,5}\s+[A-Za-z]+\s+(?:St|Ave|Rd|Dr|Blvd|Ln|Way|Ct|Pl|Cir)\.?\b/gi);
|
|
55
|
+
if (addresses) {
|
|
56
|
+
for (const addr of new Set(addresses)) {
|
|
57
|
+
found.push({ category: "ADDRESS", hint: addr });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Dates of birth context (e.g., "born on", "DOB:", "date of birth")
|
|
61
|
+
const dobContext = text.match(/(?:born\s+(?:on\s+)?|DOB[:\s]+|date\s+of\s+birth[:\s]+)\d{1,2}[/\-\.]\d{1,2}[/\-\.]\d{2,4}/gi);
|
|
62
|
+
if (dobContext) {
|
|
63
|
+
for (const dob of new Set(dobContext)) {
|
|
64
|
+
found.push({ category: "DOB", hint: dob });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return found;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Index imported files locally using Ollama.
|
|
71
|
+
* Generates summaries and stores as semantic memory.
|
|
72
|
+
* All processing stays on-device.
|
|
73
|
+
*/
|
|
74
|
+
export async function indexImportedFiles(options) {
|
|
75
|
+
const { localOnly = true, batchSize = 20 } = options;
|
|
76
|
+
// Load import manifest to know what files exist
|
|
77
|
+
const importManifestPath = join(BRAIN_DIR, ".core", "import-manifest.json");
|
|
78
|
+
if (!existsSync(importManifestPath)) {
|
|
79
|
+
return { indexed: 0, sensitive: 0, skipped: 0 };
|
|
80
|
+
}
|
|
81
|
+
const importManifest = JSON.parse(await readFile(importManifestPath, "utf-8"));
|
|
82
|
+
const importedFiles = importManifest.files || [];
|
|
83
|
+
// Load index manifest to know what's already indexed
|
|
84
|
+
const indexManifest = await loadIndexManifest();
|
|
85
|
+
const alreadyIndexed = new Set(indexManifest.indexed);
|
|
86
|
+
// Filter to unindexed text files
|
|
87
|
+
const textExts = new Set([".md", ".txt", ".yaml", ".yml", ".json", ".csv"]);
|
|
88
|
+
const toIndex = importedFiles
|
|
89
|
+
.filter(f => !alreadyIndexed.has(f.destination))
|
|
90
|
+
.filter(f => textExts.has(extname(f.destination).toLowerCase()))
|
|
91
|
+
.slice(0, batchSize);
|
|
92
|
+
if (toIndex.length === 0) {
|
|
93
|
+
return { indexed: 0, sensitive: 0, skipped: 0 };
|
|
94
|
+
}
|
|
95
|
+
let indexed = 0;
|
|
96
|
+
let sensitiveCount = 0;
|
|
97
|
+
const { appendBrainLine, ensureBrainJsonl } = await import("../lib/brain-io.js");
|
|
98
|
+
const semanticPath = join(BRAIN_DIR, "memory", "semantic.jsonl");
|
|
99
|
+
await ensureBrainJsonl(semanticPath, JSON.stringify({ _schema: "semantic", _version: "1.0" }));
|
|
100
|
+
// Auto-detect sensitive terms and write to sensitive.yaml
|
|
101
|
+
const newSensitiveTerms = [];
|
|
102
|
+
for (const file of toIndex) {
|
|
103
|
+
const fullPath = join(BRAIN_DIR, file.destination);
|
|
104
|
+
if (!existsSync(fullPath)) {
|
|
105
|
+
indexManifest.indexed.push(file.destination);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const content = await readFile(fullPath, "utf-8");
|
|
110
|
+
if (!content.trim())
|
|
111
|
+
continue;
|
|
112
|
+
// Detect sensitive terms
|
|
113
|
+
const sensitive = detectSensitiveTerms(content, file.destination);
|
|
114
|
+
for (const term of sensitive) {
|
|
115
|
+
newSensitiveTerms.push({ value: term.hint, category: term.category });
|
|
116
|
+
sensitiveCount++;
|
|
117
|
+
}
|
|
118
|
+
// Generate summary locally
|
|
119
|
+
let summary = "";
|
|
120
|
+
if (localOnly) {
|
|
121
|
+
try {
|
|
122
|
+
const { streamChatLocal } = await import("../llm/ollama.js");
|
|
123
|
+
const chunks = [];
|
|
124
|
+
// Truncate content to avoid overloading small models
|
|
125
|
+
const truncated = content.length > 4000 ? content.slice(0, 4000) + "\n...[truncated]" : content;
|
|
126
|
+
await new Promise((res, rej) => {
|
|
127
|
+
streamChatLocal({
|
|
128
|
+
messages: [
|
|
129
|
+
{ role: "system", content: "Summarize this document in 2-3 sentences. Focus on key facts, decisions, and actionable information. Be concise." },
|
|
130
|
+
{ role: "user", content: truncated },
|
|
131
|
+
],
|
|
132
|
+
model: "auto",
|
|
133
|
+
onToken: (t) => { chunks.push(t); },
|
|
134
|
+
onDone: () => res(),
|
|
135
|
+
onError: (e) => rej(e),
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
summary = chunks.join("");
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// Ollama not available — store raw first line as summary
|
|
142
|
+
summary = content.split("\n").filter(l => l.trim())[0]?.slice(0, 200) || file.destination;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Fallback: first meaningful line as summary (membrane protects if cloud is used)
|
|
147
|
+
summary = content.split("\n").filter(l => l.trim())[0]?.slice(0, 200) || file.destination;
|
|
148
|
+
}
|
|
149
|
+
// Store as semantic memory entry
|
|
150
|
+
const entry = {
|
|
151
|
+
id: `import_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 6)}`,
|
|
152
|
+
type: "semantic",
|
|
153
|
+
content: summary,
|
|
154
|
+
meta: {
|
|
155
|
+
source: file.destination,
|
|
156
|
+
category: file.category,
|
|
157
|
+
importedFrom: "local-import",
|
|
158
|
+
},
|
|
159
|
+
createdAt: new Date().toISOString(),
|
|
160
|
+
};
|
|
161
|
+
await appendBrainLine(semanticPath, JSON.stringify(entry));
|
|
162
|
+
indexManifest.indexed.push(file.destination);
|
|
163
|
+
indexed++;
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
log.warn(`Failed to index ${file.destination}: ${err instanceof Error ? err.message : String(err)}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Append new sensitive terms to sensitive.yaml
|
|
170
|
+
if (newSensitiveTerms.length > 0) {
|
|
171
|
+
await appendSensitiveTerms(newSensitiveTerms);
|
|
172
|
+
log.info(`Auto-detected ${newSensitiveTerms.length} sensitive terms from imported files`);
|
|
173
|
+
}
|
|
174
|
+
// Save index manifest
|
|
175
|
+
indexManifest.lastRun = new Date().toISOString();
|
|
176
|
+
await saveIndexManifest(indexManifest);
|
|
177
|
+
log.info(`Indexed ${indexed} files, detected ${sensitiveCount} sensitive terms`);
|
|
178
|
+
return { indexed, sensitive: sensitiveCount, skipped: toIndex.length - indexed };
|
|
179
|
+
}
|
|
180
|
+
/** Append auto-detected sensitive terms to brain/knowledge/sensitive.yaml */
|
|
181
|
+
async function appendSensitiveTerms(terms) {
|
|
182
|
+
const filePath = join(BRAIN_DIR, "knowledge", "sensitive.yaml");
|
|
183
|
+
let existing = "";
|
|
184
|
+
try {
|
|
185
|
+
existing = await readFile(filePath, "utf-8");
|
|
186
|
+
}
|
|
187
|
+
catch { /* new file */ }
|
|
188
|
+
// Deduplicate against existing content
|
|
189
|
+
const newEntries = terms
|
|
190
|
+
.filter(t => !existing.includes(t.value))
|
|
191
|
+
.map(t => `- value: "${t.value.replace(/"/g, '\\"')}"\n category: ${t.category}`)
|
|
192
|
+
.join("\n");
|
|
193
|
+
if (newEntries) {
|
|
194
|
+
const header = existing ? "\n# Auto-detected from imported files\n" : "# Sensitive terms — auto-detected + manual\n# The membrane replaces these with <<CATEGORY_N>> before any LLM API call.\n\n";
|
|
195
|
+
await writeFile(filePath, existing + header + newEntries + "\n", "utf-8");
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=index-local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-local.js","sourceRoot":"","sources":["../../src/files/index-local.ts"],"names":[],"mappings":"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"}
|
package/dist/nerve/state.d.ts
CHANGED
|
@@ -30,6 +30,6 @@ export interface NerveState {
|
|
|
30
30
|
joy: DotState;
|
|
31
31
|
timestamp: string;
|
|
32
32
|
}
|
|
33
|
-
/** Get the full nerve state — three dots of
|
|
33
|
+
/** Get the full nerve state — three dots of field. */
|
|
34
34
|
export declare function getNerveState(): Promise<NerveState>;
|
|
35
35
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/nerve/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAEhF;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAElD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AA8ND,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/nerve/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAEhF;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAElD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AA8ND,sDAAsD;AACtD,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAazD"}
|
package/dist/nerve/state.js
CHANGED
|
@@ -240,7 +240,7 @@ async function computeJoy() {
|
|
|
240
240
|
: items.map(i => i.text).join(". ");
|
|
241
241
|
return { color, label, detail, items };
|
|
242
242
|
}
|
|
243
|
-
/** Get the full nerve state — three dots of
|
|
243
|
+
/** Get the full nerve state — three dots of field. */
|
|
244
244
|
export async function getNerveState() {
|
|
245
245
|
const [sense, work, joy] = await Promise.all([
|
|
246
246
|
computeSense(),
|
package/dist/nerve/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/nerve/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/nerve/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAElD,gEAAgE;AAChE,IAAI,aAAa,GAA+C,IAAI,CAAC;AAErE,MAAM,UAAU,gBAAgB,CAAC,IAAyC;IACxE,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAwBD,SAAS,GAAG,CAAC,EAAU;IACrB,IAAI,EAAE,GAAG,MAAM;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,EAAE,GAAG,SAAS;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7D,IAAI,EAAE,GAAG,UAAU;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC;IACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;AAC/C,CAAC;AAED,+CAA+C;AAC/C,KAAK,UAAU,YAAY;IACzB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,GAAG,CAAC,OAAO;oBAAE,SAAS;gBAC1B,IAAI,GAAG,CAAC,EAAE;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;YAC1D,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,MAAM;YAC1E,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC;SACpF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACjD,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,KAAK,UAAU,sBAAsB;IACnC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;QAC5D,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,GAAG,CAAC,OAAO;oBAAE,SAAS;gBAC1B,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;oBAChE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBAAC,SAAS;YAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,KAAK,UAAU,YAAY;IACzB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,gBAAgB;IAChB,IAAI,YAAY,GAAa,MAAM,CAAC;IACpC,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YAC5C,YAAY,GAAG,OAAO,CAAC;YACvB,YAAY,GAAG,mBAAmB,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1G,CAAC;aAAM,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YACnD,YAAY,GAAG,OAAO,CAAC;YACvB,YAAY,GAAG,QAAQ,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC3B,YAAY,GAAG,OAAO,CAAC;QACvB,YAAY,GAAG,wBAAwB,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,EAAE,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtG,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAChF,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO,QAAQ,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,aAAa,EAAE,CAAC;QAClB,YAAY,GAAG,OAAO,CAAC;QACvB,YAAY,GAAG,kBAAkB,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,aAAa,CAAC,MAAM,yBAAyB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,gBAAgB,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,WAAW,MAAM,CAAC,KAAK,gBAAgB,CAAC;IAE7H,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,YAAY;QACnB,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,KAAK,UAAU,WAAW;IACxB,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,IAAI,KAAK,GAAa,MAAM,CAAC;IAC7B,IAAI,KAAK,GAAG,MAAM,CAAC;IAEnB,cAAc;IACd,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAErE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,OAAO,CAAC;YAChB,KAAK,GAAG,SAAS,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,GAAG,OAAO,CAAC;YAChB,KAAK,GAAG,iBAAiB,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAExC,cAAc;IACd,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;YAE/F,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBAAC,KAAK,GAAG,OAAO,CAAC;oBAAC,KAAK,GAAG,aAAa,CAAC;gBAAC,CAAC;gBACjE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,cAAc,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;IAEhF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,2CAA2C;AAC3C,KAAK,UAAU,UAAU;IACvB,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,IAAI,KAAK,GAAa,MAAM,CAAC;IAC7B,IAAI,KAAK,GAAG,QAAQ,CAAC;IAErB,4DAA4D;IAC5D,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,GAAG,OAAO,CAAC;QAChB,KAAK,GAAG,WAAW,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,YAAY,YAAY,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnI,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO,GAAG,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC,YAAY;QACpD,CAAC,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAAC,KAAK,GAAG,OAAO,CAAC;gBAAC,KAAK,GAAG,YAAY,CAAC;YAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,QAAQ,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvI,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAExC,8CAA8C;IAC9C,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAChD,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC9E,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,OAAO,CAAC;QAChB,KAAK,GAAG,gBAAgB,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,QAAQ,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACnI,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,YAAY,EAAE;QACd,WAAW,EAAE;QACb,UAAU,EAAE;KACb,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,IAAI;QACJ,GAAG;QACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Posture Engine — observes interaction patterns and adapts UI surface.
|
|
3
|
+
*
|
|
4
|
+
* The UI assembles itself around the user:
|
|
5
|
+
* - No interaction → silent mode, Core reaches out proactively
|
|
6
|
+
* - Light touches (pulse checks) → pulse mode
|
|
7
|
+
* - Deep dives (pages, agent logs, settings) → board mode
|
|
8
|
+
*
|
|
9
|
+
* Transitions happen automatically based on intent accumulation.
|
|
10
|
+
* The user can also pin a posture to lock it.
|
|
11
|
+
* Posture decays toward silent over time — if you stop looking, the UI fades.
|
|
12
|
+
*/
|
|
13
|
+
import type { PostureName, PostureState, PostureSurface, InteractionSignal } from "./types.js";
|
|
14
|
+
/** Get current posture. */
|
|
15
|
+
export declare function getPosture(): PostureName;
|
|
16
|
+
/** Get current posture state (full details). */
|
|
17
|
+
export declare function getPostureState(): PostureState;
|
|
18
|
+
/** Get the surface map for the current posture. */
|
|
19
|
+
export declare function getSurface(): PostureSurface;
|
|
20
|
+
/** Check if a specific surface is available. */
|
|
21
|
+
export declare function hasSurface(surface: keyof PostureSurface): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Record an interaction signal. This is the primary input to the posture engine.
|
|
24
|
+
* Called by route handlers, middleware, or UI events.
|
|
25
|
+
*/
|
|
26
|
+
export declare function recordInteraction(signal: InteractionSignal): void;
|
|
27
|
+
/**
|
|
28
|
+
* Pin the current posture — locks auto-transitions until unpinned.
|
|
29
|
+
* User explicitly chose this level. Respect it.
|
|
30
|
+
*/
|
|
31
|
+
export declare function pinPosture(posture: PostureName): void;
|
|
32
|
+
/** Unpin — allow auto-transitions again. */
|
|
33
|
+
export declare function unpinPosture(): void;
|
|
34
|
+
/** Check for decay — called on a timer or at startup. */
|
|
35
|
+
export declare function evaluateDecay(): void;
|
|
36
|
+
/** Load posture state from brain/settings.json. */
|
|
37
|
+
export declare function loadPosture(): Promise<void>;
|
|
38
|
+
/** Start the decay check timer — runs hourly. */
|
|
39
|
+
export declare function startDecayTimer(): void;
|
|
40
|
+
export declare function stopDecayTimer(): void;
|
|
41
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/posture/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAyCpB,2BAA2B;AAC3B,wBAAgB,UAAU,IAAI,WAAW,CAExC;AAED,gDAAgD;AAChD,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED,mDAAmD;AACnD,wBAAgB,UAAU,IAAI,cAAc,CAE3C;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,cAAc,GAAG,OAAO,CAEjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAgBjE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAMrD;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,IAAI,IAAI,CAInC;AAiCD,yDAAyD;AACzD,wBAAgB,aAAa,IAAI,IAAI,CAgBpC;AAoBD,mDAAmD;AACnD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAqBjD;AA8BD,iDAAiD;AACjD,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Posture Engine — observes interaction patterns and adapts UI surface.
|
|
3
|
+
*
|
|
4
|
+
* The UI assembles itself around the user:
|
|
5
|
+
* - No interaction → silent mode, Core reaches out proactively
|
|
6
|
+
* - Light touches (pulse checks) → pulse mode
|
|
7
|
+
* - Deep dives (pages, agent logs, settings) → board mode
|
|
8
|
+
*
|
|
9
|
+
* Transitions happen automatically based on intent accumulation.
|
|
10
|
+
* The user can also pin a posture to lock it.
|
|
11
|
+
* Posture decays toward silent over time — if you stop looking, the UI fades.
|
|
12
|
+
*/
|
|
13
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
14
|
+
import { join, resolve } from "node:path";
|
|
15
|
+
import { createLogger } from "../utils/logger.js";
|
|
16
|
+
import { POSTURE_SURFACE } from "./types.js";
|
|
17
|
+
const log = createLogger("posture");
|
|
18
|
+
const BRAIN_DIR = resolve(process.cwd(), "brain");
|
|
19
|
+
const STATE_PATH = join(BRAIN_DIR, "settings.json");
|
|
20
|
+
// ── In-memory state ─────────────────────────────────────────────────────────
|
|
21
|
+
const DEFAULT_STATE = {
|
|
22
|
+
current: "silent",
|
|
23
|
+
changedAt: new Date().toISOString(),
|
|
24
|
+
pinned: false,
|
|
25
|
+
interactions: {},
|
|
26
|
+
windowStart: new Date().toISOString(),
|
|
27
|
+
};
|
|
28
|
+
let state = { ...DEFAULT_STATE };
|
|
29
|
+
// ── Thresholds ──────────────────────────────────────────────────────────────
|
|
30
|
+
/** Interactions in a 24h window to trigger escalation */
|
|
31
|
+
const ESCALATION_THRESHOLDS = {
|
|
32
|
+
/** Any interaction at all → at least pulse */
|
|
33
|
+
toPulse: 1,
|
|
34
|
+
/** Deep interactions (pages, agents, settings) → board */
|
|
35
|
+
toBoard: 5,
|
|
36
|
+
};
|
|
37
|
+
/** Hours of silence before decay */
|
|
38
|
+
const DECAY_HOURS = {
|
|
39
|
+
/** Board → pulse after this many hours of no interaction */
|
|
40
|
+
boardToPulse: 48,
|
|
41
|
+
/** Pulse → silent after this many hours of no interaction */
|
|
42
|
+
pulseToSilent: 168, // 1 week
|
|
43
|
+
};
|
|
44
|
+
const WINDOW_MS = 24 * 60 * 60 * 1000; // 24h rolling window
|
|
45
|
+
// ── Core API ────────────────────────────────────────────────────────────────
|
|
46
|
+
/** Get current posture. */
|
|
47
|
+
export function getPosture() {
|
|
48
|
+
return state.current;
|
|
49
|
+
}
|
|
50
|
+
/** Get current posture state (full details). */
|
|
51
|
+
export function getPostureState() {
|
|
52
|
+
return { ...state };
|
|
53
|
+
}
|
|
54
|
+
/** Get the surface map for the current posture. */
|
|
55
|
+
export function getSurface() {
|
|
56
|
+
return POSTURE_SURFACE[state.current];
|
|
57
|
+
}
|
|
58
|
+
/** Check if a specific surface is available. */
|
|
59
|
+
export function hasSurface(surface) {
|
|
60
|
+
return POSTURE_SURFACE[state.current][surface];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Record an interaction signal. This is the primary input to the posture engine.
|
|
64
|
+
* Called by route handlers, middleware, or UI events.
|
|
65
|
+
*/
|
|
66
|
+
export function recordInteraction(signal) {
|
|
67
|
+
// Reset window if expired
|
|
68
|
+
const windowAge = Date.now() - new Date(state.windowStart).getTime();
|
|
69
|
+
if (windowAge > WINDOW_MS) {
|
|
70
|
+
state.interactions = {};
|
|
71
|
+
state.windowStart = new Date().toISOString();
|
|
72
|
+
}
|
|
73
|
+
// Increment counter for this surface
|
|
74
|
+
const key = signal.detail ? `${signal.surface}:${signal.detail}` : signal.surface;
|
|
75
|
+
state.interactions[key] = (state.interactions[key] || 0) + 1;
|
|
76
|
+
// Evaluate transition
|
|
77
|
+
if (!state.pinned) {
|
|
78
|
+
evaluateEscalation(signal);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Pin the current posture — locks auto-transitions until unpinned.
|
|
83
|
+
* User explicitly chose this level. Respect it.
|
|
84
|
+
*/
|
|
85
|
+
export function pinPosture(posture) {
|
|
86
|
+
state.current = posture;
|
|
87
|
+
state.pinned = true;
|
|
88
|
+
state.changedAt = new Date().toISOString();
|
|
89
|
+
log.info(`Posture pinned: ${posture}`);
|
|
90
|
+
saveState();
|
|
91
|
+
}
|
|
92
|
+
/** Unpin — allow auto-transitions again. */
|
|
93
|
+
export function unpinPosture() {
|
|
94
|
+
state.pinned = false;
|
|
95
|
+
log.info("Posture unpinned — auto-transitions enabled");
|
|
96
|
+
saveState();
|
|
97
|
+
}
|
|
98
|
+
// ── Transition logic ────────────────────────────────────────────────────────
|
|
99
|
+
function evaluateEscalation(signal) {
|
|
100
|
+
const prev = state.current;
|
|
101
|
+
const deepSurfaces = ["pages", "agents", "settings", "page-view"];
|
|
102
|
+
const isDeep = deepSurfaces.includes(signal.surface);
|
|
103
|
+
// Count deep interactions in current window
|
|
104
|
+
const deepCount = Object.entries(state.interactions)
|
|
105
|
+
.filter(([k]) => deepSurfaces.some(s => k.startsWith(s)))
|
|
106
|
+
.reduce((sum, [, v]) => sum + v, 0);
|
|
107
|
+
const totalCount = Object.values(state.interactions)
|
|
108
|
+
.reduce((sum, v) => sum + v, 0);
|
|
109
|
+
if (state.current === "silent") {
|
|
110
|
+
if (totalCount >= ESCALATION_THRESHOLDS.toPulse) {
|
|
111
|
+
transition("pulse");
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (state.current === "pulse") {
|
|
115
|
+
if (isDeep && deepCount >= ESCALATION_THRESHOLDS.toBoard) {
|
|
116
|
+
transition("board");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Board doesn't escalate further — it's the max
|
|
120
|
+
if (state.current !== prev) {
|
|
121
|
+
log.info(`Posture escalated: ${prev} → ${state.current} (${signal.surface})`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Check for decay — called on a timer or at startup. */
|
|
125
|
+
export function evaluateDecay() {
|
|
126
|
+
if (state.pinned)
|
|
127
|
+
return;
|
|
128
|
+
const hoursSinceChange = (Date.now() - new Date(state.changedAt).getTime()) / (60 * 60 * 1000);
|
|
129
|
+
const hoursSinceInteraction = getHoursSinceLastInteraction();
|
|
130
|
+
const prev = state.current;
|
|
131
|
+
if (state.current === "board" && hoursSinceInteraction >= DECAY_HOURS.boardToPulse) {
|
|
132
|
+
transition("pulse");
|
|
133
|
+
}
|
|
134
|
+
else if (state.current === "pulse" && hoursSinceInteraction >= DECAY_HOURS.pulseToSilent) {
|
|
135
|
+
transition("silent");
|
|
136
|
+
}
|
|
137
|
+
if (state.current !== prev) {
|
|
138
|
+
log.info(`Posture decayed: ${prev} → ${state.current} (${hoursSinceInteraction.toFixed(0)}h silent)`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function getHoursSinceLastInteraction() {
|
|
142
|
+
// Use window start + max interaction timestamp
|
|
143
|
+
const windowAge = Date.now() - new Date(state.windowStart).getTime();
|
|
144
|
+
if (Object.keys(state.interactions).length === 0) {
|
|
145
|
+
return (Date.now() - new Date(state.changedAt).getTime()) / (60 * 60 * 1000);
|
|
146
|
+
}
|
|
147
|
+
// If there are interactions in the window, consider the window recent
|
|
148
|
+
return windowAge / (60 * 60 * 1000);
|
|
149
|
+
}
|
|
150
|
+
function transition(to) {
|
|
151
|
+
state.current = to;
|
|
152
|
+
state.changedAt = new Date().toISOString();
|
|
153
|
+
saveState();
|
|
154
|
+
}
|
|
155
|
+
// ── Persistence ─────────────────────────────────────────────────────────────
|
|
156
|
+
/** Load posture state from brain/settings.json. */
|
|
157
|
+
export async function loadPosture() {
|
|
158
|
+
try {
|
|
159
|
+
const raw = await readFile(STATE_PATH, "utf-8");
|
|
160
|
+
const settings = JSON.parse(raw);
|
|
161
|
+
if (settings.posture) {
|
|
162
|
+
state = {
|
|
163
|
+
current: settings.posture.current || "silent",
|
|
164
|
+
changedAt: settings.posture.changedAt || new Date().toISOString(),
|
|
165
|
+
pinned: settings.posture.pinned || false,
|
|
166
|
+
interactions: settings.posture.interactions || {},
|
|
167
|
+
windowStart: settings.posture.windowStart || new Date().toISOString(),
|
|
168
|
+
};
|
|
169
|
+
log.info(`Posture loaded: ${state.current}${state.pinned ? " (pinned)" : ""}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// No settings yet — start silent
|
|
174
|
+
state = { ...DEFAULT_STATE };
|
|
175
|
+
}
|
|
176
|
+
// Check for decay on load
|
|
177
|
+
evaluateDecay();
|
|
178
|
+
}
|
|
179
|
+
async function saveState() {
|
|
180
|
+
try {
|
|
181
|
+
let settings = {};
|
|
182
|
+
try {
|
|
183
|
+
const raw = await readFile(STATE_PATH, "utf-8");
|
|
184
|
+
settings = JSON.parse(raw);
|
|
185
|
+
}
|
|
186
|
+
catch { /* new file */ }
|
|
187
|
+
settings.posture = {
|
|
188
|
+
current: state.current,
|
|
189
|
+
changedAt: state.changedAt,
|
|
190
|
+
pinned: state.pinned,
|
|
191
|
+
interactions: state.interactions,
|
|
192
|
+
windowStart: state.windowStart,
|
|
193
|
+
};
|
|
194
|
+
await writeFile(STATE_PATH, JSON.stringify(settings, null, 2), "utf-8");
|
|
195
|
+
}
|
|
196
|
+
catch (err) {
|
|
197
|
+
log.warn("Failed to save posture state", {
|
|
198
|
+
error: err instanceof Error ? err.message : String(err),
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// ── Decay timer ─────────────────────────────────────────────────────────────
|
|
203
|
+
let decayTimer = null;
|
|
204
|
+
/** Start the decay check timer — runs hourly. */
|
|
205
|
+
export function startDecayTimer() {
|
|
206
|
+
if (decayTimer)
|
|
207
|
+
return;
|
|
208
|
+
decayTimer = setInterval(() => evaluateDecay(), 60 * 60 * 1000);
|
|
209
|
+
log.info("Posture decay timer started (1h interval)");
|
|
210
|
+
}
|
|
211
|
+
export function stopDecayTimer() {
|
|
212
|
+
if (decayTimer) {
|
|
213
|
+
clearInterval(decayTimer);
|
|
214
|
+
decayTimer = null;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/posture/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Posture module — UI surface assembly around the user.
|
|
3
|
+
*
|
|
4
|
+
* Three modes: silent → pulse → board.
|
|
5
|
+
* Driven by intent accumulation, not configuration.
|
|
6
|
+
*/
|
|
7
|
+
export { getPosture, getPostureState, getSurface, hasSurface, recordInteraction, pinPosture, unpinPosture, evaluateDecay, loadPosture, startDecayTimer, stopDecayTimer, } from "./engine.js";
|
|
8
|
+
export { postureTracker, pageViewTracker, requireSurface, postureHeader, } from "./middleware.js";
|
|
9
|
+
export type { PostureName, PostureState, PostureSurface, InteractionSignal, } from "./types.js";
|
|
10
|
+
export { POSTURE_SURFACE, POSTURE_LEVEL } from "./types.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/posture/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Posture module — UI surface assembly around the user.
|
|
3
|
+
*
|
|
4
|
+
* Three modes: silent → pulse → board.
|
|
5
|
+
* Driven by intent accumulation, not configuration.
|
|
6
|
+
*/
|
|
7
|
+
export { getPosture, getPostureState, getSurface, hasSurface, recordInteraction, pinPosture, unpinPosture, evaluateDecay, loadPosture, startDecayTimer, stopDecayTimer, } from "./engine.js";
|
|
8
|
+
export { postureTracker, pageViewTracker, requireSurface, postureHeader, } from "./middleware.js";
|
|
9
|
+
export { POSTURE_SURFACE, POSTURE_LEVEL } from "./types.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/posture/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|