@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.
- package/brain-template/agents/cooldowns.json +1 -0
- package/brain-template/agents/locks.json +1 -0
- package/brain-template/agents/module.json +15 -0
- package/brain-template/agents/workflows/examples/conditional-deploy.json +124 -0
- package/brain-template/agents/workflows/examples/parallel-analysis.json +81 -0
- package/brain-template/agents/workflows/examples/research-and-write.json +71 -0
- package/brain-template/agents/workflows/schema.json +236 -0
- package/brain-template/contacts/README.md +22 -0
- package/brain-template/contacts/module.json +19 -0
- package/brain-template/content/CONTENT.md +36 -0
- package/brain-template/content/templates/blog.md +26 -0
- package/brain-template/knowledge/README.md +11 -0
- package/brain-template/library/README.md +29 -0
- package/brain-template/library/module.json +29 -0
- package/brain-template/memory/README.md +17 -0
- package/brain-template/metrics/module.json +7 -0
- package/brain-template/operations/OPERATIONS.md +28 -0
- package/brain-template/ops/module.json +8 -0
- package/brain-template/registry.md +566 -0
- package/brain-template/rest_api-integration.md +522 -0
- package/brain-template/scheduling/README.md +23 -0
- package/brain-template/scheduling/module.json +16 -0
- package/brain-template/settings.json +60 -0
- package/brain-template/skills/debugging.yml +152 -0
- package/brain-template/skills/file-editing.yml +148 -0
- package/brain-template/skills/git-operations.yml +131 -0
- package/brain-template/skills/schema.yml +286 -0
- package/brain-template/skills/testing.yml +170 -0
- package/brain-template/skills/web-scraping.yml +178 -0
- package/brain-template/templates/instances.yaml +70 -0
- package/brain-template/templates/spawn-policy.yaml +36 -0
- package/brain-template/templates/vault.policy.yaml +37 -0
- package/brain-template/training/module.json +14 -0
- package/dictionary.json +38 -0
- package/dist/access/manifest.js +2 -2
- package/dist/access/manifest.js.map +1 -1
- package/dist/activity/log.d.ts.map +1 -1
- package/dist/activity/log.js +2 -1
- package/dist/activity/log.js.map +1 -1
- package/dist/agents/cooldown.d.ts.map +1 -1
- package/dist/agents/cooldown.js +2 -1
- package/dist/agents/cooldown.js.map +1 -1
- package/dist/agents/governance.js +16 -16
- package/dist/agents/governance.js.map +1 -1
- package/dist/agents/heartbeat.d.ts.map +1 -1
- package/dist/agents/heartbeat.js +3 -2
- package/dist/agents/heartbeat.js.map +1 -1
- package/dist/agents/locks.js +2 -2
- package/dist/agents/locks.js.map +1 -1
- package/dist/agents/memory.d.ts.map +1 -1
- package/dist/agents/memory.js +2 -1
- package/dist/agents/memory.js.map +1 -1
- package/dist/agents/reflection.d.ts.map +1 -1
- package/dist/agents/reflection.js +25 -24
- package/dist/agents/reflection.js.map +1 -1
- package/dist/agents/runtime/config.d.ts.map +1 -1
- package/dist/agents/runtime/config.js +2 -1
- package/dist/agents/runtime/config.js.map +1 -1
- package/dist/agents/spawn-policy.js +2 -2
- package/dist/agents/spawn-policy.js.map +1 -1
- package/dist/agents/spawn.d.ts.map +1 -1
- package/dist/agents/spawn.js +54 -53
- package/dist/agents/spawn.js.map +1 -1
- package/dist/agents/store.d.ts.map +1 -1
- package/dist/agents/store.js +20 -20
- package/dist/agents/store.js.map +1 -1
- package/dist/agents/workflow.d.ts.map +1 -1
- package/dist/agents/workflow.js +2 -1
- package/dist/agents/workflow.js.map +1 -1
- package/dist/auth/identity.d.ts.map +1 -1
- package/dist/auth/identity.js +2 -1
- package/dist/auth/identity.js.map +1 -1
- package/dist/browser/sessions.d.ts.map +1 -1
- package/dist/browser/sessions.js +2 -1
- package/dist/browser/sessions.js.map +1 -1
- package/dist/cli.js +274 -53
- package/dist/cli.js.map +1 -1
- package/dist/distiller.js +2 -2
- package/dist/distiller.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/goals/loop.js +31 -31
- package/dist/goals/loop.js.map +1 -1
- package/dist/goals/notifications.d.ts.map +1 -1
- package/dist/goals/notifications.js +2 -1
- package/dist/goals/notifications.js.map +1 -1
- package/dist/instance.d.ts.map +1 -1
- package/dist/instance.js +2 -1
- package/dist/instance.js.map +1 -1
- package/dist/lib/audit.js +1 -1
- package/dist/lib/audit.js.map +1 -1
- package/dist/lib/locked.js +2 -2
- package/dist/lib/locked.js.map +1 -1
- package/dist/lib/paths.d.ts +11 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +13 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/mcp-server.js +1 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/memory/visual.d.ts.map +1 -1
- package/dist/memory/visual.js +2 -1
- package/dist/memory/visual.js.map +1 -1
- package/dist/metrics/system.d.ts.map +1 -1
- package/dist/metrics/system.js +2 -1
- package/dist/metrics/system.js.map +1 -1
- package/dist/nerve/push.js +2 -2
- package/dist/nerve/push.js.map +1 -1
- package/dist/nerve/state.d.ts +1 -1
- package/dist/nerve/state.d.ts.map +1 -1
- package/dist/nerve/state.js +3 -3
- package/dist/nerve/state.js.map +1 -1
- package/dist/openloop/scanner.d.ts.map +1 -1
- package/dist/openloop/scanner.js +11 -10
- package/dist/openloop/scanner.js.map +1 -1
- package/dist/openloop/store.d.ts.map +1 -1
- package/dist/openloop/store.js +3 -2
- package/dist/openloop/store.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/pulse/activation-log.js +1 -2
- package/dist/pulse/activation-log.js.map +1 -1
- package/dist/pulse/pressure.d.ts.map +1 -1
- package/dist/pulse/pressure.js +2 -1
- package/dist/pulse/pressure.js.map +1 -1
- package/dist/queue/grooming.d.ts.map +1 -1
- package/dist/queue/grooming.js +2 -2
- package/dist/queue/grooming.js.map +1 -1
- package/dist/resend/inbox.d.ts.map +1 -1
- package/dist/resend/inbox.js +2 -1
- package/dist/resend/inbox.js.map +1 -1
- package/dist/search/brain-docs.js +1 -2
- package/dist/search/brain-docs.js.map +1 -1
- package/dist/server.d.ts +3 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +221 -75
- package/dist/server.js.map +1 -1
- package/dist/services/backup.js +1 -1
- package/dist/services/backup.js.map +1 -1
- package/dist/services/morningBriefing.d.ts.map +1 -1
- package/dist/services/morningBriefing.js +46 -45
- package/dist/services/morningBriefing.js.map +1 -1
- package/dist/services/traceInsights.js +31 -31
- package/dist/services/traceInsights.js.map +1 -1
- package/dist/services/training.js +1 -1
- package/dist/services/training.js.map +1 -1
- package/dist/services/whatsapp.js +1 -1
- package/dist/services/whatsapp.js.map +1 -1
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +2 -1
- package/dist/sessions/store.js.map +1 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +2 -1
- package/dist/settings.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/dist/vault/personal.d.ts.map +1 -1
- package/dist/vault/personal.js +2 -1
- package/dist/vault/personal.js.map +1 -1
- package/dist/vault/policy.js +2 -2
- package/dist/vault/policy.js.map +1 -1
- package/dist/vault/store.d.ts.map +1 -1
- package/dist/vault/store.js +2 -1
- package/dist/vault/store.js.map +1 -1
- package/dist/vault/transfer.d.ts.map +1 -1
- package/dist/vault/transfer.js +4 -3
- package/dist/vault/transfer.js.map +1 -1
- package/package.json +5 -2
- 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":"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"}
|
package/dist/goals/loop.js
CHANGED
|
@@ -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
|
-
|
|
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
|
});
|
package/dist/goals/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/goals/loop.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEhF,
|
|
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;
|
|
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(
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/goals/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/instance.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../src/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
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(
|
|
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();
|
package/dist/instance.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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({
|
package/dist/lib/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/lib/audit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAS,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAW,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AAyBlC,gFAAgF;AAEhF,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAgB,CAAC;AAEhE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAI,GAAiB,EAAE,EAAW;IACnE,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,eAAe;IAC7B,OAAO,iBAAiB,CAAC,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED,gFAAgF;AAEhF,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/lib/audit.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/locked.js
CHANGED
|
@@ -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
|
|
15
|
-
|
|
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"];
|
package/dist/lib/locked.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locked.js","sourceRoot":"","sources":["../../src/lib/locked.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,QAAQ,
|
|
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"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -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
|
-
|
|
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) {
|