@larksuite/openclaw-lark-tools 1.0.26 → 1.0.27

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.
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.runInstallAuthFlow = runInstallAuthFlow;
7
+ exports.promptStorageMode = promptStorageMode;
7
8
  const inquirer_1 = __importDefault(require("inquirer"));
8
9
  const chalk_1 = __importDefault(require("chalk"));
9
10
  const ora_1 = __importDefault(require("ora"));
@@ -16,7 +17,7 @@ const feishu_auth_1 = require("./feishu-auth");
16
17
  * @param options Auth options (env, lane, debug)
17
18
  * @returns Promise<AuthConfig> The validated App ID and App Secret
18
19
  */
19
- async function runInstallAuthFlow(currentAppId, currentAppSecret, options = {}) {
20
+ async function runInstallAuthFlow(currentAppId, currentAppSecret, options = {}, hasSecretRef = false) {
20
21
  let targetAppId = currentAppId;
21
22
  let targetAppSecret = currentAppSecret;
22
23
  // 1. Check for existing appId and Confirm
@@ -31,7 +32,7 @@ async function runInstallAuthFlow(currentAppId, currentAppSecret, options = {})
31
32
  ]);
32
33
  if (useExisting) {
33
34
  // Yes branch: Proceed directly to verification
34
- return handleExistingInstallation(targetAppId, targetAppSecret);
35
+ return handleExistingInstallation(targetAppId, targetAppSecret, hasSecretRef);
35
36
  }
36
37
  else {
37
38
  // No branch: User explicitly rejected the existing one.
@@ -158,7 +159,7 @@ async function handleNewInstallation(options) {
158
159
  // Fallback
159
160
  return promptAndValidateCredentials();
160
161
  }
161
- async function handleExistingInstallation(appId, appSecret) {
162
+ async function handleExistingInstallation(appId, appSecret, hasSecretRef = false) {
162
163
  let validatedSecret = appSecret;
163
164
  // If we don't have a secret, or we need to validate, ensure we have one to test
164
165
  if (!validatedSecret) {
@@ -179,7 +180,7 @@ async function handleExistingInstallation(appId, appSecret) {
179
180
  // console.log(chalk.green('✓ Credentials verified (✓ 凭证校验成功)'));
180
181
  // Prompt for optimization
181
182
  // await showOptimizationPrompt(appId);
182
- return { appId, appSecret: validatedSecret };
183
+ return { appId, appSecret: validatedSecret, isExisting: true };
183
184
  }
184
185
  else {
185
186
  console.log(chalk_1.default.red('✗ Invalid App ID or App Secret (✗ 无效的 App ID 或 App Secret)'));
@@ -226,4 +227,24 @@ async function promptAndValidateCredentials(defaultAppId, silent = false) {
226
227
  }
227
228
  }
228
229
  }
230
+ /**
231
+ * Prompts the user to choose a secret storage mode during interactive install.
232
+ */
233
+ async function promptStorageMode(defaultMode) {
234
+ const modeChoices = [
235
+ { name: 'Write to a separate file (recommended) (写入独立文件,推荐)', value: 'file' },
236
+ { name: 'Environment variable reference (环境变量引用)', value: 'env' },
237
+ { name: 'Store as plaintext in config (明文存储在配置中)', value: 'plaintext' },
238
+ ];
239
+ const { mode } = await inquirer_1.default.prompt([
240
+ {
241
+ type: 'list',
242
+ name: 'mode',
243
+ message: 'How would you like to store the App Secret (请选择 App Secret 的存储方式)?',
244
+ choices: modeChoices,
245
+ default: defaultMode,
246
+ }
247
+ ]);
248
+ return mode;
249
+ }
229
250
  //# sourceMappingURL=install-prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-prompts.js","sourceRoot":"","sources":["../../src/utils/install-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-prompts.js","sourceRoot":"","sources":["../../src/utils/install-prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { OpenClawConfig } from './config';
2
+ export declare const DEFAULT_SECRETS_FILE = "~/.openclaw/credentials/lark.secrets.json";
3
+ export declare const DEFAULT_ENV_VAR = "LARK_APP_SECRET";
4
+ export declare const DEFAULT_FILE_PROVIDER_NAME = "lark-secrets";
5
+ export declare const DEFAULT_JSON_POINTER = "/lark/appSecret";
6
+ export interface SecretRef {
7
+ source: 'env' | 'file' | 'exec';
8
+ provider: string;
9
+ id: string;
10
+ }
11
+ export type SecretInput = string | SecretRef;
12
+ export declare function isSecretRef(obj: any): obj is SecretRef;
13
+ export declare function getByJsonPointer(obj: any, pointer: string): any;
14
+ export declare function setByJsonPointer(obj: Record<string, any>, pointer: string, value: any): void;
15
+ export declare function resolveSecretValue(input: SecretInput, config: OpenClawConfig): Promise<string | undefined>;
16
+ export declare function writeSecretToFile(params: {
17
+ secretValue: string;
18
+ filePath?: string;
19
+ jsonPointer?: string;
20
+ }): Promise<SecretRef>;
21
+ export declare function writeSecretToEnv(params: {
22
+ secretValue: string;
23
+ envVar?: string;
24
+ openclawDir: string;
25
+ }): Promise<SecretRef>;
26
+ export declare function ensureFileProviderInConfig(config: OpenClawConfig, filePath: string, providerName?: string): void;
27
+ export declare function describeSecretRef(ref: SecretRef): string;
28
+ //# sourceMappingURL=secret-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-ref.d.ts","sourceRoot":"","sources":["../../src/utils/secret-ref.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAChF,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAGtD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAG7C,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,SAAS,CAStD;AAWD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAU/D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAY5F;AAGD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoE7B;AAGD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,SAAS,CAAC,CAyBrB;AAGD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,SAAS,CAAC,CA4BrB;AAGD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI,CAaN;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAWxD"}
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DEFAULT_JSON_POINTER = exports.DEFAULT_FILE_PROVIDER_NAME = exports.DEFAULT_ENV_VAR = exports.DEFAULT_SECRETS_FILE = void 0;
37
+ exports.isSecretRef = isSecretRef;
38
+ exports.getByJsonPointer = getByJsonPointer;
39
+ exports.setByJsonPointer = setByJsonPointer;
40
+ exports.resolveSecretValue = resolveSecretValue;
41
+ exports.writeSecretToFile = writeSecretToFile;
42
+ exports.writeSecretToEnv = writeSecretToEnv;
43
+ exports.ensureFileProviderInConfig = ensureFileProviderInConfig;
44
+ exports.describeSecretRef = describeSecretRef;
45
+ const fs = __importStar(require("fs-extra"));
46
+ const path = __importStar(require("path"));
47
+ const os = __importStar(require("os"));
48
+ const child_process_1 = require("child_process");
49
+ const config_1 = require("./config");
50
+ // ---- Constants ----
51
+ exports.DEFAULT_SECRETS_FILE = '~/.openclaw/credentials/lark.secrets.json';
52
+ exports.DEFAULT_ENV_VAR = 'LARK_APP_SECRET';
53
+ exports.DEFAULT_FILE_PROVIDER_NAME = 'lark-secrets';
54
+ exports.DEFAULT_JSON_POINTER = '/lark/appSecret';
55
+ // ---- Type guard ----
56
+ function isSecretRef(obj) {
57
+ return (obj !== null &&
58
+ typeof obj === 'object' &&
59
+ typeof obj.source === 'string' &&
60
+ typeof obj.provider === 'string' &&
61
+ typeof obj.id === 'string' &&
62
+ ['env', 'file', 'exec'].includes(obj.source));
63
+ }
64
+ // ---- Path resolution ----
65
+ function resolveUserPath(p) {
66
+ if (p.startsWith('~/') || p === '~') {
67
+ return path.join(os.homedir(), p.slice(1));
68
+ }
69
+ return path.resolve(p);
70
+ }
71
+ // ---- JSON Pointer (RFC 6901) ----
72
+ function getByJsonPointer(obj, pointer) {
73
+ if (pointer === '' || pointer === '/')
74
+ return obj;
75
+ const tokens = pointer.split('/').slice(1);
76
+ let current = obj;
77
+ for (const token of tokens) {
78
+ const unescaped = token.replace(/~1/g, '/').replace(/~0/g, '~');
79
+ if (current === null || current === undefined || typeof current !== 'object')
80
+ return undefined;
81
+ current = current[unescaped];
82
+ }
83
+ return current;
84
+ }
85
+ function setByJsonPointer(obj, pointer, value) {
86
+ const tokens = pointer.split('/').slice(1);
87
+ let current = obj;
88
+ for (let i = 0; i < tokens.length - 1; i++) {
89
+ const key = tokens[i].replace(/~1/g, '/').replace(/~0/g, '~');
90
+ if (current[key] === undefined || current[key] === null || typeof current[key] !== 'object') {
91
+ current[key] = {};
92
+ }
93
+ current = current[key];
94
+ }
95
+ const lastKey = tokens[tokens.length - 1].replace(/~1/g, '/').replace(/~0/g, '~');
96
+ current[lastKey] = value;
97
+ }
98
+ // ---- Resolve ----
99
+ async function resolveSecretValue(input, config) {
100
+ if (typeof input === 'string')
101
+ return input;
102
+ switch (input.source) {
103
+ case 'env': {
104
+ // 1. Check process environment first
105
+ const val = process.env[input.id];
106
+ if (val)
107
+ return val;
108
+ // 2. Fall back to reading ~/.openclaw/.env file
109
+ try {
110
+ const envFilePath = path.join((0, config_1.getOpenClawDir)(), '.env');
111
+ if (await fs.pathExists(envFilePath)) {
112
+ const envContent = await fs.readFile(envFilePath, 'utf8');
113
+ const lineRegex = new RegExp(`^${input.id}=(.*)$`, 'm');
114
+ const match = envContent.match(lineRegex);
115
+ if (match && match[1])
116
+ return match[1];
117
+ }
118
+ }
119
+ catch {
120
+ // ignore read errors
121
+ }
122
+ return undefined;
123
+ }
124
+ case 'file': {
125
+ const provider = config.secrets?.providers?.[input.provider];
126
+ if (!provider || provider.source !== 'file')
127
+ return undefined;
128
+ const filePath = resolveUserPath(provider.path);
129
+ if (!await fs.pathExists(filePath))
130
+ return undefined;
131
+ // Validate file permissions — openclaw rejects files that are group/world accessible
132
+ if (process.platform !== 'win32') {
133
+ const stat = await fs.lstat(filePath);
134
+ if (stat.isSymbolicLink()) {
135
+ throw new Error(`Secret file at ${filePath} must not be a symlink.`);
136
+ }
137
+ if (!stat.isFile()) {
138
+ throw new Error(`Secret file at ${filePath} must be a regular file.`);
139
+ }
140
+ if (!(0, config_1.isPermissionSecure)(stat.mode)) {
141
+ throw new Error(`Secret file permissions are too open (${filePath}). ` +
142
+ `openclaw requires 600. Run: chmod 600 "${filePath}"`);
143
+ }
144
+ }
145
+ try {
146
+ const data = await fs.readJSON(filePath);
147
+ if (provider.mode === 'singleValue')
148
+ return String(data);
149
+ return getByJsonPointer(data, input.id);
150
+ }
151
+ catch (e) {
152
+ if (e.message?.includes('permissions are too open') || e.message?.includes('must not be a symlink') || e.message?.includes('must be a regular file')) {
153
+ throw e;
154
+ }
155
+ return undefined;
156
+ }
157
+ }
158
+ case 'exec': {
159
+ try {
160
+ const result = (0, child_process_1.execSync)('openclaw', {
161
+ input: JSON.stringify(['config', 'resolve-secret', '--source', input.source, '--provider', input.provider, '--id', input.id]),
162
+ encoding: 'utf-8',
163
+ timeout: 30000,
164
+ stdio: ['pipe', 'pipe', 'pipe'],
165
+ });
166
+ return result?.trim() || undefined;
167
+ }
168
+ catch {
169
+ return undefined;
170
+ }
171
+ }
172
+ }
173
+ }
174
+ // ---- Write: file mode ----
175
+ async function writeSecretToFile(params) {
176
+ const filePath = resolveUserPath(params.filePath ?? exports.DEFAULT_SECRETS_FILE);
177
+ const pointer = params.jsonPointer ?? exports.DEFAULT_JSON_POINTER;
178
+ // Ensure directory exists with secure permissions (0o700)
179
+ await (0, config_1.ensureDirSecure)(path.dirname(filePath));
180
+ // Read existing content
181
+ let existing = {};
182
+ if (await fs.pathExists(filePath)) {
183
+ try {
184
+ existing = await fs.readJSON(filePath);
185
+ }
186
+ catch {
187
+ existing = {};
188
+ }
189
+ }
190
+ // Set value by JSON Pointer
191
+ setByJsonPointer(existing, pointer, params.secretValue);
192
+ // Write file with secure permissions
193
+ await fs.writeJSON(filePath, existing, { spaces: 2, mode: 0o600 });
194
+ await fs.chmod(filePath, 0o600);
195
+ return {
196
+ source: 'file',
197
+ provider: exports.DEFAULT_FILE_PROVIDER_NAME,
198
+ id: pointer,
199
+ };
200
+ }
201
+ // ---- Write: env mode ----
202
+ async function writeSecretToEnv(params) {
203
+ const envVar = params.envVar ?? exports.DEFAULT_ENV_VAR;
204
+ const envFilePath = path.join(params.openclawDir, '.env');
205
+ let envContent = '';
206
+ if (await fs.pathExists(envFilePath)) {
207
+ envContent = await fs.readFile(envFilePath, 'utf8');
208
+ }
209
+ const lineRegex = new RegExp(`^${envVar}=.*$`, 'm');
210
+ const newLine = `${envVar}=${params.secretValue}`;
211
+ if (lineRegex.test(envContent)) {
212
+ envContent = envContent.replace(lineRegex, newLine);
213
+ }
214
+ else {
215
+ envContent = envContent.trimEnd() + '\n' + newLine + '\n';
216
+ }
217
+ await (0, config_1.ensureDirSecure)(path.dirname(envFilePath));
218
+ await fs.writeFile(envFilePath, envContent, { mode: 0o600 });
219
+ if (process.platform !== 'win32') {
220
+ await fs.chmod(envFilePath, 0o600);
221
+ }
222
+ return {
223
+ source: 'env',
224
+ provider: 'default',
225
+ id: envVar,
226
+ };
227
+ }
228
+ // ---- Config helpers ----
229
+ function ensureFileProviderInConfig(config, filePath, providerName) {
230
+ const name = providerName ?? exports.DEFAULT_FILE_PROVIDER_NAME;
231
+ if (!config.secrets)
232
+ config.secrets = {};
233
+ if (!config.secrets.providers)
234
+ config.secrets.providers = {};
235
+ if (!config.secrets.providers[name]) {
236
+ config.secrets.providers[name] = {
237
+ source: 'file',
238
+ path: filePath,
239
+ };
240
+ }
241
+ else if (config.secrets.providers[name].path !== filePath) {
242
+ // Actual write path differs from provider config — update to keep in sync
243
+ config.secrets.providers[name].path = filePath;
244
+ }
245
+ }
246
+ function describeSecretRef(ref) {
247
+ switch (ref.source) {
248
+ case 'env':
249
+ return `env:${ref.id}`;
250
+ case 'file':
251
+ return `file:${ref.provider}:${ref.id}`;
252
+ case 'exec':
253
+ return `exec:${ref.provider}:${ref.id}`;
254
+ default:
255
+ return `${ref.source}:${ref.provider}:${ref.id}`;
256
+ }
257
+ }
258
+ //# sourceMappingURL=secret-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-ref.js","sourceRoot":"","sources":["../../src/utils/secret-ref.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@larksuite/openclaw-lark-tools",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [