@runcore-sh/runcore 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/brain-template/agents/cooldowns.json +1 -0
  2. package/brain-template/agents/locks.json +1 -0
  3. package/brain-template/agents/module.json +15 -0
  4. package/brain-template/agents/workflows/examples/conditional-deploy.json +124 -0
  5. package/brain-template/agents/workflows/examples/parallel-analysis.json +81 -0
  6. package/brain-template/agents/workflows/examples/research-and-write.json +71 -0
  7. package/brain-template/agents/workflows/schema.json +236 -0
  8. package/brain-template/contacts/README.md +22 -0
  9. package/brain-template/contacts/module.json +19 -0
  10. package/brain-template/content/CONTENT.md +36 -0
  11. package/brain-template/content/templates/blog.md +26 -0
  12. package/brain-template/knowledge/README.md +11 -0
  13. package/brain-template/library/README.md +29 -0
  14. package/brain-template/library/module.json +29 -0
  15. package/brain-template/memory/README.md +17 -0
  16. package/brain-template/metrics/module.json +7 -0
  17. package/brain-template/operations/OPERATIONS.md +28 -0
  18. package/brain-template/ops/module.json +8 -0
  19. package/brain-template/registry.md +566 -0
  20. package/brain-template/rest_api-integration.md +522 -0
  21. package/brain-template/scheduling/README.md +23 -0
  22. package/brain-template/scheduling/module.json +16 -0
  23. package/brain-template/settings.json +60 -0
  24. package/brain-template/skills/debugging.yml +152 -0
  25. package/brain-template/skills/file-editing.yml +148 -0
  26. package/brain-template/skills/git-operations.yml +131 -0
  27. package/brain-template/skills/schema.yml +286 -0
  28. package/brain-template/skills/testing.yml +170 -0
  29. package/brain-template/skills/web-scraping.yml +178 -0
  30. package/brain-template/templates/instances.yaml +70 -0
  31. package/brain-template/templates/spawn-policy.yaml +36 -0
  32. package/brain-template/templates/vault.policy.yaml +37 -0
  33. package/brain-template/training/module.json +14 -0
  34. package/dictionary.json +38 -0
  35. package/dist/access/manifest.js +2 -2
  36. package/dist/access/manifest.js.map +1 -1
  37. package/dist/activity/log.d.ts.map +1 -1
  38. package/dist/activity/log.js +2 -1
  39. package/dist/activity/log.js.map +1 -1
  40. package/dist/agents/cooldown.d.ts.map +1 -1
  41. package/dist/agents/cooldown.js +2 -1
  42. package/dist/agents/cooldown.js.map +1 -1
  43. package/dist/agents/governance.js +16 -16
  44. package/dist/agents/governance.js.map +1 -1
  45. package/dist/agents/heartbeat.d.ts.map +1 -1
  46. package/dist/agents/heartbeat.js +3 -2
  47. package/dist/agents/heartbeat.js.map +1 -1
  48. package/dist/agents/locks.js +2 -2
  49. package/dist/agents/locks.js.map +1 -1
  50. package/dist/agents/memory.d.ts.map +1 -1
  51. package/dist/agents/memory.js +2 -1
  52. package/dist/agents/memory.js.map +1 -1
  53. package/dist/agents/reflection.d.ts.map +1 -1
  54. package/dist/agents/reflection.js +25 -24
  55. package/dist/agents/reflection.js.map +1 -1
  56. package/dist/agents/runtime/config.d.ts.map +1 -1
  57. package/dist/agents/runtime/config.js +2 -1
  58. package/dist/agents/runtime/config.js.map +1 -1
  59. package/dist/agents/spawn-policy.js +2 -2
  60. package/dist/agents/spawn-policy.js.map +1 -1
  61. package/dist/agents/spawn.d.ts.map +1 -1
  62. package/dist/agents/spawn.js +54 -53
  63. package/dist/agents/spawn.js.map +1 -1
  64. package/dist/agents/store.d.ts.map +1 -1
  65. package/dist/agents/store.js +20 -20
  66. package/dist/agents/store.js.map +1 -1
  67. package/dist/agents/workflow.d.ts.map +1 -1
  68. package/dist/agents/workflow.js +2 -1
  69. package/dist/agents/workflow.js.map +1 -1
  70. package/dist/auth/identity.d.ts.map +1 -1
  71. package/dist/auth/identity.js +2 -1
  72. package/dist/auth/identity.js.map +1 -1
  73. package/dist/browser/sessions.d.ts.map +1 -1
  74. package/dist/browser/sessions.js +2 -1
  75. package/dist/browser/sessions.js.map +1 -1
  76. package/dist/cli.js +274 -53
  77. package/dist/cli.js.map +1 -1
  78. package/dist/distiller.js +2 -2
  79. package/dist/distiller.js.map +1 -1
  80. package/dist/files/deep-index.d.ts +59 -0
  81. package/dist/files/deep-index.d.ts.map +1 -0
  82. package/dist/files/deep-index.js +337 -0
  83. package/dist/files/deep-index.js.map +1 -0
  84. package/dist/files/import.d.ts +44 -0
  85. package/dist/files/import.d.ts.map +1 -0
  86. package/dist/files/import.js +213 -0
  87. package/dist/files/import.js.map +1 -0
  88. package/dist/files/index-local.d.ts +37 -0
  89. package/dist/files/index-local.d.ts.map +1 -0
  90. package/dist/files/index-local.js +198 -0
  91. package/dist/files/index-local.js.map +1 -0
  92. package/dist/goals/loop.js +31 -31
  93. package/dist/goals/loop.js.map +1 -1
  94. package/dist/goals/notifications.d.ts.map +1 -1
  95. package/dist/goals/notifications.js +2 -1
  96. package/dist/goals/notifications.js.map +1 -1
  97. package/dist/instance.d.ts.map +1 -1
  98. package/dist/instance.js +2 -1
  99. package/dist/instance.js.map +1 -1
  100. package/dist/lib/audit.js +1 -1
  101. package/dist/lib/audit.js.map +1 -1
  102. package/dist/lib/locked.js +2 -2
  103. package/dist/lib/locked.js.map +1 -1
  104. package/dist/lib/paths.d.ts +11 -0
  105. package/dist/lib/paths.d.ts.map +1 -0
  106. package/dist/lib/paths.js +13 -0
  107. package/dist/lib/paths.js.map +1 -0
  108. package/dist/mcp-server.js +1 -1
  109. package/dist/mcp-server.js.map +1 -1
  110. package/dist/memory/visual.d.ts.map +1 -1
  111. package/dist/memory/visual.js +2 -1
  112. package/dist/memory/visual.js.map +1 -1
  113. package/dist/metrics/system.d.ts.map +1 -1
  114. package/dist/metrics/system.js +2 -1
  115. package/dist/metrics/system.js.map +1 -1
  116. package/dist/nerve/push.js +2 -2
  117. package/dist/nerve/push.js.map +1 -1
  118. package/dist/nerve/state.d.ts +1 -1
  119. package/dist/nerve/state.d.ts.map +1 -1
  120. package/dist/nerve/state.js +3 -3
  121. package/dist/nerve/state.js.map +1 -1
  122. package/dist/openloop/scanner.d.ts.map +1 -1
  123. package/dist/openloop/scanner.js +11 -10
  124. package/dist/openloop/scanner.js.map +1 -1
  125. package/dist/openloop/store.d.ts.map +1 -1
  126. package/dist/openloop/store.js +3 -2
  127. package/dist/openloop/store.js.map +1 -1
  128. package/dist/posture/engine.d.ts +41 -0
  129. package/dist/posture/engine.d.ts.map +1 -0
  130. package/dist/posture/engine.js +217 -0
  131. package/dist/posture/engine.js.map +1 -0
  132. package/dist/posture/index.d.ts +11 -0
  133. package/dist/posture/index.d.ts.map +1 -0
  134. package/dist/posture/index.js +10 -0
  135. package/dist/posture/index.js.map +1 -0
  136. package/dist/posture/middleware.d.ts +30 -0
  137. package/dist/posture/middleware.d.ts.map +1 -0
  138. package/dist/posture/middleware.js +92 -0
  139. package/dist/posture/middleware.js.map +1 -0
  140. package/dist/posture/types.d.ts +61 -0
  141. package/dist/posture/types.d.ts.map +1 -0
  142. package/dist/posture/types.js +48 -0
  143. package/dist/posture/types.js.map +1 -0
  144. package/dist/pulse/activation-log.js +1 -2
  145. package/dist/pulse/activation-log.js.map +1 -1
  146. package/dist/pulse/pressure.d.ts.map +1 -1
  147. package/dist/pulse/pressure.js +2 -1
  148. package/dist/pulse/pressure.js.map +1 -1
  149. package/dist/queue/grooming.d.ts.map +1 -1
  150. package/dist/queue/grooming.js +2 -2
  151. package/dist/queue/grooming.js.map +1 -1
  152. package/dist/resend/inbox.d.ts.map +1 -1
  153. package/dist/resend/inbox.js +2 -1
  154. package/dist/resend/inbox.js.map +1 -1
  155. package/dist/search/brain-docs.js +1 -2
  156. package/dist/search/brain-docs.js.map +1 -1
  157. package/dist/server.d.ts +3 -1
  158. package/dist/server.d.ts.map +1 -1
  159. package/dist/server.js +221 -75
  160. package/dist/server.js.map +1 -1
  161. package/dist/services/backup.js +1 -1
  162. package/dist/services/backup.js.map +1 -1
  163. package/dist/services/morningBriefing.d.ts.map +1 -1
  164. package/dist/services/morningBriefing.js +46 -45
  165. package/dist/services/morningBriefing.js.map +1 -1
  166. package/dist/services/traceInsights.js +31 -31
  167. package/dist/services/traceInsights.js.map +1 -1
  168. package/dist/services/training.js +1 -1
  169. package/dist/services/training.js.map +1 -1
  170. package/dist/services/whatsapp.js +1 -1
  171. package/dist/services/whatsapp.js.map +1 -1
  172. package/dist/sessions/store.d.ts.map +1 -1
  173. package/dist/sessions/store.js +2 -1
  174. package/dist/sessions/store.js.map +1 -1
  175. package/dist/settings.d.ts.map +1 -1
  176. package/dist/settings.js +2 -1
  177. package/dist/settings.js.map +1 -1
  178. package/dist/tier/bond.d.ts +51 -0
  179. package/dist/tier/bond.d.ts.map +1 -0
  180. package/dist/tier/bond.js +154 -0
  181. package/dist/tier/bond.js.map +1 -0
  182. package/dist/tier/freeze.d.ts +21 -0
  183. package/dist/tier/freeze.d.ts.map +1 -0
  184. package/dist/tier/freeze.js +73 -0
  185. package/dist/tier/freeze.js.map +1 -0
  186. package/dist/tier/gate.d.ts +11 -0
  187. package/dist/tier/gate.d.ts.map +1 -0
  188. package/dist/tier/gate.js +25 -0
  189. package/dist/tier/gate.js.map +1 -0
  190. package/dist/tier/heartbeat.d.ts +22 -0
  191. package/dist/tier/heartbeat.d.ts.map +1 -0
  192. package/dist/tier/heartbeat.js +128 -0
  193. package/dist/tier/heartbeat.js.map +1 -0
  194. package/dist/tier/token.d.ts +22 -0
  195. package/dist/tier/token.d.ts.map +1 -0
  196. package/dist/tier/token.js +100 -0
  197. package/dist/tier/token.js.map +1 -0
  198. package/dist/tier/types.d.ts +44 -0
  199. package/dist/tier/types.d.ts.map +1 -0
  200. package/dist/tier/types.js +61 -0
  201. package/dist/tier/types.js.map +1 -0
  202. package/dist/vault/personal.d.ts.map +1 -1
  203. package/dist/vault/personal.js +2 -1
  204. package/dist/vault/personal.js.map +1 -1
  205. package/dist/vault/policy.js +2 -2
  206. package/dist/vault/policy.js.map +1 -1
  207. package/dist/vault/store.d.ts.map +1 -1
  208. package/dist/vault/store.js +2 -1
  209. package/dist/vault/store.js.map +1 -1
  210. package/dist/vault/transfer.d.ts.map +1 -1
  211. package/dist/vault/transfer.js +4 -3
  212. package/dist/vault/transfer.js.map +1 -1
  213. package/package.json +5 -2
  214. package/public/pulse.html +592 -0
@@ -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, extname } from "node:path";
19
+ import { existsSync } from "node:fs";
20
+ import { createLogger } from "../utils/logger.js";
21
+ const log = createLogger("index-local");
22
+ import { BRAIN_DIR } from "../lib/paths.js";
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":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;AAE5E,KAAK,UAAU,iBAAiB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAuB;IACtD,MAAM,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACnF,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,QAAgB;IAEhB,MAAM,KAAK,GAAyC,EAAE,CAAC;IAEvD,kBAAkB;IAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAClF,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACtF,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACtG,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;IAC9H,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAKxC;IACC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAErD,gDAAgD;IAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAgD,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;IAE9F,qDAAqD;IACrD,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtD,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,aAAa;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/D,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACjE,MAAM,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE/F,0DAA0D;IAC1D,MAAM,iBAAiB,GAA0C,EAAE,CAAC;IAEpE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBAAE,SAAS;YAE9B,yBAAyB;YACzB,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAClE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtE,cAAc,EAAE,CAAC;YACnB,CAAC;YAED,2BAA2B;YAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;oBAC5B,qDAAqD;oBACrD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC;oBAChG,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wBACnC,eAAe,CAAC;4BACd,QAAQ,EAAE;gCACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kHAAkH,EAAE;gCAC/I,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;6BACrC;4BACD,KAAK,EAAE,MAAM;4BACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACnC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;4BACnB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;yBACvB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,yDAAyD;oBACzD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;gBAC5F,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,kFAAkF;gBAClF,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;YAC5F,CAAC;YAED,iCAAiC;YACjC,MAAM,KAAK,GAAG;gBACZ,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACjF,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE;oBACJ,MAAM,EAAE,IAAI,CAAC,WAAW;oBACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,YAAY,EAAE,cAAc;iBAC7B;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YACF,MAAM,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3D,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,WAAW,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,CAAC,MAAM,sCAAsC,CAAC,CAAC;IAC5F,CAAC;IAED,sBAAsB;IACtB,aAAa,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAEvC,GAAG,CAAC,IAAI,CAAC,WAAW,OAAO,oBAAoB,cAAc,kBAAkB,CAAC,CAAC;IACjF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AACnF,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,oBAAoB,CACjC,KAA4C;IAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAChE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAE1B,uCAAuC;IACvC,MAAM,UAAU,GAAG,KAAK;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC;SACjF,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,4HAA4H,CAAC;QACnM,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
@@ -12,30 +12,30 @@ import { isCalendarAvailable, getUpcomingEvents, formatEventsForContext } from "
12
12
  import { readBrainFile } from "../lib/brain-io.js";
13
13
  import { emitCdt } from "../pulse/activation-event.js";
14
14
  import { getInstanceName, getAlertEmailFrom, resolveEnv } from "../instance.js";
15
- const BRAIN_DIR = join(process.cwd(), "brain");
15
+ import { BRAIN_DIR } from "../lib/paths.js";
16
16
  function getDecisionPrompt() {
17
- return `You are ${getInstanceName()}'s goal-loop system. You review the human's goals, todos, and recent progress, then decide ONE action.
18
-
19
- Current time: {{NOW}}
20
- Human: {{HUMAN_NAME}}
21
-
22
- Rules:
23
- - Be conservative. "nothing" is usually the right answer.
24
- - "remind" = push a short nudge to the human's next chat message. Use when a deadline is near, a P0 is stale, or encouragement helps.
25
- - "remind-calendar" = push a calendar-related nudge (e.g. "You have a meeting with X in 30 minutes"). Use when upcoming calendar events are relevant to goals or deserve attention.
26
- - "search" = web search for something that would advance a goal. Use sparingly — only when concrete info is needed.
27
- - "email" = send an email to the human. Use for urgent items that need attention but are NOT immediate emergencies. Always prefer email over call.
28
- - "call" = phone call to the human. ABSOLUTE LAST RESORT. Only if: (1) P0 emergency, (2) deadline is within the next hour, (3) you already tried email or reminder with no response. A phone call is disruptive — almost never correct.
29
- - "log" = record an observation about goal progress to memory. Use when you notice a pattern worth remembering.
30
- - "nothing" = no action needed right now. Default choice.
31
-
32
- Escalation order: nothing → log → remind → email → call. Never skip email to go straight to call.
33
-
34
- Respond with a single JSON object (no markdown fences):
35
- {
36
- "action": "nothing" | "remind" | "remind-calendar" | "search" | "email" | "call" | "log",
37
- "reasoning": "one sentence explaining why",
38
- "message": "text of the reminder/search query/email/call message/log entry (omit for nothing)"
17
+ return `You are ${getInstanceName()}'s goal-loop system. You review the human's goals, todos, and recent progress, then decide ONE action.
18
+
19
+ Current time: {{NOW}}
20
+ Human: {{HUMAN_NAME}}
21
+
22
+ Rules:
23
+ - Be conservative. "nothing" is usually the right answer.
24
+ - "remind" = push a short nudge to the human's next chat message. Use when a deadline is near, a P0 is stale, or encouragement helps.
25
+ - "remind-calendar" = push a calendar-related nudge (e.g. "You have a meeting with X in 30 minutes"). Use when upcoming calendar events are relevant to goals or deserve attention.
26
+ - "search" = web search for something that would advance a goal. Use sparingly — only when concrete info is needed.
27
+ - "email" = send an email to the human. Use for urgent items that need attention but are NOT immediate emergencies. Always prefer email over call.
28
+ - "call" = phone call to the human. ABSOLUTE LAST RESORT. Only if: (1) P0 emergency, (2) deadline is within the next hour, (3) you already tried email or reminder with no response. A phone call is disruptive — almost never correct.
29
+ - "log" = record an observation about goal progress to memory. Use when you notice a pattern worth remembering.
30
+ - "nothing" = no action needed right now. Default choice.
31
+
32
+ Escalation order: nothing → log → remind → email → call. Never skip email to go straight to call.
33
+
34
+ Respond with a single JSON object (no markdown fences):
35
+ {
36
+ "action": "nothing" | "remind" | "remind-calendar" | "search" | "email" | "call" | "log",
37
+ "reasoning": "one sentence explaining why",
38
+ "message": "text of the reminder/search query/email/call message/log entry (omit for nothing)"
39
39
  }`;
40
40
  }
41
41
  /**
@@ -201,14 +201,14 @@ async function executeAction(decision, options) {
201
201
  from: `${getInstanceName()} <${getAlertEmailFrom()}>`,
202
202
  to: [resolveEnv("ALERT_EMAIL_TO") ?? ""].filter(Boolean),
203
203
  subject: `[${getInstanceName()}] ${msg.slice(0, 80)}`,
204
- html: `<div style="font-family:sans-serif;max-width:600px;">
205
- <div style="background:#6d5dfc;color:white;padding:16px;border-radius:8px 8px 0 0;">
206
- <h2 style="margin:0;">Goal Alert</h2>
207
- </div>
208
- <div style="border:1px solid #e5e7eb;border-top:none;padding:16px;border-radius:0 0 8px 8px;">
209
- <p>${msg}</p>
210
- <p style="color:#6b7280;font-size:12px;">— ${getInstanceName()} goal loop at ${now}</p>
211
- </div>
204
+ html: `<div style="font-family:sans-serif;max-width:600px;">
205
+ <div style="background:#6d5dfc;color:white;padding:16px;border-radius:8px 8px 0 0;">
206
+ <h2 style="margin:0;">Goal Alert</h2>
207
+ </div>
208
+ <div style="border:1px solid #e5e7eb;border-top:none;padding:16px;border-radius:0 0 8px 8px;">
209
+ <p>${msg}</p>
210
+ <p style="color:#6b7280;font-size:12px;">— ${getInstanceName()} goal loop at ${now}</p>
211
+ </div>
212
212
  </div>`,
213
213
  }),
214
214
  });
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/goals/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/goals/loop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/goals/notifications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AA4DD,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAQrE;AAED,uEAAuE;AACvE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAYtE;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,gGAAgG;AAChG,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGzD"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/goals/notifications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AA4DD,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAQrE;AAED,uEAAuE;AACvE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAYtE;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,gGAAgG;AAChG,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGzD"}
@@ -7,9 +7,10 @@ import { join } from "node:path";
7
7
  import { randomBytes } from "node:crypto";
8
8
  import { createLogger } from "../utils/logger.js";
9
9
  import { readBrainLinesSync, appendBrainLine, appendBrainLineSync, ensureBrainFileSync, writeBrainLines, } from "../lib/brain-io.js";
10
+ import { BRAIN_DIR } from "../lib/paths.js";
10
11
  const log = createLogger("notifications");
11
12
  // ─── File path ───────────────────────────────────────────────────────────────
12
- const OPS_DIR = join(process.cwd(), "brain", "operations");
13
+ const OPS_DIR = join(BRAIN_DIR, "operations");
13
14
  const NOTIF_FILE = join(OPS_DIR, "notifications.jsonl");
14
15
  const SCHEMA_LINE = JSON.stringify({ _schema: "notifications", _version: "1.0" });
15
16
  // ─── State ───────────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/goals/notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/goals/notifications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAE1C,gFAAgF;AAEhF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;AACxD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAWlF,gFAAgF;AAEhF,MAAM,KAAK,GAAuB,EAAE,CAAC;AACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,gFAAgF;AAEhF,kEAAkE;AAClE,SAAS,OAAO;IACd,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAI,CAAC;QACH,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE7C,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,CAAC,qBAAqB;gBAChD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,GAAuB,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,MAAM,oCAAoC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAuB;IAC3C,IAAI,CAAC;QACH,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,YAA8B;IAC7D,OAAO,EAAE,CAAC;IACV,MAAM,KAAK,GAAqB;QAC9B,GAAG,YAAY;QACf,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACtD,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,YAAY,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,OAAO,EAAE,CAAC;IACV,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,mEAAmE;QACnE,eAAe,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACvD,GAAG,CAAC,IAAI,CAAC,yCAAyC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,uBAAuB;IACrC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,EAAE,CAAC;IACV,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../src/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAUvC;AAED,kEAAkE;AAClE,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7D;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD"}
1
+ {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../src/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAUvC;AAED,kEAAkE;AAClE,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7D;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD"}
package/dist/instance.js CHANGED
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { readFileSync } from "node:fs";
6
6
  import { join } from "node:path";
7
+ import { BRAIN_DIR } from "./lib/paths.js";
7
8
  let instanceName = "Core";
8
9
  /**
9
10
  * Initialize instance name from brain/settings.json.
@@ -12,7 +13,7 @@ let instanceName = "Core";
12
13
  */
13
14
  export function initInstanceName() {
14
15
  try {
15
- const raw = readFileSync(join(process.cwd(), "brain", "settings.json"), "utf-8");
16
+ const raw = readFileSync(join(BRAIN_DIR, "settings.json"), "utf-8");
16
17
  const parsed = JSON.parse(raw);
17
18
  if (typeof parsed.instanceName === "string" && parsed.instanceName.trim()) {
18
19
  instanceName = parsed.instanceName.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"instance.js","sourceRoot":"","sources":["../src/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,IAAI,YAAY,GAAG,MAAM,CAAC;AAE1B;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1E,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,oBAAoB;IAClC,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,GAAG,oBAAoB,EAAE,YAAY,CAAC;AACjF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"instance.js","sourceRoot":"","sources":["../src/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAI,YAAY,GAAG,MAAM,CAAC;AAE1B;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1E,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,oBAAoB;IAClC,OAAO,YAAY,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,GAAG,oBAAoB,EAAE,YAAY,CAAC;AACjF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC"}
package/dist/lib/audit.js CHANGED
@@ -25,7 +25,7 @@ export function getAuditContext() {
25
25
  return auditContextStore.getStore();
26
26
  }
27
27
  // ── File setup ───────────────────────────────────────────────────────────────
28
- const BRAIN_DIR = join(process.cwd(), "brain");
28
+ import { BRAIN_DIR } from "./paths.js";
29
29
  const OPS_DIR = join(BRAIN_DIR, "ops");
30
30
  const AUDIT_FILE = join(OPS_DIR, "audit.jsonl");
31
31
  const SCHEMA_LINE = JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/lib/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/lib/audit.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,8 @@
11
11
  */
12
12
  import { readFile } from "node:fs/promises";
13
13
  import { readFileSync, existsSync } from "node:fs";
14
- import { join, relative, resolve } from "node:path";
15
- const BRAIN_DIR = resolve(process.cwd(), "brain");
14
+ import { join, relative } from "node:path";
15
+ import { BRAIN_DIR } from "./paths.js";
16
16
  const LOCKED_FILE = join(BRAIN_DIR, ".locked");
17
17
  /** Hardcoded minimum locked paths (always locked even without .locked file). */
18
18
  const HARDCODED_LOCKED = [".session-key", "human.json"];
@@ -1 +1 @@
1
- {"version":3,"file":"locked.js","sourceRoot":"","sources":["../../src/lib/locked.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locked.js","sourceRoot":"","sources":["../../src/lib/locked.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Canonical path constants for the Core runtime.
3
+ * All brain path references import from here — no file defines its own BRAIN_DIR.
4
+ *
5
+ * Packages are code only, no data ever. The brain lives outside the package,
6
+ * configured via CORE_BRAIN_DIR (or DASH_BRAIN_DIR) environment variable.
7
+ * Default: process.cwd() + "brain" for backward compatibility.
8
+ */
9
+ /** Absolute path to the brain data directory. */
10
+ export declare const BRAIN_DIR: string;
11
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,iDAAiD;AACjD,eAAO,MAAM,SAAS,EAAE,MAEvB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Canonical path constants for the Core runtime.
3
+ * All brain path references import from here — no file defines its own BRAIN_DIR.
4
+ *
5
+ * Packages are code only, no data ever. The brain lives outside the package,
6
+ * configured via CORE_BRAIN_DIR (or DASH_BRAIN_DIR) environment variable.
7
+ * Default: process.cwd() + "brain" for backward compatibility.
8
+ */
9
+ import { resolve, join } from "node:path";
10
+ import { resolveEnv } from "../instance.js";
11
+ /** Absolute path to the brain data directory. */
12
+ export const BRAIN_DIR = resolve(resolveEnv("BRAIN_DIR") ?? join(process.cwd(), "brain"));
13
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,iDAAiD;AACjD,MAAM,CAAC,MAAM,SAAS,GAAW,OAAO,CACtC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CACxD,CAAC"}
@@ -25,7 +25,7 @@ import { Crystallizer, scoreEntry } from "./crystallizer.js";
25
25
  import { createCredentialStore } from "./credentials/store.js";
26
26
  import { readSessionKey, isDpapiAvailable } from "./lib/dpapi.js";
27
27
  // ── Helpers ──────────────────────────────────────────────────────────────────
28
- const BRAIN_DIR = resolve(process.cwd(), "brain");
28
+ import { BRAIN_DIR } from "./lib/paths.js";
29
29
  const MEMORY_DIR = join(BRAIN_DIR, "memory");
30
30
  /** Log to stderr so stdout stays clean for MCP protocol. */
31
31
  function log(msg) {