deel-local-cli 1.12.0 → 1.13.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.ko.md +6 -5
- package/README.md +6 -5
- package/package.json +60 -60
- package/src/acp/map.js +30 -25
- package/src/acp/serve.js +810 -810
- package/src/agent/budget.js +156 -156
- package/src/agent/commit.js +32 -9
- package/src/agent/compact.js +441 -420
- package/src/agent/effort.js +308 -308
- package/src/agent/evolve.js +263 -263
- package/src/agent/loop.js +1728 -1707
- package/src/agent/memory.js +156 -156
- package/src/agent/mention.js +210 -210
- package/src/agent/recall.js +22 -9
- package/src/agent/session.js +1056 -1049
- package/src/backend/adapter.js +1355 -1159
- package/src/backend/cachemark.js +223 -150
- package/src/backend/detect.js +327 -327
- package/src/backend/http.js +3 -1
- package/src/backend/mcp.js +15 -3
- package/src/backend/price.js +69 -6
- package/src/backend/probe.js +17 -3
- package/src/backend/quota.js +274 -250
- package/src/backend/tokens.js +25 -3
- package/src/backend/toolfit.js +352 -352
- package/src/backend/wire.js +715 -600
- package/src/commands.js +3184 -3135
- package/src/config.js +39 -0
- package/src/i18n/en.js +545 -544
- package/src/i18n/ja.js +498 -497
- package/src/i18n/ko.js +592 -591
- package/src/i18n/zh.js +498 -497
- package/src/oneshot.js +625 -620
- package/src/pack/tar.js +23 -1
- package/src/pack/zip.js +19 -1
- package/src/plugins/manage.js +85 -5
- package/src/repl.js +2616 -2602
- package/src/safety/audit.js +22 -3
- package/src/safety/guard.js +124 -9
- package/src/safety/network.js +43 -0
- package/src/tools/fastgrep.js +15 -0
- package/src/tools/fsutil.js +291 -265
- package/src/tools/index.js +40 -3
- package/src/tools/jobs.js +87 -6
- package/src/tools/label.js +52 -0
- package/src/tools/spawn.js +114 -0
- package/src/tools/verify.js +358 -358
- package/src/tools/webfetch.js +28 -3
- package/src/ui/export.js +26 -10
- package/src/ui/pick.js +115 -115
- package/src/ui/status.js +617 -613
package/src/config.js
CHANGED
|
@@ -206,6 +206,45 @@ const 푼것 = new Map(); // 잠긴 값 → 푼 글. 한 판에 한 번만
|
|
|
206
206
|
let 열쇠탈 = null;
|
|
207
207
|
export function 열쇠탈소식() { const s = 열쇠탈; 열쇠탈 = null; return s; }
|
|
208
208
|
|
|
209
|
+
/**
|
|
210
|
+
* 이 이름의 환경변수는 **열쇠를 담나.**
|
|
211
|
+
*
|
|
212
|
+
* ── 왜 이 자가 있어야 하나 ────────────────────────────────────────────
|
|
213
|
+
*
|
|
214
|
+
* 열쇠는 두 이름으로 들어온다 — `DEEL_API_KEY` 하나, 그리고 프로필마다
|
|
215
|
+
* `DEEL_KEY_<프로필>`. 아래 resolveKey 가 그 둘을 다 읽는다.
|
|
216
|
+
*
|
|
217
|
+
* 그런데 **막는 쪽은 하나만 알고 있었다.** 자식에게 넘길 환경을 씻는 자
|
|
218
|
+
* (backend/mcp.js 의 열쇠뺀환경)도, 도구 출력에서 값을 가리는 자
|
|
219
|
+
* (agent/loop.js)도 `DEEL_API_KEY` 만 지웠다. 그래서 프로필 열쇠를 쓰는
|
|
220
|
+
* 사람은 `Bash({command:'env'})` 한 줄로 열쇠가 화면에 찍히고, 그 화면이
|
|
221
|
+
* 대화에 실려 **그 열쇠의 주인인 게이트웨이로** 나가고 `.deel/sessions/*.jsonl`
|
|
222
|
+
* 에 남는다.
|
|
223
|
+
*
|
|
224
|
+
* 하필 그 방법을 우리가 권한다 — pack/sbom.js 와 pack/sheet.en.js 의 사내
|
|
225
|
+
* 심사용 명세가 「환경변수를 쓰면 파일에 아예 안 남습니다」 라고 적어 뒀다.
|
|
226
|
+
* 권한 대로 한 사람만 샌 셈이다.
|
|
227
|
+
*
|
|
228
|
+
* 읽는 자리와 막는 자리가 **같은 자에게 물어야** 이런 일이 안 난다. 이름이
|
|
229
|
+
* 하나 늘면 여기만 고친다.
|
|
230
|
+
*
|
|
231
|
+
* 윈도우는 환경변수 이름의 대소문자를 안 가린다(`deel_api_key` 도 같은 값이다).
|
|
232
|
+
* 그래서 견줄 때 대문자로 올린다.
|
|
233
|
+
*/
|
|
234
|
+
export function 열쇠환경인가(이름) {
|
|
235
|
+
const n = String(이름 ?? '').toUpperCase();
|
|
236
|
+
return n === 'DEEL_API_KEY' || n.startsWith('DEEL_KEY_');
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/** 환경에 실제로 들어 있는 **열쇠 값들.** 가릴 때 쓴다. */
|
|
240
|
+
export function 환경속열쇠들(env = process.env) {
|
|
241
|
+
const out = [];
|
|
242
|
+
for (const [k, v] of Object.entries(env ?? {})) {
|
|
243
|
+
if (열쇠환경인가(k) && typeof v === 'string' && v) out.push(v);
|
|
244
|
+
}
|
|
245
|
+
return out;
|
|
246
|
+
}
|
|
247
|
+
|
|
209
248
|
export function resolveKey(profile) {
|
|
210
249
|
const byName = profile?.id ? process.env[`DEEL_KEY_${profile.id.toUpperCase()}`] : null;
|
|
211
250
|
const 값 = byName || process.env.DEEL_API_KEY || profile?.apiKey || '';
|