deel-local-cli 1.20.12 → 2.0.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 (155) hide show
  1. package/README.ko.md +96 -77
  2. package/README.md +119 -80
  3. package/bin/deel.js +398 -32
  4. package/package.json +2 -1
  5. package/src/acp/jsonrpc.js +87 -7
  6. package/src/acp/map.js +62 -13
  7. package/src/acp/serve.js +338 -30
  8. package/src/agent/agents.js +110 -12
  9. package/src/agent/askcheck.js +50 -6
  10. package/src/agent/asks.js +59 -5
  11. package/src/agent/budget.js +9 -2
  12. package/src/agent/card.js +8 -2
  13. package/src/agent/commit.js +168 -16
  14. package/src/agent/compact.js +93 -21
  15. package/src/agent/{/354/213/240/353/242/260/353/217/204.js → confidence.js} +1 -1
  16. package/src/agent/effort.js +85 -15
  17. package/src/agent/evidence.js +63 -7
  18. package/src/agent/evolve.js +132 -24
  19. package/src/agent/grade.js +12 -3
  20. package/src/agent/loop.js +408 -81
  21. package/src/agent/memory.js +176 -29
  22. package/src/agent/mention.js +22 -5
  23. package/src/agent/models.js +31 -7
  24. package/src/agent/modes.js +25 -10
  25. package/src/agent/outschema.js +381 -56
  26. package/src/agent/pins.js +33 -2
  27. package/src/agent/project.js +73 -8
  28. package/src/agent/recall.js +40 -9
  29. package/src/agent/{/354/204/261/355/225/234/352/270/260/353/241/235.js → recordshape.js} +19 -8
  30. package/src/agent/review.js +143 -13
  31. package/src/agent/route.js +506 -32
  32. package/src/agent/salvage.js +2 -1
  33. package/src/agent/session.js +457 -31
  34. package/src/agent/store.js +232 -22
  35. package/src/agent/threads.js +52 -3
  36. package/src/backend/adapter.js +508 -85
  37. package/src/backend/azure.js +12 -1
  38. package/src/backend/cachemark.js +31 -5
  39. package/src/backend/clientcert.js +23 -1
  40. package/src/backend/ctxsize.js +56 -9
  41. package/src/backend/detect.js +252 -19
  42. package/src/backend/http.js +383 -42
  43. package/src/backend/learn.js +101 -11
  44. package/src/backend/mcp.js +333 -24
  45. package/src/backend/price.js +61 -13
  46. package/src/backend/probe.js +188 -36
  47. package/src/backend/proxy.js +108 -14
  48. package/src/backend/quota.js +226 -30
  49. package/src/backend/retry.js +46 -3
  50. package/src/backend/scan.js +47 -10
  51. package/src/backend/scanui.js +57 -7
  52. package/src/backend/toolfit.js +204 -22
  53. package/src/backend/vision.js +14 -1
  54. package/src/backend/wire.js +58 -10
  55. package/src/cmdnames.js +16 -0
  56. package/src/commands/common.js +70 -0
  57. package/src/commands/extend.js +300 -0
  58. package/src/commands/model.js +852 -0
  59. package/src/commands/view.js +328 -0
  60. package/src/commands/work.js +823 -0
  61. package/src/commands.js +193 -2082
  62. package/src/completion.js +45 -3
  63. package/src/config.js +452 -39
  64. package/src/configexplain.js +125 -14
  65. package/src/doctor.js +164 -26
  66. package/src/i18n/en.js +22 -0
  67. package/src/i18n/index.js +31 -1
  68. package/src/i18n/ja.js +25 -1
  69. package/src/i18n/ko.js +25 -2
  70. package/src/i18n/zh.js +25 -1
  71. package/src/lsp/client.js +111 -9
  72. package/src/lsp/servers.js +86 -22
  73. package/src/oneshot.js +325 -65
  74. package/src/pack/sbom.js +28 -5
  75. package/src/pack/selfpack.js +54 -5
  76. package/src/pack/sheet.en.js +24 -3
  77. package/src/pack/tar.js +45 -8
  78. package/src/pack/zip.js +103 -8
  79. package/src/plugins/manage.js +165 -14
  80. package/src/preview/serve.js +239 -23
  81. package/src/providers/bedrock.js +30 -5
  82. package/src/providers/gemini.js +8 -0
  83. package/src/providers/index.js +17 -1
  84. package/src/repl.js +254 -61
  85. package/src/report.js +7 -2
  86. package/src/reset.js +151 -25
  87. package/src/safety/audit.js +108 -8
  88. package/src/safety/authcmd.js +75 -5
  89. package/src/safety/guard.js +507 -15
  90. package/src/safety/hooks.js +172 -20
  91. package/src/safety/keystore.js +178 -18
  92. package/src/safety/network.js +209 -6
  93. package/src/safety/policy.js +377 -36
  94. package/src/safety/runmode.js +9 -2
  95. package/src/safety/secrets.js +243 -17
  96. package/src/safety/shellenv.js +64 -3
  97. package/src/safety/trust.js +298 -32
  98. package/src/safety/undo.js +409 -17
  99. package/src/setup.js +175 -17
  100. package/src/skills/discover.js +122 -19
  101. package/src/stats.js +57 -16
  102. package/src/tools/{/355/231/225/354/235/270/353/262/225.js → checkmethods.js} +26 -1
  103. package/src/tools/clipboard.js +53 -20
  104. package/src/tools/convert.js +118 -37
  105. package/src/tools/desc.en.js +48 -5
  106. package/src/tools/doc2md.js +11 -1
  107. package/src/tools/docs.js +94 -18
  108. package/src/tools/edit-match.js +212 -13
  109. package/src/tools/encoding.js +525 -28
  110. package/src/tools/excel-com.js +63 -15
  111. package/src/tools/excel.js +12 -7
  112. package/src/tools/fastgrep.js +444 -36
  113. package/src/tools/fig.js +40 -9
  114. package/src/tools/fsutil.js +235 -21
  115. package/src/tools/hwpxwrite.js +80 -19
  116. package/src/tools/ignore.js +55 -7
  117. package/src/tools/index.js +1029 -145
  118. package/src/tools/jobs.js +325 -50
  119. package/src/tools/kiwi.js +50 -5
  120. package/src/tools/lsp.js +164 -32
  121. package/src/tools/outline.js +52 -12
  122. package/src/tools/pdf.js +366 -56
  123. package/src/tools/shell.js +12 -4
  124. package/src/tools/spawn.js +203 -18
  125. package/src/tools/todo.js +73 -4
  126. package/src/tools/verify.js +312 -43
  127. package/src/tools/webfetch.js +184 -25
  128. package/src/tools/xlsx.js +232 -31
  129. package/src/ui/ansi.js +209 -15
  130. package/src/ui/banner.js +2 -1
  131. package/src/ui/complete.js +46 -4
  132. package/src/ui/diff.js +4 -2
  133. package/src/ui/export.js +91 -17
  134. package/src/ui/inputbox.js +58 -18
  135. package/src/ui/intro.js +9 -2
  136. package/src/ui/level.js +32 -7
  137. package/src/ui/md.js +101 -15
  138. package/src/ui/motion.js +5 -2
  139. package/src/ui/notify.js +7 -1
  140. package/src/ui/office.js +37 -5
  141. package/src/ui/pastechip.js +3 -2
  142. package/src/ui/pick.js +85 -12
  143. package/src/ui/prompt.js +176 -13
  144. package/src/ui/screen.js +2 -1
  145. package/src/ui/spinner.js +6 -1
  146. package/src/ui/status.js +80 -12
  147. package/src/ui/wrap.js +23 -37
  148. /package/src/agent/{/353/213/250/352/263/204.js" → phase.js} +0 -0
  149. /package/src/skills/builtin/{/352/271/212/354/235/264/354/236/210/352/262/214-/353/247/214/353/223/244/352/270/260/SKILL.md" → build-deep/SKILL.md} +0 -0
  150. /package/src/skills/builtin/{/354/260/250/352/267/274/354/260/250/352/267/274-/353/224/224/353/262/204/352/271/205/SKILL.md" → debug-step-by-step/SKILL.md} +0 -0
  151. /package/src/skills/builtin/{/353/201/235/352/271/214/354/247/200-/355/225/230/352/270/260/SKILL.md" → finish-all/SKILL.md} +0 -0
  152. /package/src/skills/builtin/{/354/212/244/354/212/244/353/241/234-/352/262/200/355/206/240/SKILL.md" → self-review/SKILL.md} +0 -0
  153. /package/src/skills/builtin/{/354/275/224/353/223/234-/354/244/204/354/235/264/352/270/260/SKILL.md" → simplify-code/SKILL.md} +0 -0
  154. /package/src/skills/builtin/{/354/260/224/353/237/254/353/263/264/352/270/260/SKILL.md" → spike/SKILL.md} +0 -0
  155. /package/src/skills/builtin/{/352/262/200/354/202/254-/353/250/274/354/240/200/SKILL.md" → test-first/SKILL.md} +0 -0
@@ -49,7 +49,20 @@ export function 패턴규칙(줄, 기준 = '') {
49
49
  if (p.includes('/')) 고정 = true;
50
50
  const 몸 = 글롭정규식(p);
51
51
  const src = 고정 ? `^${몸}$` : `(?:^|/)${몸}$`;
52
- return { re: new RegExp(src, process.platform === 'win32' ? 'i' : ''), 부정, 폴더만, 기준: String(기준 ?? '').replace(/\\/g, '/').replace(/^\/+|\/+$/g, ''), 원문: 줄 };
52
+ /*
53
+ * ── 망가진 한 줄은 **그 줄만** 버린다 (사냥5 L3) ────────────────────────
54
+ *
55
+ * `file[z-a].tmp` 처럼 글자 묶음 범위가 거꾸로면 RegExp 가 던진다. 그 던짐이
56
+ * 파일규칙읽기 의 catch 까지 올라가 **파일 전체 규칙**이 빈 목록이 됐다 — 한 줄 오타로
57
+ * build/ · *.log 까지 사라져 Glob·Grep 이 빌드 산출물을 다시 훑었고, 왜 그런지 아무
58
+ * 말도 없었다.
59
+ *
60
+ * git 은 거꾸로 된 범위를 「아무것도 안 맞는 무늬」 로 읽는다. 그러니 이 줄을 규칙
61
+ * 없음(null)으로 치는 것이 git 과 같은 결과다. 나머지 줄은 그대로 산다.
62
+ */
63
+ let re;
64
+ try { re = new RegExp(src, process.platform === 'win32' ? 'i' : ''); } catch { return null; }
65
+ return { re, 부정, 폴더만, 기준: String(기준 ?? '').replace(/\\/g, '/').replace(/^\/+|\/+$/g, ''), 원문: 줄 };
53
66
  }
54
67
 
55
68
  // gitignore 글롭 → 정규식 몸통 (앞뒤 고정은 부르는 쪽이 붙인다).
@@ -85,11 +98,21 @@ function 글롭정규식(p) {
85
98
  }
86
99
  if (ch === '?') { re += '[^/]'; i += 1; continue; }
87
100
  if (ch === '[') {
88
- const end = p.indexOf(']', i + 1);
89
- if (end > i + 1) {
90
- let 안 = p.slice(i + 1, end);
91
- if (안.startsWith('!')) 안 = '^' + 안.slice(1);
92
- re += `[${안.replace(/\\/g, '\\\\')}]`;
101
+ /*
102
+ * ── 글자 묶음은 git 과 같게 (6회차 Gemini 무시규칙6 · 진짜 git 과 견줌) ──────────
103
+ *
104
+ * · 묶음은 **슬래시를 안 맞힌다.** JS 묶음을 그대로 써서 `a[!b]c` 가 `a/c` 를, `x[a/]y` 가
105
+ * `x/y` 를 걸었다 — git 은 두는 파일을 deel 만 감췄다. 그래서 앞에 `(?!/)` 를 둔다.
106
+ * · 묶음 첫 글자(`!` 뒤 포함)의 `]` 는 닫는 괄호가 아니라 글자다 — `[]a]` 는 `]` 또는 `a`.
107
+ * 첫 `]` 에서 닫아 둘 다 놓쳤다.
108
+ */
109
+ let j = i + 1;
110
+ const 부정묶음 = p[j] === '!' || p[j] === '^';
111
+ if (부정묶음) j += 1;
112
+ const end = p.indexOf(']', p[j] === ']' ? j + 1 : j);
113
+ if (end > j) {
114
+ const 안 = p.slice(j, end).replace(/\\/g, '\\\\').replace(/]/g, '\\]');
115
+ re += `(?!/)[${부정묶음 ? '^' : ''}${안}]`;
93
116
  i = end + 1;
94
117
  continue;
95
118
  }
@@ -166,7 +189,8 @@ export function 계보규칙읽기(root, rel = '') {
166
189
 
167
190
  /** 화면 한 줄. 건너뛴 것이 없으면 빈 문자열 — 없는데 줄을 만들면 그게 소음이다. */
168
191
  /**
169
- * @param 건너뜀 `{ 폴더, 파일 }` — .gitignore 로 뺀 수
192
+ * @param 건너뜀 `{ 폴더, 파일, 못연폴더, 못연파일 }` — 앞의 둘은 .gitignore 로 뺀 수,
193
+ * 뒤의 둘은 열려다 실패한 수 (fsutil.js 의 walk 가 센다)
170
194
  * @param 잘림 상한에서 멈췄나 (walk 가 붙여 준다)
171
195
  * @param 상한 몇 개까지 봤나. 0 이면 수 없이 말한다.
172
196
  * (숫자를 인자로 받는다 — fsutil 이 ignore 를 부르므로 거꾸로 가져오면 고리가 된다)
@@ -179,6 +203,30 @@ export function 건너뜀말(건너뜀, 잘림 = false, 상한 = 0) {
179
203
  const 몫 = [폴더 ? `폴더 ${폴더}개` : null, 파일 ? `파일 ${파일}개` : null].filter(Boolean).join(' · ');
180
204
  줄.push(`(.gitignore 로 ${몫} 건너뜀 — 경로를 직접 주면 Read 된다)`);
181
205
  }
206
+ /*
207
+ * 못 연 것은 **건너뛴 것과 다르게** 말한다.
208
+ *
209
+ * .gitignore 로 뺀 것은 우리가 알고 뺀 것이라 "경로를 직접 주면 읽힌다" 가
210
+ * 맞는 말이다. 못 연 것은 그렇지 않다 — 경로를 줘도 안 열린다. 막은 것을
211
+ * 풀거나(권한), 켜거나(OneDrive), 고쳐야(끊긴 정션) 열린다.
212
+ *
213
+ * 이 줄이 없던 동안 화면에 뜬 것은 `일치 없음` 넉 자뿐이었다. 안 본 자리가
214
+ * 통째로 있는데도 다 찾아본 것과 글자 하나 다르지 않았다.
215
+ */
216
+ const 못연폴더 = 건너뜀?.못연폴더 ?? 0;
217
+ const 못연파일 = 건너뜀?.못연파일 ?? 0;
218
+ if (못연폴더 || 못연파일) {
219
+ const 몫 = [못연폴더 ? `폴더 ${못연폴더}개` : null, 못연파일 ? `파일 ${못연파일}개` : null].filter(Boolean).join(' · ');
220
+ /*
221
+ * 「못 열었다」 고만 적던 때, 멀쩡한 심볼릭 링크·정션에도 그 말이 붙었다.
222
+ * 훑는 쪽(fsutil.js 의 walk)은 **일부러** 링크를 안 따라 들어가고 그것을 안 본
223
+ * 것으로 센다 — 바깥을 가리키는 링크 하나가 범위를 통째로 넓히고, 제 안을
224
+ * 가리키면 끝없이 돌기 때문이다. 그건 실패가 아니라 정책인데, 이 줄이 그것을
225
+ * 실패로 적어서 사람은 있지도 않은 권한 문제를 찾아 헤맸다. 모노레포의
226
+ * `packages/*` 링크 하나면 Grep·Glob·Outline 꼬리에 매번 붙는다.
227
+ */
228
+ 줄.push(`(${몫}는 안을 한 번도 안 봤습니다 — 심볼릭 링크·정션은 따라 들어가지 않고, 권한·잠금·끊긴 링크일 수도 있습니다. 「없다」 가 아닙니다)`);
229
+ }
182
230
  /*
183
231
  * 상한에서 멈췄으면 반드시 말한다.
184
232
  *