@openclawbrain/openclaw 0.3.0 → 0.3.1
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/README.md +2 -1
- package/dist/extension/index.js +9 -1
- package/dist/extension/index.js.map +1 -1
- package/dist/extension/runtime-guard.js +1 -1
- package/dist/extension/runtime-guard.js.map +1 -1
- package/dist/src/cli.d.ts +11 -5
- package/dist/src/cli.js +1006 -269
- package/dist/src/cli.js.map +1 -1
- package/dist/src/openclaw-home-layout.d.ts +17 -0
- package/dist/src/openclaw-home-layout.js +182 -0
- package/dist/src/openclaw-home-layout.js.map +1 -0
- package/dist/src/provider-config.d.ts +36 -0
- package/dist/src/provider-config.js +181 -25
- package/dist/src/provider-config.js.map +1 -1
- package/dist/src/resolve-activation-root.d.ts +3 -3
- package/dist/src/resolve-activation-root.js +21 -26
- package/dist/src/resolve-activation-root.js.map +1 -1
- package/dist/src/session-store.js +16 -5
- package/dist/src/session-store.js.map +1 -1
- package/dist/src/session-tail.js +14 -2
- package/dist/src/session-tail.js.map +1 -1
- package/extension/index.ts +17 -0
- package/extension/runtime-guard.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type OpenClawHomeLayout = "per_profile_home" | "shared_home_profiles_in_config" | "single_openclaw_home" | "custom_openclaw_home";
|
|
2
|
+
export type OpenClawHomeProfileSource = "openclaw_json_profile" | "openclaw_json_single_profile_key" | "directory_name" | "none";
|
|
3
|
+
export interface OpenClawHomeInspection {
|
|
4
|
+
openclawHome: string;
|
|
5
|
+
openclawJsonPath: string;
|
|
6
|
+
layout: OpenClawHomeLayout;
|
|
7
|
+
profileId: string | null;
|
|
8
|
+
profileSource: OpenClawHomeProfileSource;
|
|
9
|
+
configuredProfileIds: string[];
|
|
10
|
+
configReadable: boolean;
|
|
11
|
+
configError: string | null;
|
|
12
|
+
}
|
|
13
|
+
export declare function inspectOpenClawHome(openclawHome: string): OpenClawHomeInspection;
|
|
14
|
+
export declare function discoverOpenClawHomes(homeDir?: string): OpenClawHomeInspection[];
|
|
15
|
+
export declare function formatOpenClawHomeLayout(layout: OpenClawHomeLayout): string;
|
|
16
|
+
export declare function formatOpenClawHomeProfileSource(source: OpenClawHomeProfileSource): string;
|
|
17
|
+
export declare function describeOpenClawHomeInspection(inspection: OpenClawHomeInspection): string;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
function normalizeOptionalString(value) {
|
|
5
|
+
if (typeof value !== "string") {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const trimmed = value.trim();
|
|
9
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
10
|
+
}
|
|
11
|
+
function readRecord(value) {
|
|
12
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
function listConfiguredProfileIds(config) {
|
|
18
|
+
const profiles = readRecord(config?.profiles);
|
|
19
|
+
if (profiles === null) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
return Object.keys(profiles)
|
|
23
|
+
.map((profileId) => profileId.trim())
|
|
24
|
+
.filter((profileId) => profileId.length > 0)
|
|
25
|
+
.sort((left, right) => left.localeCompare(right));
|
|
26
|
+
}
|
|
27
|
+
function deriveDirectoryProfileId(openclawHome) {
|
|
28
|
+
const basename = path.basename(openclawHome);
|
|
29
|
+
if (!basename.startsWith(".openclaw-")) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const derived = basename.slice(".openclaw-".length).trim();
|
|
33
|
+
return derived.length > 0 ? derived : null;
|
|
34
|
+
}
|
|
35
|
+
function detectLayout(input) {
|
|
36
|
+
const basename = path.basename(input.openclawHome);
|
|
37
|
+
if (basename.startsWith(".openclaw-")) {
|
|
38
|
+
return "per_profile_home";
|
|
39
|
+
}
|
|
40
|
+
if (basename === ".openclaw" && input.configuredProfileIds.length > 0) {
|
|
41
|
+
return "shared_home_profiles_in_config";
|
|
42
|
+
}
|
|
43
|
+
if (basename === ".openclaw") {
|
|
44
|
+
return "single_openclaw_home";
|
|
45
|
+
}
|
|
46
|
+
if (input.configuredProfileIds.length > 0) {
|
|
47
|
+
return "shared_home_profiles_in_config";
|
|
48
|
+
}
|
|
49
|
+
return "custom_openclaw_home";
|
|
50
|
+
}
|
|
51
|
+
function detectProfileId(input) {
|
|
52
|
+
const directProfile = normalizeOptionalString(input.config?.profile);
|
|
53
|
+
if (directProfile !== null) {
|
|
54
|
+
return {
|
|
55
|
+
profileId: directProfile,
|
|
56
|
+
profileSource: "openclaw_json_profile"
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (input.configuredProfileIds.length === 1) {
|
|
60
|
+
return {
|
|
61
|
+
profileId: input.configuredProfileIds[0],
|
|
62
|
+
profileSource: "openclaw_json_single_profile_key"
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const directoryProfile = deriveDirectoryProfileId(input.openclawHome);
|
|
66
|
+
if (directoryProfile !== null) {
|
|
67
|
+
return {
|
|
68
|
+
profileId: directoryProfile,
|
|
69
|
+
profileSource: "directory_name"
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
profileId: null,
|
|
74
|
+
profileSource: "none"
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export function inspectOpenClawHome(openclawHome) {
|
|
78
|
+
const resolvedHome = path.resolve(openclawHome);
|
|
79
|
+
const openclawJsonPath = path.join(resolvedHome, "openclaw.json");
|
|
80
|
+
let config = null;
|
|
81
|
+
let configReadable = false;
|
|
82
|
+
let configError = null;
|
|
83
|
+
if (existsSync(openclawJsonPath)) {
|
|
84
|
+
try {
|
|
85
|
+
config = readRecord(JSON.parse(readFileSync(openclawJsonPath, "utf8")));
|
|
86
|
+
configReadable = config !== null;
|
|
87
|
+
if (config === null) {
|
|
88
|
+
configError = "openclaw.json does not contain a top-level object";
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
configError = error instanceof Error ? error.message : String(error);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
configError = "openclaw.json is missing";
|
|
97
|
+
}
|
|
98
|
+
const configuredProfileIds = listConfiguredProfileIds(config);
|
|
99
|
+
const layout = detectLayout({
|
|
100
|
+
openclawHome: resolvedHome,
|
|
101
|
+
configuredProfileIds
|
|
102
|
+
});
|
|
103
|
+
const profileResolution = detectProfileId({
|
|
104
|
+
openclawHome: resolvedHome,
|
|
105
|
+
config,
|
|
106
|
+
configuredProfileIds
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
openclawHome: resolvedHome,
|
|
110
|
+
openclawJsonPath,
|
|
111
|
+
layout,
|
|
112
|
+
profileId: profileResolution.profileId,
|
|
113
|
+
profileSource: profileResolution.profileSource,
|
|
114
|
+
configuredProfileIds,
|
|
115
|
+
configReadable,
|
|
116
|
+
configError
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function isDiscoverableOpenClawHome(entry) {
|
|
120
|
+
if (!entry.isDirectory()) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
return entry.name === ".openclaw" || entry.name.startsWith(".openclaw-");
|
|
124
|
+
}
|
|
125
|
+
export function discoverOpenClawHomes(homeDir = process.env.HOME ?? process.env.USERPROFILE ?? homedir()) {
|
|
126
|
+
const resolvedHomeDir = path.resolve(homeDir);
|
|
127
|
+
let entries;
|
|
128
|
+
try {
|
|
129
|
+
entries = readdirSync(resolvedHomeDir, { withFileTypes: true });
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
return entries
|
|
135
|
+
.filter(isDiscoverableOpenClawHome)
|
|
136
|
+
.map((entry) => path.join(resolvedHomeDir, entry.name))
|
|
137
|
+
.filter((candidate) => existsSync(path.join(candidate, "openclaw.json")))
|
|
138
|
+
.map((candidate) => inspectOpenClawHome(candidate))
|
|
139
|
+
.sort((left, right) => left.openclawHome.localeCompare(right.openclawHome));
|
|
140
|
+
}
|
|
141
|
+
export function formatOpenClawHomeLayout(layout) {
|
|
142
|
+
switch (layout) {
|
|
143
|
+
case "per_profile_home":
|
|
144
|
+
return "per-profile home";
|
|
145
|
+
case "shared_home_profiles_in_config":
|
|
146
|
+
return "single ~/.openclaw home with profiles in openclaw.json";
|
|
147
|
+
case "single_openclaw_home":
|
|
148
|
+
return "single ~/.openclaw home";
|
|
149
|
+
case "custom_openclaw_home":
|
|
150
|
+
return "custom OpenClaw home";
|
|
151
|
+
default:
|
|
152
|
+
return layout;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
export function formatOpenClawHomeProfileSource(source) {
|
|
156
|
+
switch (source) {
|
|
157
|
+
case "openclaw_json_profile":
|
|
158
|
+
return "openclaw.json.profile";
|
|
159
|
+
case "openclaw_json_single_profile_key":
|
|
160
|
+
return "the only openclaw.json profiles entry";
|
|
161
|
+
case "directory_name":
|
|
162
|
+
return "the OpenClaw home directory name";
|
|
163
|
+
case "none":
|
|
164
|
+
return "none";
|
|
165
|
+
default:
|
|
166
|
+
return source;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
export function describeOpenClawHomeInspection(inspection) {
|
|
170
|
+
const layout = formatOpenClawHomeLayout(inspection.layout);
|
|
171
|
+
const configuredProfiles = inspection.configuredProfileIds.length === 0
|
|
172
|
+
? "none"
|
|
173
|
+
: inspection.configuredProfileIds.join(", ");
|
|
174
|
+
if (inspection.profileId !== null) {
|
|
175
|
+
return `${layout}; target profile=${inspection.profileId} via ${formatOpenClawHomeProfileSource(inspection.profileSource)}; configured profiles=${configuredProfiles}`;
|
|
176
|
+
}
|
|
177
|
+
if (inspection.layout === "shared_home_profiles_in_config" || inspection.layout === "single_openclaw_home") {
|
|
178
|
+
return `${layout}; target profile stays host-selected current_profile; configured profiles=${configuredProfiles}`;
|
|
179
|
+
}
|
|
180
|
+
return `${layout}; target profile unresolved; configured profiles=${configuredProfiles}`;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=openclaw-home-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw-home-layout.js","sourceRoot":"","sources":["../../src/openclaw-home-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,42 @@
|
|
|
1
|
+
declare const OPENCLAWBRAIN_PROVIDER_DEFAULTS_CONTRACT = "openclawbrain_provider_defaults.v1";
|
|
1
2
|
declare const ALLOWED_TEACHER_PROVIDERS: readonly ["heuristic", "ollama", "off"];
|
|
2
3
|
declare const ALLOWED_EMBEDDER_PROVIDERS: readonly ["keywords", "ollama", "off"];
|
|
3
4
|
export type OpenClawBrainProviderConfigEnv = Readonly<Record<string, string | undefined>>;
|
|
4
5
|
export type OpenClawBrainTeacherProvider = (typeof ALLOWED_TEACHER_PROVIDERS)[number];
|
|
5
6
|
export type OpenClawBrainEmbedderProvider = (typeof ALLOWED_EMBEDDER_PROVIDERS)[number];
|
|
6
7
|
export type OpenClawBrainProviderResolvedNote = string;
|
|
8
|
+
export interface OpenClawBrainProviderDefaultsRecord {
|
|
9
|
+
contract: typeof OPENCLAWBRAIN_PROVIDER_DEFAULTS_CONTRACT;
|
|
10
|
+
writtenAt: string;
|
|
11
|
+
source: "install";
|
|
12
|
+
teacherBaseUrl?: string;
|
|
13
|
+
embedderBaseUrl?: string;
|
|
14
|
+
teacher?: {
|
|
15
|
+
provider?: OpenClawBrainTeacherProvider;
|
|
16
|
+
model?: string | null;
|
|
17
|
+
timeoutMs?: number;
|
|
18
|
+
maxPromptChars?: number;
|
|
19
|
+
maxResponseChars?: number;
|
|
20
|
+
maxOutputTokens?: number;
|
|
21
|
+
maxArtifactsPerExport?: number;
|
|
22
|
+
maxInteractionsPerExport?: number;
|
|
23
|
+
detectedLocally?: boolean;
|
|
24
|
+
detectedFromModel?: string | null;
|
|
25
|
+
};
|
|
26
|
+
embedder?: {
|
|
27
|
+
provider?: OpenClawBrainEmbedderProvider;
|
|
28
|
+
model?: string | null;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface OpenClawBrainProviderDefaultsReadResult {
|
|
32
|
+
defaults: OpenClawBrainProviderDefaultsRecord | null;
|
|
33
|
+
warnings: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface ReadOpenClawBrainProviderConfigInput {
|
|
36
|
+
env?: OpenClawBrainProviderConfigEnv;
|
|
37
|
+
activationRoot?: string | null;
|
|
38
|
+
defaults?: OpenClawBrainProviderDefaultsRecord | null;
|
|
39
|
+
}
|
|
7
40
|
export interface OpenClawBrainProviderSelection<TProvider extends string> {
|
|
8
41
|
provider: TProvider;
|
|
9
42
|
model: string;
|
|
@@ -23,6 +56,9 @@ export interface OpenClawBrainProviderConfig {
|
|
|
23
56
|
embedder: OpenClawBrainProviderSelection<OpenClawBrainEmbedderProvider>;
|
|
24
57
|
warnings: string[];
|
|
25
58
|
}
|
|
59
|
+
export declare function resolveOpenClawBrainProviderDefaultsPath(activationRoot: string): string;
|
|
60
|
+
export declare function readOpenClawBrainProviderDefaults(activationRoot: string): OpenClawBrainProviderDefaultsReadResult;
|
|
26
61
|
export declare function resolveOpenClawBrainProviderConfigNotes(config: OpenClawBrainProviderConfig): OpenClawBrainProviderResolvedNote[];
|
|
27
62
|
export declare function readOpenClawBrainProviderConfig(env?: OpenClawBrainProviderConfigEnv): OpenClawBrainProviderConfig;
|
|
63
|
+
export declare function readOpenClawBrainProviderConfigFromSources(input?: ReadOpenClawBrainProviderConfigInput): OpenClawBrainProviderConfig;
|
|
28
64
|
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
1
3
|
import process from "node:process";
|
|
2
4
|
const OPENCLAWBRAIN_TEACHER_BASE_URL_ENV = "OPENCLAWBRAIN_TEACHER_BASE_URL";
|
|
3
5
|
const OPENCLAWBRAIN_EMBEDDER_BASE_URL_ENV = "OPENCLAWBRAIN_EMBEDDER_BASE_URL";
|
|
@@ -14,10 +16,47 @@ const OPENCLAWBRAIN_EMBEDDER_MODEL_ENV = "OPENCLAWBRAIN_EMBEDDER_MODEL";
|
|
|
14
16
|
const DEFAULT_BASE_URL = "http://127.0.0.1:11434";
|
|
15
17
|
const DEFAULT_TEACHER_PROVIDER = "heuristic";
|
|
16
18
|
const DEFAULT_TEACHER_MODEL = "qwen3.5:9b";
|
|
17
|
-
const DEFAULT_EMBEDDER_PROVIDER = "
|
|
19
|
+
const DEFAULT_EMBEDDER_PROVIDER = "ollama";
|
|
18
20
|
const DEFAULT_EMBEDDER_MODEL = "bge-large";
|
|
21
|
+
const OPENCLAWBRAIN_PROVIDER_DEFAULTS_CONTRACT = "openclawbrain_provider_defaults.v1";
|
|
22
|
+
const OPENCLAWBRAIN_PROVIDER_DEFAULTS_FILE = "provider-defaults.json";
|
|
19
23
|
const ALLOWED_TEACHER_PROVIDERS = ["heuristic", "ollama", "off"];
|
|
20
24
|
const ALLOWED_EMBEDDER_PROVIDERS = ["keywords", "ollama", "off"];
|
|
25
|
+
export function resolveOpenClawBrainProviderDefaultsPath(activationRoot) {
|
|
26
|
+
return path.resolve(activationRoot, OPENCLAWBRAIN_PROVIDER_DEFAULTS_FILE);
|
|
27
|
+
}
|
|
28
|
+
export function readOpenClawBrainProviderDefaults(activationRoot) {
|
|
29
|
+
const warnings = [];
|
|
30
|
+
const defaultsPath = resolveOpenClawBrainProviderDefaultsPath(activationRoot);
|
|
31
|
+
if (!existsSync(defaultsPath)) {
|
|
32
|
+
return {
|
|
33
|
+
defaults: null,
|
|
34
|
+
warnings
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
let parsed;
|
|
38
|
+
try {
|
|
39
|
+
parsed = JSON.parse(readFileSync(defaultsPath, "utf8"));
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
warnings.push(`provider defaults file is unreadable; ignoring ${defaultsPath}: ${describeUnknownError(error)}`);
|
|
43
|
+
return {
|
|
44
|
+
defaults: null,
|
|
45
|
+
warnings
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (!isRecord(parsed) || parsed.contract !== OPENCLAWBRAIN_PROVIDER_DEFAULTS_CONTRACT) {
|
|
49
|
+
warnings.push(`provider defaults file must use contract ${OPENCLAWBRAIN_PROVIDER_DEFAULTS_CONTRACT}; ignoring ${defaultsPath}`);
|
|
50
|
+
return {
|
|
51
|
+
defaults: null,
|
|
52
|
+
warnings
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
defaults: parsed,
|
|
57
|
+
warnings
|
|
58
|
+
};
|
|
59
|
+
}
|
|
21
60
|
export function resolveOpenClawBrainProviderConfigNotes(config) {
|
|
22
61
|
const notes = [
|
|
23
62
|
`teacher_base_url=${config.teacherBaseUrl}`,
|
|
@@ -43,43 +82,54 @@ export function resolveOpenClawBrainProviderConfigNotes(config) {
|
|
|
43
82
|
return notes;
|
|
44
83
|
}
|
|
45
84
|
export function readOpenClawBrainProviderConfig(env = process.env) {
|
|
85
|
+
return readOpenClawBrainProviderConfigFromSources({ env });
|
|
86
|
+
}
|
|
87
|
+
export function readOpenClawBrainProviderConfigFromSources(input = {}) {
|
|
88
|
+
const env = input.env ?? process.env;
|
|
46
89
|
const warnings = [];
|
|
90
|
+
const defaultsResult = input.defaults !== undefined
|
|
91
|
+
? { defaults: input.defaults, warnings: [] }
|
|
92
|
+
: input.activationRoot === undefined || input.activationRoot === null
|
|
93
|
+
? { defaults: null, warnings: [] }
|
|
94
|
+
: readOpenClawBrainProviderDefaults(input.activationRoot);
|
|
95
|
+
warnings.push(...defaultsResult.warnings);
|
|
96
|
+
const resolvedDefaults = resolveProviderDefaults(defaultsResult.defaults, warnings);
|
|
47
97
|
return {
|
|
48
|
-
teacherBaseUrl: readBaseUrlEnv(env, OPENCLAWBRAIN_TEACHER_BASE_URL_ENV, warnings),
|
|
49
|
-
embedderBaseUrl: readBaseUrlEnv(env, OPENCLAWBRAIN_EMBEDDER_BASE_URL_ENV, warnings),
|
|
98
|
+
teacherBaseUrl: readBaseUrlEnv(env, OPENCLAWBRAIN_TEACHER_BASE_URL_ENV, resolvedDefaults.teacherBaseUrl, warnings),
|
|
99
|
+
embedderBaseUrl: readBaseUrlEnv(env, OPENCLAWBRAIN_EMBEDDER_BASE_URL_ENV, resolvedDefaults.embedderBaseUrl, warnings),
|
|
50
100
|
teacher: {
|
|
51
|
-
provider: readProviderEnv(env, OPENCLAWBRAIN_TEACHER_PROVIDER_ENV, ALLOWED_TEACHER_PROVIDERS,
|
|
52
|
-
model: readModelEnv(env, OPENCLAWBRAIN_TEACHER_MODEL_ENV, DEFAULT_TEACHER_MODEL, warnings),
|
|
53
|
-
...readTeacherBudgetEnv(env, warnings)
|
|
101
|
+
provider: readProviderEnv(env, OPENCLAWBRAIN_TEACHER_PROVIDER_ENV, ALLOWED_TEACHER_PROVIDERS, resolvedDefaults.teacherProvider, warnings),
|
|
102
|
+
model: readModelEnv(env, OPENCLAWBRAIN_TEACHER_MODEL_ENV, resolvedDefaults.teacherModel ?? DEFAULT_TEACHER_MODEL, warnings),
|
|
103
|
+
...readTeacherBudgetEnv(env, warnings, resolvedDefaults)
|
|
54
104
|
},
|
|
55
105
|
embedder: {
|
|
56
|
-
provider: readProviderEnv(env, OPENCLAWBRAIN_EMBEDDER_PROVIDER_ENV, ALLOWED_EMBEDDER_PROVIDERS,
|
|
57
|
-
model: readModelEnv(env, OPENCLAWBRAIN_EMBEDDER_MODEL_ENV, DEFAULT_EMBEDDER_MODEL, warnings)
|
|
106
|
+
provider: readProviderEnv(env, OPENCLAWBRAIN_EMBEDDER_PROVIDER_ENV, ALLOWED_EMBEDDER_PROVIDERS, resolvedDefaults.embedderProvider, warnings),
|
|
107
|
+
model: readModelEnv(env, OPENCLAWBRAIN_EMBEDDER_MODEL_ENV, resolvedDefaults.embedderModel ?? DEFAULT_EMBEDDER_MODEL, warnings)
|
|
58
108
|
},
|
|
59
109
|
warnings
|
|
60
110
|
};
|
|
61
111
|
}
|
|
62
|
-
function readBaseUrlEnv(env, name, warnings) {
|
|
112
|
+
function readBaseUrlEnv(env, name, fallback, warnings) {
|
|
63
113
|
const raw = env[name];
|
|
64
114
|
if (raw === undefined) {
|
|
65
|
-
return
|
|
115
|
+
return fallback;
|
|
66
116
|
}
|
|
67
117
|
const value = normalizeOptionalEnvString(raw);
|
|
68
118
|
if (value === undefined) {
|
|
69
|
-
warnings.push(`${name} must be a valid http(s) URL when set; using default ${
|
|
70
|
-
return
|
|
119
|
+
warnings.push(`${name} must be a valid http(s) URL when set; using default ${fallback}`);
|
|
120
|
+
return fallback;
|
|
71
121
|
}
|
|
72
122
|
let parsed;
|
|
73
123
|
try {
|
|
74
124
|
parsed = new URL(value);
|
|
75
125
|
}
|
|
76
126
|
catch {
|
|
77
|
-
warnings.push(`${name} must be a valid http(s) URL when set; using default ${
|
|
78
|
-
return
|
|
127
|
+
warnings.push(`${name} must be a valid http(s) URL when set; using default ${fallback}`);
|
|
128
|
+
return fallback;
|
|
79
129
|
}
|
|
80
130
|
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
81
|
-
warnings.push(`${name} must use http or https when set; using default ${
|
|
82
|
-
return
|
|
131
|
+
warnings.push(`${name} must use http or https when set; using default ${fallback}`);
|
|
132
|
+
return fallback;
|
|
83
133
|
}
|
|
84
134
|
return parsed.toString().replace(/\/+$/, "");
|
|
85
135
|
}
|
|
@@ -111,20 +161,25 @@ function readModelEnv(env, name, fallback, warnings) {
|
|
|
111
161
|
warnings.push(`${name} must be a non-empty string when set; using default ${fallback}`);
|
|
112
162
|
return fallback;
|
|
113
163
|
}
|
|
114
|
-
function readTeacherBudgetEnv(env, warnings) {
|
|
164
|
+
function readTeacherBudgetEnv(env, warnings, defaults) {
|
|
115
165
|
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)
|
|
166
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_TIMEOUT_MS_ENV, "timeoutMs", warnings, defaults.teacherTimeoutMs),
|
|
167
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_PROMPT_CHARS_ENV, "maxPromptChars", warnings, defaults.teacherMaxPromptChars),
|
|
168
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_RESPONSE_CHARS_ENV, "maxResponseChars", warnings, defaults.teacherMaxResponseChars),
|
|
169
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_OUTPUT_TOKENS_ENV, "maxOutputTokens", warnings, defaults.teacherMaxOutputTokens),
|
|
170
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_ARTIFACTS_ENV, "maxArtifactsPerExport", warnings, defaults.teacherMaxArtifactsPerExport),
|
|
171
|
+
...readOptionalPositiveIntegerEnv(env, OPENCLAWBRAIN_TEACHER_MAX_INTERACTIONS_ENV, "maxInteractionsPerExport", warnings, defaults.teacherMaxInteractionsPerExport)
|
|
122
172
|
};
|
|
123
173
|
}
|
|
124
|
-
function readOptionalPositiveIntegerEnv(env, name, propertyName, warnings) {
|
|
174
|
+
function readOptionalPositiveIntegerEnv(env, name, propertyName, warnings, fallback) {
|
|
125
175
|
const raw = env[name];
|
|
126
176
|
if (raw === undefined) {
|
|
127
|
-
|
|
177
|
+
if (fallback === undefined) {
|
|
178
|
+
return {};
|
|
179
|
+
}
|
|
180
|
+
return {
|
|
181
|
+
[propertyName]: fallback
|
|
182
|
+
};
|
|
128
183
|
}
|
|
129
184
|
const value = normalizeOptionalEnvString(raw);
|
|
130
185
|
if (value === undefined || /^[0-9]+$/u.test(value) === false) {
|
|
@@ -147,4 +202,105 @@ function normalizeOptionalEnvString(value) {
|
|
|
147
202
|
}
|
|
148
203
|
return normalized;
|
|
149
204
|
}
|
|
205
|
+
function resolveProviderDefaults(defaults, warnings) {
|
|
206
|
+
if (defaults === null) {
|
|
207
|
+
return {
|
|
208
|
+
teacherBaseUrl: DEFAULT_BASE_URL,
|
|
209
|
+
embedderBaseUrl: DEFAULT_BASE_URL,
|
|
210
|
+
teacherProvider: DEFAULT_TEACHER_PROVIDER,
|
|
211
|
+
teacherModel: null,
|
|
212
|
+
teacherTimeoutMs: undefined,
|
|
213
|
+
teacherMaxPromptChars: undefined,
|
|
214
|
+
teacherMaxResponseChars: undefined,
|
|
215
|
+
teacherMaxOutputTokens: undefined,
|
|
216
|
+
teacherMaxArtifactsPerExport: undefined,
|
|
217
|
+
teacherMaxInteractionsPerExport: undefined,
|
|
218
|
+
embedderProvider: DEFAULT_EMBEDDER_PROVIDER,
|
|
219
|
+
embedderModel: DEFAULT_EMBEDDER_MODEL
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const teacherDefaults = isRecord(defaults.teacher) ? defaults.teacher : null;
|
|
223
|
+
const embedderDefaults = isRecord(defaults.embedder) ? defaults.embedder : null;
|
|
224
|
+
const teacherProvider = readDefaultProvider(teacherDefaults?.provider, "teacher.provider", ALLOWED_TEACHER_PROVIDERS, DEFAULT_TEACHER_PROVIDER, warnings);
|
|
225
|
+
const embedderProvider = readDefaultProvider(embedderDefaults?.provider, "embedder.provider", ALLOWED_EMBEDDER_PROVIDERS, DEFAULT_EMBEDDER_PROVIDER, warnings);
|
|
226
|
+
return {
|
|
227
|
+
teacherBaseUrl: readDefaultBaseUrl(defaults.teacherBaseUrl, "teacherBaseUrl", warnings),
|
|
228
|
+
embedderBaseUrl: readDefaultBaseUrl(defaults.embedderBaseUrl, "embedderBaseUrl", warnings),
|
|
229
|
+
teacherProvider,
|
|
230
|
+
teacherModel: teacherProvider === "ollama"
|
|
231
|
+
? readDefaultModel(teacherDefaults?.model, "teacher.model", warnings)
|
|
232
|
+
: null,
|
|
233
|
+
teacherTimeoutMs: readDefaultPositiveInteger(teacherDefaults?.timeoutMs, "teacher.timeoutMs", warnings),
|
|
234
|
+
teacherMaxPromptChars: readDefaultPositiveInteger(teacherDefaults?.maxPromptChars, "teacher.maxPromptChars", warnings),
|
|
235
|
+
teacherMaxResponseChars: readDefaultPositiveInteger(teacherDefaults?.maxResponseChars, "teacher.maxResponseChars", warnings),
|
|
236
|
+
teacherMaxOutputTokens: readDefaultPositiveInteger(teacherDefaults?.maxOutputTokens, "teacher.maxOutputTokens", warnings),
|
|
237
|
+
teacherMaxArtifactsPerExport: readDefaultPositiveInteger(teacherDefaults?.maxArtifactsPerExport, "teacher.maxArtifactsPerExport", warnings),
|
|
238
|
+
teacherMaxInteractionsPerExport: readDefaultPositiveInteger(teacherDefaults?.maxInteractionsPerExport, "teacher.maxInteractionsPerExport", warnings),
|
|
239
|
+
embedderProvider,
|
|
240
|
+
embedderModel: embedderProvider === "off"
|
|
241
|
+
? null
|
|
242
|
+
: readDefaultModel(embedderDefaults?.model, "embedder.model", warnings) ?? DEFAULT_EMBEDDER_MODEL
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
function readDefaultBaseUrl(value, fieldName, warnings) {
|
|
246
|
+
if (typeof value !== "string") {
|
|
247
|
+
return DEFAULT_BASE_URL;
|
|
248
|
+
}
|
|
249
|
+
const normalized = normalizeOptionalEnvString(value);
|
|
250
|
+
if (normalized === undefined) {
|
|
251
|
+
warnings.push(`provider defaults ${fieldName} must be a valid http(s) URL; using ${DEFAULT_BASE_URL}`);
|
|
252
|
+
return DEFAULT_BASE_URL;
|
|
253
|
+
}
|
|
254
|
+
let parsed;
|
|
255
|
+
try {
|
|
256
|
+
parsed = new URL(normalized);
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
warnings.push(`provider defaults ${fieldName} must be a valid http(s) URL; using ${DEFAULT_BASE_URL}`);
|
|
260
|
+
return DEFAULT_BASE_URL;
|
|
261
|
+
}
|
|
262
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
263
|
+
warnings.push(`provider defaults ${fieldName} must use http or https; using ${DEFAULT_BASE_URL}`);
|
|
264
|
+
return DEFAULT_BASE_URL;
|
|
265
|
+
}
|
|
266
|
+
return parsed.toString().replace(/\/+$/, "");
|
|
267
|
+
}
|
|
268
|
+
function readDefaultProvider(value, fieldName, allowedValues, fallback, warnings) {
|
|
269
|
+
if (typeof value === "string" && allowedValues.includes(value)) {
|
|
270
|
+
return value;
|
|
271
|
+
}
|
|
272
|
+
if (value !== undefined) {
|
|
273
|
+
warnings.push(`provider defaults ${fieldName} must be one of ${allowedValues.join("|")}; using ${fallback}`);
|
|
274
|
+
}
|
|
275
|
+
return fallback;
|
|
276
|
+
}
|
|
277
|
+
function readDefaultModel(value, fieldName, warnings) {
|
|
278
|
+
if (value === null || value === undefined) {
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
if (typeof value === "string") {
|
|
282
|
+
const normalized = normalizeOptionalEnvString(value);
|
|
283
|
+
if (normalized !== undefined) {
|
|
284
|
+
return normalized;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
warnings.push(`provider defaults ${fieldName} must be a non-empty string when set; leaving it unset`);
|
|
288
|
+
return null;
|
|
289
|
+
}
|
|
290
|
+
function readDefaultPositiveInteger(value, fieldName, warnings) {
|
|
291
|
+
if (value === undefined || value === null) {
|
|
292
|
+
return undefined;
|
|
293
|
+
}
|
|
294
|
+
if (typeof value === "number" && Number.isInteger(value) && value > 0) {
|
|
295
|
+
return value;
|
|
296
|
+
}
|
|
297
|
+
warnings.push(`provider defaults ${fieldName} must be a positive integer when set; leaving it unset`);
|
|
298
|
+
return undefined;
|
|
299
|
+
}
|
|
300
|
+
function isRecord(value) {
|
|
301
|
+
return typeof value === "object" && value !== null;
|
|
302
|
+
}
|
|
303
|
+
function describeUnknownError(error) {
|
|
304
|
+
return error instanceof Error ? error.message : String(error);
|
|
305
|
+
}
|
|
150
306
|
//# sourceMappingURL=provider-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/provider-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/provider-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Resolution order:
|
|
5
5
|
* 1. Explicit `--activation-root <path>` (passed as `explicit` arg)
|
|
6
|
-
* 2. A selected OpenClaw
|
|
7
|
-
* 3. Unpinned host auto-detect from ~/.openclawbrain/activation and installed
|
|
6
|
+
* 2. A selected OpenClaw home (`openclawHome` option or OPENCLAW_HOME env)
|
|
7
|
+
* 3. Unpinned host auto-detect from ~/.openclawbrain/activation and installed hooks
|
|
8
8
|
* 4. Refuse clearly if host-local signals disagree or are unresolved
|
|
9
9
|
* 5. Fail with a clear error message
|
|
10
10
|
*
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
export interface ResolveActivationRootOptions {
|
|
14
14
|
/** Value from --activation-root flag, if provided. null/undefined/"" means not provided. */
|
|
15
15
|
explicit?: string | null;
|
|
16
|
-
/** Specific OpenClaw
|
|
16
|
+
/** Specific OpenClaw home to inspect for the installed extension. */
|
|
17
17
|
openclawHome?: string | null;
|
|
18
18
|
/** If true, return "" instead of throwing when nothing is found or auto-detect is ambiguous. */
|
|
19
19
|
quiet?: boolean;
|