pulseed 0.4.7 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/llm/provider-config.d.ts.map +1 -1
- package/dist/base/llm/provider-config.js +33 -8
- package/dist/base/llm/provider-config.js.map +1 -1
- package/dist/interface/cli/cli-command-registry.d.ts.map +1 -1
- package/dist/interface/cli/cli-command-registry.js +23 -3
- package/dist/interface/cli/cli-command-registry.js.map +1 -1
- package/dist/interface/cli/commands/approval.d.ts +3 -0
- package/dist/interface/cli/commands/approval.d.ts.map +1 -0
- package/dist/interface/cli/commands/approval.js +112 -0
- package/dist/interface/cli/commands/approval.js.map +1 -0
- package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
- package/dist/interface/cli/commands/daemon.js +21 -7
- package/dist/interface/cli/commands/daemon.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/apply.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/apply.js +86 -0
- package/dist/interface/cli/commands/setup/import/apply.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/constants.d.ts +1 -1
- package/dist/interface/cli/commands/setup/import/constants.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/constants.js +5 -0
- package/dist/interface/cli/commands/setup/import/constants.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/discovery.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/discovery.js +37 -6
- package/dist/interface/cli/commands/setup/import/discovery.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/flow.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/flow.js +22 -4
- package/dist/interface/cli/commands/setup/import/flow.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/fs-utils.d.ts +1 -0
- package/dist/interface/cli/commands/setup/import/fs-utils.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/fs-utils.js +27 -1
- package/dist/interface/cli/commands/setup/import/fs-utils.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/mcp.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/mcp.js +3 -1
- package/dist/interface/cli/commands/setup/import/mcp.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/provider.d.ts +3 -1
- package/dist/interface/cli/commands/setup/import/provider.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/provider.js +94 -5
- package/dist/interface/cli/commands/setup/import/provider.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/telegram.d.ts +5 -0
- package/dist/interface/cli/commands/setup/import/telegram.d.ts.map +1 -0
- package/dist/interface/cli/commands/setup/import/telegram.js +109 -0
- package/dist/interface/cli/commands/setup/import/telegram.js.map +1 -0
- package/dist/interface/cli/commands/setup/import/types.d.ts +6 -1
- package/dist/interface/cli/commands/setup/import/types.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/steps-provider.d.ts +1 -1
- package/dist/interface/cli/commands/setup/steps-provider.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/steps-provider.js +57 -38
- package/dist/interface/cli/commands/setup/steps-provider.js.map +1 -1
- package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup-wizard.js +44 -6
- package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
- package/dist/interface/cli/commands/telegram.d.ts.map +1 -1
- package/dist/interface/cli/commands/telegram.js +22 -20
- package/dist/interface/cli/commands/telegram.js.map +1 -1
- package/dist/interface/cli/ensure-api-key.d.ts +3 -1
- package/dist/interface/cli/ensure-api-key.d.ts.map +1 -1
- package/dist/interface/cli/ensure-api-key.js +20 -13
- package/dist/interface/cli/ensure-api-key.js.map +1 -1
- package/dist/interface/cli/utils.d.ts.map +1 -1
- package/dist/interface/cli/utils.js +1 -0
- package/dist/interface/cli/utils.js.map +1 -1
- package/dist/runtime/store/runtime-schemas.d.ts +2 -2
- package/dist/runtime/types/envelope.d.ts +2 -2
- package/package.json +1 -1
- package/dist/adapters/agents/openclaw-acp.d.ts +0 -32
- package/dist/adapters/agents/openclaw-acp.d.ts.map +0 -1
- package/dist/adapters/agents/openclaw-acp.js +0 -212
- package/dist/adapters/agents/openclaw-acp.js.map +0 -1
- package/dist/adapters/datasources/openclaw-datasource.d.ts +0 -33
- package/dist/adapters/datasources/openclaw-datasource.d.ts.map +0 -1
- package/dist/adapters/datasources/openclaw-datasource.js +0 -176
- package/dist/adapters/datasources/openclaw-datasource.js.map +0 -1
- package/dist/orchestrator/knowledge/memory/memory-lifecycle.d.ts +0 -2
- package/dist/orchestrator/knowledge/memory/memory-lifecycle.d.ts.map +0 -1
- package/dist/orchestrator/knowledge/memory/memory-lifecycle.js +0 -2
- package/dist/orchestrator/knowledge/memory/memory-lifecycle.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
|
+
import { MODEL_REGISTRY } from "../../../../../base/llm/provider-config.js";
|
|
2
3
|
import { PROVIDERS, getAdaptersForModel } from "../../setup-shared.js";
|
|
3
4
|
import { SOURCE_LABELS } from "./constants.js";
|
|
4
5
|
import { collectRecords, firstString, nestedRecord } from "./parse.js";
|
|
@@ -12,9 +13,14 @@ const PROVIDER_KEYS = [
|
|
|
12
13
|
];
|
|
13
14
|
const MODEL_KEYS = ["model", "default_model", "defaultModel", "modelName"];
|
|
14
15
|
const ADAPTER_KEYS = ["adapter", "default_adapter", "defaultAdapter", "backend", "terminalBackend"];
|
|
15
|
-
const API_KEY_KEYS = ["api_key", "apiKey", "
|
|
16
|
+
const API_KEY_KEYS = ["api_key", "apiKey", "openai_api_key", "anthropic_api_key", "OPENAI_API_KEY", "ANTHROPIC_API_KEY"];
|
|
16
17
|
const BASE_URL_KEYS = ["base_url", "baseUrl", "baseURL", "endpoint", "api_base"];
|
|
17
18
|
const CLI_PATH_KEYS = ["codex_cli_path", "codexCliPath", "cli_path", "cliPath"];
|
|
19
|
+
const PROVIDER_ENV_KEYS = {
|
|
20
|
+
openai: ["OPENAI_API_KEY"],
|
|
21
|
+
anthropic: ["ANTHROPIC_API_KEY"],
|
|
22
|
+
ollama: [],
|
|
23
|
+
};
|
|
18
24
|
function normalizeProvider(value) {
|
|
19
25
|
const normalized = value?.toLowerCase().trim();
|
|
20
26
|
if (!normalized)
|
|
@@ -30,6 +36,30 @@ function normalizeProvider(value) {
|
|
|
30
36
|
}
|
|
31
37
|
return PROVIDERS.includes(normalized) ? normalized : undefined;
|
|
32
38
|
}
|
|
39
|
+
function providerFromModel(model) {
|
|
40
|
+
if (!model)
|
|
41
|
+
return undefined;
|
|
42
|
+
const registered = MODEL_REGISTRY[model]?.provider;
|
|
43
|
+
if (registered && PROVIDERS.includes(registered))
|
|
44
|
+
return registered;
|
|
45
|
+
const lower = model.toLowerCase();
|
|
46
|
+
if (lower.startsWith("gpt-") || lower.startsWith("o3") || lower.startsWith("o4"))
|
|
47
|
+
return "openai";
|
|
48
|
+
if (lower.startsWith("claude-"))
|
|
49
|
+
return "anthropic";
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
function providerFromKnownMap(records) {
|
|
53
|
+
for (const record of records) {
|
|
54
|
+
const providers = nestedRecord(record, "providers");
|
|
55
|
+
if (!providers)
|
|
56
|
+
continue;
|
|
57
|
+
const keys = Object.keys(providers).map(normalizeProvider).filter(Boolean);
|
|
58
|
+
if (keys.length === 1)
|
|
59
|
+
return keys[0];
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
33
63
|
function normalizeAdapter(value, provider, model) {
|
|
34
64
|
const normalized = value?.toLowerCase().trim();
|
|
35
65
|
const knownAdapters = [
|
|
@@ -78,6 +108,61 @@ function providerSection(records, provider) {
|
|
|
78
108
|
}
|
|
79
109
|
return undefined;
|
|
80
110
|
}
|
|
111
|
+
function stringFromSecretRef(value, env) {
|
|
112
|
+
if (typeof value === "string" && value.trim()) {
|
|
113
|
+
const match = /^\$\{([A-Za-z_][A-Za-z0-9_]*)\}$/.exec(value.trim());
|
|
114
|
+
if (match)
|
|
115
|
+
return env[match[1]];
|
|
116
|
+
return value.trim();
|
|
117
|
+
}
|
|
118
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
119
|
+
return undefined;
|
|
120
|
+
const record = value;
|
|
121
|
+
if (record["source"] === "env" && typeof record["id"] === "string") {
|
|
122
|
+
return env[record["id"]];
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
function firstSecretString(records, keys, env) {
|
|
127
|
+
for (const record of records) {
|
|
128
|
+
for (const key of keys) {
|
|
129
|
+
const value = stringFromSecretRef(record[key], env);
|
|
130
|
+
if (value)
|
|
131
|
+
return value;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
function envFromConfig(records) {
|
|
137
|
+
const result = {};
|
|
138
|
+
for (const record of records) {
|
|
139
|
+
const env = nestedRecord(record, "env");
|
|
140
|
+
const vars = env ? nestedRecord(env, "vars") : undefined;
|
|
141
|
+
for (const source of [env, vars]) {
|
|
142
|
+
if (!source)
|
|
143
|
+
continue;
|
|
144
|
+
for (const [key, value] of Object.entries(source)) {
|
|
145
|
+
if (typeof value === "string")
|
|
146
|
+
result[key] = value;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
function providerApiKey(provider, records, env) {
|
|
153
|
+
if (!provider)
|
|
154
|
+
return undefined;
|
|
155
|
+
const section = providerSection(records, provider);
|
|
156
|
+
const sectionKey = section ? firstSecretString([section], API_KEY_KEYS, env) : undefined;
|
|
157
|
+
if (sectionKey)
|
|
158
|
+
return sectionKey;
|
|
159
|
+
for (const key of PROVIDER_ENV_KEYS[provider]) {
|
|
160
|
+
if (env[key])
|
|
161
|
+
return env[key];
|
|
162
|
+
}
|
|
163
|
+
const root = records[0];
|
|
164
|
+
return root ? firstSecretString([root], API_KEY_KEYS, env) : undefined;
|
|
165
|
+
}
|
|
81
166
|
function openclawSettings(records, model) {
|
|
82
167
|
const cliPath = firstString(records, ["openclaw_cli_path", "openclawCliPath", "cli_path", "cliPath"]);
|
|
83
168
|
const profile = firstString(records, ["profile", "openclawProfile"]);
|
|
@@ -91,16 +176,20 @@ function openclawSettings(records, model) {
|
|
|
91
176
|
...(workDir ? { work_dir: workDir } : {}),
|
|
92
177
|
};
|
|
93
178
|
}
|
|
94
|
-
export function extractProviderSettings(raw, source) {
|
|
179
|
+
export function extractProviderSettings(raw, source, context = {}) {
|
|
95
180
|
const records = collectRecords(raw);
|
|
96
181
|
if (records.length === 0)
|
|
97
182
|
return undefined;
|
|
98
|
-
const
|
|
183
|
+
const env = { ...envFromConfig(records), ...(context.env ?? {}) };
|
|
184
|
+
const initialModel = firstString(records, MODEL_KEYS);
|
|
185
|
+
const provider = normalizeProvider(firstString(records, PROVIDER_KEYS)) ??
|
|
186
|
+
providerFromModel(initialModel) ??
|
|
187
|
+
providerFromKnownMap(records);
|
|
99
188
|
const section = providerSection(records, provider);
|
|
100
189
|
const searchable = section ? [section, ...records] : records;
|
|
101
|
-
const model = firstString(searchable, MODEL_KEYS);
|
|
190
|
+
const model = firstString(searchable, MODEL_KEYS) ?? initialModel;
|
|
102
191
|
const adapter = normalizeAdapter(firstString(searchable, ADAPTER_KEYS), provider, model);
|
|
103
|
-
const apiKey =
|
|
192
|
+
const apiKey = providerApiKey(provider, searchable, env);
|
|
104
193
|
const baseUrl = firstString(searchable, BASE_URL_KEYS);
|
|
105
194
|
const codexCliPath = firstString(searchable, CLI_PATH_KEYS);
|
|
106
195
|
const openclaw = source === "openclaw" ? openclawSettings(searchable, model) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../src/interface/cli/commands/setup/import/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOvE,MAAM,aAAa,GAAG;IACpB,UAAU;IACV,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,iBAAiB;CAClB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;AAC3E,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACpG,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../src/interface/cli/commands/setup/import/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOvE,MAAM,aAAa,GAAG;IACpB,UAAU;IACV,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,iBAAiB;CAClB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;AAC3E,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACpG,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;AACzH,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACjF,MAAM,aAAa,GAAG,CAAC,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAChF,MAAM,iBAAiB,GAA+B;IACpD,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,SAAS,iBAAiB,CAAC,KAAyB;IAClD,MAAM,UAAU,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,cAAc,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7F,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChE,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC,QAAQ,CAAC,UAAsB,CAAC,CAAC,CAAC,CAAE,UAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3F,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACnD,IAAI,UAAU,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAsB,CAAC;QAAE,OAAO,UAAsB,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClG,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAkC;IAC9D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAe,CAAC;QACzF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAyB,EACzB,QAAgD,EAChD,KAAyB;IAEzB,MAAM,UAAU,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,aAAa,GAAgC;QACjD,iBAAiB;QACjB,YAAY;QACZ,kBAAkB;QAClB,YAAY;QACZ,YAAY;KACb,CAAC;IACF,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAuC,CAAC,EAAE,CAAC;QACpE,OAAO,UAAuC,CAAC;IACjD,CAAC;IACD,IAAI,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAC7D,IAAI,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC5F,IAAI,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,YAAY,CAAC;IAC7F,IAAI,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,CAAC;IACxD,IAAI,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,YAAY,CAAC;IACvD,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC,CAAC,CAA0C,CAAC;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CACtB,OAAkC,EAClC,QAAgD;IAEhD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,GAA2B;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAkC,EAClC,IAAc,EACd,GAA2B;IAE3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,OAAkC;IACvD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CACrB,QAA8B,EAC9B,OAAkC,EAClC,GAA2B;IAE3B,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,IAAI,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAkC,EAClC,KAAyB;IAEzB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACtG,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5F,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACjE,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,MAA2B,EAC3B,UAA4C,EAAE;IAE9C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE3C,MAAM,GAAG,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;IAClE,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,QAAQ,GACZ,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtD,iBAAiB,CAAC,YAAY,CAAC;QAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,YAAY,CAAC;IAClE,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzF,MAAM,QAAQ,GAAgC,EAAE,CAAC;IACjD,IAAI,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3C,IAAI,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAClC,IAAI,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACxC,IAAI,MAAM;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IACrC,IAAI,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACxC,IAAI,YAAY;QAAE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;IACvD,IAAI,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE3C,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAA2B,EAC3B,UAAkB,EAClB,QAAqC;IAErC,MAAM,UAAU,GAAG;QACjB,QAAQ,CAAC,QAAQ;QACjB,QAAQ,CAAC,KAAK;QACd,QAAQ,CAAC,OAAO;KACjB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO;QACL,EAAE,EAAE,GAAG,MAAM,aAAa,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QACrD,MAAM;QACN,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC;QAClC,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjF,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,6CAA6C;QACrD,gBAAgB,EAAE,QAAQ;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SetupImportItem, SetupImportSourceId, SetupImportTelegramSettings } from "./types.js";
|
|
2
|
+
export declare function extractTelegramSettings(raw: unknown, env: Record<string, string>): SetupImportTelegramSettings | undefined;
|
|
3
|
+
export declare function telegramCredentialItems(source: SetupImportSourceId, rootDir: string): SetupImportItem[];
|
|
4
|
+
export declare function buildTelegramItem(source: SetupImportSourceId, configPath: string, settings: SetupImportTelegramSettings): SetupImportItem;
|
|
5
|
+
//# sourceMappingURL=telegram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/cli/commands/setup/import/telegram.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AA8CpG,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,2BAA2B,GAAG,SAAS,CAiBzC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,eAAe,EAAE,CAoBnB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,2BAA2B,GACpC,eAAe,CAgBjB"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import { SOURCE_LABELS } from "./constants.js";
|
|
3
|
+
import { pathExists, readJson, safeImportName } from "./fs-utils.js";
|
|
4
|
+
import { collectRecords, isRecord, nestedRecord } from "./parse.js";
|
|
5
|
+
function secretString(value, env) {
|
|
6
|
+
if (typeof value === "string" && value.trim()) {
|
|
7
|
+
const match = /^\$\{([A-Za-z_][A-Za-z0-9_]*)\}$/.exec(value.trim());
|
|
8
|
+
if (match)
|
|
9
|
+
return env[match[1]];
|
|
10
|
+
return value.trim();
|
|
11
|
+
}
|
|
12
|
+
if (!isRecord(value))
|
|
13
|
+
return undefined;
|
|
14
|
+
if (value["source"] === "env" && typeof value["id"] === "string") {
|
|
15
|
+
return env[value["id"]];
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
function numberArray(value) {
|
|
20
|
+
if (!Array.isArray(value))
|
|
21
|
+
return undefined;
|
|
22
|
+
const numbers = value.flatMap((item) => {
|
|
23
|
+
if (typeof item === "number" && Number.isInteger(item))
|
|
24
|
+
return [item];
|
|
25
|
+
if (typeof item === "string") {
|
|
26
|
+
const parsed = parseInt(item, 10);
|
|
27
|
+
return Number.isInteger(parsed) ? [parsed] : [];
|
|
28
|
+
}
|
|
29
|
+
return [];
|
|
30
|
+
});
|
|
31
|
+
return numbers.length > 0 ? numbers : undefined;
|
|
32
|
+
}
|
|
33
|
+
function findTelegramRecord(records) {
|
|
34
|
+
for (const record of records) {
|
|
35
|
+
const channels = nestedRecord(record, "channels");
|
|
36
|
+
const telegram = channels ? nestedRecord(channels, "telegram") : undefined;
|
|
37
|
+
if (telegram)
|
|
38
|
+
return telegram;
|
|
39
|
+
const messaging = nestedRecord(record, "messaging");
|
|
40
|
+
const messagingTelegram = messaging ? nestedRecord(messaging, "telegram") : undefined;
|
|
41
|
+
if (messagingTelegram)
|
|
42
|
+
return messagingTelegram;
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
function findDefaultAccount(record) {
|
|
47
|
+
const accounts = record ? nestedRecord(record, "accounts") : undefined;
|
|
48
|
+
return accounts ? nestedRecord(accounts, "default") : undefined;
|
|
49
|
+
}
|
|
50
|
+
export function extractTelegramSettings(raw, env) {
|
|
51
|
+
const records = collectRecords(raw);
|
|
52
|
+
if (records.length === 0)
|
|
53
|
+
return undefined;
|
|
54
|
+
const telegram = findTelegramRecord(records);
|
|
55
|
+
const account = findDefaultAccount(telegram);
|
|
56
|
+
const searchable = [account, telegram].filter((item) => Boolean(item));
|
|
57
|
+
const botToken = searchable
|
|
58
|
+
.map((record) => secretString(record["botToken"] ?? record["bot_token"] ?? record["token"], env))
|
|
59
|
+
.find(Boolean);
|
|
60
|
+
const allowedUserIds = searchable
|
|
61
|
+
.map((record) => numberArray(record["allowFrom"] ?? record["allowedUserIds"] ?? record["allowed_user_ids"]))
|
|
62
|
+
.find(Boolean);
|
|
63
|
+
if (!botToken && !allowedUserIds)
|
|
64
|
+
return undefined;
|
|
65
|
+
return {
|
|
66
|
+
...(botToken ? { botToken } : {}),
|
|
67
|
+
...(allowedUserIds ? { allowedUserIds } : {}),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function telegramCredentialItems(source, rootDir) {
|
|
71
|
+
const credentialPaths = [
|
|
72
|
+
path.join(rootDir, "credentials", "telegram-default-allowFrom.json"),
|
|
73
|
+
].filter(pathExists);
|
|
74
|
+
return credentialPaths.flatMap((credentialPath) => {
|
|
75
|
+
const raw = readJson(credentialPath);
|
|
76
|
+
const allowedUserIds = isRecord(raw) ? numberArray(raw["allowFrom"] ?? raw["allowed_user_ids"]) : numberArray(raw);
|
|
77
|
+
if (!allowedUserIds)
|
|
78
|
+
return [];
|
|
79
|
+
return [{
|
|
80
|
+
id: `${source}:telegram:${safeImportName(path.basename(credentialPath))}`,
|
|
81
|
+
source,
|
|
82
|
+
sourceLabel: SOURCE_LABELS[source],
|
|
83
|
+
kind: "telegram",
|
|
84
|
+
label: "telegram allowed users",
|
|
85
|
+
sourcePath: credentialPath,
|
|
86
|
+
decision: "import",
|
|
87
|
+
reason: "Telegram allowed user IDs",
|
|
88
|
+
telegramSettings: { allowedUserIds },
|
|
89
|
+
}];
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export function buildTelegramItem(source, configPath, settings) {
|
|
93
|
+
const label = [
|
|
94
|
+
settings.botToken ? "bot token" : undefined,
|
|
95
|
+
settings.allowedUserIds?.length ? `${settings.allowedUserIds.length} allowed user(s)` : undefined,
|
|
96
|
+
].filter(Boolean).join(" / ");
|
|
97
|
+
return {
|
|
98
|
+
id: `${source}:telegram:${path.basename(configPath)}`,
|
|
99
|
+
source,
|
|
100
|
+
sourceLabel: SOURCE_LABELS[source],
|
|
101
|
+
kind: "telegram",
|
|
102
|
+
label: label || "telegram settings",
|
|
103
|
+
sourcePath: configPath,
|
|
104
|
+
decision: "import",
|
|
105
|
+
reason: "Telegram bot and allowed-user defaults",
|
|
106
|
+
telegramSettings: settings,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=telegram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../../../../src/interface/cli/commands/setup/import/telegram.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ProviderConfig } from "../../../../../base/llm/provider-config.js";
|
|
2
2
|
import type { MCPServerConfig } from "../../../../../base/types/mcp.js";
|
|
3
3
|
export type SetupImportSourceId = "hermes" | "openclaw";
|
|
4
|
-
export type SetupImportItemKind = "provider" | "skill" | "mcp" | "plugin";
|
|
4
|
+
export type SetupImportItemKind = "provider" | "skill" | "mcp" | "plugin" | "telegram";
|
|
5
5
|
export type SetupImportDecision = "import" | "copy_disabled" | "skip";
|
|
6
6
|
export interface SetupImportProviderSettings {
|
|
7
7
|
provider?: ProviderConfig["provider"];
|
|
@@ -12,6 +12,10 @@ export interface SetupImportProviderSettings {
|
|
|
12
12
|
codexCliPath?: string;
|
|
13
13
|
openclaw?: ProviderConfig["openclaw"];
|
|
14
14
|
}
|
|
15
|
+
export interface SetupImportTelegramSettings {
|
|
16
|
+
botToken?: string;
|
|
17
|
+
allowedUserIds?: number[];
|
|
18
|
+
}
|
|
15
19
|
export interface SetupImportItem {
|
|
16
20
|
id: string;
|
|
17
21
|
source: SetupImportSourceId;
|
|
@@ -22,6 +26,7 @@ export interface SetupImportItem {
|
|
|
22
26
|
decision: SetupImportDecision;
|
|
23
27
|
reason: string;
|
|
24
28
|
providerSettings?: SetupImportProviderSettings;
|
|
29
|
+
telegramSettings?: SetupImportTelegramSettings;
|
|
25
30
|
mcpServer?: MCPServerConfig;
|
|
26
31
|
}
|
|
27
32
|
export interface SetupImportSource {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/cli/commands/setup/import/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/cli/commands/setup/import/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,eAAe,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,mBAAmB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;IAC/C,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;IAC/C,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,mBAAmB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;IACpE,KAAK,EAAE,sBAAsB,EAAE,CAAC;CACjC"}
|
|
@@ -4,5 +4,5 @@ export declare function stepRootPreset(initialPreset?: RootPresetKey): Promise<R
|
|
|
4
4
|
export declare function stepProvider(initialProvider?: Provider): Promise<Provider>;
|
|
5
5
|
export declare function stepModel(provider: Provider, initialModel?: string): Promise<string>;
|
|
6
6
|
export declare function runCodexOAuthLogin(): Promise<string | undefined>;
|
|
7
|
-
export declare function stepApiKey(provider: Provider, detectedKeys: Record<string, boolean>, existingApiKey?: string): Promise<string | undefined>;
|
|
7
|
+
export declare function stepApiKey(provider: Provider, detectedKeys: Record<string, boolean>, existingApiKey?: string, adapter?: string): Promise<string | undefined>;
|
|
8
8
|
//# sourceMappingURL=steps-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps-provider.d.ts","sourceRoot":"","sources":["../../../../../src/interface/cli/commands/setup/steps-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAShE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAyB1F;AAED,wBAAsB,YAAY,CAAC,eAAe,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBhF;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C1F;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8BtE;
|
|
1
|
+
{"version":3,"file":"steps-provider.d.ts","sourceRoot":"","sources":["../../../../../src/interface/cli/commands/setup/steps-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAShE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAyB1F;AAED,wBAAsB,YAAY,CAAC,eAAe,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBhF;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C1F;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8BtE;AAYD,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyF7B"}
|
|
@@ -117,15 +117,58 @@ export async function runCodexOAuthLogin() {
|
|
|
117
117
|
p.log.error("Codex CLI not found. Install with: npm install -g @openai/codex");
|
|
118
118
|
return undefined;
|
|
119
119
|
}
|
|
120
|
-
|
|
120
|
+
function isLikelyCodexOAuthToken(value) {
|
|
121
|
+
if (!value)
|
|
122
|
+
return false;
|
|
123
|
+
const trimmed = value.trim();
|
|
124
|
+
return trimmed.startsWith("eyJ") && trimmed.split(".").length >= 3;
|
|
125
|
+
}
|
|
126
|
+
function requiresOpenAIApiKey(provider, adapter) {
|
|
127
|
+
return provider === "openai" && adapter !== "openai_codex_cli";
|
|
128
|
+
}
|
|
129
|
+
export async function stepApiKey(provider, detectedKeys, existingApiKey, adapter) {
|
|
121
130
|
const envKeyName = ENV_KEY_NAMES[provider];
|
|
122
131
|
if (!envKeyName)
|
|
123
132
|
return undefined;
|
|
133
|
+
if (provider === "openai" && adapter === "openai_codex_cli") {
|
|
134
|
+
const existingToken = await readCodexOAuthToken();
|
|
135
|
+
if (existingToken) {
|
|
136
|
+
p.log.info("Using existing Codex CLI OAuth login. No OpenAI API key will be saved.");
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
const authChoice = guardCancel(await p.select({
|
|
140
|
+
message: "Codex CLI authentication:",
|
|
141
|
+
options: [
|
|
142
|
+
{
|
|
143
|
+
value: "login",
|
|
144
|
+
label: "Login with OAuth (opens browser via Codex CLI)",
|
|
145
|
+
hint: "recommended for OpenAI Codex CLI adapter",
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
value: "skip",
|
|
149
|
+
label: "Skip for now",
|
|
150
|
+
hint: "run `codex login` before using this adapter",
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
initialValue: "login",
|
|
154
|
+
}));
|
|
155
|
+
if (authChoice === "login") {
|
|
156
|
+
await runCodexOAuthLogin();
|
|
157
|
+
}
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
124
160
|
if (detectedKeys[provider]) {
|
|
125
|
-
|
|
126
|
-
|
|
161
|
+
const envValue = process.env[envKeyName];
|
|
162
|
+
if (requiresOpenAIApiKey(provider, adapter) && isLikelyCodexOAuthToken(envValue)) {
|
|
163
|
+
p.log.warn(`${envKeyName} appears to contain a Codex OAuth token, not an OpenAI API key.`);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
p.log.info(`Using ${envKeyName} from environment.`);
|
|
167
|
+
return envValue;
|
|
168
|
+
}
|
|
127
169
|
}
|
|
128
|
-
|
|
170
|
+
const canKeepExisting = existingApiKey && !(requiresOpenAIApiKey(provider, adapter) && isLikelyCodexOAuthToken(existingApiKey));
|
|
171
|
+
if (canKeepExisting) {
|
|
129
172
|
const keyChoice = guardCancel(await p.select({
|
|
130
173
|
message: `${envKeyName} is already configured. What should setup do?`,
|
|
131
174
|
options: [
|
|
@@ -144,43 +187,19 @@ export async function stepApiKey(provider, detectedKeys, existingApiKey) {
|
|
|
144
187
|
if (keyChoice === "keep")
|
|
145
188
|
return existingApiKey;
|
|
146
189
|
}
|
|
147
|
-
if (provider
|
|
148
|
-
|
|
149
|
-
const oauthOptions = [
|
|
150
|
-
{
|
|
151
|
-
value: "login",
|
|
152
|
-
label: "Login with OAuth (opens browser via Codex CLI)",
|
|
153
|
-
hint: "runs npx @openai/codex login",
|
|
154
|
-
},
|
|
155
|
-
];
|
|
156
|
-
if (existingToken) {
|
|
157
|
-
oauthOptions.push({
|
|
158
|
-
value: "oauth",
|
|
159
|
-
label: "Use existing OAuth token",
|
|
160
|
-
hint: "from previous Codex CLI login",
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
oauthOptions.push({
|
|
164
|
-
value: "manual",
|
|
165
|
-
label: "Enter API key manually",
|
|
166
|
-
});
|
|
167
|
-
const authMethod = guardCancel(await p.select({
|
|
168
|
-
message: "Select authentication method:",
|
|
169
|
-
options: oauthOptions,
|
|
170
|
-
}));
|
|
171
|
-
if (authMethod === "login") {
|
|
172
|
-
const token = await runCodexOAuthLogin();
|
|
173
|
-
if (token)
|
|
174
|
-
return token;
|
|
175
|
-
p.log.info("Falling back to manual API key entry.");
|
|
176
|
-
}
|
|
177
|
-
else if (authMethod === "oauth" && existingToken) {
|
|
178
|
-
return existingToken;
|
|
179
|
-
}
|
|
190
|
+
else if (existingApiKey && requiresOpenAIApiKey(provider, adapter)) {
|
|
191
|
+
p.log.warn("Existing OpenAI auth looks like a Codex OAuth token and cannot be used for the OpenAI API adapter.");
|
|
180
192
|
}
|
|
181
193
|
const key = guardCancel(await p.password({
|
|
182
194
|
message: `Enter ${envKeyName}:`,
|
|
183
|
-
validate: (value) =>
|
|
195
|
+
validate: (value) => {
|
|
196
|
+
if (!value)
|
|
197
|
+
return "API key is required";
|
|
198
|
+
if (requiresOpenAIApiKey(provider, adapter) && isLikelyCodexOAuthToken(value)) {
|
|
199
|
+
return "Codex OAuth tokens cannot call OpenAI API endpoints. Enter an OpenAI API key instead.";
|
|
200
|
+
}
|
|
201
|
+
return undefined;
|
|
202
|
+
},
|
|
184
203
|
}));
|
|
185
204
|
if (!key) {
|
|
186
205
|
p.log.warn(`No API key provided. Set ${envKeyName} before running PulSeed.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps-provider.js","sourceRoot":"","sources":["../../../../../src/interface/cli/commands/setup/steps-provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"steps-provider.js","sourceRoot":"","sources":["../../../../../src/interface/cli/commands/setup/steps-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../../../../src/interface/cli/commands/setup-wizard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../../../../src/interface/cli/commands/setup-wizard.ts"],"names":[],"mappings":"AA+PA,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAqOtD"}
|
|
@@ -72,7 +72,9 @@ async function stepExecutionConfig(current) {
|
|
|
72
72
|
if (!adapter)
|
|
73
73
|
return { provider, model, adapter, apiKey: current?.apiKey };
|
|
74
74
|
const detectedKeys = detectApiKeys();
|
|
75
|
-
const apiKey = current?.provider === provider
|
|
75
|
+
const apiKey = current?.provider === provider
|
|
76
|
+
? await stepApiKey(provider, detectedKeys, current.apiKey, adapter)
|
|
77
|
+
: await stepApiKey(provider, detectedKeys, undefined, adapter);
|
|
76
78
|
return { provider, model, adapter, apiKey };
|
|
77
79
|
}
|
|
78
80
|
async function stepIdentityConfig(current) {
|
|
@@ -113,9 +115,45 @@ async function validateAndSaveProviderConfig(config) {
|
|
|
113
115
|
}
|
|
114
116
|
return 1;
|
|
115
117
|
}
|
|
116
|
-
|
|
118
|
+
const fileConfig = { ...config };
|
|
119
|
+
const apiKey = fileConfig.api_key;
|
|
120
|
+
delete fileConfig.api_key;
|
|
121
|
+
await saveProviderConfig(fileConfig);
|
|
122
|
+
if (apiKey) {
|
|
123
|
+
saveProviderApiKeyToEnv(config.provider, apiKey);
|
|
124
|
+
}
|
|
117
125
|
return undefined;
|
|
118
126
|
}
|
|
127
|
+
function saveProviderApiKeyToEnv(provider, apiKey) {
|
|
128
|
+
const envKey = provider === "openai"
|
|
129
|
+
? "OPENAI_API_KEY"
|
|
130
|
+
: provider === "anthropic"
|
|
131
|
+
? "ANTHROPIC_API_KEY"
|
|
132
|
+
: undefined;
|
|
133
|
+
if (!envKey)
|
|
134
|
+
return;
|
|
135
|
+
const dir = ensurePulseedDir();
|
|
136
|
+
const envPath = path.join(dir, ".env");
|
|
137
|
+
let lines = [];
|
|
138
|
+
try {
|
|
139
|
+
lines = fs.readFileSync(envPath, "utf-8").split(/\r?\n/);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
lines = [];
|
|
143
|
+
}
|
|
144
|
+
const replacement = `${envKey}=${apiKey}`;
|
|
145
|
+
let replaced = false;
|
|
146
|
+
lines = lines.map((line) => {
|
|
147
|
+
if (line.startsWith(`${envKey}=`)) {
|
|
148
|
+
replaced = true;
|
|
149
|
+
return replacement;
|
|
150
|
+
}
|
|
151
|
+
return line;
|
|
152
|
+
}).filter((line, index, all) => line || index < all.length - 1);
|
|
153
|
+
if (!replaced)
|
|
154
|
+
lines.push(replacement);
|
|
155
|
+
fs.writeFileSync(envPath, `${lines.join("\n")}\n`, "utf-8");
|
|
156
|
+
}
|
|
119
157
|
async function startDaemonDetached(baseDir) {
|
|
120
158
|
const scriptPath = process.argv[1];
|
|
121
159
|
if (!scriptPath) {
|
|
@@ -320,7 +358,7 @@ export async function runSetupWizard() {
|
|
|
320
358
|
fs.writeFileSync(daemonConfigPath, JSON.stringify(existing, null, 2), "utf-8");
|
|
321
359
|
}
|
|
322
360
|
catch {
|
|
323
|
-
p.log.warn("
|
|
361
|
+
p.log.warn("Setup saved, but could not save daemon port to daemon.json");
|
|
324
362
|
}
|
|
325
363
|
p.log.info("Daemon port " + finalAnswers.daemonPort + " saved. Start it later with pulseed daemon start or pulseed start --goal <goal-id>.");
|
|
326
364
|
}
|
|
@@ -331,7 +369,7 @@ export async function runSetupWizard() {
|
|
|
331
369
|
fs.writeFileSync(notifPath, JSON.stringify(finalAnswers.notificationConfig, null, 2));
|
|
332
370
|
}
|
|
333
371
|
catch (err) {
|
|
334
|
-
p.log.warn(`
|
|
372
|
+
p.log.warn(`Setup saved, but could not save notification config: ${err}`);
|
|
335
373
|
}
|
|
336
374
|
}
|
|
337
375
|
if (importSelection) {
|
|
@@ -343,7 +381,7 @@ export async function runSetupWizard() {
|
|
|
343
381
|
(failedCount > 0 ? ` (${failedCount} failed; see import report).` : "."));
|
|
344
382
|
}
|
|
345
383
|
catch (err) {
|
|
346
|
-
p.log.warn(`
|
|
384
|
+
p.log.warn(`Setup saved, but import side effects failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
347
385
|
}
|
|
348
386
|
}
|
|
349
387
|
if (finalAnswers.startDaemon) {
|
|
@@ -352,7 +390,7 @@ export async function runSetupWizard() {
|
|
|
352
390
|
}
|
|
353
391
|
catch (err) {
|
|
354
392
|
const message = err instanceof Error ? err.message : String(err);
|
|
355
|
-
p.log.warn(`
|
|
393
|
+
p.log.warn(`Setup saved, but daemon/gateway did not start: ${message}. ` +
|
|
356
394
|
"Run `pulseed daemon start --detach` to try again.");
|
|
357
395
|
}
|
|
358
396
|
}
|