@yfwu2020/dsh-selection-explain 0.13.0 → 0.13.1

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 (67) hide show
  1. package/README.md +3 -3
  2. package/lib/client.js +11672 -11473
  3. package/lib/client.js.map +4 -4
  4. package/lib/host/analyze-conclusion.js +115 -0
  5. package/lib/host/analyze-conclusion.js.map +1 -0
  6. package/lib/host/analyze-execution-types.js +2 -0
  7. package/lib/host/analyze-execution-types.js.map +1 -0
  8. package/lib/host/analyze-execution.js +166 -0
  9. package/lib/host/analyze-execution.js.map +1 -0
  10. package/lib/host/analyze-history.js +110 -0
  11. package/lib/host/analyze-history.js.map +1 -0
  12. package/lib/host/analyze-messages.js +95 -0
  13. package/lib/host/analyze-messages.js.map +1 -0
  14. package/lib/host/analyze-output.js +69 -0
  15. package/lib/host/analyze-output.js.map +1 -0
  16. package/lib/host/analyze-prompt.js +110 -0
  17. package/lib/host/analyze-prompt.js.map +1 -0
  18. package/lib/host/analyze-request.js +129 -0
  19. package/lib/host/analyze-request.js.map +1 -0
  20. package/lib/host/analyze-round.js +121 -0
  21. package/lib/host/analyze-round.js.map +1 -0
  22. package/lib/host/analyze-tool-execution.js +98 -0
  23. package/lib/host/analyze-tool-execution.js.map +1 -0
  24. package/lib/host/analyze-tools.js +79 -0
  25. package/lib/host/analyze-tools.js.map +1 -0
  26. package/lib/host/analyze-types.js +2 -0
  27. package/lib/host/analyze-types.js.map +1 -0
  28. package/lib/host/analyze.js +30 -977
  29. package/lib/host/analyze.js.map +1 -1
  30. package/lib/host/native-probe.js +66 -0
  31. package/lib/host/native-probe.js.map +1 -0
  32. package/lib/host/plugin.js +9 -10
  33. package/lib/host/plugin.js.map +1 -1
  34. package/lib/host/shot-capture.js +322 -0
  35. package/lib/host/shot-capture.js.map +1 -0
  36. package/lib/host/shot-geometry.js +183 -0
  37. package/lib/host/shot-geometry.js.map +1 -0
  38. package/lib/host/shot-platform.js +208 -0
  39. package/lib/host/shot-platform.js.map +1 -0
  40. package/lib/host/shot-service.js +127 -0
  41. package/lib/host/shot-service.js.map +1 -0
  42. package/lib/host/shot-types.js +5 -0
  43. package/lib/host/shot-types.js.map +1 -0
  44. package/lib/host/shot.js +117 -949
  45. package/lib/host/shot.js.map +1 -1
  46. package/lib/types/host/analyze-conclusion.d.ts +3 -0
  47. package/lib/types/host/analyze-execution-types.d.ts +54 -0
  48. package/lib/types/host/analyze-execution.d.ts +3 -0
  49. package/lib/types/host/analyze-history.d.ts +41 -0
  50. package/lib/types/host/analyze-messages.d.ts +15 -0
  51. package/lib/types/host/analyze-output.d.ts +8 -0
  52. package/lib/types/host/analyze-prompt.d.ts +15 -0
  53. package/lib/types/host/analyze-request.d.ts +28 -0
  54. package/lib/types/host/analyze-round.d.ts +7 -0
  55. package/lib/types/host/analyze-tool-execution.d.ts +4 -0
  56. package/lib/types/host/analyze-tools.d.ts +15 -0
  57. package/lib/types/host/analyze-types.d.ts +13 -0
  58. package/lib/types/host/analyze.d.ts +4 -4
  59. package/lib/types/host/native-probe.d.ts +10 -0
  60. package/lib/types/host/shot-capture.d.ts +11 -0
  61. package/lib/types/host/shot-geometry.d.ts +37 -0
  62. package/lib/types/host/shot-platform.d.ts +11 -0
  63. package/lib/types/host/shot-service.d.ts +17 -0
  64. package/lib/types/host/shot-types.d.ts +105 -0
  65. package/lib/types/host/shot.d.ts +14 -71
  66. package/native/window-list.c +139 -0
  67. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/host/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/host/analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { createHash } from 'node:crypto';
3
+ import { access, chmod, mkdir, readFile, rename, rm, stat } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ import { promisify } from 'node:util';
6
+ const execute = promisify(execFile);
7
+ async function exists(path) {
8
+ return stat(path).then(value => value.isFile() && value.size > 0).catch(() => false);
9
+ }
10
+ /** A source-only npm package can recover its native helper without modifying the package. */
11
+ export async function resolveNativeProbe(options) {
12
+ if (await exists(options.packagedPath))
13
+ return options.packagedPath;
14
+ let source;
15
+ try {
16
+ source = await readFile(options.sourcePath);
17
+ }
18
+ catch {
19
+ return '';
20
+ }
21
+ const hash = createHash('sha256').update(source).digest('hex').slice(0, 12);
22
+ const output = join(options.cacheDir, `${options.name}-${hash}`);
23
+ if (await exists(output))
24
+ return output;
25
+ const temporary = `${output}.${process.pid}.${Math.random().toString(16).slice(2)}.tmp`;
26
+ try {
27
+ await mkdir(options.cacheDir, { recursive: true, mode: 0o700 });
28
+ const compile = options.compile ?? compileNativeProbe;
29
+ if (!await compile(options.sourcePath, temporary, options.frameworks) || !await exists(temporary))
30
+ return '';
31
+ await chmod(temporary, 0o755);
32
+ await rename(temporary, output);
33
+ return output;
34
+ }
35
+ catch {
36
+ return '';
37
+ }
38
+ finally {
39
+ await rm(temporary, { force: true }).catch(() => { });
40
+ }
41
+ }
42
+ /** Prefer a matching Xcode compiler/SDK pair, then the command-line tools. */
43
+ async function compileNativeProbe(source, output, frameworks) {
44
+ const flags = ['-O2', ...frameworks.flatMap(name => ['-framework', name]), source, '-o', output];
45
+ const xcode = '/Applications/Xcode.app/Contents/Developer';
46
+ const compiler = join(xcode, 'Toolchains/XcodeDefault.xctoolchain/usr/bin/clang');
47
+ const attempts = [];
48
+ try {
49
+ await access(compiler);
50
+ const env = { ...process.env, DEVELOPER_DIR: xcode };
51
+ const sdk = (await execute('xcrun', ['--sdk', 'macosx', '--show-sdk-path'], { env, timeout: 15000 })).stdout.trim();
52
+ attempts.push({ command: compiler, args: ['-isysroot', sdk, ...flags], env });
53
+ }
54
+ catch { /* Xcode is optional. */ }
55
+ attempts.push({ command: 'clang', args: flags }, { command: 'xcrun', args: ['clang', ...flags] });
56
+ for (const attempt of attempts) {
57
+ try {
58
+ await execute(attempt.command, attempt.args, { timeout: 60000, env: attempt.env });
59
+ if (await exists(output))
60
+ return true;
61
+ }
62
+ catch { /* Try the next installed toolchain. */ }
63
+ }
64
+ return false;
65
+ }
66
+ //# sourceMappingURL=native-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-probe.js","sourceRoot":"","sources":["../../src/host/native-probe.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { createHistoryStore } from './history-store.js';
10
10
  import { createRoutes } from './routes.js';
11
11
  import { createPromote } from './promote.js';
12
12
  import { createAttach } from './attach.js';
13
- import { handleShotStart, handleShotPending, handleShotImage, handleShotStatus, handleShotHello, stopShot } from './shot.js';
13
+ import { createShotService } from './shot.js';
14
14
  export function apply(ctx, rawConfig) {
15
15
  const config = resolveConfig(rawConfig);
16
16
  const speech = createSpeech(ctx, config);
@@ -22,6 +22,7 @@ export function apply(ctx, rawConfig) {
22
22
  const promote = createPromote(ctx, config, sessions, historyStore);
23
23
  const analyze = createAnalyze(ctx, config, models, sessions, historyStore);
24
24
  const attach = createAttach(ctx);
25
+ const shot = createShotService(config);
25
26
  ctx.effect(() => ctx.webServer.register({ kind: 'exact', path: `${API_PREFIX}/attach`, handler: attach.handleAttach }), `${name}: attach route`);
26
27
  // 把存好的附件读回来给界面显示(气泡里的缩略图 / 文件卡;历史回放也要用)
27
28
  ctx.effect(() => ctx.webServer.register({ kind: 'exact', path: `${API_PREFIX}/attachment`, handler: attach.handleAttachment }), `${name}: attachment playback route`);
@@ -40,31 +41,29 @@ export function apply(ctx, rawConfig) {
40
41
  ctx.effect(() => ctx.webServer.register({
41
42
  kind: 'exact',
42
43
  path: `${API_PREFIX}/shot/start`,
43
- handler: (req, res) => handleShotStart(req, res, config),
44
+ handler: shot.handleShotStart,
44
45
  }), `${name}: shot start route`);
45
46
  ctx.effect(() => ctx.webServer.register({
46
47
  kind: 'exact',
47
48
  path: `${API_PREFIX}/shot/pending`,
48
- handler: handleShotPending,
49
+ handler: shot.handleShotPending,
49
50
  }), `${name}: shot pending route`);
50
51
  ctx.effect(() => ctx.webServer.register({
51
52
  kind: 'exact',
52
53
  path: `${API_PREFIX}/shot/image`,
53
- handler: (req, res) => handleShotImage(req, res),
54
+ handler: shot.handleShotImage,
54
55
  }), `${name}: shot image route`);
55
- // 截图是临时的:卸载时把临时图删掉
56
- ctx.effect(() => () => {
57
- void stopShot();
58
- }, `${name}: shot temp cleanup`);
56
+ // 卸载时取消截图命令、释放长轮询并删除本实例的临时图
57
+ ctx.effect(() => () => shot.stop(), `${name}: shot temp cleanup`);
59
58
  ctx.effect(() => ctx.webServer.register({
60
59
  kind: 'exact',
61
60
  path: `${API_PREFIX}/shot/hello`,
62
- handler: handleShotHello,
61
+ handler: shot.handleShotHello,
63
62
  }), `${name}: shot hello route`);
64
63
  ctx.effect(() => ctx.webServer.register({
65
64
  kind: 'exact',
66
65
  path: `${API_PREFIX}/shot/status`,
67
- handler: (req, res) => handleShotStatus(req, res),
66
+ handler: shot.handleShotStatus,
68
67
  }), `${name}: shot status route`);
69
68
  ctx.effect(() => ctx.webServer.register({ kind: 'exact', path: `${API_PREFIX}/models`, handler: routes.handleModels }), `${name}: models route`);
70
69
  ctx.effect(() => ctx.webServer.register({ kind: 'exact', path: `${API_PREFIX}/promote`, handler: promote.handlePromote }), `${name}: promote route`);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/host/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE5H,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAiB;IACnD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACxC,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;IACvF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAEhC,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,EAC3G,GAAG,IAAI,gBAAgB,CACxB,CAAA;IAED,wCAAwC;IACxC,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,EACnH,GAAG,IAAI,6BAA6B,CACrC,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,EAC9G,GAAG,IAAI,iBAAiB,CACzB,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,cAAc,EAAE,CAAC,EACtH,GAAG,IAAI,kBAAkB,CAC1B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,EACzG,GAAG,IAAI,eAAe,CACvB,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EACvG,GAAG,IAAI,cAAc,CACtB,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC,EACnH,GAAG,IAAI,iBAAiB,CACzB,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,EACnH,GAAG,IAAI,mBAAmB,CAC3B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC,EAChH,GAAG,IAAI,uBAAuB,CAC/B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAC9F,GAAG,IAAI,sBAAsB,CAC9B,CAAA;IAED,kCAAkC;IAClC,oCAAoC;IACpC,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,EAC1B,GAAG,IAAI,qBAAqB,CAC7B,CAAA;IAED,uBAAuB;IACvB,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CACH,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,GAAG,UAAU,aAAa;QAChC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC;KACzD,CAAC,EACJ,GAAG,IAAI,oBAAoB,CAC5B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CACH,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,GAAG,UAAU,eAAe;QAClC,OAAO,EAAE,iBAAiB;KAC3B,CAAC,EACJ,GAAG,IAAI,sBAAsB,CAC9B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CACH,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,GAAG,UAAU,aAAa;QAChC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC;KACjD,CAAC,EACJ,GAAG,IAAI,oBAAoB,CAC5B,CAAA;IAED,mBAAmB;IACnB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;QACpB,KAAK,QAAQ,EAAE,CAAA;IACjB,CAAC,EAAE,GAAG,IAAI,qBAAqB,CAAC,CAAA;IAEhC,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CACH,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,GAAG,UAAU,aAAa;QAChC,OAAO,EAAE,eAAe;KACzB,CAAC,EACJ,GAAG,IAAI,oBAAoB,CAC5B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CACH,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,GAAG,UAAU,cAAc;QACjC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC;KAClD,CAAC,EACJ,GAAG,IAAI,qBAAqB,CAC7B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,EAC3G,GAAG,IAAI,gBAAgB,CACxB,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,EAC9G,GAAG,IAAI,iBAAiB,CACzB,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC,EACxH,GAAG,IAAI,uBAAuB,CAC/B,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,EAC3G,GAAG,IAAI,wBAAwB,CAChC,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CACH,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAC5H,GAAG,IAAI,2BAA2B,CACnC,CAAA;IAED,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CACH,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC,EACtH,GAAG,IAAI,wBAAwB,CAChC,CAAA;IAED,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,cAAc,UAAU,UAAU,CAAC,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/host/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ /** One capture task's pipeline. Geometry is pure; all machine operations use a typed port. */
2
+ import { join } from 'node:path';
3
+ import { CAPTURE, MAX_MARGIN_PT, SELECT_TIMEOUT_MS } from './shot-types.js';
4
+ import { pickDisplay, pickWindow, clampRect, cropBox, friendlyCaptureError } from './shot-geometry.js';
5
+ export class ShotCaptureError extends Error {
6
+ code;
7
+ startup;
8
+ constructor(code, message, startup = false) {
9
+ super(message);
10
+ this.code = code;
11
+ this.startup = startup;
12
+ }
13
+ }
14
+ export async function captureShot(platform, options, dir, signal, knownRect) {
15
+ const active = () => signal.throwIfAborted();
16
+ async function checked(promise) { const value = await promise; active(); return value; }
17
+ const ensureTmpDir = async () => { active(); return dir; };
18
+ const run = async (command, args, timeout) => {
19
+ active();
20
+ const result = await checked(platform.run(command, args, signal, timeout));
21
+ return result.failed ? '' : result.stdout;
22
+ };
23
+ const listDisplays = () => checked(platform.listDisplays(signal));
24
+ const listWindows = () => checked(platform.listWindows(signal));
25
+ const probeAvailable = () => checked(platform.probeAvailable(signal));
26
+ const pngSize = (file) => checked(platform.pngSize(file));
27
+ const rectFromXattr = (file) => checked(platform.rectFromXattr(file, signal));
28
+ // Prefetch belongs to this task, so a late probe cannot contaminate another capture.
29
+ let prefetchedWindows = options.scope === 'window' ? listWindows() : undefined;
30
+ let prefetchedDisplays = options.scope !== 'selection' || knownRect ? listDisplays() : undefined;
31
+ // These may finish after an interactive cancellation; consume rejections immediately.
32
+ void prefetchedWindows?.catch(() => { });
33
+ void prefetchedDisplays?.catch(() => { });
34
+ /**
35
+ * 截一整块显示器(`screencapture -D`)。
36
+ *
37
+ * 为什么不用 `-R`:副屏在主屏左边时坐标是负的,`screencapture -R` 直接
38
+ * "could not create image from rect";屏幕锁定时 `-R` 也会失败,而 `-D` 仍然可用。
39
+ * 所以统一按显示器截,再用 sips 裁到需要的矩形。
40
+ */
41
+ async function captureDisplay(display, options, fileName) {
42
+ const dir = await ensureTmpDir();
43
+ const path = join(dir, fileName);
44
+ const index = display.index > 0 ? display.index : display.main ? 1 : 2;
45
+ await run(CAPTURE, ['-x', '-D', String(index), path]);
46
+ const size = await pngSize(path);
47
+ if (!size || display.w <= 0 || display.h <= 0) {
48
+ await platform.remove(path);
49
+ return null;
50
+ }
51
+ // 截错屏时宽高比通常对不上:宁可退回选区,也不要把红框画到一张不相干的图上
52
+ const expected = display.w / display.h;
53
+ const actual = size.w / size.h;
54
+ if (Math.abs(actual - expected) > expected * 0.02) {
55
+ await platform.remove(path);
56
+ return null;
57
+ }
58
+ return { path, size, scale: size.w / display.w };
59
+ }
60
+ /** 把显示器图按像素矩形裁出来(sips 的 --cropOffset 是 top left)。 */
61
+ async function cropPng(source, box, size, out) {
62
+ const { left, top, width, height } = cropBox(box, size);
63
+ await run('/usr/bin/sips', ['-c', String(height), String(width), '--cropOffset', String(top), String(left), source, '--out', out], 20_000);
64
+ const cropped = await pngSize(out);
65
+ return cropped ? { left, top, width: cropped.w, height: cropped.h } : null;
66
+ }
67
+ /** 截一块选区本身(没有 region 文件时的兜底 / 自动化测试用)。 */
68
+ async function captureSelectionToFile(selection, options, fileName) {
69
+ const displays = await (prefetchedDisplays ?? listDisplays());
70
+ prefetchedDisplays = undefined;
71
+ const display = pickDisplay(displays, selection);
72
+ if (!display)
73
+ return null;
74
+ const dir = await ensureTmpDir();
75
+ const captured = await captureDisplay(display, options, `display-${options.seq}.png`);
76
+ if (!captured)
77
+ return null;
78
+ const box = {
79
+ left: (selection.x - display.x) * captured.scale,
80
+ top: (selection.y - display.y) * captured.scale,
81
+ width: selection.width * captured.scale,
82
+ height: selection.height * captured.scale,
83
+ };
84
+ const path = join(dir, fileName);
85
+ const crop = await cropPng(captured.path, box, captured.size, path);
86
+ await platform.remove(captured.path);
87
+ if (!crop)
88
+ return null;
89
+ return { path, size: { w: crop.width, h: crop.height }, scale: captured.scale };
90
+ }
91
+ /**
92
+ * 仅选区:框选落下的 region 文件**就是**最终图。
93
+ *
94
+ * 不需要窗口列表、不需要 xattr、不需要第二次截图;客户端也不用画布。
95
+ */
96
+ async function finishSelection(regionFile, selection, options, note = '') {
97
+ const size = await pngSize(regionFile);
98
+ if (!size) {
99
+ throw new ShotCaptureError('image-missing', '截图已经拍下,但读不到图片文件,请重试');
100
+ }
101
+ const sel = selection || { x: 0, y: 0, width: size.w, height: size.h };
102
+ const scale = sel.width > 0 ? size.w / sel.width : 1;
103
+ const shot = {
104
+ id: `shot-${options.seq}`,
105
+ at: Date.now(),
106
+ scope: 'selection',
107
+ mode: options.mode,
108
+ frame: false,
109
+ imagePath: regionFile,
110
+ rect: { x: 0, y: 0, width: size.w, height: size.h },
111
+ windowRect: sel,
112
+ selectionRect: sel,
113
+ scale,
114
+ pad: { x: 0, y: 0 },
115
+ owner: '',
116
+ ready: true,
117
+ };
118
+ return { shot, note };
119
+ }
120
+ /** 回退到「仅选区」:有 region 就用它,没有就现截一块。 */
121
+ async function fallbackSelection(selection, options, regionFile, note) {
122
+ if (regionFile)
123
+ return finishSelection(regionFile, selection, options, note);
124
+ const captured = await captureSelectionToFile(selection, options, `region-${options.seq}.png`);
125
+ if (captured)
126
+ return finishSelection(captured.path, selection, options, note);
127
+ throw new ShotCaptureError(note || 'selection-failed', '截图已拍下,但读取图片失败,请重试');
128
+ }
129
+ /** 选区 + 留白:外扩后裁到选区中心所在的那块屏,再从整屏图里裁出来。 */
130
+ async function finishMargin(selection, options, regionFile, note = '') {
131
+ const margin = Math.max(0, Math.min(MAX_MARGIN_PT, Math.round(options.margin)));
132
+ if (margin <= 0)
133
+ return fallbackSelection(selection, options, regionFile, note);
134
+ let expanded = {
135
+ x: selection.x - margin,
136
+ y: selection.y - margin,
137
+ width: selection.width + margin * 2,
138
+ height: selection.height + margin * 2,
139
+ };
140
+ const displays = await (prefetchedDisplays ?? listDisplays());
141
+ prefetchedDisplays = undefined;
142
+ const display = pickDisplay(displays, selection);
143
+ if (!display)
144
+ return fallbackSelection(selection, options, regionFile, note || 'no-display');
145
+ expanded = clampRect(expanded, display);
146
+ if (expanded.width < 2 || expanded.height < 2) {
147
+ return fallbackSelection(selection, options, regionFile, note || 'margin-clipped');
148
+ }
149
+ const captured = await captureDisplay(display, options, `display-${options.seq}.png`);
150
+ if (!captured) {
151
+ return fallbackSelection(selection, options, regionFile, note || 'margin-capture-failed');
152
+ }
153
+ const scale = captured.scale;
154
+ const dir = await ensureTmpDir();
155
+ const imagePath = join(dir, `shot-${options.seq}.png`);
156
+ const crop = await cropPng(captured.path, {
157
+ left: (expanded.x - display.x) * scale,
158
+ top: (expanded.y - display.y) * scale,
159
+ width: expanded.width * scale,
160
+ height: expanded.height * scale,
161
+ }, captured.size, imagePath);
162
+ await platform.remove(captured.path);
163
+ if (!crop) {
164
+ return fallbackSelection(selection, options, regionFile, note || 'margin-crop-failed');
165
+ }
166
+ const shot = {
167
+ id: `shot-${options.seq}`,
168
+ at: Date.now(),
169
+ scope: 'margin',
170
+ mode: options.mode,
171
+ frame: true,
172
+ imagePath,
173
+ rect: {
174
+ // 用裁切后的实际像素原点,避免 sips 取整带来的 1px 偏移
175
+ x: Math.round((selection.x - display.x) * scale) - crop.left,
176
+ y: Math.round((selection.y - display.y) * scale) - crop.top,
177
+ width: Math.round(selection.width * scale),
178
+ height: Math.round(selection.height * scale),
179
+ },
180
+ windowRect: expanded,
181
+ selectionRect: selection,
182
+ scale,
183
+ pad: { x: 0, y: 0 },
184
+ owner: '',
185
+ ready: true,
186
+ };
187
+ return { shot, note };
188
+ }
189
+ /** 全屏:选区中心所在的那块显示器整屏截下来。 */
190
+ async function finishScreen(selection, options, regionFile) {
191
+ const displays = await (prefetchedDisplays ?? listDisplays());
192
+ prefetchedDisplays = undefined;
193
+ const display = pickDisplay(displays, selection);
194
+ if (!display) {
195
+ return finishMargin(selection, options, regionFile, 'no-display');
196
+ }
197
+ const captured = await captureDisplay(display, options, `shot-${options.seq}.png`);
198
+ if (!captured) {
199
+ return finishMargin(selection, options, regionFile, 'screen-capture-failed');
200
+ }
201
+ const scale = captured.scale;
202
+ const shot = {
203
+ id: `shot-${options.seq}`,
204
+ at: Date.now(),
205
+ scope: 'screen',
206
+ mode: options.mode,
207
+ frame: true,
208
+ imagePath: captured.path,
209
+ rect: {
210
+ x: Math.round((selection.x - display.x) * scale),
211
+ y: Math.round((selection.y - display.y) * scale),
212
+ width: Math.round(selection.width * scale),
213
+ height: Math.round(selection.height * scale),
214
+ },
215
+ windowRect: { x: display.x, y: display.y, width: display.w, height: display.h },
216
+ selectionRect: selection,
217
+ scale,
218
+ pad: { x: 0, y: 0 },
219
+ owner: '',
220
+ ready: true,
221
+ };
222
+ return { shot, note: '' };
223
+ }
224
+ /** 整窗:找窗口、整窗截图;找不到或探针缺失时退到「选区 + 留白」。 */
225
+ async function finishWindow(regionFile, selection, options) {
226
+ if (!(await probeAvailable())) {
227
+ return finishMargin(selection, options, regionFile, 'probe-missing');
228
+ }
229
+ const wins = await (prefetchedWindows ?? listWindows());
230
+ prefetchedWindows = undefined;
231
+ const win = pickWindow(wins, selection);
232
+ if (!win) {
233
+ return finishMargin(selection, options, regionFile, 'no-window');
234
+ }
235
+ const dir = await ensureTmpDir();
236
+ const imagePath = join(dir, `shot-${options.seq}.png`);
237
+ // ⚠️ 不要加 `-o`:文档说它"不截窗口阴影",实测**反过来** ——
238
+ // 加了是 3840×2224(多 64px 阴影),不加才是 3840×2160(正好窗口的 2 倍)。
239
+ // 阴影上下不对称,按对半分会让红框整体偏(用户实测:向上偏移)。
240
+ await run(CAPTURE, ['-l', String(win.id), '-x', imagePath]);
241
+ const size = await pngSize(imagePath);
242
+ if (!size) {
243
+ return finishMargin(selection, options, regionFile, 'window-capture-failed');
244
+ }
245
+ const scale = win.w > 0 ? size.w / win.w : 2;
246
+ const windowRect = { x: win.x, y: win.y, width: win.w, height: win.h };
247
+ // 正常情况 size 应当正好等于窗口的倍数(pad=0);万一系统还是带了阴影,
248
+ // 就按"多出来的两半分"兜底 —— 客户端的 alpha 内容区探测会再校正一次。
249
+ const pad = {
250
+ x: Math.max(0, Math.round((size.w - win.w * scale) / 2)),
251
+ y: Math.max(0, Math.round((size.h - win.h * scale) / 2)),
252
+ };
253
+ const shot = {
254
+ id: `shot-${options.seq}`,
255
+ at: Date.now(),
256
+ scope: 'window',
257
+ mode: options.mode,
258
+ frame: true,
259
+ imagePath,
260
+ rect: {
261
+ x: Math.round(pad.x + (selection.x - windowRect.x) * scale),
262
+ y: Math.round(pad.y + (selection.y - windowRect.y) * scale),
263
+ width: Math.round(selection.width * scale),
264
+ height: Math.round(selection.height * scale),
265
+ },
266
+ windowRect,
267
+ selectionRect: selection,
268
+ scale,
269
+ pad,
270
+ owner: win.owner,
271
+ ready: true,
272
+ };
273
+ return { shot, note: '' };
274
+ }
275
+ /**
276
+ * 用户松手后的分派。
277
+ *
278
+ * 顺序仍然刻意:**先出图,后发事件**。UI 一旦画出来,`screencapture` 就会把它截进去
279
+ * (框、卡片都算页面内容)。仅选区的图在框选时就已经落好了,没有这个顾虑。
280
+ */
281
+ async function finishInteractive(regionFile, options, knownRect) {
282
+ let selection = knownRect || null;
283
+ if (!selection && options.scope !== 'selection') {
284
+ selection = await rectFromXattr(regionFile);
285
+ }
286
+ if (options.scope === 'selection') {
287
+ const rect = selection || (await rectFromXattr(regionFile));
288
+ return finishSelection(regionFile, rect, options);
289
+ }
290
+ if (!selection) {
291
+ return finishSelection(regionFile, null, options, 'no-rect');
292
+ }
293
+ switch (options.scope) {
294
+ case 'margin':
295
+ return finishMargin(selection, options, regionFile);
296
+ case 'screen':
297
+ return finishScreen(selection, options, regionFile);
298
+ case 'window':
299
+ default:
300
+ return finishWindow(regionFile, selection, options);
301
+ }
302
+ }
303
+ active();
304
+ if (knownRect) {
305
+ const captured = await captureSelectionToFile(knownRect, options, `region-${options.seq}.png`);
306
+ if (!captured)
307
+ throw new ShotCaptureError('capture-failed', '截图已拍下,但读取图片失败,请重试', true);
308
+ return finishInteractive(captured.path, options, knownRect);
309
+ }
310
+ const regionFile = join(dir, `region-${options.seq}.png`);
311
+ const result = await checked(platform.run(CAPTURE, ['-i', '-x', regionFile], signal, SELECT_TIMEOUT_MS));
312
+ if (await checked(platform.fileExists(regionFile)))
313
+ return finishInteractive(regionFile, options);
314
+ if (result.timedOut || result.signal === 'SIGTERM')
315
+ throw new ShotCaptureError('timeout', '框选超时,已取消这次截图');
316
+ if (result.code === null && result.failed)
317
+ throw new ShotCaptureError('spawn-failed', '无法启动系统截图命令(screencapture)');
318
+ if (result.failed || result.stderr.trim())
319
+ throw new ShotCaptureError('capture-failed', friendlyCaptureError(result.stderr, result.code));
320
+ return null; // Exit 0 without a file is the user's Escape key, not an error.
321
+ }
322
+ //# sourceMappingURL=shot-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shot-capture.js","sourceRoot":"","sources":["../../src/host/shot-capture.ts"],"names":[],"mappings":"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"}