deel-local-cli 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.ko.md +32 -26
  2. package/README.md +32 -26
  3. package/bin/deel.js +6 -1
  4. package/package.json +3 -2
  5. package/src/acp/map.js +367 -367
  6. package/src/acp/serve.js +830 -810
  7. package/src/agent/budget.js +156 -156
  8. package/src/agent/commit.js +534 -534
  9. package/src/agent/compact.js +441 -441
  10. package/src/agent/effort.js +308 -308
  11. package/src/agent/evolve.js +263 -263
  12. package/src/agent/loop.js +1755 -1728
  13. package/src/agent/memory.js +156 -156
  14. package/src/agent/mention.js +210 -210
  15. package/src/agent/recall.js +222 -222
  16. package/src/agent/session.js +1056 -1056
  17. package/src/backend/adapter.js +1355 -1355
  18. package/src/backend/cachemark.js +223 -223
  19. package/src/backend/detect.js +327 -327
  20. package/src/backend/http.js +460 -460
  21. package/src/backend/mcp.js +407 -407
  22. package/src/backend/price.js +260 -260
  23. package/src/backend/probe.js +487 -487
  24. package/src/backend/quota.js +274 -274
  25. package/src/backend/tokens.js +59 -59
  26. package/src/backend/toolfit.js +352 -352
  27. package/src/backend/wire.js +715 -715
  28. package/src/cmdnames.js +68 -0
  29. package/src/commands.js +3116 -3184
  30. package/src/config.js +283 -283
  31. package/src/i18n/en.js +545 -545
  32. package/src/i18n/ja.js +498 -498
  33. package/src/i18n/ko.js +592 -592
  34. package/src/i18n/zh.js +498 -498
  35. package/src/oneshot.js +685 -625
  36. package/src/pack/selfpack.js +15 -2
  37. package/src/pack/sheet.en.js +16 -2
  38. package/src/pack/tar.js +154 -154
  39. package/src/pack/zip.js +235 -235
  40. package/src/plugins/manage.js +416 -416
  41. package/src/repl.js +2616 -2616
  42. package/src/safety/audit.js +148 -148
  43. package/src/safety/guard.js +714 -641
  44. package/src/safety/network.js +200 -200
  45. package/src/tools/fastgrep.js +229 -229
  46. package/src/tools/fsutil.js +312 -291
  47. package/src/tools/index.js +2590 -2560
  48. package/src/tools/jobs.js +876 -876
  49. package/src/tools/spawn.js +213 -213
  50. package/src/tools/verify.js +358 -358
  51. package/src/tools/webfetch.js +418 -418
  52. package/src/ui/export.js +233 -233
  53. package/src/ui/pick.js +115 -115
  54. package/src/ui/status.js +617 -617
@@ -1,59 +1,59 @@
1
- /*
2
- * 토큰을 대략 센다.
3
- *
4
- * ── 왜 여기 있나 ────────────────────────────────────────────────────────
5
- *
6
- * 이 함수는 agent/session.js 안에 있었다. 그런데 재는 자가 필요한 자리가
7
- * 거기 하나가 아니다 — backend/cachemark.js 도 「이 대화가 캐시에 잡힐 만한
8
- * 크기인가」 를 재야 하는데, cachemark 는 아무것도 안 들여오는 잎 모듈이라
9
- * session.js 를 부르면 순환이 된다(session 이 cachemark 의 조각표를 쓴다).
10
- *
11
- * 그래서 cachemark 는 제 나름대로 **글자 수를 토큰의 두 배로** 쳤다. 영어와
12
- * 코드에서만 맞는 셈이라, 실제로는 2,300토큰인 대화를 4,096토큰 문턱을 넘었다고
13
- * 답했다. 안 잡힐 표식을 붙여 놓고 화면에는 「캐시 표식」 이라고 적혔다.
14
- *
15
- * 재는 자가 둘이면 언젠가 둘이 어긋난다. 그래서 자를 **잎으로 내려서** 한
16
- * 벌만 둔다. session.js 는 이것을 그대로 다시 내보내므로 부르던 자리는 그대로다.
17
- *
18
- * ── 얼마나 맞나 ────────────────────────────────────────────────────────
19
- *
20
- * 정확한 토크나이저는 안 쓴다 — 의존성 0개가 이 프로그램의 약속이고, 창구마다
21
- * 토크나이저가 다르므로 하나를 골라 박아도 다른 창구에서는 또 틀린다.
22
- * 대신 서버가 실제 값을 알려 주면 그 값으로 배수를 배운다(session.js 의 배운다).
23
- * 여기는 **배우기 전의 첫 짐작**이다.
24
- *
25
- * 한글(자모 포함)·일본어·한자 글자당 1토큰
26
- * 그 밖(영문·코드) 3.6글자당 1토큰
27
- */
28
- /*
29
- * ── 한글은 완성형만 한글이 아니다 ───────────────────────────────────────
30
- *
31
- * 여기가 완성형 음절(가–힣)만 셌다. 그래서 아래 것들이 **영문 취급**을 받아
32
- * 3.6분의 1로 세어졌다:
33
- *
34
- * ㅋㅋㅋ ㅎㅎ ㅠㅠ ㅡㅡ 호환 자모 (U+3130–318F) — 대화에 제일 흔하다
35
- * ᄀ ᅡ ᆨ 첫가끝 자모 (U+1100–11FF) — 맥에서 만든 파일
36
- * 이름과 그 파일 내용이 이 꼴(NFD)로 온다
37
- *
38
- * 덜 센 값은 화면 숫자로 안 끝난다. 남은 자리를 넉넉히 보고 → 접기를 늦게
39
- * 켜고 → 실제로는 넘친 채로 요청을 보낸다. 한국어를 쓰는 사람이 가장 자주
40
- * 치는 글자가 하필 이 칸이었다.
41
- */
42
- const 자모인가 = (cp) => (
43
- (cp >= 0x1100 && cp <= 0x11ff) // 첫가끝 (NFD)
44
- || (cp >= 0x3130 && cp <= 0x318f) // 호환 자모 (ㅋ ㅎ ㅠ …)
45
- || (cp >= 0xa960 && cp <= 0xa97f) // 확장 A
46
- || (cp >= 0xd7b0 && cp <= 0xd7ff) // 확장 B
47
- );
48
-
49
- export function estimateTokens(text) {
50
- const s = String(text ?? '');
51
- let cjk = 0;
52
- for (const ch of s) {
53
- const cp = ch.codePointAt(0);
54
- if ((cp >= 0xac00 && cp <= 0xd7a3) || (cp >= 0x3040 && cp <= 0x30ff) || (cp >= 0x4e00 && cp <= 0x9fff)
55
- || 자모인가(cp)) cjk++;
56
- }
57
- const rest = s.length - cjk;
58
- return Math.ceil(cjk + rest / 3.6);
59
- }
1
+ /*
2
+ * 토큰을 대략 센다.
3
+ *
4
+ * ── 왜 여기 있나 ────────────────────────────────────────────────────────
5
+ *
6
+ * 이 함수는 agent/session.js 안에 있었다. 그런데 재는 자가 필요한 자리가
7
+ * 거기 하나가 아니다 — backend/cachemark.js 도 「이 대화가 캐시에 잡힐 만한
8
+ * 크기인가」 를 재야 하는데, cachemark 는 아무것도 안 들여오는 잎 모듈이라
9
+ * session.js 를 부르면 순환이 된다(session 이 cachemark 의 조각표를 쓴다).
10
+ *
11
+ * 그래서 cachemark 는 제 나름대로 **글자 수를 토큰의 두 배로** 쳤다. 영어와
12
+ * 코드에서만 맞는 셈이라, 실제로는 2,300토큰인 대화를 4,096토큰 문턱을 넘었다고
13
+ * 답했다. 안 잡힐 표식을 붙여 놓고 화면에는 「캐시 표식」 이라고 적혔다.
14
+ *
15
+ * 재는 자가 둘이면 언젠가 둘이 어긋난다. 그래서 자를 **잎으로 내려서** 한
16
+ * 벌만 둔다. session.js 는 이것을 그대로 다시 내보내므로 부르던 자리는 그대로다.
17
+ *
18
+ * ── 얼마나 맞나 ────────────────────────────────────────────────────────
19
+ *
20
+ * 정확한 토크나이저는 안 쓴다 — 의존성 0개가 이 프로그램의 약속이고, 창구마다
21
+ * 토크나이저가 다르므로 하나를 골라 박아도 다른 창구에서는 또 틀린다.
22
+ * 대신 서버가 실제 값을 알려 주면 그 값으로 배수를 배운다(session.js 의 배운다).
23
+ * 여기는 **배우기 전의 첫 짐작**이다.
24
+ *
25
+ * 한글(자모 포함)·일본어·한자 글자당 1토큰
26
+ * 그 밖(영문·코드) 3.6글자당 1토큰
27
+ */
28
+ /*
29
+ * ── 한글은 완성형만 한글이 아니다 ───────────────────────────────────────
30
+ *
31
+ * 여기가 완성형 음절(가–힣)만 셌다. 그래서 아래 것들이 **영문 취급**을 받아
32
+ * 3.6분의 1로 세어졌다:
33
+ *
34
+ * ㅋㅋㅋ ㅎㅎ ㅠㅠ ㅡㅡ 호환 자모 (U+3130–318F) — 대화에 제일 흔하다
35
+ * ᄀ ᅡ ᆨ 첫가끝 자모 (U+1100–11FF) — 맥에서 만든 파일
36
+ * 이름과 그 파일 내용이 이 꼴(NFD)로 온다
37
+ *
38
+ * 덜 센 값은 화면 숫자로 안 끝난다. 남은 자리를 넉넉히 보고 → 접기를 늦게
39
+ * 켜고 → 실제로는 넘친 채로 요청을 보낸다. 한국어를 쓰는 사람이 가장 자주
40
+ * 치는 글자가 하필 이 칸이었다.
41
+ */
42
+ const 자모인가 = (cp) => (
43
+ (cp >= 0x1100 && cp <= 0x11ff) // 첫가끝 (NFD)
44
+ || (cp >= 0x3130 && cp <= 0x318f) // 호환 자모 (ㅋ ㅎ ㅠ …)
45
+ || (cp >= 0xa960 && cp <= 0xa97f) // 확장 A
46
+ || (cp >= 0xd7b0 && cp <= 0xd7ff) // 확장 B
47
+ );
48
+
49
+ export function estimateTokens(text) {
50
+ const s = String(text ?? '');
51
+ let cjk = 0;
52
+ for (const ch of s) {
53
+ const cp = ch.codePointAt(0);
54
+ if ((cp >= 0xac00 && cp <= 0xd7a3) || (cp >= 0x3040 && cp <= 0x30ff) || (cp >= 0x4e00 && cp <= 0x9fff)
55
+ || 자모인가(cp)) cjk++;
56
+ }
57
+ const rest = s.length - cjk;
58
+ return Math.ceil(cjk + rest / 3.6);
59
+ }