@xiaoso/dsh-tool-plus 0.1.3 → 0.1.5

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 (65) hide show
  1. package/lib/{abort-CsjZitYv.mjs → abort-Cwwm4Err.mjs} +1 -1
  2. package/lib/{amazon-bedrock-CfNIDi5k.mjs → amazon-bedrock-TVMpUTRG.mjs} +7 -7
  3. package/lib/{anthropic-BVfZdnMp.mjs → anthropic-BL6LFDQS.mjs} +12 -12
  4. package/lib/{anthropic-DGXmmg43.mjs → anthropic-CDmj476p.mjs} +2 -2
  5. package/lib/{api-key-login-BikQAfD-.mjs → api-key-login-CIDnXeYd.mjs} +1 -1
  6. package/lib/{aws-credentials-DrssNMn_.mjs → aws-credentials-B20dliS7.mjs} +5 -5
  7. package/lib/{azure-openai-responses-C-5q-5K2.mjs → azure-openai-responses-BkhsLmN3.mjs} +8 -8
  8. package/lib/{browser-render-z6b8Ljo9.mjs → browser-render-CmgvSNte.mjs} +2 -2
  9. package/lib/{bundled-references-D71z7_T3.mjs → bundled-references-ChZSPDFw.mjs} +2 -2
  10. package/lib/{callback-server-Di6C4RqI.mjs → callback-server-CFJK-jvK.mjs} +1 -1
  11. package/lib/{cursor-CQQtygwl.mjs → cursor-B6HcmplF.mjs} +1 -1
  12. package/lib/{cursor-Hr5Zw1gt.mjs → cursor-B8m6SqAH.mjs} +3 -3
  13. package/lib/{cursor-DXJxwdcg.mjs → cursor-CRpLpaZ3.mjs} +7 -7
  14. package/lib/{device-code-wZUbgPdB.mjs → device-code-CuXTWYwY.mjs} +1 -1
  15. package/lib/{devin-DXJoDlW2.mjs → devin-BcQwht1W.mjs} +1 -1
  16. package/lib/{devin-CF6UhCFw.mjs → devin-BvMfGevz.mjs} +2 -2
  17. package/lib/{devin-P37gURs_.mjs → devin-DUAfvBsW.mjs} +5 -5
  18. package/lib/{error-DoHuatWw.mjs → error-C-f_Wnw4.mjs} +1 -1
  19. package/lib/{event-stream-C-FmBYUt.mjs → event-stream-Dh2guZxS.mjs} +1 -1
  20. package/lib/{github-copilot-qETlj_bD.mjs → github-copilot-B3kQl0g0.mjs} +1 -1
  21. package/lib/{github-copilot-C2dTonBX.mjs → github-copilot-suDymKrx.mjs} +3 -3
  22. package/lib/{gitlab-duo-FQZiFRQe.mjs → gitlab-duo-BriUTP8k.mjs} +3 -3
  23. package/lib/{gitlab-duo-workflow-DLTabzOy.mjs → gitlab-duo-workflow-wK5Ljzmc.mjs} +2 -2
  24. package/lib/{google-BilwFSzx.mjs → google-CE5tFDod.mjs} +3 -3
  25. package/lib/{google-antigravity-BfBiINdu.mjs → google-antigravity-C1jgNljz.mjs} +2 -2
  26. package/lib/{google-auth-CWlKXJ-H.mjs → google-auth-DYJLM792.mjs} +3 -3
  27. package/lib/{google-gemini-cli-CB89ljNz.mjs → google-gemini-cli-8BT513Ul.mjs} +3 -3
  28. package/lib/{google-gemini-cli-CygFcR6N.mjs → google-gemini-cli-D6cSmfvB.mjs} +8 -8
  29. package/lib/{google-oauth-shared-Cn82h1o2.mjs → google-oauth-shared-BLVTvokk.mjs} +2 -2
  30. package/lib/{google-shared-CF1JrqTM.mjs → google-shared-CVbHK5vZ.mjs} +6 -6
  31. package/lib/{google-vertex-DgMhhFw8.mjs → google-vertex-Bui-ypAe.mjs} +5 -5
  32. package/lib/{identity-C0SPVyIZ.mjs → identity-HNO1Oe9B.mjs} +1 -1
  33. package/lib/{idle-iterator-HzbbfXP4.mjs → idle-iterator-CYAxUkSD.mjs} +2 -2
  34. package/lib/index.mjs +9256 -9247
  35. package/lib/{kimi-DHDO6Fde.mjs → kimi-DgcUpPtK.mjs} +4 -4
  36. package/lib/{launch-DwpE70Pv.mjs → launch-BmgEUycu.mjs} +2 -2
  37. package/lib/{markit-B9exZ0ZV.mjs → markit-DtGoRE6M.mjs} +2 -2
  38. package/lib/{minimax-code-vAhEXhev.mjs → minimax-code-Y3h5li9N.mjs} +1 -1
  39. package/lib/{models-Cp3PzU3l.mjs → models-DRA2c_8U.mjs} +1 -1
  40. package/lib/{ollama-TrkXTNqE.mjs → ollama-Df9ce-Cp.mjs} +8 -8
  41. package/lib/{openai-codex-CrjHtSH4.mjs → openai-codex-CAVI3Me-.mjs} +3 -3
  42. package/lib/{openai-codex-responses-C4uMpWNy.mjs → openai-codex-responses-BcnOotRB.mjs} +10 -10
  43. package/lib/{openai-completions-1ydXm5vF.mjs → openai-completions-Bq4WT47M.mjs} +13 -13
  44. package/lib/{openai-reasoning-fallback-CigKCyzc.mjs → openai-reasoning-fallback-DXsfiSXO.mjs} +2 -2
  45. package/lib/{openai-responses-CN79gRGQ.mjs → openai-responses-Mq_-PjvE.mjs} +10 -10
  46. package/lib/{opencode-CEGlimzL.mjs → opencode-BsVw9rCD.mjs} +1 -1
  47. package/lib/{perplexity-BLJN-8dM.mjs → perplexity-XgLF73E7.mjs} +2 -2
  48. package/lib/{proxy-XOYi58TM.mjs → proxy-D9lm7ONA.mjs} +1 -1
  49. package/lib/{scrapers-BJ1YemnI.mjs → scrapers-CE_qK1yk.mjs} +4 -4
  50. package/lib/{stream-DveNFWSN.mjs → stream-Bjq8wjfr.mjs} +57 -57
  51. package/lib/{stream-markup-healing-C9eC7Gf8.mjs → stream-markup-healing-DZ6bVDxH.mjs} +3 -3
  52. package/lib/trash-cli.mjs +95 -7
  53. package/lib/{types-BUO0JXO-.mjs → types-DX_bvuus.mjs} +1 -1
  54. package/lib/{utils-DEUxgLCs.mjs → utils-APrc-TBB.mjs} +24 -24
  55. package/lib/{utils-B-mTYQBc.mjs → utils-CQHPEQ3W.mjs} +1 -1
  56. package/lib/{utils-fnV2zzp3.mjs → utils-Cp2Mxf_U.mjs} +3 -3
  57. package/lib/{vision-guard-BsvOWmfB.mjs → vision-guard-mBmtAHx0.mjs} +2 -2
  58. package/lib/{wafer-Dpy7tL3l.mjs → wafer-BlhWLweO.mjs} +1 -1
  59. package/lib/{xai-oauth-BkPNQS-q.mjs → xai-oauth-5pORHUrg.mjs} +2 -2
  60. package/lib/{xiaomi-CG3TsYRz.mjs → xiaomi-7mE345KX.mjs} +1 -1
  61. package/lib/{zai--cewobzN.mjs → zai-CeNpMV3W.mjs} +2 -2
  62. package/lib/{zip-CqKW2-TK.mjs → zip-BK7UHCwX.mjs} +1 -1
  63. package/package.json +1 -1
  64. package/presets/package.json +1 -1
  65. package/lib/{src-D_e1qMwi.mjs → src-BcD0_rQR.mjs} +1 -1
@@ -1,8 +1,8 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { D as partialSuffixOverlapAny, E as FencedThinkingScanner, T as createInbandScanner } from "./utils-fnV2zzp3.mjs";
4
- import { h as isDeepseekModelIdOrName } from "./models-Cp3PzU3l.mjs";
5
- import "./identity-C0SPVyIZ.mjs";
3
+ import { D as partialSuffixOverlapAny, E as FencedThinkingScanner, T as createInbandScanner } from "./utils-Cp2Mxf_U.mjs";
4
+ import { h as isDeepseekModelIdOrName } from "./models-DRA2c_8U.mjs";
5
+ import "./identity-HNO1Oe9B.mjs";
6
6
  //#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/dialect/thinking.ts
7
7
  /**
8
8
  * Every dialect's in-band thinking section in its canonical `renderThinking`
package/lib/trash-cli.mjs CHANGED
@@ -1,5 +1,20 @@
1
1
  import * as fs from "node:fs";
2
2
  //#region src/tools/bash/trash-cli.ts
3
+ /**
4
+ * rmSafe: rm 命令的回收站重定义核心。
5
+ *
6
+ * 参数解析与行为语义对齐 GNU coreutils rm(tests/rm/ 用例移植),差异:
7
+ * - 删除目标 = 系统回收站(trash 包),非永久删除;
8
+ * - `-i`/`-I`/`--interactive[=WHEN]` 接受但忽略交互(直接进回收站);
9
+ * - verbose 只输出顶层项(trash 是原子移动,不递归输出子项)。
10
+ *
11
+ * 保护语义(r-root / r-4 移植):默认 --preserve-root 拒绝 `/` 及其同义词
12
+ * (`//`、`///`、realpath 后是根目录的路径);拒绝 `.` / `..` 结尾的路径。
13
+ *
14
+ * 本模块零外部依赖(trash 包在 trash-cli-main.ts 入口动态加载),
15
+ * 便于单测注入 fake trash。
16
+ * @module @xiaoso/dsh-tool-plus/bash/trash-cli
17
+ */
3
18
  const SHORT_OPTIONS = {
4
19
  r: "recursive",
5
20
  R: "recursive",
@@ -49,6 +64,31 @@ const INTERACTIVE_WHEN = /* @__PURE__ */ new Set([
49
64
  "always",
50
65
  "never"
51
66
  ]);
67
+ function isAsciiDriveLetter(value) {
68
+ if (value.length !== 1) return false;
69
+ const code = value.charCodeAt(0);
70
+ return code >= 65 && code <= 90 || code >= 97 && code <= 122;
71
+ }
72
+ function windowsDriveAliasPath(filePath) {
73
+ if (!filePath.startsWith("/")) return void 0;
74
+ const parts = filePath.split("/");
75
+ if (parts[0] !== "") return void 0;
76
+ let drive;
77
+ let tailStart = 2;
78
+ if (parts.length >= 2 && isAsciiDriveLetter(parts[1] ?? "")) drive = parts[1].toUpperCase();
79
+ else if (parts.length >= 3 && (parts[1] ?? "").toLowerCase() === "mnt" && isAsciiDriveLetter(parts[2] ?? "")) {
80
+ drive = parts[2].toUpperCase();
81
+ tailStart = 3;
82
+ }
83
+ if (!drive) return void 0;
84
+ const tail = parts.slice(tailStart).filter(Boolean).join("\\");
85
+ return tail ? `${drive}:\\${tail}` : `${drive}:\\`;
86
+ }
87
+ /** MSYS 驱动器别名(`/d/…`、`/mnt/d/…`)转原生 Windows 路径;非 win32 原样返回。 */
88
+ function normalizeWindowsDriveAliasPath(filePath, platform = process.platform) {
89
+ if (platform !== "win32") return filePath;
90
+ return windowsDriveAliasPath(filePath) ?? filePath;
91
+ }
52
92
  /**
53
93
  * 解析 rm 风格参数(coreutils rm 语义):
54
94
  * - 短选项支持组合(`-rf`),`-r`/`-R`/`--recursive` 等价,`-i`/`-I` 等价;
@@ -170,6 +210,42 @@ async function isRootPath(p, deps) {
170
210
  const root = await deps.stat("/");
171
211
  return root !== null && st.dev === root.dev && st.ino === root.ino;
172
212
  }
213
+ /** 探测目标名后缀(rename 探测临时名)。 */
214
+ const PROBE_SUFFIX = ".dsh-trash-probe";
215
+ /** 从 unknown 错误里取 errno 码(边界解析)。 */
216
+ function errnoCode(err) {
217
+ if (typeof err !== "object" || err === null) return void 0;
218
+ const code = err.code;
219
+ return typeof code === "string" ? code : void 0;
220
+ }
221
+ /** rename 探测:移到同目录临时名再改回;不改内容,返回 errno 码或 null(可移动)。 */
222
+ async function defaultProbeRename(from, to) {
223
+ try {
224
+ await fs.promises.rename(from, to);
225
+ } catch (err) {
226
+ return errnoCode(err) ?? "UNKNOWN";
227
+ }
228
+ try {
229
+ await fs.promises.rename(to, from);
230
+ return null;
231
+ } catch {
232
+ return "PROBE_STUCK";
233
+ }
234
+ }
235
+ /**
236
+ * rename 探测结果 → 可读原因(null = 无结论)。
237
+ *
238
+ * trash 的 windows-trash.exe 失败时把原因吞成 0x8000FFFF、stderr 为空,
239
+ * 所以这里靠 rename 探测拿文件系统的真实回答;不同 errno 必须分开报,
240
+ * 权限不足不是“被占用”。
241
+ */
242
+ function describeProbeCode(code) {
243
+ if (code === null) return null;
244
+ if (code === "ENOENT" || code === "ENOTDIR") return "no longer exists (removed by another process?)";
245
+ if (code === "EBUSY" || code === "ENOTEMPTY" || code === "PROBE_STUCK") return "file is locked or cannot be moved by this process (close programs using it and retry)";
246
+ if (code === "EPERM" || code === "EACCES") return "permission denied (read-only file or restricted directory)";
247
+ return null;
248
+ }
173
249
  /**
174
250
  * 执行一次 rm 语义的回收站删除。
175
251
  *
@@ -196,9 +272,10 @@ async function runTrashCli(argv, deps) {
196
272
  const { recursive, force, verbose, dir, preserveRoot, paths } = parsed;
197
273
  const items = [];
198
274
  let failed = false;
199
- for (const p of paths) {
275
+ for (const authored of paths) {
276
+ const p = normalizeWindowsDriveAliasPath(authored);
200
277
  if (isDotOrDotDot(p)) {
201
- deps.stderr(`rm: refusing to remove '.' or '..' directory: skipping '${p}'`);
278
+ deps.stderr(`rm: refusing to remove '.' or '..' directory: skipping '${authored}'`);
202
279
  failed = true;
203
280
  continue;
204
281
  }
@@ -211,17 +288,18 @@ async function runTrashCli(argv, deps) {
211
288
  const st = await deps.lstat(p);
212
289
  if (st === null) {
213
290
  if (!force) {
214
- deps.stderr(`rm: cannot remove '${p}': No such file or directory`);
291
+ deps.stderr(`rm: cannot remove '${authored}': No such file or directory`);
215
292
  failed = true;
216
293
  }
217
294
  continue;
218
295
  }
219
296
  if (st.isDirectory && !recursive && !dir) {
220
- deps.stderr(`rm: cannot remove '${p}': Is a directory`);
297
+ deps.stderr(`rm: cannot remove '${authored}': Is a directory`);
221
298
  failed = true;
222
299
  continue;
223
300
  }
224
301
  items.push({
302
+ authored,
225
303
  path: p,
226
304
  isDir: st.isDirectory
227
305
  });
@@ -229,10 +307,20 @@ async function runTrashCli(argv, deps) {
229
307
  if (items.length > 0) try {
230
308
  await deps.trash(items.map((item) => item.path));
231
309
  } catch (err) {
232
- deps.stderr(`rm: cannot remove '${items[0].path}': ${errorMessage(err)}`);
233
- failed = true;
310
+ if (process.platform !== "win32") {
311
+ deps.stderr(`rm: cannot remove '${items[0].authored}': ${errorMessage(err)}`);
312
+ failed = true;
313
+ } else {
314
+ const probe = deps.probeRename ?? defaultProbeRename;
315
+ for (const item of items) {
316
+ const code = await probe(item.path, `${item.path}${PROBE_SUFFIX}`);
317
+ if (code === "ENOENT" || code === "ENOTDIR") continue;
318
+ deps.stderr(`rm: cannot remove '${item.authored}': ${describeProbeCode(code) ?? errorMessage(err)}`);
319
+ failed = true;
320
+ }
321
+ }
234
322
  }
235
- if (verbose && !failed) for (const { path: p, isDir } of items) deps.stdout(isDir ? `removed directory '${normalizeTrailingSlash(p)}'` : `removed '${p}'`);
323
+ if (verbose && !failed) for (const { authored, isDir } of items) deps.stdout(isDir ? `removed directory '${normalizeTrailingSlash(authored)}'` : `removed '${authored}'`);
236
324
  deps.exit(failed ? 1 : 0);
237
325
  }
238
326
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { c as combineSignals } from "./src-D_e1qMwi.mjs";
3
+ import { c as combineSignals } from "./src-BcD0_rQR.mjs";
4
4
  import { t as ToolAbortError } from "./tool-errors-DoyxivAR.mjs";
5
5
  import { scheduler } from "node:timers/promises";
6
6
  //#region src/tools/omp/web/scrapers/types.ts
@@ -1,34 +1,34 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
3
  import { n as fs_promises_shim_exports } from "./fs-promises-shim-Bx0fpxuk.mjs";
4
- import { B as USER_AGENT, I as $flag, K as getDocumentConversionCacheDir, P as $env, R as isBunTestRuntime, S as debug, T as warn, W as getDebugLogPath, Z as getToolsDir, c as combineSignals, d as $which, l as exec, r as TempDir, tt as untilAborted, y as isEnoent, z as isTerminalHeadless } from "./src-D_e1qMwi.mjs";
5
- import { V as ProviderHttpError, a as isTransientStatus } from "./error-DoHuatWw.mjs";
6
- import "./utils-fnV2zzp3.mjs";
4
+ import { B as USER_AGENT, I as $flag, K as getDocumentConversionCacheDir, P as $env, R as isBunTestRuntime, S as debug, T as warn, W as getDebugLogPath, Z as getToolsDir, c as combineSignals, d as $which, l as exec, r as TempDir, tt as untilAborted, y as isEnoent, z as isTerminalHeadless } from "./src-BcD0_rQR.mjs";
5
+ import { V as ProviderHttpError, a as isTransientStatus } from "./error-C-f_Wnw4.mjs";
6
+ import "./utils-Cp2Mxf_U.mjs";
7
7
  import { n as isRecord } from "./type-guards-B9VVjRDK.mjs";
8
8
  import { t as ToolAbortError } from "./tool-errors-DoyxivAR.mjs";
9
- import { n as extractArchive } from "./zip-CqKW2-TK.mjs";
10
- import { Et as parseAlibabaTokenPlanCredential, Tt as ALIBABA_TOKEN_PLAN_CN_BASE_URL, n as getEnvApiKey } from "./stream-DveNFWSN.mjs";
11
- import { a as toNumber, i as toBoolean$1 } from "./utils-B-mTYQBc.mjs";
12
- import "./identity-C0SPVyIZ.mjs";
13
- import { n as OPENCODE_HEADERS } from "./github-copilot-qETlj_bD.mjs";
14
- import "./vision-guard-BsvOWmfB.mjs";
15
- import "./event-stream-C-FmBYUt.mjs";
16
- import { i as claudeCodeVersion } from "./anthropic-DGXmmg43.mjs";
9
+ import { n as extractArchive } from "./zip-BK7UHCwX.mjs";
10
+ import { Et as parseAlibabaTokenPlanCredential, Tt as ALIBABA_TOKEN_PLAN_CN_BASE_URL, n as getEnvApiKey } from "./stream-Bjq8wjfr.mjs";
11
+ import { a as toNumber, i as toBoolean$1 } from "./utils-CQHPEQ3W.mjs";
12
+ import "./identity-HNO1Oe9B.mjs";
13
+ import { n as OPENCODE_HEADERS } from "./github-copilot-B3kQl0g0.mjs";
14
+ import "./vision-guard-mBmtAHx0.mjs";
15
+ import "./event-stream-Dh2guZxS.mjs";
16
+ import { i as claudeCodeVersion } from "./anthropic-CDmj476p.mjs";
17
17
  import { i as getGeminiCliHeaders, n as getAntigravityUserAgent } from "./gemini-headers-DKUShltF.mjs";
18
18
  import { t as CODEX_BASE_URL } from "./codex-P1dGpX7G.mjs";
19
- import { t as getKimiCommonHeaders } from "./kimi-DHDO6Fde.mjs";
20
- import "./anthropic-BVfZdnMp.mjs";
21
- import { n as extractCursorAccessTokenUserId } from "./cursor-CQQtygwl.mjs";
22
- import { i as getXAICliBillingHeaders, n as extractXAIAccessTokenSubject, r as fetchXAIOAuthIdentity, t as buildXAICliBillingUrl } from "./xai-oauth-BkPNQS-q.mjs";
23
- import "./openai-codex-responses-C4uMpWNy.mjs";
24
- import "./azure-openai-responses-C-5q-5K2.mjs";
25
- import "./ollama-TrkXTNqE.mjs";
26
- import "./openai-completions-1ydXm5vF.mjs";
27
- import "./openai-responses-CN79gRGQ.mjs";
28
- import { t as MAX_BYTES } from "./types-BUO0JXO-.mjs";
29
- import * as path from "node:path";
19
+ import { t as getKimiCommonHeaders } from "./kimi-DgcUpPtK.mjs";
20
+ import "./anthropic-BL6LFDQS.mjs";
21
+ import { n as extractCursorAccessTokenUserId } from "./cursor-B6HcmplF.mjs";
22
+ import { i as getXAICliBillingHeaders, n as extractXAIAccessTokenSubject, r as fetchXAIOAuthIdentity, t as buildXAICliBillingUrl } from "./xai-oauth-5pORHUrg.mjs";
23
+ import "./openai-codex-responses-BcnOotRB.mjs";
24
+ import "./azure-openai-responses-BkhsLmN3.mjs";
25
+ import "./ollama-Df9ce-Cp.mjs";
26
+ import "./openai-completions-Bq4WT47M.mjs";
27
+ import "./openai-responses-Mq_-PjvE.mjs";
28
+ import { t as MAX_BYTES } from "./types-DX_bvuus.mjs";
30
29
  import * as fs from "node:fs";
31
30
  import { Ellipsis, Ellipsis as Ellipsis$1, extractSegments, matchesKey, sliceWithWidth, truncateToWidth } from "@oh-my-pi/pi-natives";
31
+ import * as path from "node:path";
32
32
  import * as os from "node:os";
33
33
  import { scheduler } from "node:timers/promises";
34
34
  import "node:crypto";
@@ -7202,7 +7202,7 @@ const settings = {
7202
7202
  };
7203
7203
  //#endregion
7204
7204
  //#region package.json
7205
- var version = "0.1.3";
7205
+ var version = "0.1.5";
7206
7206
  /** `.tmp` files older than this are treated as orphaned writes and swept. */
7207
7207
  const TMP_ORPHAN_MAX_AGE_MS = 3e5;
7208
7208
  function markitConversionCacheKey(bytes, extension) {
@@ -7336,7 +7336,7 @@ const CONVERTIBLE_EXTENSIONS = /* @__PURE__ */ new Set([
7336
7336
  ".epub"
7337
7337
  ]);
7338
7338
  let markit = async () => {
7339
- const promise = import("./markit-B9exZ0ZV.mjs").then(({ Markit }) => {
7339
+ const promise = import("./markit-DtGoRE6M.mjs").then(({ Markit }) => {
7340
7340
  const instance = new Markit();
7341
7341
  markit = () => instance;
7342
7342
  return instance;
@@ -1,6 +1,6 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { n as wrapFetchForExtraCa } from "./src-D_e1qMwi.mjs";
3
+ import { n as wrapFetchForExtraCa } from "./src-BcD0_rQR.mjs";
4
4
  //#region node_modules/.pnpm/@oh-my-pi+pi-catalog@17.3.5/node_modules/@oh-my-pi/pi-catalog/src/utils.ts
5
5
  /**
6
6
  * Fetch implementation for catalog discovery probes: the caller's override
@@ -1,8 +1,8 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { I as $flag, P as $env, S as debug, g as parseStreamingJson, h as parseJsonWithRepair } from "./src-D_e1qMwi.mjs";
4
- import { r as ValidationError } from "./error-DoHuatWw.mjs";
5
- import { t as preferredDialect } from "./identity-C0SPVyIZ.mjs";
3
+ import { I as $flag, P as $env, S as debug, g as parseStreamingJson, h as parseJsonWithRepair } from "./src-BcD0_rQR.mjs";
4
+ import { r as ValidationError } from "./error-C-f_Wnw4.mjs";
5
+ import { t as preferredDialect } from "./identity-HNO1Oe9B.mjs";
6
6
  //#region node_modules/.pnpm/@oh-my-pi+pi-utils@17.3.5/node_modules/@oh-my-pi/pi-utils/src/json.ts
7
7
  /**
8
8
  * Try to parse JSON, returning null on failure.
@@ -1,7 +1,7 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { M as isDashscopeCompatibleModeUrl, S as isQwenModelId, x as isOpenAIModelId } from "./models-Cp3PzU3l.mjs";
4
- import "./identity-C0SPVyIZ.mjs";
3
+ import { M as isDashscopeCompatibleModeUrl, S as isQwenModelId, x as isOpenAIModelId } from "./models-DRA2c_8U.mjs";
4
+ import "./identity-HNO1Oe9B.mjs";
5
5
  //#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/types.ts
6
6
  /**
7
7
  * Ceiling on the output-token count omp requests from any OpenAI-family endpoint
@@ -1,6 +1,6 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { t as createApiKeyLogin } from "./api-key-login-BikQAfD-.mjs";
3
+ import { t as createApiKeyLogin } from "./api-key-login-CIDnXeYd.mjs";
4
4
  const loginWaferServerless = createApiKeyLogin({
5
5
  providerLabel: "Wafer Serverless",
6
6
  authUrl: "https://app.wafer.ai/usage",
@@ -1,8 +1,8 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
3
  import { r as __exportAll } from "./fs-promises-shim-Bx0fpxuk.mjs";
4
- import { c as OAuthError, h as LoginCancelledError } from "./error-DoHuatWw.mjs";
5
- import { t as pollOAuthDeviceCodeFlow } from "./device-code-wZUbgPdB.mjs";
4
+ import { c as OAuthError, h as LoginCancelledError } from "./error-C-f_Wnw4.mjs";
5
+ import { t as pollOAuthDeviceCodeFlow } from "./device-code-CuXTWYwY.mjs";
6
6
  //#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/registry/oauth/xai-oauth.ts
7
7
  /**
8
8
  * xAI Grok OAuth device authorization flow.
@@ -1,6 +1,6 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { _ as OnPromptRequiredError, c as OAuthError, h as LoginCancelledError, m as ApiKeyRequiredError } from "./error-DoHuatWw.mjs";
3
+ import { _ as OnPromptRequiredError, c as OAuthError, h as LoginCancelledError, m as ApiKeyRequiredError } from "./error-C-f_Wnw4.mjs";
4
4
  //#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/registry/oauth/xiaomi.ts
5
5
  /**
6
6
  * Xiaomi MiMo login flow.
@@ -1,7 +1,7 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { V as ProviderHttpError, c as OAuthError, h as LoginCancelledError } from "./error-DoHuatWw.mjs";
4
- import { t as OAuthCallbackFlow } from "./callback-server-Di6C4RqI.mjs";
3
+ import { V as ProviderHttpError, c as OAuthError, h as LoginCancelledError } from "./error-C-f_Wnw4.mjs";
4
+ import { t as OAuthCallbackFlow } from "./callback-server-CFJK-jvK.mjs";
5
5
  //#region node_modules/.pnpm/@oh-my-pi+pi-ai@17.3.5/node_modules/@oh-my-pi/pi-ai/src/registry/oauth/zai.ts
6
6
  /**
7
7
  * Z.ai / GLM OAuth flow (GLM Coding Plan · Sign in)
@@ -1,6 +1,6 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
- import { j as formatBytes } from "./src-D_e1qMwi.mjs";
3
+ import { j as formatBytes } from "./src-BcD0_rQR.mjs";
4
4
  import { n as ToolError } from "./tool-errors-DoyxivAR.mjs";
5
5
  import * as path from "node:path";
6
6
  import * as zlib from "node:zlib";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xiaoso/dsh-tool-plus",
3
3
  "description": "Oh My Pi bash runtime ported as a deepseek-harness tool plugin: persistent shell session, output minimizer, managed background jobs, command interception",
4
- "version": "0.1.3",
4
+ "version": "0.1.5",
5
5
  "license": "MIT",
6
6
  "keywords": [
7
7
  "deepseek-harness",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiaoso/dsh-tool-plus-presets",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Agent-preset installer for dsh-tool-plus: installs the standard / PTC enhanced preset templates into a DeepSeek Harness home.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -1,9 +1,9 @@
1
1
  import { installBunShim as __installBunShim } from "./bun-shim.mjs";
2
2
  __installBunShim();
3
3
  import { n as fs_promises_shim_exports } from "./fs-promises-shim-Bx0fpxuk.mjs";
4
- import * as path from "node:path";
5
4
  import * as fs from "node:fs";
6
5
  import { Process } from "@oh-my-pi/pi-natives";
6
+ import * as path from "node:path";
7
7
  import * as os from "node:os";
8
8
  import assert from "node:assert/strict";
9
9
  import { parse, stringify } from "yaml";