coolhand-cli 0.11.1 → 0.13.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 (195) hide show
  1. package/README.md +13 -1
  2. package/dist/api/client-file-client.d.ts +19 -0
  3. package/dist/api/client-file-client.d.ts.map +1 -0
  4. package/dist/api/client-file-client.js +47 -0
  5. package/dist/api/client-file-client.js.map +1 -0
  6. package/dist/api/help-center-client.d.ts +26 -0
  7. package/dist/api/help-center-client.d.ts.map +1 -0
  8. package/dist/api/help-center-client.js +90 -0
  9. package/dist/api/help-center-client.js.map +1 -0
  10. package/dist/api/last-sync.d.ts.map +1 -1
  11. package/dist/api/last-sync.js +2 -1
  12. package/dist/api/last-sync.js.map +1 -1
  13. package/dist/api/workload-client.d.ts +16 -0
  14. package/dist/api/workload-client.d.ts.map +1 -0
  15. package/dist/api/workload-client.js +28 -0
  16. package/dist/api/workload-client.js.map +1 -0
  17. package/dist/auth/callback-server.d.ts.map +1 -1
  18. package/dist/auth/callback-server.js +13 -1
  19. package/dist/auth/callback-server.js.map +1 -1
  20. package/dist/auto-update/index.d.ts +61 -0
  21. package/dist/auto-update/index.d.ts.map +1 -0
  22. package/dist/auto-update/index.js +355 -0
  23. package/dist/auto-update/index.js.map +1 -0
  24. package/dist/auto-update/select.d.ts +28 -0
  25. package/dist/auto-update/select.d.ts.map +1 -0
  26. package/dist/auto-update/select.js +45 -0
  27. package/dist/auto-update/select.js.map +1 -0
  28. package/dist/auto-update/state.d.ts +25 -0
  29. package/dist/auto-update/state.d.ts.map +1 -0
  30. package/dist/auto-update/state.js +81 -0
  31. package/dist/auto-update/state.js.map +1 -0
  32. package/dist/cli.d.ts.map +1 -1
  33. package/dist/cli.js +525 -5
  34. package/dist/cli.js.map +1 -1
  35. package/dist/commands/capture-turn.d.ts +18 -0
  36. package/dist/commands/capture-turn.d.ts.map +1 -0
  37. package/dist/commands/capture-turn.js +152 -0
  38. package/dist/commands/capture-turn.js.map +1 -0
  39. package/dist/commands/download-client-file.d.ts +9 -0
  40. package/dist/commands/download-client-file.d.ts.map +1 -0
  41. package/dist/commands/download-client-file.js +71 -0
  42. package/dist/commands/download-client-file.js.map +1 -0
  43. package/dist/commands/fetch-log.d.ts.map +1 -1
  44. package/dist/commands/fetch-log.js +9 -0
  45. package/dist/commands/fetch-log.js.map +1 -1
  46. package/dist/commands/flush-pending.d.ts.map +1 -1
  47. package/dist/commands/flush-pending.js +1 -30
  48. package/dist/commands/flush-pending.js.map +1 -1
  49. package/dist/commands/get-help-article.d.ts +3 -0
  50. package/dist/commands/get-help-article.d.ts.map +1 -0
  51. package/dist/commands/get-help-article.js +49 -0
  52. package/dist/commands/get-help-article.js.map +1 -0
  53. package/dist/commands/get-template.d.ts.map +1 -1
  54. package/dist/commands/get-template.js +18 -1
  55. package/dist/commands/get-template.js.map +1 -1
  56. package/dist/commands/link-feedback.d.ts +5 -0
  57. package/dist/commands/link-feedback.d.ts.map +1 -0
  58. package/dist/commands/link-feedback.js +89 -0
  59. package/dist/commands/link-feedback.js.map +1 -0
  60. package/dist/commands/list-client-files.d.ts +3 -0
  61. package/dist/commands/list-client-files.d.ts.map +1 -0
  62. package/dist/commands/list-client-files.js +55 -0
  63. package/dist/commands/list-client-files.js.map +1 -0
  64. package/dist/commands/list-help-categories.d.ts +3 -0
  65. package/dist/commands/list-help-categories.d.ts.map +1 -0
  66. package/dist/commands/list-help-categories.js +47 -0
  67. package/dist/commands/list-help-categories.js.map +1 -0
  68. package/dist/commands/search-help-articles.d.ts +3 -0
  69. package/dist/commands/search-help-articles.d.ts.map +1 -0
  70. package/dist/commands/search-help-articles.js +73 -0
  71. package/dist/commands/search-help-articles.js.map +1 -0
  72. package/dist/commands/search-logs.d.ts.map +1 -1
  73. package/dist/commands/search-logs.js +26 -0
  74. package/dist/commands/search-logs.js.map +1 -1
  75. package/dist/commands/search-templates.d.ts.map +1 -1
  76. package/dist/commands/search-templates.js +12 -0
  77. package/dist/commands/search-templates.js.map +1 -1
  78. package/dist/commands/search-workloads.d.ts +3 -0
  79. package/dist/commands/search-workloads.d.ts.map +1 -0
  80. package/dist/commands/search-workloads.js +79 -0
  81. package/dist/commands/search-workloads.js.map +1 -0
  82. package/dist/commands/update-client-file.d.ts +3 -0
  83. package/dist/commands/update-client-file.d.ts.map +1 -0
  84. package/dist/commands/update-client-file.js +39 -0
  85. package/dist/commands/update-client-file.js.map +1 -0
  86. package/dist/commands/update.d.ts +9 -0
  87. package/dist/commands/update.d.ts.map +1 -0
  88. package/dist/commands/update.js +63 -0
  89. package/dist/commands/update.js.map +1 -0
  90. package/dist/config.d.ts +2 -0
  91. package/dist/config.d.ts.map +1 -1
  92. package/dist/config.js +25 -7
  93. package/dist/config.js.map +1 -1
  94. package/dist/errors.d.ts +1 -1
  95. package/dist/errors.d.ts.map +1 -1
  96. package/dist/errors.js.map +1 -1
  97. package/dist/format-cost.d.ts +9 -0
  98. package/dist/format-cost.d.ts.map +1 -0
  99. package/dist/format-cost.js +22 -0
  100. package/dist/format-cost.js.map +1 -0
  101. package/dist/hooks/adapters/claude.d.ts +12 -0
  102. package/dist/hooks/adapters/claude.d.ts.map +1 -0
  103. package/dist/hooks/adapters/claude.js +98 -0
  104. package/dist/hooks/adapters/claude.js.map +1 -0
  105. package/dist/hooks/adapters/copilot.d.ts +15 -0
  106. package/dist/hooks/adapters/copilot.d.ts.map +1 -0
  107. package/dist/hooks/adapters/copilot.js +96 -0
  108. package/dist/hooks/adapters/copilot.js.map +1 -0
  109. package/dist/hooks/adapters/index.d.ts +5 -0
  110. package/dist/hooks/adapters/index.d.ts.map +1 -0
  111. package/dist/hooks/adapters/index.js +8 -0
  112. package/dist/hooks/adapters/index.js.map +1 -0
  113. package/dist/hooks/adapters/shared.d.ts +25 -0
  114. package/dist/hooks/adapters/shared.d.ts.map +1 -0
  115. package/dist/hooks/adapters/shared.js +37 -0
  116. package/dist/hooks/adapters/shared.js.map +1 -0
  117. package/dist/hooks/disabled.d.ts +3 -0
  118. package/dist/hooks/disabled.d.ts.map +1 -0
  119. package/dist/hooks/disabled.js +5 -0
  120. package/dist/hooks/disabled.js.map +1 -0
  121. package/dist/hooks/hook-log.d.ts +7 -0
  122. package/dist/hooks/hook-log.d.ts.map +1 -0
  123. package/dist/hooks/hook-log.js +34 -0
  124. package/dist/hooks/hook-log.js.map +1 -0
  125. package/dist/hooks/identity.d.ts +21 -0
  126. package/dist/hooks/identity.d.ts.map +1 -0
  127. package/dist/hooks/identity.js +121 -0
  128. package/dist/hooks/identity.js.map +1 -0
  129. package/dist/hooks/log-turn.d.ts +23 -0
  130. package/dist/hooks/log-turn.d.ts.map +1 -0
  131. package/dist/hooks/log-turn.js +48 -0
  132. package/dist/hooks/log-turn.js.map +1 -0
  133. package/dist/hooks/send-turn.d.ts +32 -0
  134. package/dist/hooks/send-turn.d.ts.map +1 -0
  135. package/dist/hooks/send-turn.js +305 -0
  136. package/dist/hooks/send-turn.js.map +1 -0
  137. package/dist/hooks/silence.d.ts +7 -0
  138. package/dist/hooks/silence.d.ts.map +1 -0
  139. package/dist/hooks/silence.js +22 -0
  140. package/dist/hooks/silence.js.map +1 -0
  141. package/dist/hooks/stdin.d.ts +11 -0
  142. package/dist/hooks/stdin.d.ts.map +1 -0
  143. package/dist/hooks/stdin.js +51 -0
  144. package/dist/hooks/stdin.js.map +1 -0
  145. package/dist/hooks/turn-state.d.ts +40 -0
  146. package/dist/hooks/turn-state.d.ts.map +1 -0
  147. package/dist/hooks/turn-state.js +97 -0
  148. package/dist/hooks/turn-state.js.map +1 -0
  149. package/dist/hooks/types.d.ts +74 -0
  150. package/dist/hooks/types.d.ts.map +1 -0
  151. package/dist/hooks/types.js +3 -0
  152. package/dist/hooks/types.js.map +1 -0
  153. package/dist/logger.d.ts.map +1 -1
  154. package/dist/logger.js +12 -1
  155. package/dist/logger.js.map +1 -1
  156. package/dist/pending-store.d.ts +22 -2
  157. package/dist/pending-store.d.ts.map +1 -1
  158. package/dist/pending-store.js +25 -3
  159. package/dist/pending-store.js.map +1 -1
  160. package/dist/pending-upload.d.ts +12 -0
  161. package/dist/pending-upload.d.ts.map +1 -0
  162. package/dist/pending-upload.js +51 -0
  163. package/dist/pending-upload.js.map +1 -0
  164. package/dist/sessions/blocks.d.ts +51 -0
  165. package/dist/sessions/blocks.d.ts.map +1 -0
  166. package/dist/sessions/blocks.js +193 -0
  167. package/dist/sessions/blocks.js.map +1 -0
  168. package/dist/sessions/claude-scanner.d.ts +60 -1
  169. package/dist/sessions/claude-scanner.d.ts.map +1 -1
  170. package/dist/sessions/claude-scanner.js +277 -1
  171. package/dist/sessions/claude-scanner.js.map +1 -1
  172. package/dist/sessions/copilot-scanner.d.ts +27 -0
  173. package/dist/sessions/copilot-scanner.d.ts.map +1 -0
  174. package/dist/sessions/copilot-scanner.js +171 -0
  175. package/dist/sessions/copilot-scanner.js.map +1 -0
  176. package/dist/sessions/redact-secrets.d.ts.map +1 -1
  177. package/dist/sessions/redact-secrets.js +49 -10
  178. package/dist/sessions/redact-secrets.js.map +1 -1
  179. package/dist/sessions/turn-envelope.d.ts +62 -0
  180. package/dist/sessions/turn-envelope.d.ts.map +1 -0
  181. package/dist/sessions/turn-envelope.js +182 -0
  182. package/dist/sessions/turn-envelope.js.map +1 -0
  183. package/dist/sessions/usage.d.ts +23 -0
  184. package/dist/sessions/usage.d.ts.map +1 -0
  185. package/dist/sessions/usage.js +56 -0
  186. package/dist/sessions/usage.js.map +1 -0
  187. package/dist/skills/skill-scanner.d.ts.map +1 -1
  188. package/dist/skills/skill-scanner.js +3 -1
  189. package/dist/skills/skill-scanner.js.map +1 -1
  190. package/dist/types.d.ts +107 -0
  191. package/dist/types.d.ts.map +1 -1
  192. package/dist/types.js.map +1 -1
  193. package/dist/version.d.ts +2 -2
  194. package/dist/version.js +1 -1
  195. package/package.json +7 -4
@@ -1 +1 @@
1
- {"version":3,"file":"search-templates.js","sourceRoot":"","sources":["../../src/commands/search-templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-templates.js","sourceRoot":"","sources":["../../src/commands/search-templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SearchWorkloadsOptions } from '../types.js';
2
+ export declare function run(opts: SearchWorkloadsOptions): Promise<number>;
3
+ //# sourceMappingURL=search-workloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-workloads.d.ts","sourceRoot":"","sources":["../../src/commands/search-workloads.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,wBAAsB,GAAG,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4EvE"}
@@ -0,0 +1,79 @@
1
+ import { CliError, ExitCode } from '../errors.js';
2
+ import { logger, redact } from '../logger.js';
3
+ import { getWorkloadClient, mapWorkloadHttpError } from '../api/workload-client.js';
4
+ import { metricsLines } from '../format-cost.js';
5
+ export async function run(opts) {
6
+ try {
7
+ const coolhand = await getWorkloadClient({ clientId: opts.clientId });
8
+ const params = {};
9
+ if (opts.search !== undefined) {
10
+ params.search = opts.search;
11
+ }
12
+ if (opts.includeArchived) {
13
+ params.includeArchived = true;
14
+ }
15
+ if (opts.includeSystem) {
16
+ params.includeSystem = true;
17
+ }
18
+ if (opts.includeTemplates) {
19
+ params.includeTemplates = true;
20
+ }
21
+ if (opts.includeMetrics) {
22
+ params.includeMetrics = true;
23
+ }
24
+ if (opts.daysBack !== undefined) {
25
+ params.daysBack = opts.daysBack;
26
+ }
27
+ if (opts.since !== undefined) {
28
+ params.since = opts.since;
29
+ }
30
+ if (opts.until !== undefined) {
31
+ params.until = opts.until;
32
+ }
33
+ if (opts.page !== undefined) {
34
+ params.page = opts.page;
35
+ }
36
+ if (opts.perPage !== undefined) {
37
+ params.per = opts.perPage;
38
+ }
39
+ let result;
40
+ try {
41
+ result = await coolhand.searchWorkloads(params);
42
+ }
43
+ catch (err) {
44
+ throw mapWorkloadHttpError(err);
45
+ }
46
+ if (opts.json) {
47
+ logger.json({ ok: true, result });
48
+ }
49
+ else {
50
+ const { pagination } = result;
51
+ logger.info(`Page ${pagination.current_page} of ${pagination.total_pages} (${pagination.total_count} total) — use --page N to navigate`);
52
+ for (const w of result.workloads) {
53
+ logger.info(`${w.id} ${w.name} (${w.template_count} templates, ${w.log_count} logs)`);
54
+ for (const t of w.templates ?? []) {
55
+ logger.info(` template ${t.id} ${t.name}${t.status ? ` (${t.status})` : ''}`);
56
+ }
57
+ if (w.metrics) {
58
+ for (const line of metricsLines(w.metrics)) {
59
+ logger.info(` ${line}`);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ return ExitCode.OK;
65
+ }
66
+ catch (err) {
67
+ if (err instanceof CliError) {
68
+ if (opts.json) {
69
+ logger.json({ ok: false, error: err.code, message: redact(err.message) });
70
+ }
71
+ else {
72
+ logger.info(`Error: ${redact(err.message)} [${err.code}]`);
73
+ }
74
+ return err.exitCode;
75
+ }
76
+ throw err;
77
+ }
78
+ }
79
+ //# sourceMappingURL=search-workloads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-workloads.js","sourceRoot":"","sources":["../../src/commands/search-workloads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { UpdateClientFileOptions } from '../types.js';
2
+ export declare function run(opts: UpdateClientFileOptions): Promise<number>;
3
+ //# sourceMappingURL=update-client-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-client-file.d.ts","sourceRoot":"","sources":["../../src/commands/update-client-file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,wBAAsB,GAAG,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCxE"}
@@ -0,0 +1,39 @@
1
+ import { CliError, ExitCode } from '../errors.js';
2
+ import { logger, redact } from '../logger.js';
3
+ import { getClientFileClient, mapClientFileHttpError } from '../api/client-file-client.js';
4
+ export async function run(opts) {
5
+ try {
6
+ const coolhand = await getClientFileClient({ clientId: opts.clientId });
7
+ let result;
8
+ try {
9
+ result = await coolhand.updateClientFileStatus(opts.id, opts.status);
10
+ }
11
+ catch (err) {
12
+ throw mapClientFileHttpError(err, `Client file "${opts.id}" not found (or does not belong to this client).`);
13
+ }
14
+ if (result === null) {
15
+ // updateClientFileStatus only resolves to null in the SDK's dryRun mode, which the CLI never enables.
16
+ throw new CliError('CLIENT_FILE_ERROR', `Client file "${opts.id}" was not updated: no response received.`);
17
+ }
18
+ if (opts.json) {
19
+ logger.json({ ok: true, result });
20
+ }
21
+ else {
22
+ logger.info(`Client file "${result.name}" (id: ${result.id}) is now ${result.status}.`);
23
+ }
24
+ return ExitCode.OK;
25
+ }
26
+ catch (err) {
27
+ if (err instanceof CliError) {
28
+ if (opts.json) {
29
+ logger.json({ ok: false, error: err.code, message: redact(err.message) });
30
+ }
31
+ else {
32
+ logger.info(`Error: ${redact(err.message)} [${err.code}]`);
33
+ }
34
+ return err.exitCode;
35
+ }
36
+ throw err;
37
+ }
38
+ }
39
+ //# sourceMappingURL=update-client-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-client-file.js","sourceRoot":"","sources":["../../src/commands/update-client-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3F,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAA6B;IACrD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAExE,IAAI,MAAyC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,IAAI,CAAC,EAAE,kDAAkD,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,sGAAsG;YACtG,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,gBAAgB,IAAI,CAAC,EAAE,0CAA0C,CAAC,CAAC;QAC7G,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,EAAE,YAAY,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,GAAG,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { installVersion } from '../auto-update/index.js';
2
+ import type { UpdateOptions } from '../types.js';
3
+ export interface UpdateDeps {
4
+ selfInstall?: boolean;
5
+ install?: typeof installVersion;
6
+ versionOnDisk?: () => string | undefined;
7
+ }
8
+ export declare function run(opts: UpdateOptions, deps?: UpdateDeps): Promise<number>;
9
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EAGf,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA2DrF"}
@@ -0,0 +1,63 @@
1
+ import { canSelfInstall, findEligibleUpdate, installedVersionOnDisk, installVersion, manualInstallHint, updateHint, } from '../auto-update/index.js';
2
+ import { acquireLock } from '../auto-update/state.js';
3
+ import { CliError, ExitCode } from '../errors.js';
4
+ import { logger } from '../logger.js';
5
+ import { PACKAGE_NAME, PACKAGE_VERSION } from '../version.js';
6
+ export async function run(opts, deps = {}) {
7
+ let target;
8
+ try {
9
+ target = await findEligibleUpdate();
10
+ }
11
+ catch (err) {
12
+ throw new CliError('UPDATE_ERROR', `Could not check the npm registry: ${err.message}`);
13
+ }
14
+ if (!target) {
15
+ if (opts.json) {
16
+ logger.json({ current: PACKAGE_VERSION, target: null, installed: false });
17
+ }
18
+ else {
19
+ logger.info(`${PACKAGE_NAME} ${PACKAGE_VERSION} has no newer eligible release ` +
20
+ '(only stable, non-deprecated releases at least 48 hours old and not above the `latest` tag are installed).');
21
+ }
22
+ return ExitCode.OK;
23
+ }
24
+ const install = !opts.check && (deps.selfInstall ?? canSelfInstall());
25
+ if (!install) {
26
+ if (opts.json) {
27
+ logger.json({ current: PACKAGE_VERSION, target, installed: false });
28
+ }
29
+ else {
30
+ logger.info(`${PACKAGE_NAME} ${target} is available (you have ${PACKAGE_VERSION}). ${updateHint(target)}`);
31
+ }
32
+ return ExitCode.OK;
33
+ }
34
+ // The background job takes this lock too: two `npm install -g` runs into one prefix can leave a half-written package.
35
+ const release = await acquireLock();
36
+ if (!release) {
37
+ throw new CliError('UPDATE_ERROR', 'Another update appears to be running. Try again in a minute.');
38
+ }
39
+ logger.info(`Updating ${PACKAGE_NAME} ${PACKAGE_VERSION} → ${target}…`);
40
+ // Keep npm's stdout out of --json output so it stays parseable; npm's errors still reach stderr.
41
+ let ok;
42
+ try {
43
+ ok = await (deps.install ?? installVersion)(target, opts.json ? ['ignore', 'ignore', 'inherit'] : 'inherit');
44
+ }
45
+ finally {
46
+ await release();
47
+ }
48
+ if (!ok) {
49
+ throw new CliError('UPDATE_ERROR', `\`${manualInstallHint(target)}\` failed. You may need to run it with different permissions.`);
50
+ }
51
+ // npm on PATH may have installed into a different global prefix than this copy lives in.
52
+ if ((deps.versionOnDisk ?? installedVersionOnDisk)() !== target) {
53
+ throw new CliError('UPDATE_ERROR', `npm reported success, but this copy of ${PACKAGE_NAME} is still ${PACKAGE_VERSION}; npm may be installing to a different global prefix. Check \`npm prefix -g\`.`);
54
+ }
55
+ if (opts.json) {
56
+ logger.json({ current: PACKAGE_VERSION, target, installed: true });
57
+ }
58
+ else {
59
+ logger.info(`Updated to ${target}.`);
60
+ }
61
+ return ExitCode.OK;
62
+ }
63
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -11,6 +11,8 @@ export declare function loadConfig(): Promise<ConfigFile>;
11
11
  export declare function atomicWriteFile(filePath: string, data: string, mode?: number): Promise<void>;
12
12
  export declare function saveConfig(cfg: ConfigFile): Promise<void>;
13
13
  export declare function deleteConfig(): Promise<void>;
14
+ /** A stored client by id, own properties only: `constructor` or `toString` must not resolve to an inherited member. */
15
+ export declare function findClient(cfg: ConfigFile, id: string): ClientEntry | undefined;
14
16
  export declare function getClient(cfg: ConfigFile, clientId?: string): ClientEntry | undefined;
15
17
  export declare function upsertClient(entry: ClientEntry, makeDefault?: boolean): Promise<ConfigFile>;
16
18
  export declare function removeClient(clientId: string): Promise<ConfigFile | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM1D,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAMD,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAyBtD;AAWD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAMlD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAMrF;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,UAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAY9F;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAgB/E;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAQtE;AA2CD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyE5F;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAajH"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM1D,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAMD,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CA0BtD;AAWD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBlD;AAED,uHAAuH;AACvH,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE/E;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAMrF;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,UAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAY9F;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAgB/E;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAQtE;AA2CD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyE5F;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAajH"}
package/dist/config.js CHANGED
@@ -40,6 +40,7 @@ export async function loadConfig() {
40
40
  version: 1,
41
41
  default_client_id: parsed.default_client_id ?? null,
42
42
  clients: parsed.clients ?? {},
43
+ ...(typeof parsed.auto_update === 'boolean' ? { auto_update: parsed.auto_update } : {}),
43
44
  };
44
45
  }
45
46
  catch (err) {
@@ -85,26 +86,43 @@ export async function saveConfig(cfg) {
85
86
  await atomicWriteFile(filePath, `${JSON.stringify(cfg, null, 2)}\n`, FILE_MODE);
86
87
  }
87
88
  export async function deleteConfig() {
89
+ // `auto_update` is a machine preference, not a credential: keep it so logging out doesn't re-enable
90
+ // a background updater the user opted out of. A corrupt file can't carry one, so it's just removed.
91
+ let keep;
88
92
  try {
93
+ keep = (await loadConfig()).auto_update;
94
+ }
95
+ catch {
96
+ keep = undefined;
97
+ }
98
+ try {
99
+ if (keep !== undefined) {
100
+ await saveConfig({ ...emptyConfig(), auto_update: keep });
101
+ return;
102
+ }
89
103
  await fs.rm(configPath(), { force: true });
90
104
  }
91
105
  catch (err) {
92
106
  throw new CliError('CONFIG_WRITE_FAILED', `Failed to delete config: ${err.message}`);
93
107
  }
94
108
  }
109
+ /** A stored client by id, own properties only: `constructor` or `toString` must not resolve to an inherited member. */
110
+ export function findClient(cfg, id) {
111
+ return Object.prototype.hasOwnProperty.call(cfg.clients, id) ? cfg.clients[id] : undefined;
112
+ }
95
113
  export function getClient(cfg, clientId) {
96
114
  const id = clientId ?? cfg.default_client_id;
97
115
  if (!id) {
98
116
  return undefined;
99
117
  }
100
- return cfg.clients[id];
118
+ return findClient(cfg, id);
101
119
  }
102
120
  export async function upsertClient(entry, makeDefault = true) {
103
121
  const cfg = await loadConfig();
104
122
  // Merge onto any existing entry for this client_id so a partial entry (e.g. a
105
123
  // public-only re-login) doesn't silently drop fields it didn't provide, such as a
106
124
  // previously-stored private_key.
107
- const existing = cfg.clients[entry.client_id];
125
+ const existing = findClient(cfg, entry.client_id);
108
126
  cfg.clients[entry.client_id] = existing ? { ...existing, ...entry } : entry;
109
127
  if (makeDefault || !cfg.default_client_id) {
110
128
  cfg.default_client_id = entry.client_id;
@@ -114,7 +132,7 @@ export async function upsertClient(entry, makeDefault = true) {
114
132
  }
115
133
  export async function removeClient(clientId) {
116
134
  const cfg = await loadConfig();
117
- if (!cfg.clients[clientId]) {
135
+ if (!findClient(cfg, clientId)) {
118
136
  return cfg;
119
137
  }
120
138
  delete cfg.clients[clientId];
@@ -131,7 +149,7 @@ export async function removeClient(clientId) {
131
149
  }
132
150
  export async function setDefault(clientId) {
133
151
  const cfg = await loadConfig();
134
- if (!cfg.clients[clientId]) {
152
+ if (!findClient(cfg, clientId)) {
135
153
  throw new CliError('CLIENT_NOT_FOUND', `No client with id "${clientId}" is configured.`);
136
154
  }
137
155
  cfg.default_client_id = clientId;
@@ -196,7 +214,7 @@ export async function resolveClient(cfg, clientId) {
196
214
  }
197
215
  // 1. Explicit --client-id
198
216
  if (clientId !== undefined) {
199
- const entry = cfg.clients[clientId];
217
+ const entry = findClient(cfg, clientId);
200
218
  if (!entry) {
201
219
  throw new CliError('CLIENT_NOT_FOUND', `No client "${clientId}" is configured.`);
202
220
  }
@@ -210,7 +228,7 @@ export async function resolveClient(cfg, clientId) {
210
228
  // is most likely an accidental mis-set in a script, not a deliberate selection.
211
229
  const envClientId = process.env.COOLHAND_CLIENT_ID;
212
230
  if (envClientId) {
213
- const entry = cfg.clients[envClientId];
231
+ const entry = findClient(cfg, envClientId);
214
232
  if (!entry) {
215
233
  throw new CliError('CLIENT_NOT_FOUND', `COOLHAND_CLIENT_ID="${envClientId}" does not match any configured client.`);
216
234
  }
@@ -219,7 +237,7 @@ export async function resolveClient(cfg, clientId) {
219
237
  }
220
238
  // 3. Configured default
221
239
  if (cfg.default_client_id) {
222
- const entry = cfg.clients[cfg.default_client_id];
240
+ const entry = findClient(cfg, cfg.default_client_id);
223
241
  if (entry) {
224
242
  process.stderr.write(`Client: ${stripAnsiEscapes(entry.client_name)} (${entry.client_id})\n`);
225
243
  return entry;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -4,7 +4,7 @@ export declare enum ExitCode {
4
4
  INTERNAL = 2,
5
5
  ABORTED = 130
6
6
  }
7
- export type ErrorCode = 'TIMEOUT' | 'STATE_MISMATCH' | 'INVALID_CALLBACK' | 'BROWSER_FAILED' | 'CONFIG_WRITE_FAILED' | 'CONFIG_READ_FAILED' | 'NOT_CONFIGURED' | 'INVALID_REDIRECT_URI' | 'INVALID_BASE_URL' | 'INVALID_ARGS' | 'WRITE_ENV_FAILED' | 'CLIENT_NOT_FOUND' | 'NO_PRIVATE_KEY' | 'MCP_ERROR' | 'INGEST_ERROR' | 'FEEDBACK_ERROR' | 'LOG_ERROR' | 'TEMPLATE_ERROR' | 'LLM_REFERENCE_ERROR' | 'CERT_FILE_INSECURE' | 'UPLOAD_ERROR' | 'OUTPUT_EXISTS';
7
+ export type ErrorCode = 'TIMEOUT' | 'STATE_MISMATCH' | 'INVALID_CALLBACK' | 'BROWSER_FAILED' | 'CONFIG_WRITE_FAILED' | 'CONFIG_READ_FAILED' | 'NOT_CONFIGURED' | 'INVALID_REDIRECT_URI' | 'INVALID_BASE_URL' | 'INVALID_ARGS' | 'WRITE_ENV_FAILED' | 'CLIENT_NOT_FOUND' | 'NO_PRIVATE_KEY' | 'MCP_ERROR' | 'INGEST_ERROR' | 'FEEDBACK_ERROR' | 'LOG_ERROR' | 'TEMPLATE_ERROR' | 'WORKLOAD_ERROR' | 'LLM_REFERENCE_ERROR' | 'HELP_CENTER_ERROR' | 'CERT_FILE_INSECURE' | 'UPLOAD_ERROR' | 'CLIENT_FILE_ERROR' | 'OUTPUT_EXISTS' | 'UPDATE_ERROR';
8
8
  export declare class CliError extends Error {
9
9
  readonly code: ErrorCode;
10
10
  readonly exitCode: number;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,EAAE,IAAI;IACN,UAAU,IAAI;IACd,QAAQ,IAAI;IACZ,OAAO,MAAM;CACd;AAED,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,GACtB,kBAAkB,GAClB,cAAc,GACd,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,WAAW,GACX,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,cAAc,GACd,eAAe,CAAC;AAEpB,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA4B;CAMrF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,EAAE,IAAI;IACN,UAAU,IAAI;IACd,QAAQ,IAAI;IACZ,OAAO,MAAM;CACd;AAED,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,GACtB,kBAAkB,GAClB,cAAc,GACd,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,GACd,mBAAmB,GACnB,eAAe,GACf,cAAc,CAAC;AAEnB,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA4B;CAMrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,mCAAM,CAAA;IACN,mDAAc,CAAA;IACd,+CAAY,CAAA;IACZ,+CAAa,CAAA;AACf,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AA0BD,MAAM,OAAO,QAAS,SAAQ,KAAK;IAIjC,YAAY,IAAe,EAAE,OAAe,EAAE,WAAmB,QAAQ,CAAC,UAAU;QAClF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,mCAAM,CAAA;IACN,mDAAc,CAAA;IACd,+CAAY,CAAA;IACZ,+CAAa,CAAA;AACf,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AA8BD,MAAM,OAAO,QAAS,SAAQ,KAAK;IAIjC,YAAY,IAAe,EAAE,OAAe,EAAE,WAAmB,QAAQ,CAAC,UAAU;QAClF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import type { LlmMetrics } from 'coolhand-node';
2
+ /**
3
+ * USD with 4 decimals, or `n/a` when the server could not price it (`null`). A positive cost that
4
+ * would round to `$0.0000` prints as `<$0.0001` so a cheap-but-priced log never reads as free.
5
+ */
6
+ export declare function formatCost(cost: number | null | undefined): string;
7
+ /** The human-readable metrics summary shared by search-workloads and get-template. */
8
+ export declare function metricsLines(m: LlmMetrics): string[];
9
+ //# sourceMappingURL=format-cost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-cost.d.ts","sourceRoot":"","sources":["../src/format-cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMlE;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAQpD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * USD with 4 decimals, or `n/a` when the server could not price it (`null`). A positive cost that
3
+ * would round to `$0.0000` prints as `<$0.0001` so a cheap-but-priced log never reads as free.
4
+ */
5
+ export function formatCost(cost) {
6
+ if (typeof cost !== 'number') {
7
+ return 'n/a';
8
+ }
9
+ const fixed = cost.toFixed(4);
10
+ return cost > 0 && Number(fixed) === 0 ? '<$0.0001' : `$${fixed}`;
11
+ }
12
+ /** The human-readable metrics summary shared by search-workloads and get-template. */
13
+ export function metricsLines(m) {
14
+ const window = typeof m.days_back === 'number' ? `last ${m.days_back} days, ` : '';
15
+ return [
16
+ `Window: ${window}${m.since} → ${m.until}`,
17
+ `Requests: ${m.request_count} (${m.failure_count} failed)`,
18
+ `Total cost: ${formatCost(m.total_cost)} (${m.priced_request_count} priced requests)`,
19
+ `Tokens: ${m.total_input_tokens} in / ${m.total_output_tokens} out`,
20
+ ];
21
+ }
22
+ //# sourceMappingURL=format-cost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-cost.js","sourceRoot":"","sources":["../src/format-cost.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAA+B;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;AACpE,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO;QACL,WAAW,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,EAAE;QAC1C,aAAa,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa,UAAU;QAC1D,eAAe,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,oBAAoB,mBAAmB;QACrF,WAAW,CAAC,CAAC,kBAAkB,SAAS,CAAC,CAAC,mBAAmB,MAAM;KACpE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { HookInput, HookTurn } from '../types.js';
2
+ /**
3
+ * Claude Code `Stop` hook → a turn. The assistant text comes from `last_assistant_message` (the
4
+ * transcript file is written asynchronously and can lag it). The user text, and the model, come
5
+ * from the tail of `transcript_path` — that is also what covers the turn that invoked the skill,
6
+ * whose prompt was submitted before the skill's hooks registered. If the transcript can't be read
7
+ * the turn is still captured, just without the user half.
8
+ *
9
+ * Returns `null` for any other event or when there is nothing to send.
10
+ */
11
+ export declare function claudeTurn(input: HookInput): Promise<HookTurn | null>;
12
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/hooks/adapters/claude.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAmCxE;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAwD3E"}
@@ -0,0 +1,98 @@
1
+ import { promises as fs } from 'fs';
2
+ import { lastTurnFrom, parseExchanges } from '../../sessions/claude-scanner.js';
3
+ import { earlierFrom, earlierStampsFrom, sameText, splitCurrent, str } from './shared.js';
4
+ /**
5
+ * How much of the transcript's tail to read. A turn full of tool output can run to megabytes, and the
6
+ * earlier exchanges are rebuilt from the same window, so anything older than this is simply not seen
7
+ * (the turn's `history_truncated` flag says when that cost the conversation some of its history).
8
+ */
9
+ const TRANSCRIPT_TAIL_BYTES = 8 * 1024 * 1024;
10
+ async function readTail(filePath, maxBytes) {
11
+ const handle = await fs.open(filePath, 'r');
12
+ try {
13
+ const { size } = await handle.stat();
14
+ const length = Math.min(size, maxBytes);
15
+ const buffer = Buffer.alloc(length);
16
+ const { bytesRead } = await handle.read(buffer, 0, length, size - length);
17
+ return buffer.subarray(0, bytesRead).toString('utf8');
18
+ }
19
+ finally {
20
+ await handle.close();
21
+ }
22
+ }
23
+ /**
24
+ * Is the transcript's latest exchange this turn? Yes when its reply is the one the hook was given, or
25
+ * when it has a prompt but no reply yet (the transcript is written asynchronously and can lag the hook
26
+ * by exactly the reply). No when it shows some other reply: that is an earlier turn.
27
+ */
28
+ function transcriptShowsThisTurn(tail, assistantText) {
29
+ if (tail.assistantText === undefined) {
30
+ return tail.userText !== undefined;
31
+ }
32
+ return sameText(tail.assistantText, assistantText);
33
+ }
34
+ /**
35
+ * Claude Code `Stop` hook → a turn. The assistant text comes from `last_assistant_message` (the
36
+ * transcript file is written asynchronously and can lag it). The user text, and the model, come
37
+ * from the tail of `transcript_path` — that is also what covers the turn that invoked the skill,
38
+ * whose prompt was submitted before the skill's hooks registered. If the transcript can't be read
39
+ * the turn is still captured, just without the user half.
40
+ *
41
+ * Returns `null` for any other event or when there is nothing to send.
42
+ */
43
+ export async function claudeTurn(input) {
44
+ const event = str(input.hook_event_name);
45
+ if (event !== undefined && event !== 'Stop') {
46
+ return null;
47
+ }
48
+ const sessionId = str(input.session_id);
49
+ if (!sessionId) {
50
+ return null;
51
+ }
52
+ let tail = {};
53
+ let earlier = [];
54
+ let exchangeTimestamp;
55
+ let current;
56
+ let skillBodies;
57
+ let earlierStamps = [];
58
+ const transcriptPath = str(input.transcript_path);
59
+ if (transcriptPath) {
60
+ try {
61
+ const parsed = parseExchanges(await readTail(transcriptPath, TRANSCRIPT_TAIL_BYTES));
62
+ tail = lastTurnFrom(parsed);
63
+ // Everything before the latest exchange that has a prompt of its own, oldest first.
64
+ exchangeTimestamp = parsed.exchanges[parsed.exchanges.length - 1]?.timestamp;
65
+ earlierStamps = earlierStampsFrom(parsed.exchanges);
66
+ earlier = earlierFrom(parsed.exchanges);
67
+ current = parsed.exchanges[parsed.exchanges.length - 1];
68
+ skillBodies = parsed.exchanges.flatMap((e) => (e.skill ? [{ ...e.skill, timestamp: e.timestamp }] : []));
69
+ }
70
+ catch {
71
+ // Unreadable transcript: fall through with whatever the payload itself carries.
72
+ }
73
+ }
74
+ const assistantText = str(input.last_assistant_message) ?? tail.assistantText;
75
+ if (!assistantText) {
76
+ return null;
77
+ }
78
+ return {
79
+ sessionId,
80
+ userText: tail.userText,
81
+ assistantText,
82
+ model: tail.model,
83
+ // The transcript can lag the payload; only trust its request id if it is for the same reply.
84
+ turnKey: sameText(tail.assistantText, assistantText) ? tail.assistantKey : undefined,
85
+ cwd: str(input.cwd),
86
+ // Only trust the transcript's latest exchange as THIS turn (and so as the start of the skill's
87
+ // conversation, if this is turn 1) when it shows this turn's reply, or shows its prompt and no
88
+ // reply yet. A lagging transcript would otherwise make an earlier, pre-skill prompt the anchor.
89
+ exchangeTimestamp: transcriptShowsThisTurn(tail, assistantText) ? exchangeTimestamp : undefined,
90
+ earlier,
91
+ earlierStamps,
92
+ usage: current?.usage,
93
+ subagents: current?.subagents,
94
+ skillBodies,
95
+ ...splitCurrent(current?.messages, assistantText),
96
+ };
97
+ }
98
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/hooks/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { AdapterContext, HookInput, HookTurn } from '../types.js';
2
+ /**
3
+ * VS Code Copilot `Stop` hook → a turn. The payload carries only the session id and `transcript_path`
4
+ * (`~/.copilot/session-state/<id>/events.jsonl`), so the prompt, the reply, the tool loop and the
5
+ * token usage all come from that file. Both the PascalCase (`session_id`, `transcript_path`) and the
6
+ * camelCase (`sessionId`, `transcriptPath`) spellings of the payload are understood.
7
+ *
8
+ * A Copilot hook runs for EVERY chat in the workspace, so a turn is sent only when the transcript shows
9
+ * the `--skill` skill was invoked in this session (a `skill.invoked` event), at or before this turn.
10
+ * Without `--skill`, or for a chat that never invoked it, nothing is sent.
11
+ *
12
+ * Returns `null` for any other event, an unrelated chat, or when there is nothing to send.
13
+ */
14
+ export declare function copilotTurn(input: HookInput, ctx?: AdapterContext): Promise<HookTurn | null>;
15
+ //# sourceMappingURL=copilot.d.ts.map