deel-local-cli 1.20.13 → 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 -78
  2. package/README.md +119 -81
  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 +23 -3
  7. package/src/acp/serve.js +333 -25
  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 +253 -26
  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 +21 -4
  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
package/src/completion.js CHANGED
@@ -132,11 +132,21 @@ function bash판({ zsh = false } = {}) {
132
132
  const 폴더깃발 = 깃발들.filter((x) => x.값 === '폴더').map((x) => x.이름);
133
133
  const 파일깃발 = 깃발들.filter((x) => x.값 === '파일').map((x) => x.이름);
134
134
  const 값갈래 = 값깃발.map((x) => ` ${x.이름}) COMPREPLY=( $(compgen -W ${홑따옴표(x.값.join(' '))} -- "$cur") ); return 0 ;;`).join('\n');
135
+ /*
136
+ * ── 파일·폴더 후보는 줄 단위로 받는다 (사냥5 H5-11) ──────────────────────
137
+ *
138
+ * `COMPREPLY=( $(compgen -f -- "$cur") )` 는 compgen 이 낸 줄을 **빈칸에서도**
139
+ * 자르고, 자른 조각을 글롭으로 한 번 더 편다. 그래서 `my file.txt` 는 `my` 와
140
+ * `file.txt` 두 후보가 되어, 탭을 누르면 없는 이름이 들어갔다. 빈칸 든 이름은
141
+ * 윈도우 사용자 폴더(`Program Files`, `내 문서`)에서 보통이다. 한 줄씩 읽어
142
+ * 담고, `compopt -o filenames` 로 넣을 때 빈칸을 셸이 씌우게 한다(bash 4+.
143
+ * 없는 셸에서는 조용히 넘어간다 — 후보는 이미 온전하다).
144
+ */
135
145
  const 폴더갈래 = 폴더깃발.length
136
- ? ` ${폴더깃발.join('|')}) COMPREPLY=( $(compgen -d -- "$cur") ); return 0 ;;`
146
+ ? ` ${폴더깃발.join('|')}) _deel_paths -d; return 0 ;;`
137
147
  : '';
138
148
  const 파일갈래 = 파일깃발.length
139
- ? ` ${파일깃발.join('|')}) COMPREPLY=( $(compgen -f -- "$cur") ); return 0 ;;`
149
+ ? ` ${파일깃발.join('|')}) _deel_paths -f; return 0 ;;`
140
150
  : '';
141
151
 
142
152
  return `# deel 탭 완성 (${zsh ? 'zsh' : 'bash'})
@@ -145,6 +155,15 @@ function bash판({ zsh = false } = {}) {
145
155
  # deel completion ${zsh ? 'zsh' : 'bash'} > ~/.deel-completion.${zsh ? 'zsh' : 'bash'}
146
156
  # echo 'source ~/.deel-completion.${zsh ? 'zsh' : 'bash'}' >> ~/.${zsh ? 'zshrc' : 'bashrc'}
147
157
  ${zsh ? '\nautoload -U +X bashcompinit && bashcompinit\n' : ''}
158
+ # 파일(-f)·폴더(-d) 후보를 한 줄에 하나씩 담는다. 빈칸 든 이름이 조각나지 않게.
159
+ _deel_paths() {
160
+ COMPREPLY=()
161
+ local _deel_l
162
+ while IFS= read -r _deel_l; do COMPREPLY+=("$_deel_l"); done < <(compgen "$1" -- "$cur")
163
+ compopt -o filenames 2>/dev/null
164
+ return 0
165
+ }
166
+
148
167
  _deel() {
149
168
  local cur prev
150
169
  cur="\${COMP_WORDS[COMP_CWORD]}"
@@ -175,7 +194,7 @@ ${파일갈래}
175
194
  if [[ -z "$cmd" ]]; then
176
195
  COMPREPLY=( $(compgen -W ${홑따옴표(이름만().join(' '))} -- "$cur") )
177
196
  else
178
- COMPREPLY=( $(compgen -f -- "$cur") )
197
+ _deel_paths -f
179
198
  fi
180
199
  }
181
200
  complete -F _deel deel
@@ -215,6 +234,16 @@ function 파워셸판() {
215
234
  .filter((x) => Array.isArray(x.값))
216
235
  .map((x) => ` ${파워셸따옴표(x.이름)} = @(${x.값.map(파워셸따옴표).join(', ')})`)
217
236
  .join('\n');
237
+ /*
238
+ * ── 경로를 받는 자리에 명령 이름을 냈다 (사냥5 H5-12) ─────────────────────
239
+ *
240
+ * 이 판에는 「그 밖이면 명령」 갈래 하나뿐이었다. 그래서 `deel --root <탭>` 에 폴더
241
+ * 대신 명령 스물두 개가 떴고, `deel sessions <탭>` 처럼 명령을 이미 고른 뒤에도 또
242
+ * 명령을 냈다. bash 판은 그 두 자리를 셸의 파일 완성에 맡긴다. 파워셸은 완성기가
243
+ * **아무것도 안 내면** 제 경로 완성으로 돌아간다(빈칸 든 이름에 따옴표도 씌운다)
244
+ * — 흉내 내지 않고 그걸 쓴다. 경로 깃발 목록은 위 깃발들 에서 뽑는다.
245
+ */
246
+ const 경로깃발 = 깃발들.filter((x) => x.값 === '폴더' || x.값 === '파일').map((x) => 파워셸따옴표(x.이름));
218
247
 
219
248
  // 파워셸은 완성 후보에 설명을 같이 실을 수 있다. 탭을 누르면 뜻이 같이 뜬다.
220
249
  return `# deel tab completion (PowerShell)
@@ -264,6 +293,11 @@ ${값목록}
264
293
  ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }
265
294
  }
266
295
 
296
+ # After a flag that takes a path: return nothing, so PowerShell falls back to
297
+ # its own path completion (it also quotes names with spaces).
298
+ $pathFlags = @(${경로깃발.join(', ')})
299
+ if ($pathFlags -contains $prev) { return }
300
+
267
301
  # Typing a flag: offer flags only.
268
302
  if ($wordToComplete -like '-*') {
269
303
  return $flags |
@@ -271,6 +305,14 @@ ${값목록}
271
305
  ForEach-Object { [System.Management.Automation.CompletionResult]::new($_.name, $_.name, 'ParameterName', $_.help) }
272
306
  }
273
307
 
308
+ # A command was already given: its arguments are files, same as the bash
309
+ # version. Look only at the words before the one being typed.
310
+ $before = $words.Count
311
+ if ($wordToComplete -ne '') { $before = $words.Count - 1 }
312
+ for ($i = 1; $i -lt $before; $i++) {
313
+ if (-not $words[$i].StartsWith('-')) { return }
314
+ }
315
+
274
316
  # Otherwise: commands.
275
317
  $cmds |
276
318
  Where-Object { $_.name -like "$wordToComplete*" } |