@bf-meishijian/aip 0.0.18 → 0.0.22

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 (70) hide show
  1. package/dist/bash-discovery.d.ts +8 -0
  2. package/dist/bash-discovery.d.ts.map +1 -0
  3. package/dist/bash-discovery.js +66 -0
  4. package/dist/bash-discovery.js.map +1 -0
  5. package/dist/cli.js +22 -0
  6. package/dist/cli.js.map +1 -1
  7. package/dist/coding-run-manager.d.ts +1 -1
  8. package/dist/coding-run-manager.d.ts.map +1 -1
  9. package/dist/coding-run-manager.js +13 -19
  10. package/dist/coding-run-manager.js.map +1 -1
  11. package/dist/daemon.d.ts +2 -1
  12. package/dist/daemon.d.ts.map +1 -1
  13. package/dist/daemon.js +29 -59
  14. package/dist/daemon.js.map +1 -1
  15. package/dist/delivery-tools.d.ts.map +1 -1
  16. package/dist/delivery-tools.js +1 -0
  17. package/dist/delivery-tools.js.map +1 -1
  18. package/dist/diagnostic-log.d.ts.map +1 -1
  19. package/dist/diagnostic-log.js +2 -0
  20. package/dist/diagnostic-log.js.map +1 -1
  21. package/dist/diagnostics.d.ts +10 -0
  22. package/dist/diagnostics.d.ts.map +1 -1
  23. package/dist/diagnostics.js +4 -2
  24. package/dist/diagnostics.js.map +1 -1
  25. package/dist/host-log.d.ts +8 -0
  26. package/dist/host-log.d.ts.map +1 -1
  27. package/dist/host-log.js +35 -0
  28. package/dist/host-log.js.map +1 -1
  29. package/dist/host-status.d.ts +53 -0
  30. package/dist/host-status.d.ts.map +1 -0
  31. package/dist/host-status.js +104 -0
  32. package/dist/host-status.js.map +1 -0
  33. package/dist/host-tools.d.ts +2 -1
  34. package/dist/host-tools.d.ts.map +1 -1
  35. package/dist/host-tools.js +54 -20
  36. package/dist/host-tools.js.map +1 -1
  37. package/dist/live-employee.d.ts.map +1 -1
  38. package/dist/live-employee.js +21 -16
  39. package/dist/live-employee.js.map +1 -1
  40. package/dist/merge-requests.d.ts +1 -0
  41. package/dist/merge-requests.d.ts.map +1 -1
  42. package/dist/merge-requests.js +19 -6
  43. package/dist/merge-requests.js.map +1 -1
  44. package/dist/pi-model-service.d.ts.map +1 -1
  45. package/dist/platform-client.d.ts +8 -2
  46. package/dist/platform-client.d.ts.map +1 -1
  47. package/dist/platform-client.js +15 -3
  48. package/dist/platform-client.js.map +1 -1
  49. package/dist/qa-project-checkout.d.ts +1 -1
  50. package/dist/qa-project-checkout.d.ts.map +1 -1
  51. package/dist/qa-session-manager.d.ts +2 -1
  52. package/dist/qa-session-manager.d.ts.map +1 -1
  53. package/dist/qa-session-manager.js +115 -15
  54. package/dist/qa-session-manager.js.map +1 -1
  55. package/dist/stage-delivery.js +2 -2
  56. package/dist/state.d.ts +2 -2
  57. package/dist/state.js +2 -2
  58. package/dist/test-executor.d.ts +1 -1
  59. package/dist/test-executor.d.ts.map +1 -1
  60. package/dist/test-run-manager.js +5 -5
  61. package/dist/test-run-manager.js.map +1 -1
  62. package/dist/tool-probe.d.ts +31 -0
  63. package/dist/tool-probe.d.ts.map +1 -0
  64. package/dist/tool-probe.js +95 -0
  65. package/dist/tool-probe.js.map +1 -0
  66. package/dist/windows-service.d.ts +1 -0
  67. package/dist/windows-service.d.ts.map +1 -1
  68. package/dist/windows-service.js +19 -0
  69. package/dist/windows-service.js.map +1 -1
  70. package/package.json +23 -14
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-log.d.ts","sourceRoot":"","sources":["../src/diagnostic-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAGjF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,iBAAiB,GAAG,YAAY,CAAC;IAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uCAAuC;AACvC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO;;;;;;;EAsCnD;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,8BAA8B,EACrC,OAAO,EAAE,oBAAoB,QAS9B;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,8BAA8B,EAAE,EACxC,OAAO,EAAE,oBAAoB,QAS9B"}
1
+ {"version":3,"file":"diagnostic-log.d.ts","sourceRoot":"","sources":["../src/diagnostic-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAGjF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,iBAAiB,GAAG,YAAY,CAAC;IAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uCAAuC;AACvC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO;;;;;;;EAwCnD;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,8BAA8B,EACrC,OAAO,EAAE,oBAAoB,QAS9B;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,8BAA8B,EAAE,EACxC,OAAO,EAAE,oBAAoB,QAS9B"}
@@ -4,6 +4,8 @@ export function diagnosticErrorFields(error) {
4
4
  // Pi 1.0.0 的搜索工具会把退出码变成 Error.message,而不是 error.code。
5
5
  // 仅提取已核对的固定格式和数字,不把原始 stderr 带入日志。
6
6
  const message = error instanceof Error ? error.message : "";
7
+ if (/^Command timed out after \d+(?:\.\d+)? seconds$/mu.test(message))
8
+ return { reason: "TIMEOUT" };
7
9
  const exitMatch = /^(?:ripgrep|fd) exited with code (-?\d{1,10})$/u.exec(message);
8
10
  if (exitMatch)
9
11
  return { reason: "NON_ZERO_EXIT", exitCode: Number(exitMatch[1]) };
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-log.js","sourceRoot":"","sources":["../src/diagnostic-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic-log.js","sourceRoot":"","sources":["../src/diagnostic-log.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,19 @@ export declare function runDiagnostics(options: {
10
10
  runtimeVerification?: "full" | "installed-package";
11
11
  shell?: HostShell | undefined;
12
12
  logContext?: DiagnosticLogContext;
13
+ toolChecks?: LocalCodingHostDiagnosticCheck[];
13
14
  }, dependencies?: {
14
15
  captureCommand?: typeof captureCommand;
15
16
  }): Promise<{
17
+ stage?: "LOOKUP" | "STARTUP" | "EXECUTION";
18
+ timings?: {
19
+ lookupMs?: number;
20
+ startupMs?: number;
21
+ executionMs?: number;
22
+ totalMs?: number;
23
+ };
24
+ lastSucceededAt?: string | null;
25
+ bashPaths?: string[];
16
26
  id: "RUNTIME_INTEGRITY" | "BACKGROUND_SERVICE" | "DEVICE_CREDENTIAL" | "PROVIDER_AUTH" | "PLATFORM_CONNECTIVITY" | "HOST_GENERATION" | "WORKSPACE_ROOT" | "DEFAULT_MODEL" | "SHELL" | "CONTENT_SEARCH" | "FILE_SEARCH";
17
27
  status: "PASS" | "ACTION_REQUIRED" | "FAIL";
18
28
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,qBAAqB,CAAC;AAa7B,wBAAsB,cAAc,CAClC,OAAO,EAAE;IACP,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACnD,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,EACD,YAAY,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,cAAc,CAAA;CAAO;;;;;KA6C9D;AAoID,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;UAC1B,MAAM;YAAU,MAAM;GAUlD;AACD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAmB1F"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,qBAAqB,CAAC;AAc7B,wBAAsB,cAAc,CAClC,OAAO,EAAE;IACP,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IACnD,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,UAAU,CAAC,EAAE,8BAA8B,EAAE,CAAC;CAC/C,EACD,YAAY,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,cAAc,CAAA;CAAO;;;gBA2NirhQ,CAAC;iBAAmC,CAAC;mBAAqC,CAAC;eAAiC,CAAC;;;;;;;;KA5K51hQ;AAoID,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;UAC1B,MAAM;YAAU,MAAM;GAUlD;AACD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAmB1F"}
@@ -10,6 +10,7 @@ import { linuxServiceDefinition } from "./linux-service.js";
10
10
  import { activeProfile, aipCommand, paths, windowsTaskName } from "./paths.js";
11
11
  import { runtimeArchitecture } from "./platform.js";
12
12
  import { isSecureFile, readJson } from "./secure-json.js";
13
+ import { windowsTaskConfigurationMatches } from "./windows-service.js";
13
14
  export async function runDiagnostics(options, dependencies = {}) {
14
15
  const local = paths();
15
16
  const checks = [];
@@ -46,7 +47,8 @@ export async function runDiagnostics(options, dependencies = {}) {
46
47
  code: options.defaultModelValid ? "DEFAULT_MODEL_OK" : "DEFAULT_MODEL_INVALID",
47
48
  nextAction: "在平台重新选择默认模型",
48
49
  });
49
- const toolChecks = await checkHostTools(options.shell ?? resolveHostShell(process.platform, process.env), {}, context);
50
+ const toolChecks = options.toolChecks ??
51
+ (await checkHostTools(options.shell ?? resolveHostShell(process.platform, process.env), {}, context));
50
52
  for (const check of toolChecks)
51
53
  record(check);
52
54
  logDiagnosticSummary(checks, context);
@@ -151,7 +153,7 @@ async function backgroundCheck(runCommand) {
151
153
  const expected = windowsTaskDefinition(local.runtimeCurrent, local.base);
152
154
  const configured = await readJson(join(local.root, "state", "windows-task.json"));
153
155
  const loaded = (await runCommand("schtasks.exe", ["/Query", "/TN", windowsTaskName()])).code === 0;
154
- configuredAndLoaded = JSON.stringify(configured) === JSON.stringify(expected) && loaded;
156
+ configuredAndLoaded = windowsTaskConfigurationMatches(configured, expected) && loaded;
155
157
  }
156
158
  else if (process.platform === "linux") {
157
159
  const expected = linuxServiceDefinition(local.runtimeCurrent, local.base);
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
1
  /** 仅记录标识与经过脱敏的错误,不记录命令正文、凭证或环境变量。 */
2
2
  export declare function logHostEvent(event: string, fields?: Record<string, unknown>): void;
3
+ export declare function redactHostText(value: string, roots?: string[]): string;
4
+ /** 仓库准备失败只记录诊断字段,不打印完整命令或环境变量。 */
5
+ export declare function logGitPreparationFailure(error: unknown, context: {
6
+ projectId: string;
7
+ projectName: string;
8
+ branch: string;
9
+ target: string;
10
+ }): void;
3
11
  //# sourceMappingURL=host-log.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-log.d.ts","sourceRoot":"","sources":["../src/host-log.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,QAE/E"}
1
+ {"version":3,"file":"host-log.d.ts","sourceRoot":"","sources":["../src/host-log.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,QAE/E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,UA0BjE;AAED,kCAAkC;AAClC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,QAuBpF"}
package/dist/host-log.js CHANGED
@@ -2,4 +2,39 @@
2
2
  export function logHostEvent(event, fields = {}) {
3
3
  process.stderr.write(`${JSON.stringify({ at: new Date().toISOString(), event, ...fields })}\n`);
4
4
  }
5
+ export function redactHostText(value, roots = []) {
6
+ let redacted = value;
7
+ for (const root of [...roots].filter(Boolean).sort((a, b) => b.length - a.length))
8
+ redacted = redacted.split(root).join("[本地路径]");
9
+ redacted = redacted
10
+ .replace(/data:image\/[^;,\s]+;base64,[A-Za-z0-9+/=]+/giu, "[图片内容已脱敏]")
11
+ .replace(/\bBearer\s+[A-Za-z0-9._~+/=-]+/giu, "Bearer [已脱敏]")
12
+ .replace(/\b(?:sk-[A-Za-z0-9_-]{12,}|ghp_[A-Za-z0-9_]{12,}|github_pat_[A-Za-z0-9_]{12,}|xox[baprs]-[A-Za-z0-9-]{12,})\b/gu, "[凭证已脱敏]")
13
+ .replace(/\b([A-Z0-9_]*(?:TOKEN|PASSWORD|SECRET|API_KEY|AUTH)[A-Z0-9_]*)=([^\s]+)/giu, "$1=[已脱敏]")
14
+ .replace(/(["']?(?:access_token|refresh_token|id_token|api_key|password|secret|token)["']?\s*:\s*["']?)[^"'\s,}]+/giu, "$1[已脱敏]")
15
+ .replace(/-----BEGIN [^-]+ PRIVATE KEY-----[\s\S]*?-----END [^-]+ PRIVATE KEY-----/gu, "[私钥已脱敏]")
16
+ .replace(/(?:\/(?:Users|home|private\/var|var\/folders|tmp)\/[^\s'"`<>]*)/gu, "[本地路径]")
17
+ .replace(/\b[A-Za-z]:\\(?:[^\s'"`<>]+\\?)+/gu, "[本地路径]");
18
+ return redacted.slice(0, 100_000);
19
+ }
20
+ /** 仓库准备失败只记录诊断字段,不打印完整命令或环境变量。 */
21
+ export function logGitPreparationFailure(error, context) {
22
+ const failure = error;
23
+ // Git 错误可能回显带凭证的 URL;先移除整个 URL,再应用通用脱敏。
24
+ const sanitize = (value) => redactHostText(value.replace(/\b[a-z][a-z0-9+.-]*:\/\/[^\s'"<>]+/giu, "[仓库地址已脱敏]"));
25
+ const stderr = sanitize(typeof failure?.stderr === "string" ? failure.stderr : "");
26
+ logHostEvent("git_repository_prepare_failed", {
27
+ operation: "clone",
28
+ projectId: context.projectId,
29
+ projectName: sanitize(context.projectName),
30
+ branch: sanitize(context.branch),
31
+ target: sanitize(context.target.replace(/^(?:[A-Za-z]:[\\/]Users[\\/]|\/(?:Users|home)\/)[^\\/]+/iu, "~")),
32
+ targetPathLength: context.target.length,
33
+ code: typeof failure?.code === "number" || typeof failure?.code === "string"
34
+ ? failure.code
35
+ : "UNKNOWN",
36
+ stderr: stderr.slice(0, 8000),
37
+ stderrTruncated: stderr.length > 8000,
38
+ });
39
+ }
5
40
  //# sourceMappingURL=host-log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-log.js","sourceRoot":"","sources":["../src/host-log.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,SAAkC,EAAE;IAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"host-log.js","sourceRoot":"","sources":["../src/host-log.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,SAAkC,EAAE;IAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,QAAkB,EAAE;IAChE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAC/E,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,GAAG,QAAQ;SAChB,OAAO,CAAC,gDAAgD,EAAE,WAAW,CAAC;SACtE,OAAO,CAAC,mCAAmC,EAAE,cAAc,CAAC;SAC5D,OAAO,CACN,iHAAiH,EACjH,SAAS,CACV;SACA,OAAO,CACN,4EAA4E,EAC5E,UAAU,CACX;SACA,OAAO,CACN,4GAA4G,EAC5G,SAAS,CACV;SACA,OAAO,CACN,4EAA4E,EAC5E,SAAS,CACV;SACA,OAAO,CAAC,mEAAmE,EAAE,QAAQ,CAAC;SACtF,OAAO,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAC;IAC3D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,OAAmF;IAEnF,MAAM,OAAO,GAAG,KAAoD,CAAC;IACrE,wCAAwC;IACxC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CACjC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC,EAAE,WAAW,CAAC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,YAAY,CAAC,+BAA+B,EAAE;QAC5C,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;QAC1C,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,MAAM,EAAE,QAAQ,CACd,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,2DAA2D,EAAE,GAAG,CAAC,CACzF;QACD,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QACvC,IAAI,EACF,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ;YACpE,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,SAAS;QACf,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI;KACtC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { LocalCodingHostDiagnosticCheck } from "@ai-platform/api-contracts";
2
+ import type { createPiModelService } from "./pi-model-service.js";
3
+ import type { PlatformClient } from "./platform-client.js";
4
+ import { type HostState } from "./state.js";
5
+ export declare const TOOL_CHECK_INTERVAL_MS: number;
6
+ type Pi = ReturnType<typeof createPiModelService>;
7
+ type Verification = Awaited<ReturnType<PlatformClient["verify"]>>;
8
+ type Report = {
9
+ local: Awaited<ReturnType<typeof collectLocalStatus>>;
10
+ verification: Verification | undefined;
11
+ toolChecks: LocalCodingHostDiagnosticCheck[] | undefined;
12
+ };
13
+ /** One reporter per daemon identity; status and diagnostics share its execution. */
14
+ export declare class HostStatusReporter {
15
+ private readonly client;
16
+ private readonly pi;
17
+ private readonly host;
18
+ private readonly bootId?;
19
+ private inFlight;
20
+ private checkingTools;
21
+ private lastStatusAt?;
22
+ private lastToolCheckAt?;
23
+ private toolRevision;
24
+ constructor(client: PlatformClient, pi: Pi, host: HostState, bootId?: string | undefined);
25
+ get pending(): boolean;
26
+ statusDue(): boolean;
27
+ toolsDue(revision?: number): boolean;
28
+ report(checkTools?: boolean): Promise<Report>;
29
+ private performReport;
30
+ }
31
+ export declare function collectLocalStatus(pi: Pi): Promise<{
32
+ providers: import("./pi-model-service.js").ProviderState[];
33
+ models: {
34
+ thinkingLevelAdaptations?: {
35
+ off: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"];
36
+ minimal: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"];
37
+ low: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"];
38
+ medium: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"];
39
+ high: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"];
40
+ xhigh: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"];
41
+ max: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"];
42
+ };
43
+ supportsImages?: boolean;
44
+ providerId: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostProviderId"];
45
+ modelId: string;
46
+ displayName: string;
47
+ reasoning: boolean;
48
+ allowedThinkingLevels: import("@ai-platform/api-contracts").components["schemas"]["LocalCodingHostThinkingLevel"][];
49
+ }[];
50
+ workspaceRootStatus: "PASS" | "FAIL";
51
+ }>;
52
+ export {};
53
+ //# sourceMappingURL=host-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-status.d.ts","sourceRoot":"","sources":["../src/host-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAIjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG3E,eAAO,MAAM,sBAAsB,QAAe,CAAC;AACnD,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClD,KAAK,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;IACtD,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,8BAA8B,EAAE,GAAG,SAAS,CAAC;CAC1D,CAAC;AAEF,oFAAoF;AACpF,qBAAa,kBAAkB;IAQ3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAV1B,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,YAAY,CAAqB;gBAGtB,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,SAAS,EACf,MAAM,CAAC,EAAE,MAAM,YAAA;IAGlC,IAAI,OAAO,YAEV;IAED,SAAS;IAIT,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IAQpB,MAAM,CAAC,UAAU,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;YAgBnC,aAAa;CA+C5B;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,EAAE;;;;iBAWuh4P,0DAAsB;qBAA0D,0DAAsB;iBAAsD,0DAAsB;oBAAyD,0DAAsB;kBAAuD,0DAAsB;mBAAwD,0DAAsB;iBAAsD,0DAAsB;;;oBAA8G,0DAAsB;;;;+BAA+J,0DAAsB;;;GADt25P"}
@@ -0,0 +1,104 @@
1
+ import { workspaceCheck } from "./diagnostics.js";
2
+ import { checkHostTools } from "./host-tools.js";
3
+ import { paths } from "./paths.js";
4
+ import { readHostState, writeHostState } from "./state.js";
5
+ const STATUS_INTERVAL_MS = 5 * 60_000;
6
+ export const TOOL_CHECK_INTERVAL_MS = 180 * 60_000;
7
+ /** One reporter per daemon identity; status and diagnostics share its execution. */
8
+ export class HostStatusReporter {
9
+ client;
10
+ pi;
11
+ host;
12
+ bootId;
13
+ inFlight;
14
+ checkingTools = false;
15
+ lastStatusAt;
16
+ lastToolCheckAt;
17
+ toolRevision;
18
+ constructor(client, pi, host, bootId) {
19
+ this.client = client;
20
+ this.pi = pi;
21
+ this.host = host;
22
+ this.bootId = bootId;
23
+ }
24
+ get pending() {
25
+ return Boolean(this.inFlight);
26
+ }
27
+ statusDue() {
28
+ return this.lastStatusAt === undefined || Date.now() - this.lastStatusAt >= STATUS_INTERVAL_MS;
29
+ }
30
+ toolsDue(revision) {
31
+ return (this.lastToolCheckAt === undefined ||
32
+ Date.now() - this.lastToolCheckAt >= TOOL_CHECK_INTERVAL_MS ||
33
+ (revision !== undefined && revision !== this.toolRevision));
34
+ }
35
+ async report(checkTools = false) {
36
+ if (this.inFlight) {
37
+ if (!checkTools || this.checkingTools)
38
+ return this.inFlight;
39
+ // A manual diagnostic arriving during a lightweight report must still check tools.
40
+ await this.inFlight;
41
+ return this.report(true);
42
+ }
43
+ this.checkingTools = checkTools;
44
+ const task = this.performReport(checkTools).finally(() => {
45
+ this.inFlight = undefined;
46
+ this.checkingTools = false;
47
+ });
48
+ this.inFlight = task;
49
+ return task;
50
+ }
51
+ async performReport(checkTools) {
52
+ const local = await collectLocalStatus(this.pi);
53
+ let verification;
54
+ let toolChecks;
55
+ if (checkTools) {
56
+ verification = await this.client.verify({
57
+ hostId: this.host.hostId,
58
+ generation: this.host.generation,
59
+ });
60
+ if (!verification.generationValid ||
61
+ !verification.shell ||
62
+ !verification.toolConfigurationRevision)
63
+ throw new Error("HOST_TOOL_CONFIGURATION_UNAVAILABLE");
64
+ toolChecks = await checkHostTools(verification.shell, verification.environmentVariables ?? {}, {
65
+ source: "STATUS_REPORT",
66
+ hostId: this.host.hostId,
67
+ generation: this.host.generation,
68
+ });
69
+ }
70
+ const latest = await readHostState();
71
+ if (!latest || latest.hostId !== this.host.hostId || latest.generation !== this.host.generation)
72
+ throw new Error("HOST_IDENTITY_CHANGED");
73
+ this.host.catalogRevision = Math.max(this.host.catalogRevision, latest.catalogRevision) + 1;
74
+ await writeHostState(this.host);
75
+ await this.client.reportStatus({
76
+ hostId: this.host.hostId,
77
+ generation: this.host.generation,
78
+ ...(this.bootId ? { bootId: this.bootId } : {}),
79
+ ...local,
80
+ catalogRevision: this.host.catalogRevision,
81
+ ...(toolChecks && verification?.toolConfigurationRevision !== undefined
82
+ ? { toolChecks, toolConfigurationRevision: verification.toolConfigurationRevision }
83
+ : {}),
84
+ });
85
+ this.lastStatusAt = Date.now();
86
+ if (toolChecks) {
87
+ this.lastToolCheckAt = Date.now();
88
+ this.toolRevision = verification?.toolConfigurationRevision;
89
+ }
90
+ return { local, verification, toolChecks };
91
+ }
92
+ }
93
+ export async function collectLocalStatus(pi) {
94
+ // A failed collection must never replace a previously valid catalog with an empty one.
95
+ const providers = await pi.readProviderStates();
96
+ const models = await pi.readAvailableModels();
97
+ const workspace = await workspaceCheck(paths().workspaceRoot);
98
+ return {
99
+ providers,
100
+ models,
101
+ workspaceRootStatus: workspace.status === "PASS" ? "PASS" : "FAIL",
102
+ };
103
+ }
104
+ //# sourceMappingURL=host-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-status.js","sourceRoot":"","sources":["../src/host-status.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,12 @@ import type { HostShell, LocalCodingHostDiagnosticCheck } from "@ai-platform/api
3
3
  import { createBashToolDefinition, type ToolDefinition } from "@earendil-works/pi-coding-agent";
4
4
  import type { TSchema } from "typebox";
5
5
  import { type DiagnosticLogContext } from "./diagnostic-log.js";
6
+ import { ToolProbe } from "./tool-probe.js";
6
7
  type ToolProbeLogContext = DiagnosticLogContext & {
7
8
  checkId: LocalCodingHostDiagnosticCheck["id"];
8
9
  shell?: HostShell["name"];
9
10
  };
10
- export declare function createHostShellTool(cwd: string, shell: HostShell, variables?: Record<string, string>): ReturnType<typeof createBashToolDefinition>;
11
+ export declare function createHostShellTool(cwd: string, shell: HostShell, variables?: Record<string, string>, probe?: ToolProbe): ReturnType<typeof createBashToolDefinition>;
11
12
  export declare function probeToolExecution<T extends TSchema>(tool: Pick<ToolDefinition<T>, "execute">, args: Parameters<ToolDefinition<T>["execute"]>[1], expected: string, cwd?: string, logContext?: ToolProbeLogContext): Promise<boolean>;
12
13
  export declare function checkHostTools(shell: HostShell, variables?: Record<string, string>, logContext?: DiagnosticLogContext): Promise<LocalCodingHostDiagnosticCheck[]>;
13
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"host-tools.d.ts","sourceRoot":"","sources":["../src/host-tools.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EACL,wBAAwB,EAIxB,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,oBAAoB,EAAyB,MAAM,qBAAqB,CAAC;AAIvF,KAAK,mBAAmB,GAAG,oBAAoB,GAAG;IAChD,OAAO,EAAE,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,EAChB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAc7C;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EACxD,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EACxC,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAgB,EACnB,UAAU,CAAC,EAAE,mBAAmB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAiClB;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,SAAS,EAChB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACtC,UAAU,GAAE,oBAA+C,GAC1D,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAqE3C"}
1
+ {"version":3,"file":"host-tools.d.ts","sourceRoot":"","sources":["../src/host-tools.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EACL,wBAAwB,EAKxB,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,KAAK,oBAAoB,EAAyB,MAAM,qBAAqB,CAAC;AAGvF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,KAAK,mBAAmB,GAAG,oBAAoB,GAAG;IAChD,OAAO,EAAE,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,EAChB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACtC,KAAK,CAAC,EAAE,SAAS,GAChB,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAmB7C;AAED,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EACxD,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EACxC,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAgB,EACnB,UAAU,CAAC,EAAE,mBAAmB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAElB;AA2DD,wBAAsB,cAAc,CAClC,KAAK,EAAE,SAAS,EAChB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACtC,UAAU,GAAE,oBAA+C,GAC1D,OAAO,CAAC,8BAA8B,EAAE,CAAC,CA+F3C"}
@@ -2,11 +2,13 @@ import "./runtime-environment.js";
2
2
  import { mkdtemp, rm, writeFile } from "node:fs/promises";
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
- import { createBashToolDefinition, createFindToolDefinition, createGrepToolDefinition, createPowerShellToolDefinition, } from "@earendil-works/pi-coding-agent";
5
+ import { createBashToolDefinition, createFindToolDefinition, createGrepToolDefinition, createLocalPowerShellOperations, createPowerShellToolDefinition, } from "@earendil-works/pi-coding-agent";
6
+ import { detectBashPaths } from "./bash-discovery.js";
6
7
  import { diagnosticErrorFields } from "./diagnostic-log.js";
7
8
  import { logHostEvent } from "./host-log.js";
8
9
  import { activeProfile, aipBaseHome } from "./paths.js";
9
- export function createHostShellTool(cwd, shell, variables = {}) {
10
+ import { ToolProbe } from "./tool-probe.js";
11
+ export function createHostShellTool(cwd, shell, variables = {}, probe) {
10
12
  const options = {
11
13
  exposeSessionEnvironment: false,
12
14
  spawnHook: (spawn) => ({
@@ -15,28 +17,45 @@ export function createHostShellTool(cwd, shell, variables = {}) {
15
17
  }),
16
18
  };
17
19
  return shell.name === "powershell"
18
- ? createPowerShellToolDefinition(cwd, options)
20
+ ? createPowerShellToolDefinition(cwd, {
21
+ ...options,
22
+ ...(probe
23
+ ? { operations: createLocalPowerShellOperations({ onStage: probe.onStage }) }
24
+ : {}),
25
+ })
19
26
  : createBashToolDefinition(cwd, {
20
27
  ...options,
21
28
  ...(shell.shellPath ? { shellPath: shell.shellPath } : {}),
22
29
  });
23
30
  }
24
31
  export async function probeToolExecution(tool, args, expected, cwd = process.cwd(), logContext) {
25
- const startedAt = Date.now();
26
- const signal = AbortSignal.timeout(5_000);
32
+ return (await executeProbe(tool, args, expected, cwd, logContext)).ok;
33
+ }
34
+ async function executeProbe(tool, args, expected, cwd, logContext, suppliedProbe) {
35
+ const timeout = args.timeout ?? 30;
36
+ const probe = suppliedProbe ?? new ToolProbe(false, timeout * 1000);
27
37
  const fail = (details) => {
38
+ const facts = probe.details();
39
+ const suffix = probe.signal.aborted || details.reason === "TIMEOUT"
40
+ ? `${facts.stage}_TIMEOUT`
41
+ : details.reason === "TOOL_NOT_FOUND" && facts.stage === "LOOKUP"
42
+ ? "LOOKUP_NOT_FOUND"
43
+ : details.reason === "PERMISSION_DENIED"
44
+ ? `${facts.stage}_PERMISSION_DENIED`
45
+ : `${facts.stage}_FAILED`;
28
46
  if (logContext)
29
47
  logHostEvent("host_tool_check_failed", {
30
48
  ...logContext,
31
49
  ...details,
32
- durationMs: Date.now() - startedAt,
50
+ ...facts,
51
+ durationMs: facts.timings.totalMs,
33
52
  });
34
- return false;
53
+ return { ok: false, suffix, ...facts };
35
54
  };
36
55
  try {
37
- const result = await tool.execute("host-tool-diagnostic", args, signal, undefined, {
56
+ const result = await probe.run(tool.execute("host-tool-diagnostic", args, probe.signal, undefined, {
38
57
  cwd,
39
- });
58
+ }));
40
59
  const output = result.content
41
60
  .map((part) => ("text" in part ? String(part.text) : ""))
42
61
  .join("\n");
@@ -49,11 +68,15 @@ export async function probeToolExecution(tool, args, expected, cwd = process.cwd
49
68
  });
50
69
  if (!output.includes(expected))
51
70
  return fail({ reason: "OUTPUT_MISMATCH", ...(exitCode === 0 ? { exitCode } : {}) });
52
- return true;
71
+ probe.onStage("COMPLETED");
72
+ return { ok: true, suffix: "OK", ...probe.details() };
53
73
  }
54
74
  catch (error) {
55
75
  const details = diagnosticErrorFields(error);
56
- return fail({ ...details, ...(signal.aborted ? { reason: "TIMEOUT" } : {}) });
76
+ return fail({ ...details, ...(probe.signal.aborted ? { reason: "TIMEOUT" } : {}) });
77
+ }
78
+ finally {
79
+ probe.dispose();
57
80
  }
58
81
  }
59
82
  export async function checkHostTools(shell, variables = {}, logContext = { source: "TOOL_CHECK" }) {
@@ -66,13 +89,13 @@ export async function checkHostTools(shell, variables = {}, logContext = { sourc
66
89
  stage = "CREATE_PROBE_FILE";
67
90
  await writeFile(join(root, "host-tool-probe.txt"), `${token}\n`, { mode: 0o600 });
68
91
  stage = "CREATE_TOOLS";
92
+ const shellProbe = new ToolProbe(shell.name === "powershell", 30_000);
69
93
  const cases = [
70
94
  [
71
95
  "SHELL",
72
- createHostShellTool(root, shell, variables),
96
+ createHostShellTool(root, shell, variables, shellProbe),
73
97
  {
74
98
  command: shell.name === "powershell" ? `Write-Output '${token}'` : `printf '${token}'`,
75
- timeout: 5,
76
99
  },
77
100
  token,
78
101
  "检查本地开发环境的 Shell 选择和 Bash 路径",
@@ -94,16 +117,27 @@ export async function checkHostTools(shell, variables = {}, logContext = { sourc
94
117
  ];
95
118
  for (const [id, tool, args, expected, action] of cases) {
96
119
  stage = id;
97
- const ok = await probeToolExecution(tool, args, expected, root, {
120
+ const result = await executeProbe(tool, args, expected, root, {
98
121
  ...logContext,
99
122
  checkId: id,
100
123
  ...(id === "SHELL" ? { shell: shell.name } : {}),
101
- });
124
+ }, id === "SHELL" ? shellProbe : undefined);
102
125
  checks.push({
103
126
  id,
104
- status: ok ? "PASS" : "FAIL",
105
- code: `${id}_${ok ? "OK" : "EXECUTION_FAILED"}`,
106
- nextAction: ok ? "无需处理" : action,
127
+ status: result.ok ? "PASS" : "FAIL",
128
+ code: `${id}_${result.suffix}`,
129
+ nextAction: result.ok ? "无需处理" : action,
130
+ stage: result.stage,
131
+ timings: result.timings,
132
+ });
133
+ }
134
+ const shellCheck = checks.find((check) => check.id === "SHELL");
135
+ if (shellCheck) {
136
+ const probeRoot = root;
137
+ shellCheck.bashPaths = await detectBashPaths({
138
+ ...(shell.name === "bash" && shell.shellPath ? { configuredPath: shell.shellPath } : {}),
139
+ env: { ...process.env, ...variables },
140
+ probe: (shellPath) => probeToolExecution(createHostShellTool(probeRoot, { name: "bash", shellPath }, variables), { command: `test -n "$BASH_VERSION" && printf '${token}'`, timeout: 2 }, token, probeRoot),
107
141
  });
108
142
  }
109
143
  return checks;
@@ -118,13 +152,13 @@ export async function checkHostTools(shell, variables = {}, logContext = { sourc
118
152
  }
119
153
  finally {
120
154
  if (root)
121
- await rm(root, { recursive: true, force: true }).catch((error) => {
155
+ await rm(root, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }).catch((error) => {
122
156
  logHostEvent("host_tool_check_error", {
123
157
  ...logContext,
124
158
  stage: "CLEANUP",
125
159
  ...diagnosticErrorFields(error),
126
160
  });
127
- throw error;
161
+ // 取消的进程可能还在退出;临时文件清理不能覆盖已经取得的检测结果。
128
162
  });
129
163
  }
130
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"host-tools.js","sourceRoot":"","sources":["../src/host-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-tools.js","sourceRoot":"","sources":["../src/host-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"live-employee.d.ts","sourceRoot":"","sources":["../src/live-employee.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,YAAY,EAOjB,KAAK,gBAAgB,EAGtB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAGnF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,UAAO,EACX,MAAM,GAAE,aAAa,GAAG,aAAa,GAAG,YAA4B,EACpE,QAAQ,UAAQ,EAChB,KAAK,UAAQ,UAiCd;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,cAAc,CAAC,EAC/D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,UAAO,EACX,OAAO,UAAQ,EACf,KAAK,GAAE,aAAa,GAAG,aAAa,GAAG,YAA4B,EACnE,SAAS,GAAE,MAAM,OAAqB,EACtC,gBAAgB,GAAE,MAAM,MAAiB,EACzC,eAAe,GAAE,MAAM,IAAe,EACtC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO;;sBAiSR,YAAY;EA+CtC"}
1
+ {"version":3,"file":"live-employee.d.ts","sourceRoot":"","sources":["../src/live-employee.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,YAAY,EAOjB,KAAK,gBAAgB,EAGtB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAGnF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,UAAO,EACX,MAAM,GAAE,aAAa,GAAG,aAAa,GAAG,YAA4B,EACpE,QAAQ,UAAQ,EAChB,KAAK,UAAQ,UAiCd;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,cAAc,CAAC,EAC/D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,EACD,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,UAAO,EACX,OAAO,UAAQ,EACf,KAAK,GAAE,aAAa,GAAG,aAAa,GAAG,YAA4B,EACnE,SAAS,GAAE,MAAM,OAAqB,EACtC,gBAAgB,GAAE,MAAM,MAAiB,EACzC,eAAe,GAAE,MAAM,IAAe,EACtC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO;;sBAwSR,YAAY;EA+CtC"}