@openclawbrain/openclaw 0.2.2 → 0.3.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/LICENSE +201 -0
- package/README.md +10 -0
- package/dist/extension/index.d.ts +1 -0
- package/dist/extension/index.js +73 -0
- package/dist/extension/index.js.map +1 -0
- package/dist/extension/runtime-guard.d.ts +61 -0
- package/dist/extension/runtime-guard.js +230 -0
- package/dist/extension/runtime-guard.js.map +1 -0
- package/dist/src/cli.d.ts +66 -4
- package/dist/src/cli.js +1845 -241
- package/dist/src/cli.js.map +1 -1
- package/dist/src/daemon.d.ts +7 -4
- package/dist/src/daemon.js +311 -28
- package/dist/src/daemon.js.map +1 -1
- package/dist/src/index.d.ts +213 -4
- package/dist/src/index.js +1151 -157
- package/dist/src/index.js.map +1 -1
- package/dist/src/learning-spine.d.ts +2 -1
- package/dist/src/learning-spine.js +8 -0
- package/dist/src/learning-spine.js.map +1 -1
- package/dist/src/local-session-passive-learning.d.ts +1 -0
- package/dist/src/local-session-passive-learning.js +97 -7
- package/dist/src/local-session-passive-learning.js.map +1 -1
- package/dist/src/ollama-client.d.ts +46 -0
- package/dist/src/ollama-client.js +231 -0
- package/dist/src/ollama-client.js.map +1 -0
- package/dist/src/provider-config.d.ts +28 -0
- package/dist/src/provider-config.js +150 -0
- package/dist/src/provider-config.js.map +1 -0
- package/dist/src/resolve-activation-root.d.ts +3 -3
- package/dist/src/resolve-activation-root.js +105 -35
- package/dist/src/resolve-activation-root.js.map +1 -1
- package/dist/src/session-store.d.ts +18 -0
- package/dist/src/session-store.js +40 -0
- package/dist/src/session-store.js.map +1 -1
- package/dist/src/session-tail.d.ts +6 -3
- package/dist/src/session-tail.js +35 -4
- package/dist/src/session-tail.js.map +1 -1
- package/dist/src/shadow-extension-proof.d.ts +40 -0
- package/dist/src/shadow-extension-proof.js +214 -0
- package/dist/src/shadow-extension-proof.js.map +1 -0
- package/dist/src/teacher-labeler.d.ts +50 -0
- package/dist/src/teacher-labeler.js +424 -0
- package/dist/src/teacher-labeler.js.map +1 -0
- package/extension/index.ts +74 -35
- package/extension/runtime-guard.ts +353 -0
- package/package.json +13 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama-client.js","sourceRoot":"","sources":["../../src/ollama-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare const ALLOWED_TEACHER_PROVIDERS: readonly ["heuristic", "ollama", "off"];
|
|
2
|
+
declare const ALLOWED_EMBEDDER_PROVIDERS: readonly ["keywords", "ollama", "off"];
|
|
3
|
+
export type OpenClawBrainProviderConfigEnv = Readonly<Record<string, string | undefined>>;
|
|
4
|
+
export type OpenClawBrainTeacherProvider = (typeof ALLOWED_TEACHER_PROVIDERS)[number];
|
|
5
|
+
export type OpenClawBrainEmbedderProvider = (typeof ALLOWED_EMBEDDER_PROVIDERS)[number];
|
|
6
|
+
export type OpenClawBrainProviderResolvedNote = string;
|
|
7
|
+
export interface OpenClawBrainProviderSelection<TProvider extends string> {
|
|
8
|
+
provider: TProvider;
|
|
9
|
+
model: string;
|
|
10
|
+
}
|
|
11
|
+
export interface OpenClawBrainTeacherConfig extends OpenClawBrainProviderSelection<OpenClawBrainTeacherProvider> {
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
maxPromptChars?: number;
|
|
14
|
+
maxResponseChars?: number;
|
|
15
|
+
maxOutputTokens?: number;
|
|
16
|
+
maxArtifactsPerExport?: number;
|
|
17
|
+
maxInteractionsPerExport?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface OpenClawBrainProviderConfig {
|
|
20
|
+
teacherBaseUrl: string;
|
|
21
|
+
embedderBaseUrl: string;
|
|
22
|
+
teacher: OpenClawBrainTeacherConfig;
|
|
23
|
+
embedder: OpenClawBrainProviderSelection<OpenClawBrainEmbedderProvider>;
|
|
24
|
+
warnings: string[];
|
|
25
|
+
}
|
|
26
|
+
export declare function resolveOpenClawBrainProviderConfigNotes(config: OpenClawBrainProviderConfig): OpenClawBrainProviderResolvedNote[];
|
|
27
|
+
export declare function readOpenClawBrainProviderConfig(env?: OpenClawBrainProviderConfigEnv): OpenClawBrainProviderConfig;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
const OPENCLAWBRAIN_TEACHER_BASE_URL_ENV = "OPENCLAWBRAIN_TEACHER_BASE_URL";
|
|
3
|
+
const OPENCLAWBRAIN_EMBEDDER_BASE_URL_ENV = "OPENCLAWBRAIN_EMBEDDER_BASE_URL";
|
|
4
|
+
const OPENCLAWBRAIN_TEACHER_PROVIDER_ENV = "OPENCLAWBRAIN_TEACHER_PROVIDER";
|
|
5
|
+
const OPENCLAWBRAIN_TEACHER_MODEL_ENV = "OPENCLAWBRAIN_TEACHER_MODEL";
|
|
6
|
+
const OPENCLAWBRAIN_TEACHER_TIMEOUT_MS_ENV = "OPENCLAWBRAIN_TEACHER_TIMEOUT_MS";
|
|
7
|
+
const OPENCLAWBRAIN_TEACHER_MAX_PROMPT_CHARS_ENV = "OPENCLAWBRAIN_TEACHER_MAX_PROMPT_CHARS";
|
|
8
|
+
const OPENCLAWBRAIN_TEACHER_MAX_RESPONSE_CHARS_ENV = "OPENCLAWBRAIN_TEACHER_MAX_RESPONSE_CHARS";
|
|
9
|
+
const OPENCLAWBRAIN_TEACHER_MAX_OUTPUT_TOKENS_ENV = "OPENCLAWBRAIN_TEACHER_MAX_OUTPUT_TOKENS";
|
|
10
|
+
const OPENCLAWBRAIN_TEACHER_MAX_ARTIFACTS_ENV = "OPENCLAWBRAIN_TEACHER_MAX_ARTIFACTS";
|
|
11
|
+
const OPENCLAWBRAIN_TEACHER_MAX_INTERACTIONS_ENV = "OPENCLAWBRAIN_TEACHER_MAX_INTERACTIONS";
|
|
12
|
+
const OPENCLAWBRAIN_EMBEDDER_PROVIDER_ENV = "OPENCLAWBRAIN_EMBEDDER_PROVIDER";
|
|
13
|
+
const OPENCLAWBRAIN_EMBEDDER_MODEL_ENV = "OPENCLAWBRAIN_EMBEDDER_MODEL";
|
|
14
|
+
const DEFAULT_BASE_URL = "http://127.0.0.1:11434";
|
|
15
|
+
const DEFAULT_TEACHER_PROVIDER = "heuristic";
|
|
16
|
+
const DEFAULT_TEACHER_MODEL = "qwen3.5:9b";
|
|
17
|
+
const DEFAULT_EMBEDDER_PROVIDER = "keywords";
|
|
18
|
+
const DEFAULT_EMBEDDER_MODEL = "bge-large";
|
|
19
|
+
const ALLOWED_TEACHER_PROVIDERS = ["heuristic", "ollama", "off"];
|
|
20
|
+
const ALLOWED_EMBEDDER_PROVIDERS = ["keywords", "ollama", "off"];
|
|
21
|
+
export function resolveOpenClawBrainProviderConfigNotes(config) {
|
|
22
|
+
const notes = [
|
|
23
|
+
`teacher_base_url=${config.teacherBaseUrl}`,
|
|
24
|
+
`embedder_base_url=${config.embedderBaseUrl}`,
|
|
25
|
+
`teacher_provider=${config.teacher.provider}`,
|
|
26
|
+
`teacher_model=${config.teacher.model}`,
|
|
27
|
+
`embedder_provider=${config.embedder.provider}`,
|
|
28
|
+
`embedder_model=${config.embedder.model}`
|
|
29
|
+
];
|
|
30
|
+
const optionalTeacherNotes = [
|
|
31
|
+
["teacher_timeout_ms", config.teacher.timeoutMs],
|
|
32
|
+
["teacher_max_prompt_chars", config.teacher.maxPromptChars],
|
|
33
|
+
["teacher_max_response_chars", config.teacher.maxResponseChars],
|
|
34
|
+
["teacher_max_output_tokens", config.teacher.maxOutputTokens],
|
|
35
|
+
["teacher_max_artifacts", config.teacher.maxArtifactsPerExport],
|
|
36
|
+
["teacher_max_interactions", config.teacher.maxInteractionsPerExport]
|
|
37
|
+
];
|
|
38
|
+
for (const [name, value] of optionalTeacherNotes) {
|
|
39
|
+
if (value !== undefined) {
|
|
40
|
+
notes.push(`${name}=${value}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return notes;
|
|
44
|
+
}
|
|
45
|
+
export function readOpenClawBrainProviderConfig(env = process.env) {
|
|
46
|
+
const warnings = [];
|
|
47
|
+
return {
|
|
48
|
+
teacherBaseUrl: readBaseUrlEnv(env, OPENCLAWBRAIN_TEACHER_BASE_URL_ENV, warnings),
|
|
49
|
+
embedderBaseUrl: readBaseUrlEnv(env, OPENCLAWBRAIN_EMBEDDER_BASE_URL_ENV, warnings),
|
|
50
|
+
teacher: {
|
|
51
|
+
provider: readProviderEnv(env, OPENCLAWBRAIN_TEACHER_PROVIDER_ENV, ALLOWED_TEACHER_PROVIDERS, DEFAULT_TEACHER_PROVIDER, warnings),
|
|
52
|
+
model: readModelEnv(env, OPENCLAWBRAIN_TEACHER_MODEL_ENV, DEFAULT_TEACHER_MODEL, warnings),
|
|
53
|
+
...readTeacherBudgetEnv(env, warnings)
|
|
54
|
+
},
|
|
55
|
+
embedder: {
|
|
56
|
+
provider: readProviderEnv(env, OPENCLAWBRAIN_EMBEDDER_PROVIDER_ENV, ALLOWED_EMBEDDER_PROVIDERS, DEFAULT_EMBEDDER_PROVIDER, warnings),
|
|
57
|
+
model: readModelEnv(env, OPENCLAWBRAIN_EMBEDDER_MODEL_ENV, DEFAULT_EMBEDDER_MODEL, warnings)
|
|
58
|
+
},
|
|
59
|
+
warnings
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function readBaseUrlEnv(env, name, warnings) {
|
|
63
|
+
const raw = env[name];
|
|
64
|
+
if (raw === undefined) {
|
|
65
|
+
return DEFAULT_BASE_URL;
|
|
66
|
+
}
|
|
67
|
+
const value = normalizeOptionalEnvString(raw);
|
|
68
|
+
if (value === undefined) {
|
|
69
|
+
warnings.push(`${name} must be a valid http(s) URL when set; using default ${DEFAULT_BASE_URL}`);
|
|
70
|
+
return DEFAULT_BASE_URL;
|
|
71
|
+
}
|
|
72
|
+
let parsed;
|
|
73
|
+
try {
|
|
74
|
+
parsed = new URL(value);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
warnings.push(`${name} must be a valid http(s) URL when set; using default ${DEFAULT_BASE_URL}`);
|
|
78
|
+
return DEFAULT_BASE_URL;
|
|
79
|
+
}
|
|
80
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
81
|
+
warnings.push(`${name} must use http or https when set; using default ${DEFAULT_BASE_URL}`);
|
|
82
|
+
return DEFAULT_BASE_URL;
|
|
83
|
+
}
|
|
84
|
+
return parsed.toString().replace(/\/+$/, "");
|
|
85
|
+
}
|
|
86
|
+
function readProviderEnv(env, name, allowedValues, fallback, warnings) {
|
|
87
|
+
const raw = env[name];
|
|
88
|
+
if (raw === undefined) {
|
|
89
|
+
return fallback;
|
|
90
|
+
}
|
|
91
|
+
const value = normalizeOptionalEnvString(raw);
|
|
92
|
+
if (value === undefined) {
|
|
93
|
+
warnings.push(`${name} must be one of ${allowedValues.join("|")}; using default ${fallback}`);
|
|
94
|
+
return fallback;
|
|
95
|
+
}
|
|
96
|
+
if (allowedValues.includes(value)) {
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
warnings.push(`${name} must be one of ${allowedValues.join("|")}; using default ${fallback}`);
|
|
100
|
+
return fallback;
|
|
101
|
+
}
|
|
102
|
+
function readModelEnv(env, name, fallback, warnings) {
|
|
103
|
+
const raw = env[name];
|
|
104
|
+
if (raw === undefined) {
|
|
105
|
+
return fallback;
|
|
106
|
+
}
|
|
107
|
+
const value = normalizeOptionalEnvString(raw);
|
|
108
|
+
if (value !== undefined) {
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
warnings.push(`${name} must be a non-empty string when set; using default ${fallback}`);
|
|
112
|
+
return fallback;
|
|
113
|
+
}
|
|
114
|
+
function readTeacherBudgetEnv(env, warnings) {
|
|
115
|
+
return {
|
|
116
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_TIMEOUT_MS_ENV, "timeoutMs", warnings),
|
|
117
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_PROMPT_CHARS_ENV, "maxPromptChars", warnings),
|
|
118
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_RESPONSE_CHARS_ENV, "maxResponseChars", warnings),
|
|
119
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_OUTPUT_TOKENS_ENV, "maxOutputTokens", warnings),
|
|
120
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_ARTIFACTS_ENV, "maxArtifactsPerExport", warnings),
|
|
121
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_INTERACTIONS_ENV, "maxInteractionsPerExport", warnings)
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function readOptionalPositiveIntegerEnv(env, name, propertyName, warnings) {
|
|
125
|
+
const raw = env[name];
|
|
126
|
+
if (raw === undefined) {
|
|
127
|
+
return {};
|
|
128
|
+
}
|
|
129
|
+
const value = normalizeOptionalEnvString(raw);
|
|
130
|
+
if (value === undefined || /^[0-9]+$/u.test(value) === false) {
|
|
131
|
+
warnings.push(`${name} must be a positive integer when set; leaving it unset`);
|
|
132
|
+
return {};
|
|
133
|
+
}
|
|
134
|
+
const parsed = Number.parseInt(value, 10);
|
|
135
|
+
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
136
|
+
warnings.push(`${name} must be a positive integer when set; leaving it unset`);
|
|
137
|
+
return {};
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
[propertyName]: parsed
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function normalizeOptionalEnvString(value) {
|
|
144
|
+
const normalized = value?.trim();
|
|
145
|
+
if (normalized === undefined || normalized.length === 0) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
return normalized;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=provider-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/provider-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Resolution order:
|
|
5
5
|
* 1. Explicit `--activation-root <path>` (passed as `explicit` arg)
|
|
6
6
|
* 2. A selected OpenClaw profile home (`openclawHome` option or OPENCLAW_HOME env)
|
|
7
|
-
* 3.
|
|
8
|
-
* 4.
|
|
7
|
+
* 3. Unpinned host auto-detect from ~/.openclawbrain/activation and installed profile hooks
|
|
8
|
+
* 4. Refuse clearly if host-local signals disagree or are unresolved
|
|
9
9
|
* 5. Fail with a clear error message
|
|
10
10
|
*
|
|
11
11
|
* Exported for use by CLI commands and other agents' code.
|
|
@@ -15,7 +15,7 @@ export interface ResolveActivationRootOptions {
|
|
|
15
15
|
explicit?: string | null;
|
|
16
16
|
/** Specific OpenClaw profile home to inspect for the installed extension. */
|
|
17
17
|
openclawHome?: string | null;
|
|
18
|
-
/** If true, return
|
|
18
|
+
/** If true, return "" instead of throwing when nothing is found or auto-detect is ambiguous. */
|
|
19
19
|
quiet?: boolean;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Resolution order:
|
|
5
5
|
* 1. Explicit `--activation-root <path>` (passed as `explicit` arg)
|
|
6
6
|
* 2. A selected OpenClaw profile home (`openclawHome` option or OPENCLAW_HOME env)
|
|
7
|
-
* 3.
|
|
8
|
-
* 4.
|
|
7
|
+
* 3. Unpinned host auto-detect from ~/.openclawbrain/activation and installed profile hooks
|
|
8
|
+
* 4. Refuse clearly if host-local signals disagree or are unresolved
|
|
9
9
|
* 5. Fail with a clear error message
|
|
10
10
|
*
|
|
11
11
|
* Exported for use by CLI commands and other agents' code.
|
|
@@ -22,28 +22,49 @@ function normalizeOptionalString(value) {
|
|
|
22
22
|
const trimmed = value.trim();
|
|
23
23
|
return trimmed.length > 0 ? trimmed : null;
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
function buildInstallGuidance() {
|
|
26
|
+
return "Run: openclawbrain install --openclaw-home <path>";
|
|
27
|
+
}
|
|
28
|
+
function buildProfilePinningGuidance() {
|
|
29
|
+
return "Pass --activation-root <path> to pin the brain directly, or --openclaw-home <path> (or OPENCLAW_HOME) to select one installed OpenClaw profile.";
|
|
30
|
+
}
|
|
30
31
|
function extractActivationRootFromExtension(filePath) {
|
|
31
32
|
try {
|
|
32
33
|
const content = readFileSync(filePath, "utf8");
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (match
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
const match = content.match(/const\s+ACTIVATION_ROOT\s*=\s*["'`]([^"'`]+)["'`]/) ??
|
|
35
|
+
content.match(/activationRoot:\s*["'`]([^"'`]+)["'`]/);
|
|
36
|
+
if (!match || !match[1]) {
|
|
37
|
+
return {
|
|
38
|
+
activationRoot: null,
|
|
39
|
+
diagnostic: `installed extension ${filePath} does not declare a hardcoded activation root`
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const candidate = match[1].trim();
|
|
43
|
+
if (candidate === "__ACTIVATION_ROOT__" ||
|
|
44
|
+
candidate === "__ACTIVATION_" + "ROOT__") {
|
|
45
|
+
return {
|
|
46
|
+
activationRoot: null,
|
|
47
|
+
diagnostic: `installed extension ${filePath} still contains the ACTIVATION_ROOT placeholder`
|
|
48
|
+
};
|
|
41
49
|
}
|
|
50
|
+
const resolvedCandidate = path.resolve(candidate);
|
|
51
|
+
if (!existsSync(resolvedCandidate)) {
|
|
52
|
+
return {
|
|
53
|
+
activationRoot: null,
|
|
54
|
+
diagnostic: `installed extension ${filePath} points at missing activation root ${resolvedCandidate}`
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
activationRoot: resolvedCandidate,
|
|
59
|
+
diagnostic: null
|
|
60
|
+
};
|
|
42
61
|
}
|
|
43
62
|
catch {
|
|
44
|
-
|
|
63
|
+
return {
|
|
64
|
+
activationRoot: null,
|
|
65
|
+
diagnostic: `installed extension ${filePath} exists but could not be read`
|
|
66
|
+
};
|
|
45
67
|
}
|
|
46
|
-
return null;
|
|
47
68
|
}
|
|
48
69
|
function readActivationRootFromOpenClawHome(openclawHome) {
|
|
49
70
|
const extensionIndex = path.join(path.resolve(openclawHome), "extensions", "openclawbrain", "index.ts");
|
|
@@ -53,29 +74,56 @@ function readActivationRootFromOpenClawHome(openclawHome) {
|
|
|
53
74
|
return extractActivationRootFromExtension(extensionIndex);
|
|
54
75
|
}
|
|
55
76
|
/**
|
|
56
|
-
* Scan ~/.openclaw-* directories for
|
|
57
|
-
*
|
|
77
|
+
* Scan ~/.openclaw-* directories for installed profile hooks and record
|
|
78
|
+
* either the pinned activation root or the reason the hook is unresolved.
|
|
58
79
|
*/
|
|
59
|
-
function
|
|
80
|
+
function scanInstalledProfileActivationRoots() {
|
|
60
81
|
const homeDir = path.resolve(getHomeDir());
|
|
61
82
|
let entries;
|
|
62
83
|
try {
|
|
63
84
|
entries = readdirSync(homeDir);
|
|
64
85
|
}
|
|
65
86
|
catch {
|
|
66
|
-
return
|
|
87
|
+
return [];
|
|
67
88
|
}
|
|
89
|
+
const probes = [];
|
|
68
90
|
for (const entry of entries) {
|
|
69
91
|
if (!entry.startsWith(".openclaw-"))
|
|
70
92
|
continue;
|
|
71
|
-
const
|
|
93
|
+
const openclawHome = path.join(homeDir, entry);
|
|
94
|
+
const extensionIndex = path.join(openclawHome, "extensions", "openclawbrain", "index.ts");
|
|
72
95
|
if (!existsSync(extensionIndex))
|
|
73
96
|
continue;
|
|
74
97
|
const found = extractActivationRootFromExtension(extensionIndex);
|
|
75
|
-
|
|
76
|
-
|
|
98
|
+
probes.push({
|
|
99
|
+
openclawHome: path.resolve(openclawHome),
|
|
100
|
+
extensionIndex,
|
|
101
|
+
activationRoot: found.activationRoot,
|
|
102
|
+
diagnostic: found.diagnostic
|
|
103
|
+
});
|
|
77
104
|
}
|
|
78
|
-
return
|
|
105
|
+
return probes.sort((left, right) => left.openclawHome.localeCompare(right.openclawHome));
|
|
106
|
+
}
|
|
107
|
+
function buildUnpinnedResolutionRefusal(input) {
|
|
108
|
+
const details = [];
|
|
109
|
+
const { defaultActivationRoot, installedProfileProbes } = input;
|
|
110
|
+
if (defaultActivationRoot !== null) {
|
|
111
|
+
details.push(` - default HOME root -> ${defaultActivationRoot}`);
|
|
112
|
+
}
|
|
113
|
+
for (const probe of installedProfileProbes) {
|
|
114
|
+
if (probe.activationRoot !== null) {
|
|
115
|
+
details.push(` - ${probe.openclawHome} -> ${probe.activationRoot}`);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
details.push(` - ${probe.openclawHome} -> unresolved: ${probe.diagnostic ?? `installed extension ${probe.extensionIndex} is unresolved`}`);
|
|
119
|
+
}
|
|
120
|
+
return [
|
|
121
|
+
"Refusing to auto-select an activation root from unpinned host state.",
|
|
122
|
+
"Detected targets:",
|
|
123
|
+
...details,
|
|
124
|
+
buildProfilePinningGuidance(),
|
|
125
|
+
buildInstallGuidance()
|
|
126
|
+
].join("\n");
|
|
79
127
|
}
|
|
80
128
|
/**
|
|
81
129
|
* Resolve the activation root path through the detection chain.
|
|
@@ -93,28 +141,50 @@ export function resolveActivationRoot(options = {}) {
|
|
|
93
141
|
// 2. A selected OpenClaw profile home is authoritative on many-profile hosts.
|
|
94
142
|
if (selectedOpenClawHome !== null) {
|
|
95
143
|
const selectedActivationRoot = readActivationRootFromOpenClawHome(selectedOpenClawHome);
|
|
96
|
-
|
|
97
|
-
|
|
144
|
+
const selectedActivationRootPath = selectedActivationRoot?.activationRoot ?? null;
|
|
145
|
+
if (selectedActivationRootPath !== null) {
|
|
146
|
+
return path.resolve(selectedActivationRootPath);
|
|
98
147
|
}
|
|
99
148
|
if (quiet) {
|
|
100
149
|
return "";
|
|
101
150
|
}
|
|
102
|
-
|
|
151
|
+
const selectedActivationRootDiagnostic = selectedActivationRoot?.diagnostic ?? null;
|
|
152
|
+
if (selectedActivationRootDiagnostic !== null) {
|
|
153
|
+
throw new Error(`OpenClawBrain extension found for OpenClaw profile home ${path.resolve(selectedOpenClawHome)}, but activation root is unresolved: ${selectedActivationRootDiagnostic}. ${buildInstallGuidance()}`);
|
|
154
|
+
}
|
|
155
|
+
throw new Error(`No brain found for OpenClaw profile home ${path.resolve(selectedOpenClawHome)}. ${buildInstallGuidance()}`);
|
|
103
156
|
}
|
|
104
157
|
// 3. Default location: ~/.openclawbrain/activation
|
|
105
158
|
const defaultPath = path.join(getHomeDir(), ".openclawbrain", "activation");
|
|
106
|
-
|
|
107
|
-
|
|
159
|
+
const resolvedDefaultPath = existsSync(defaultPath) ? path.resolve(defaultPath) : null;
|
|
160
|
+
// 4. Scan installed profile hooks under HOME
|
|
161
|
+
const installedProfileProbes = scanInstalledProfileActivationRoots();
|
|
162
|
+
const resolvedCandidateRoots = new Set();
|
|
163
|
+
const hasUnresolvedInstalledProfiles = installedProfileProbes.some((probe) => probe.activationRoot === null);
|
|
164
|
+
if (resolvedDefaultPath !== null) {
|
|
165
|
+
resolvedCandidateRoots.add(resolvedDefaultPath);
|
|
166
|
+
}
|
|
167
|
+
for (const probe of installedProfileProbes) {
|
|
168
|
+
if (probe.activationRoot !== null) {
|
|
169
|
+
resolvedCandidateRoots.add(path.resolve(probe.activationRoot));
|
|
170
|
+
}
|
|
108
171
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
172
|
+
if (resolvedCandidateRoots.size === 1 && !hasUnresolvedInstalledProfiles) {
|
|
173
|
+
return [...resolvedCandidateRoots][0];
|
|
174
|
+
}
|
|
175
|
+
if ((resolvedCandidateRoots.size > 1 || hasUnresolvedInstalledProfiles) && installedProfileProbes.length > 0) {
|
|
176
|
+
if (quiet) {
|
|
177
|
+
return "";
|
|
178
|
+
}
|
|
179
|
+
throw new Error(buildUnpinnedResolutionRefusal({
|
|
180
|
+
defaultActivationRoot: resolvedDefaultPath,
|
|
181
|
+
installedProfileProbes
|
|
182
|
+
}));
|
|
113
183
|
}
|
|
114
184
|
// 5. Nothing found
|
|
115
185
|
if (quiet) {
|
|
116
186
|
return "";
|
|
117
187
|
}
|
|
118
|
-
throw new Error(
|
|
188
|
+
throw new Error(`No brain found. ${buildInstallGuidance()}`);
|
|
119
189
|
}
|
|
120
190
|
//# sourceMappingURL=resolve-activation-root.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-activation-root.js","sourceRoot":"","sources":["../../src/resolve-activation-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;AAC5D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAgC;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"resolve-activation-root.js","sourceRoot":"","sources":["../../src/resolve-activation-root.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,6 +141,15 @@ export interface OpenClawMainSessionStoreV1 {
|
|
|
141
141
|
sessionsDir: string;
|
|
142
142
|
indexPath: string;
|
|
143
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Generic session store that can represent any agent (main, subagent, ACP, etc.).
|
|
146
|
+
*/
|
|
147
|
+
export interface OpenClawSessionStoreV1 {
|
|
148
|
+
profileRoot: string;
|
|
149
|
+
agentId: string;
|
|
150
|
+
sessionsDir: string;
|
|
151
|
+
indexPath: string;
|
|
152
|
+
}
|
|
144
153
|
export declare function loadOpenClawSessionIndex(indexFilePath: string): OpenClawSessionIndex;
|
|
145
154
|
export declare function readOpenClawSessionFile(sessionFilePath: string): OpenClawSessionRecord[];
|
|
146
155
|
export declare function readOpenClawAcpStreamFile(streamFilePath: string): OpenClawAcpStreamRecord[];
|
|
@@ -148,3 +157,12 @@ export declare function discoverOpenClawMainSessionStores(options?: {
|
|
|
148
157
|
homeDir?: string;
|
|
149
158
|
profileRoots?: readonly string[];
|
|
150
159
|
}): OpenClawMainSessionStoreV1[];
|
|
160
|
+
/**
|
|
161
|
+
* Discover session stores for ALL agents under each profile root.
|
|
162
|
+
* Scans every directory under `agents/` (not just `agents/main/`),
|
|
163
|
+
* finding subagent, ACP, and any other agent session stores.
|
|
164
|
+
*/
|
|
165
|
+
export declare function discoverOpenClawSessionStores(options?: {
|
|
166
|
+
homeDir?: string;
|
|
167
|
+
profileRoots?: readonly string[];
|
|
168
|
+
}): OpenClawSessionStoreV1[];
|
|
@@ -31,6 +31,46 @@ export function discoverOpenClawMainSessionStores(options = {}) {
|
|
|
31
31
|
.filter((store) => store !== null)
|
|
32
32
|
.sort((left, right) => left.indexPath.localeCompare(right.indexPath));
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Discover session stores for ALL agents under each profile root.
|
|
36
|
+
* Scans every directory under `agents/` (not just `agents/main/`),
|
|
37
|
+
* finding subagent, ACP, and any other agent session stores.
|
|
38
|
+
*/
|
|
39
|
+
export function discoverOpenClawSessionStores(options = {}) {
|
|
40
|
+
const candidateRoots = options.profileRoots !== undefined
|
|
41
|
+
? [...new Set(options.profileRoots.map((root) => path.resolve(root)))]
|
|
42
|
+
: discoverOpenClawProfileRoots(options.homeDir);
|
|
43
|
+
const stores = [];
|
|
44
|
+
for (const profileRoot of candidateRoots) {
|
|
45
|
+
const agentsDir = path.join(profileRoot, "agents");
|
|
46
|
+
if (!existsSync(agentsDir)) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
let agentDirs;
|
|
50
|
+
try {
|
|
51
|
+
agentDirs = readdirSync(agentsDir, { withFileTypes: true })
|
|
52
|
+
.filter((entry) => entry.isDirectory())
|
|
53
|
+
.map((entry) => entry.name);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
for (const agentName of agentDirs) {
|
|
59
|
+
const sessionsDir = path.join(agentsDir, agentName, "sessions");
|
|
60
|
+
const indexPath = path.join(sessionsDir, "sessions.json");
|
|
61
|
+
if (!existsSync(indexPath)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
stores.push({
|
|
65
|
+
profileRoot,
|
|
66
|
+
agentId: agentName,
|
|
67
|
+
sessionsDir,
|
|
68
|
+
indexPath
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return stores.sort((left, right) => left.indexPath.localeCompare(right.indexPath));
|
|
73
|
+
}
|
|
34
74
|
function discoverOpenClawProfileRoots(homeDir) {
|
|
35
75
|
const rootDir = path.resolve(homeDir ?? homedir());
|
|
36
76
|
if (!existsSync(rootDir)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type OpenClawSessionStoreV1 } from "./session-store.js";
|
|
2
2
|
import type { ScannedEventExportInputV1 } from "./index.js";
|
|
3
3
|
export type OpenClawLocalSessionTailNoopReasonV1 = "seeded_existing_sessions" | "no_local_session_stores" | "no_session_changes";
|
|
4
4
|
export type OpenClawLocalSessionTailChangeKindV1 = "new_session" | "appended_records" | "metadata_only" | "session_reset" | "missing_session_path" | "missing_session_file";
|
|
@@ -12,7 +12,7 @@ export interface OpenClawLocalSessionTailCursorV1 {
|
|
|
12
12
|
bridgedEventCount: number;
|
|
13
13
|
}
|
|
14
14
|
export interface OpenClawLocalSessionTailChangeV1 {
|
|
15
|
-
source:
|
|
15
|
+
source: OpenClawSessionStoreV1;
|
|
16
16
|
sessionKey: string;
|
|
17
17
|
sessionId: string;
|
|
18
18
|
sessionFile: string | null;
|
|
@@ -27,7 +27,7 @@ export interface OpenClawLocalSessionTailPollResultV1 {
|
|
|
27
27
|
runtimeOwner: "openclaw";
|
|
28
28
|
lane: "local_session_tail";
|
|
29
29
|
polledAt: string;
|
|
30
|
-
sources:
|
|
30
|
+
sources: OpenClawSessionStoreV1[];
|
|
31
31
|
changes: OpenClawLocalSessionTailChangeV1[];
|
|
32
32
|
noopReason: OpenClawLocalSessionTailNoopReasonV1 | null;
|
|
33
33
|
warnings: string[];
|
|
@@ -36,6 +36,8 @@ export interface OpenClawLocalSessionTailPollResultV1 {
|
|
|
36
36
|
export interface OpenClawLocalSessionTailInput {
|
|
37
37
|
homeDir?: string;
|
|
38
38
|
profileRoots?: readonly string[];
|
|
39
|
+
cursor?: readonly OpenClawLocalSessionTailCursorV1[];
|
|
40
|
+
emitExistingOnFirstPoll?: boolean;
|
|
39
41
|
}
|
|
40
42
|
export interface OpenClawLocalSessionTailLoopOptionsV1 {
|
|
41
43
|
pollIntervalMs?: number;
|
|
@@ -57,6 +59,7 @@ export declare class OpenClawLocalSessionTail {
|
|
|
57
59
|
readonly homeDir: string | undefined;
|
|
58
60
|
readonly profileRoots: readonly string[] | undefined;
|
|
59
61
|
private initialized;
|
|
62
|
+
private readonly emitExistingOnFirstPoll;
|
|
60
63
|
private readonly cursorBySession;
|
|
61
64
|
constructor(input?: OpenClawLocalSessionTailInput);
|
|
62
65
|
snapshot(): OpenClawLocalSessionTailCursorV1[];
|