@tokenbuddy/tokenbuddy 1.0.12 → 1.0.14

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 (135) hide show
  1. package/dist/src/buyer-store.d.ts +61 -0
  2. package/dist/src/buyer-store.d.ts.map +1 -1
  3. package/dist/src/buyer-store.js +12 -0
  4. package/dist/src/buyer-store.js.map +1 -1
  5. package/dist/src/cli.d.ts +47 -0
  6. package/dist/src/cli.d.ts.map +1 -1
  7. package/dist/src/cli.js +287 -63
  8. package/dist/src/cli.js.map +1 -1
  9. package/dist/src/credit-tracker.d.ts +26 -0
  10. package/dist/src/credit-tracker.d.ts.map +1 -1
  11. package/dist/src/credit-tracker.js +8 -0
  12. package/dist/src/credit-tracker.js.map +1 -1
  13. package/dist/src/daemon.d.ts +29 -3
  14. package/dist/src/daemon.d.ts.map +1 -1
  15. package/dist/src/daemon.js +292 -65
  16. package/dist/src/daemon.js.map +1 -1
  17. package/dist/src/doctor-clawtip-wallet.d.ts +25 -0
  18. package/dist/src/doctor-clawtip-wallet.d.ts.map +1 -1
  19. package/dist/src/doctor-clawtip-wallet.js +13 -0
  20. package/dist/src/doctor-clawtip-wallet.js.map +1 -1
  21. package/dist/src/doctor-diagnostics.d.ts +63 -0
  22. package/dist/src/doctor-diagnostics.d.ts.map +1 -1
  23. package/dist/src/doctor-diagnostics.js +39 -1
  24. package/dist/src/doctor-diagnostics.js.map +1 -1
  25. package/dist/src/index.d.ts +4 -0
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +4 -0
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/init-clawtip-activation.d.ts +103 -0
  30. package/dist/src/init-clawtip-activation.d.ts.map +1 -1
  31. package/dist/src/init-clawtip-activation.js +60 -0
  32. package/dist/src/init-clawtip-activation.js.map +1 -1
  33. package/dist/src/init-payment-options.d.ts +124 -0
  34. package/dist/src/init-payment-options.d.ts.map +1 -1
  35. package/dist/src/init-payment-options.js +68 -0
  36. package/dist/src/init-payment-options.js.map +1 -1
  37. package/dist/src/model-index.d.ts +9 -0
  38. package/dist/src/model-index.d.ts.map +1 -1
  39. package/dist/src/model-index.js.map +1 -1
  40. package/dist/src/prewarm-cache.d.ts +89 -0
  41. package/dist/src/prewarm-cache.d.ts.map +1 -1
  42. package/dist/src/prewarm-cache.js +14 -1
  43. package/dist/src/prewarm-cache.js.map +1 -1
  44. package/dist/src/prewarm-scheduler.d.ts +62 -3
  45. package/dist/src/prewarm-scheduler.d.ts.map +1 -1
  46. package/dist/src/prewarm-scheduler.js +39 -8
  47. package/dist/src/prewarm-scheduler.js.map +1 -1
  48. package/dist/src/provider-install.d.ts +89 -3
  49. package/dist/src/provider-install.d.ts.map +1 -1
  50. package/dist/src/provider-install.js +77 -19
  51. package/dist/src/provider-install.js.map +1 -1
  52. package/dist/src/route-failover.d.ts +48 -0
  53. package/dist/src/route-failover.d.ts.map +1 -1
  54. package/dist/src/route-failover.js.map +1 -1
  55. package/dist/src/seller-catalog.d.ts +158 -10
  56. package/dist/src/seller-catalog.d.ts.map +1 -1
  57. package/dist/src/seller-catalog.js +79 -5
  58. package/dist/src/seller-catalog.js.map +1 -1
  59. package/dist/src/seller-metadata-cache.d.ts +29 -0
  60. package/dist/src/seller-metadata-cache.d.ts.map +1 -0
  61. package/dist/src/seller-metadata-cache.js +71 -0
  62. package/dist/src/seller-metadata-cache.js.map +1 -0
  63. package/dist/src/seller-pool.d.ts +71 -0
  64. package/dist/src/seller-pool.d.ts.map +1 -1
  65. package/dist/src/seller-pool.js +6 -1
  66. package/dist/src/seller-pool.js.map +1 -1
  67. package/dist/src/seller-route-planner.d.ts +118 -0
  68. package/dist/src/seller-route-planner.d.ts.map +1 -0
  69. package/dist/src/seller-route-planner.js +160 -0
  70. package/dist/src/seller-route-planner.js.map +1 -0
  71. package/dist/src/seller-routing-config.d.ts +69 -0
  72. package/dist/src/seller-routing-config.d.ts.map +1 -0
  73. package/dist/src/seller-routing-config.js +164 -0
  74. package/dist/src/seller-routing-config.js.map +1 -0
  75. package/dist/src/seller-routing-strategy.d.ts +118 -0
  76. package/dist/src/seller-routing-strategy.d.ts.map +1 -0
  77. package/dist/src/seller-routing-strategy.js +183 -0
  78. package/dist/src/seller-routing-strategy.js.map +1 -0
  79. package/dist/src/stream-failover.d.ts +23 -0
  80. package/dist/src/stream-failover.d.ts.map +1 -1
  81. package/dist/src/stream-failover.js +4 -0
  82. package/dist/src/stream-failover.js.map +1 -1
  83. package/dist/src/tb-proxyd.js +7 -21
  84. package/dist/src/tb-proxyd.js.map +1 -1
  85. package/dist/src/terminal-detect.d.ts +51 -0
  86. package/dist/src/terminal-detect.d.ts.map +1 -1
  87. package/dist/src/terminal-detect.js +42 -0
  88. package/dist/src/terminal-detect.js.map +1 -1
  89. package/dist/src/terminal-image.d.ts +41 -0
  90. package/dist/src/terminal-image.d.ts.map +1 -1
  91. package/dist/src/terminal-image.js +15 -0
  92. package/dist/src/terminal-image.js.map +1 -1
  93. package/package.json +1 -1
  94. package/src/buyer-store.ts +61 -0
  95. package/src/cli.ts +330 -68
  96. package/src/credit-tracker.ts +26 -0
  97. package/src/daemon.ts +363 -72
  98. package/src/doctor-clawtip-wallet.ts +25 -0
  99. package/src/doctor-diagnostics.ts +63 -1
  100. package/src/index.ts +4 -0
  101. package/src/init-clawtip-activation.ts +103 -0
  102. package/src/init-payment-options.ts +124 -0
  103. package/src/model-index.ts +9 -0
  104. package/src/prewarm-cache.ts +99 -1
  105. package/src/prewarm-scheduler.ts +97 -12
  106. package/src/provider-install.ts +125 -27
  107. package/src/route-failover.ts +48 -0
  108. package/src/seller-catalog.ts +158 -12
  109. package/src/seller-metadata-cache.ts +91 -0
  110. package/src/seller-pool.ts +77 -1
  111. package/src/seller-route-planner.ts +323 -0
  112. package/src/seller-routing-config.ts +198 -0
  113. package/src/seller-routing-strategy.ts +316 -0
  114. package/src/stream-failover.ts +23 -0
  115. package/src/tb-proxyd.ts +7 -23
  116. package/src/terminal-detect.ts +51 -0
  117. package/src/terminal-image.ts +41 -0
  118. package/tests/cli-routing.test.ts +287 -0
  119. package/tests/daemon-classify.test.ts +431 -0
  120. package/tests/daemon-roles.test.ts +92 -0
  121. package/tests/seller-catalog-utilities.test.ts +70 -0
  122. package/tests/seller-metadata-cache.test.ts +89 -0
  123. package/tests/seller-route-planner.test.ts +150 -0
  124. package/tests/seller-routing-config.test.ts +111 -0
  125. package/tests/seller-routing-strategy.test.ts +166 -0
  126. package/tests/tokenbuddy.test.ts +446 -34
  127. /package/{src → tests}/credit-tracker.test.ts +0 -0
  128. /package/{src → tests}/model-index.test.ts +0 -0
  129. /package/{src → tests}/prewarm-cache.test.ts +0 -0
  130. /package/{src → tests}/prewarm-scheduler.test.ts +0 -0
  131. /package/{src → tests}/route-failover.test.ts +0 -0
  132. /package/{src → tests}/seller-catalog-413.test.ts +0 -0
  133. /package/{src → tests}/seller-pool.test.ts +0 -0
  134. /package/{src → tests}/stream-failover.test.ts +0 -0
  135. /package/{src → tests}/thousand-seller.test.ts +0 -0
@@ -1,29 +1,80 @@
1
+ /**
2
+ * `detectTerminals()` 的输出单元:描述一个可被 rewrite 的 coding terminal。
3
+ * `detected=false` 时仍会返回,UI 用其渲染"未安装"标签而不是直接跳过。
4
+ */
1
5
  export interface TerminalCandidate {
6
+ /** terminal 内部 ID,例:`claude-code` / `claude-desktop` / `openclaw` / `hermes` */
2
7
  id: string;
8
+ /** 人类可读名称,例:`Claude Code CLI` */
3
9
  name: string;
10
+ /** 本机是否检测到该 terminal 的配置文件 */
4
11
  detected: boolean;
12
+ /** 配置文件绝对路径(即使未检测到也会拼出预期路径) */
5
13
  configPath: string;
14
+ /** 检测结果的说明,用于 UI 展示 */
6
15
  reason: string;
7
16
  }
17
+ /**
18
+ * 获取当前用户的 home 目录,作为拼装 terminal 配置路径的基准。
19
+ *
20
+ * @returns `os.homedir()` 返回的 home 路径
21
+ */
8
22
  export declare function getHomeDir(): string;
9
23
  /**
10
24
  * Detect which coding terminals are installed on the local system.
25
+ *
26
+ * 通过 `~/.claude/settings.json`、`Library/Application Support/Claude/...`、
27
+ * `~/.openclaw/config.json`、`~/.hermes/settings.json` 等约定路径判断。
28
+ * Claude Desktop 在非 macOS 平台上 `configPath` 可能为空字符串,
29
+ * 调用方需以 `detected` 字段为准。
30
+ *
31
+ * @returns terminal 候选列表(固定四个 ID 顺序)
11
32
  */
12
33
  export declare function detectTerminals(): TerminalCandidate[];
13
34
  /**
14
35
  * Safely rewrite Claude Code settings to route requests through our proxy.
36
+ *
37
+ * 写入 `ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN`(占位 `TOKENBUDDY_PROXY`)/
38
+ * `ANTHROPIC_MODEL` / `ANTHROPIC_DEFAULT_SONNET_MODEL`。失败时仅打印日志,
39
+ * 不会抛出异常;调用方无需 try/catch。
40
+ *
41
+ * @param configPath `~/.claude/settings.json` 的绝对路径
42
+ * @param proxyUrl TokenBuddy proxy 的 base URL
43
+ * @param model Claude Code 默认模型 ID
15
44
  */
16
45
  export declare function rewriteClaudeCode(configPath: string, proxyUrl: string, model: string): void;
17
46
  /**
18
47
  * Safely rewrite Claude Desktop configuration.
48
+ *
49
+ * 写入 `deploymentMode = "3p"` 到 Claude 与 Claude-3p 两个目录,
50
+ * 并在 `configLibrary/<DESKTOP_PROFILE_ID>.json` 写入 TokenBuddy profile。
51
+ * 最后更新 `_meta.json` 把 `appliedId` 指向该 profile。
52
+ *
53
+ * @param configPath Claude Desktop 主配置(`claude_desktop_config.json`)绝对路径
54
+ * @param proxyUrl TokenBuddy proxy 的 base URL
55
+ * @param model Claude Desktop 默认模型 ID
19
56
  */
20
57
  export declare function rewriteClaudeDesktop(configPath: string, proxyUrl: string, model: string): void;
21
58
  /**
22
59
  * Rewrite Openclaw settings.
60
+ *
61
+ * 写入 `api_url` / `api_key`(占位 `TOKENBUDDY_PROXY`)/`model`。
62
+ * 失败仅打印日志,不抛出。
63
+ *
64
+ * @param configPath `~/.openclaw/config.json` 的绝对路径
65
+ * @param proxyUrl TokenBuddy proxy 的 base URL
66
+ * @param model Openclaw 默认模型 ID
23
67
  */
24
68
  export declare function rewriteOpenclaw(configPath: string, proxyUrl: string, model: string): void;
25
69
  /**
26
70
  * Rewrite Hermes settings.
71
+ *
72
+ * 在 `openai` 块下写入 `base_url` / `api_key`(占位 `TOKENBUDDY_PROXY`)/`model`。
73
+ * 失败仅打印日志,不抛出。
74
+ *
75
+ * @param configPath `~/.hermes/settings.json` 的绝对路径
76
+ * @param proxyUrl TokenBuddy proxy 的 base URL
77
+ * @param model Hermes 默认模型 ID
27
78
  */
28
79
  export declare function rewriteHermes(configPath: string, proxyUrl: string, model: string): void;
29
80
  //# sourceMappingURL=terminal-detect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-detect.d.ts","sourceRoot":"","sources":["../../src/terminal-detect.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CAuDrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA4B3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0D9F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAmBzF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAsBvF"}
1
+ {"version":3,"file":"terminal-detect.d.ts","sourceRoot":"","sources":["../../src/terminal-detect.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CAuDrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA4B3F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0D9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAmBzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAsBvF"}
@@ -3,11 +3,23 @@ import * as path from "path";
3
3
  import * as os from "os";
4
4
  const PLACEHOLDER_API_KEY = "TOKENBUDDY_PROXY";
5
5
  const DESKTOP_PROFILE_ID = "00000000-0000-4000-8000-000000178210";
6
+ /**
7
+ * 获取当前用户的 home 目录,作为拼装 terminal 配置路径的基准。
8
+ *
9
+ * @returns `os.homedir()` 返回的 home 路径
10
+ */
6
11
  export function getHomeDir() {
7
12
  return os.homedir();
8
13
  }
9
14
  /**
10
15
  * Detect which coding terminals are installed on the local system.
16
+ *
17
+ * 通过 `~/.claude/settings.json`、`Library/Application Support/Claude/...`、
18
+ * `~/.openclaw/config.json`、`~/.hermes/settings.json` 等约定路径判断。
19
+ * Claude Desktop 在非 macOS 平台上 `configPath` 可能为空字符串,
20
+ * 调用方需以 `detected` 字段为准。
21
+ *
22
+ * @returns terminal 候选列表(固定四个 ID 顺序)
11
23
  */
12
24
  export function detectTerminals() {
13
25
  const home = getHomeDir();
@@ -63,6 +75,14 @@ export function detectTerminals() {
63
75
  }
64
76
  /**
65
77
  * Safely rewrite Claude Code settings to route requests through our proxy.
78
+ *
79
+ * 写入 `ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN`(占位 `TOKENBUDDY_PROXY`)/
80
+ * `ANTHROPIC_MODEL` / `ANTHROPIC_DEFAULT_SONNET_MODEL`。失败时仅打印日志,
81
+ * 不会抛出异常;调用方无需 try/catch。
82
+ *
83
+ * @param configPath `~/.claude/settings.json` 的绝对路径
84
+ * @param proxyUrl TokenBuddy proxy 的 base URL
85
+ * @param model Claude Code 默认模型 ID
66
86
  */
67
87
  export function rewriteClaudeCode(configPath, proxyUrl, model) {
68
88
  try {
@@ -93,6 +113,14 @@ export function rewriteClaudeCode(configPath, proxyUrl, model) {
93
113
  }
94
114
  /**
95
115
  * Safely rewrite Claude Desktop configuration.
116
+ *
117
+ * 写入 `deploymentMode = "3p"` 到 Claude 与 Claude-3p 两个目录,
118
+ * 并在 `configLibrary/<DESKTOP_PROFILE_ID>.json` 写入 TokenBuddy profile。
119
+ * 最后更新 `_meta.json` 把 `appliedId` 指向该 profile。
120
+ *
121
+ * @param configPath Claude Desktop 主配置(`claude_desktop_config.json`)绝对路径
122
+ * @param proxyUrl TokenBuddy proxy 的 base URL
123
+ * @param model Claude Desktop 默认模型 ID
96
124
  */
97
125
  export function rewriteClaudeDesktop(configPath, proxyUrl, model) {
98
126
  try {
@@ -155,6 +183,13 @@ export function rewriteClaudeDesktop(configPath, proxyUrl, model) {
155
183
  }
156
184
  /**
157
185
  * Rewrite Openclaw settings.
186
+ *
187
+ * 写入 `api_url` / `api_key`(占位 `TOKENBUDDY_PROXY`)/`model`。
188
+ * 失败仅打印日志,不抛出。
189
+ *
190
+ * @param configPath `~/.openclaw/config.json` 的绝对路径
191
+ * @param proxyUrl TokenBuddy proxy 的 base URL
192
+ * @param model Openclaw 默认模型 ID
158
193
  */
159
194
  export function rewriteOpenclaw(configPath, proxyUrl, model) {
160
195
  try {
@@ -180,6 +215,13 @@ export function rewriteOpenclaw(configPath, proxyUrl, model) {
180
215
  }
181
216
  /**
182
217
  * Rewrite Hermes settings.
218
+ *
219
+ * 在 `openai` 块下写入 `base_url` / `api_key`(占位 `TOKENBUDDY_PROXY`)/`model`。
220
+ * 失败仅打印日志,不抛出。
221
+ *
222
+ * @param configPath `~/.hermes/settings.json` 的绝对路径
223
+ * @param proxyUrl TokenBuddy proxy 的 base URL
224
+ * @param model Hermes 默认模型 ID
183
225
  */
184
226
  export function rewriteHermes(configPath, proxyUrl, model) {
185
227
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-detect.js","sourceRoot":"","sources":["../../src/terminal-detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-detect.js","sourceRoot":"","sources":["../../src/terminal-detect.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,63 @@
1
1
  type TerminalEnv = Readonly<Record<string, string | undefined>>;
2
+ /**
3
+ * 终端图片的展示方式:
4
+ * - `inline-iterm`:iTerm2 / WezTerm 等支持的 OSC 1337 内嵌图片
5
+ * - `inline-kitty`:Kitty 图形协议内嵌图片
6
+ * - `system-open`:调系统 `open` / `xdg-open` / `cmd /c start` 打开图片
7
+ * - `manual`:都不可用时让用户手动打开(通常附 fallbackCommand 提示)
8
+ */
2
9
  export type TerminalImageDisplayMethod = "inline-iterm" | "inline-kitty" | "system-open" | "manual";
10
+ /**
11
+ * `displayTerminalImage()` 的返回:成功/失败 + 用的方法 + 提示消息。
12
+ * `displayed=false` 时调用方应回退到 `fallbackCommand` 提示用户。
13
+ */
3
14
  export interface TerminalImageDisplayResult {
15
+ /** 实际使用的展示方法 */
4
16
  method: TerminalImageDisplayMethod;
17
+ /** 是否真的把图片写到终端/打开了 */
5
18
  displayed: boolean;
19
+ /** 人类可读结果描述(给 init / doctor 用) */
6
20
  message: string;
21
+ /** 仅在 `displayed=false` 时存在:建议用户手动执行的命令 */
7
22
  fallbackCommand?: string;
8
23
  }
24
+ /**
25
+ * `displayTerminalImage()` / `detectTerminalImageDisplay()` 的可注入依赖。
26
+ * 全部可选,缺省时使用真实 `process.env` / `process.platform` / `process.stdout`。
27
+ */
9
28
  export interface DisplayTerminalImageOptions {
29
+ /** 环境变量(默认 `process.env`) */
10
30
  env?: TerminalEnv;
31
+ /** 平台(默认 `process.platform`) */
11
32
  platform?: NodeJS.Platform;
33
+ /** stdout 是否为 TTY(默认 `process.stdout.isTTY`) */
12
34
  stdoutIsTTY?: boolean;
35
+ /** 写入 escape sequence 的方法(默认 `process.stdout.write`) */
13
36
  write?: (chunk: string) => void;
37
+ /** 调起子进程执行 system-open 命令的方法(默认 `child_process.spawn`) */
14
38
  runCommand?: (command: string, args: string[]) => Promise<void>;
39
+ /** 文件存在性检查(默认 `fs.existsSync`) */
15
40
  fileExists?: (filePath: string) => boolean;
41
+ /** 文件读取方法(默认 `fs.readFileSync`) */
16
42
  readFile?: (filePath: string) => Buffer;
17
43
  }
18
44
  type InlineImageProtocol = "iterm" | "kitty";
45
+ /**
46
+ * 仅检测当前终端是否支持某种内嵌图片协议(Kitty / iTerm2)。
47
+ * 用于上层在展示前先决策"要不要走内嵌"而不直接写入任何输出。
48
+ *
49
+ * @param options 可注入依赖(env / platform / stdoutIsTTY)
50
+ * @returns 支持的内嵌协议;不支持时返回 `undefined`
51
+ */
19
52
  export declare function detectTerminalImageDisplay(options?: DisplayTerminalImageOptions): InlineImageProtocol | undefined;
53
+ /**
54
+ * 把本地图片文件展示到终端:优先内嵌(Kitty / iTerm2),其次 system-open,最后 manual。
55
+ * 不会抛异常;任何错误都会转成 `TerminalImageDisplayResult { displayed: false }`。
56
+ *
57
+ * @param filePath 本地图片绝对路径
58
+ * @param options 可注入依赖
59
+ * @returns 展示结果(含 method / displayed / message / fallbackCommand)
60
+ */
20
61
  export declare function displayTerminalImage(filePath: string, options?: DisplayTerminalImageOptions): Promise<TerminalImageDisplayResult>;
21
62
  export {};
22
63
  //# sourceMappingURL=terminal-image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-image.d.ts","sourceRoot":"","sources":["../../src/terminal-image.ts"],"names":[],"mappings":"AAIA,KAAK,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEhE,MAAM,MAAM,0BAA0B,GAClC,cAAc,GACd,cAAc,GACd,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,0BAA0B,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,KAAK,mBAAmB,GAAG,OAAO,GAAG,OAAO,CAAC;AA8E7C,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,GAAG,SAAS,CAKjC;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CAmErC"}
1
+ {"version":3,"file":"terminal-image.d.ts","sourceRoot":"","sources":["../../src/terminal-image.ts"],"names":[],"mappings":"AAIA,KAAK,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAClC,cAAc,GACd,cAAc,GACd,aAAa,GACb,QAAQ,CAAC;AAEb;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC,gBAAgB;IAChB,MAAM,EAAE,0BAA0B,CAAC;IACnC,sBAAsB;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,6BAA6B;IAC7B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wDAAwD;IACxD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,kCAAkC;IAClC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,KAAK,mBAAmB,GAAG,OAAO,GAAG,OAAO,CAAC;AA8E7C;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,GAAG,SAAS,CAKjC;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CAmErC"}
@@ -65,9 +65,24 @@ function openCommandForPlatform(platform, filePath) {
65
65
  }
66
66
  return undefined;
67
67
  }
68
+ /**
69
+ * 仅检测当前终端是否支持某种内嵌图片协议(Kitty / iTerm2)。
70
+ * 用于上层在展示前先决策"要不要走内嵌"而不直接写入任何输出。
71
+ *
72
+ * @param options 可注入依赖(env / platform / stdoutIsTTY)
73
+ * @returns 支持的内嵌协议;不支持时返回 `undefined`
74
+ */
68
75
  export function detectTerminalImageDisplay(options = {}) {
69
76
  return terminalSupportsInlineImages(options.env || process.env, options.stdoutIsTTY ?? Boolean(process.stdout.isTTY));
70
77
  }
78
+ /**
79
+ * 把本地图片文件展示到终端:优先内嵌(Kitty / iTerm2),其次 system-open,最后 manual。
80
+ * 不会抛异常;任何错误都会转成 `TerminalImageDisplayResult { displayed: false }`。
81
+ *
82
+ * @param filePath 本地图片绝对路径
83
+ * @param options 可注入依赖
84
+ * @returns 展示结果(含 method / displayed / message / fallbackCommand)
85
+ */
71
86
  export async function displayTerminalImage(filePath, options = {}) {
72
87
  const fileExists = options.fileExists || fs.existsSync;
73
88
  const readFile = options.readFile || fs.readFileSync;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-image.js","sourceRoot":"","sources":["../../src/terminal-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-image.js","sourceRoot":"","sources":["../../src/terminal-image.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tokenbuddy/tokenbuddy",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "TokenBuddy Client CLI and Daemon",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -8,6 +8,10 @@ import { createModuleLogger } from "@tokenbuddy/logging";
8
8
 
9
9
  const logger = createModuleLogger("tb-proxyd");
10
10
 
11
+ /**
12
+ * buyer 端缓存的 seller access token + 余额快照。
13
+ * v1.2 PR-fix:每次取出都校验 `expiresAt`,避免把过期 token 发给 seller 导致 401。
14
+ */
11
15
  export interface CachedToken {
12
16
  token: string;
13
17
  balanceMicros: number;
@@ -23,6 +27,10 @@ export interface CachedToken {
23
27
  expiresAt?: string;
24
28
  }
25
29
 
30
+ /**
31
+ * 持久化的支付方式配置。
32
+ * `isDefault` 用于 `tb init` / 路由层在没有显式 method 时选默认。
33
+ */
26
34
  export interface PaymentConfig {
27
35
  method: string;
28
36
  enabled: boolean;
@@ -31,6 +39,9 @@ export interface PaymentConfig {
31
39
  updatedAt: string;
32
40
  }
33
41
 
42
+ /**
43
+ * 待结算的 purchase 快照(buyer 端在 `/purchase/create` 之后、`/purchase/complete` 之前的临时状态)。
44
+ */
34
45
  export interface PendingPurchaseInput {
35
46
  purchaseId: string;
36
47
  sellerKey: string;
@@ -42,6 +53,9 @@ export interface PendingPurchaseInput {
42
53
  expiresAt?: string;
43
54
  }
44
55
 
56
+ /**
57
+ * 完成态 purchase 的账本输入。`paymentReference` 会被 hash 之后落库(不存明文)。
58
+ */
45
59
  export interface PurchaseLedgerInput {
46
60
  purchaseId: string;
47
61
  sellerKey: string;
@@ -54,6 +68,10 @@ export interface PurchaseLedgerInput {
54
68
  completedAt?: string;
55
69
  }
56
70
 
71
+ /**
72
+ * `tb doctor` 与审计日志消费的"安全版" purchase 账本条目。
73
+ * 关键差异:`paymentReference` 已 hash 化为 `paymentReferenceHash`,永不暴露明文。
74
+ */
57
75
  export interface SafePurchaseLedgerEntry {
58
76
  purchaseId: string;
59
77
  sellerKey: string;
@@ -67,6 +85,10 @@ export interface SafePurchaseLedgerEntry {
67
85
  completedAt?: string;
68
86
  }
69
87
 
88
+ /**
89
+ * buyer 端单次推理请求的账本输入。
90
+ * `prompt` / `response` 在落库前会 hash,原始内容永不落盘。
91
+ */
70
92
  export interface InferenceLedgerInput {
71
93
  requestId: string;
72
94
  sellerKey: string;
@@ -86,6 +108,10 @@ export interface InferenceLedgerInput {
86
108
  response?: string;
87
109
  }
88
110
 
111
+ /**
112
+ * `tb doctor` 与审计日志消费的"安全版"推理账本条目。
113
+ * 关键差异:`prompt` / `response` 已 hash 化为 `promptHash` / `responseHash`。
114
+ */
89
115
  export interface SafeInferenceLedgerEntry {
90
116
  requestId: string;
91
117
  sellerKey: string;
@@ -106,6 +132,10 @@ export interface SafeInferenceLedgerEntry {
106
132
  createdAt: string;
107
133
  }
108
134
 
135
+ /**
136
+ * seller token 余额快照的入参。
137
+ * 每次推理后由 `BuyerStore.recordTokenBalance` 调用,作为路由决策的"最近一次真实余额"。
138
+ */
109
139
  export interface TokenBalanceSnapshotInput {
110
140
  sellerKey: string;
111
141
  token?: string;
@@ -117,6 +147,9 @@ export interface TokenBalanceSnapshotInput {
117
147
  expiresAt?: string;
118
148
  }
119
149
 
150
+ /**
151
+ * `BuyerStore.summary()` 的返回结构,用于 `tb doctor` 展示 DB 健康度。
152
+ */
120
153
  export interface BuyerStoreSummary {
121
154
  journalMode: string;
122
155
  paymentsCount: number;
@@ -127,6 +160,10 @@ export interface BuyerStoreSummary {
127
160
  daemonRuntimeConfigCount: number;
128
161
  }
129
162
 
163
+ /**
164
+ * `tb init` 时记录的 provider 安装快照(用于后续 `tb rollback`)。
165
+ * `existed` 标记安装前文件是否已存在,避免回滚覆盖用户原始内容。
166
+ */
130
167
  export interface ProviderInstallSnapshot {
131
168
  providerId: string;
132
169
  files: Array<{
@@ -136,6 +173,10 @@ export interface ProviderInstallSnapshot {
136
173
  }>;
137
174
  }
138
175
 
176
+ /**
177
+ * provider 维度运行时配置(由 `tb init` / `tb config` 写入)。
178
+ * 存的是各 provider(如 opencode / cline)需要的 model mapping 等。
179
+ */
139
180
  export interface ProviderRuntimeConfigRecord<T = unknown> {
140
181
  providerId: string;
141
182
  config: T;
@@ -143,6 +184,10 @@ export interface ProviderRuntimeConfigRecord<T = unknown> {
143
184
  updatedAt: string;
144
185
  }
145
186
 
187
+ /**
188
+ * 守护进程维度运行时配置(按 `configKey` 命名空间)。
189
+ * 比如 `seller_routing` / `prewarm` / `inference` 等 daemon 子系统的配置。
190
+ */
146
191
  export interface DaemonRuntimeConfigRecord<T = unknown> {
147
192
  configKey: string;
148
193
  config: T;
@@ -150,6 +195,10 @@ export interface DaemonRuntimeConfigRecord<T = unknown> {
150
195
  updatedAt: string;
151
196
  }
152
197
 
198
+ /**
199
+ * `BuyerStore` 构造选项。
200
+ * 优先用 `dbPath`(绝对路径),否则用 `root`(目录)+ 默认 `buyer-store.db`。
201
+ */
153
202
  export interface BuyerStoreOptions {
154
203
  root?: string;
155
204
  dbPath?: string;
@@ -177,6 +226,13 @@ function ensureDirForFile(filePath: string): void {
177
226
  }
178
227
  }
179
228
 
229
+ /**
230
+ * 解析 buyer store 的 DB 路径。
231
+ * 优先级:`dbPath` → `TOKENBUDDY_BUYER_STORE` env → `~/.tokenbuddy-store/buyer-store.db`。
232
+ *
233
+ * @param options 解析选项
234
+ * @returns DB 文件绝对路径
235
+ */
180
236
  export function resolveBuyerStorePath(options: BuyerStoreOptions = {}): string {
181
237
  if (options.dbPath) {
182
238
  return options.dbPath;
@@ -185,6 +241,11 @@ export function resolveBuyerStorePath(options: BuyerStoreOptions = {}): string {
185
241
  return path.join(root, "buyer-store.db");
186
242
  }
187
243
 
244
+ /**
245
+ * buyer 端 SQLite 持久化层。
246
+ * 维护:支付配置、pending purchase、purchase 账本、inference 账本、provider / daemon runtime config、token 余额快照。
247
+ * 内部用 SHA256 摘要替代明文敏感字段(prompt / response / paymentReference / token)。
248
+ */
188
249
  export class BuyerStore {
189
250
  private db: DatabaseSync;
190
251