claude-flow-novice 1.6.1 → 1.6.2

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 (244) hide show
  1. package/.claude/agents/cfn-loop/product-owner.md +54 -4
  2. package/.claude/commands/cfn-claude-sync.md +303 -0
  3. package/.claude/commands/cfn-loop-epic.md +290 -0
  4. package/.claude/commands/cfn-loop-single.md +168 -0
  5. package/.claude/commands/cfn-loop-sprints.md +384 -0
  6. package/.claude/commands/cfn-loop.md +180 -0
  7. package/.claude/commands/metrics-summary.md +58 -0
  8. package/.claude/commands/parse-epic.md +357 -0
  9. package/.claude/settings.json +4 -4
  10. package/.claude/settings.local.json +9 -2
  11. package/.claude-flow-novice/.claude/agents/cfn-loop/product-owner.md +792 -0
  12. package/.claude-flow-novice/dist/mcp/server.js +21 -2
  13. package/.claude-flow-novice/dist/src/api/claude-client.js +138 -3
  14. package/.claude-flow-novice/dist/src/api/claude-client.js.map +1 -1
  15. package/.claude-flow-novice/dist/src/cfn-loop/phase-orchestrator-example.js +1 -1
  16. package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js +247 -0
  17. package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js.map +1 -0
  18. package/.claude-flow-novice/dist/src/cli/commands/swarm.js +32 -15
  19. package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
  20. package/.claude-flow-novice/dist/src/cli/commands/transparency.js +455 -0
  21. package/.claude-flow-novice/dist/src/cli/commands/transparency.js.map +1 -0
  22. package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +129 -13
  23. package/.claude-flow-novice/dist/src/components/visualizations/index.js +9 -0
  24. package/.claude-flow-novice/dist/src/components/visualizations/index.js.map +1 -0
  25. package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js +462 -0
  26. package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js.map +1 -0
  27. package/.claude-flow-novice/dist/src/coordination/config-translator.js +248 -0
  28. package/.claude-flow-novice/dist/src/coordination/config-translator.js.map +1 -0
  29. package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js +287 -0
  30. package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js.map +1 -0
  31. package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js +68 -9
  32. package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js.map +1 -1
  33. package/.claude-flow-novice/dist/src/coordination/feature-flags.js +166 -0
  34. package/.claude-flow-novice/dist/src/coordination/feature-flags.js.map +1 -0
  35. package/.claude-flow-novice/dist/src/coordination/queen-agent.js +18 -4
  36. package/.claude-flow-novice/dist/src/coordination/queen-agent.js.map +1 -1
  37. package/.claude-flow-novice/dist/src/coordination/role-assignment.js +6 -110
  38. package/.claude-flow-novice/dist/src/coordination/role-assignment.js.map +1 -1
  39. package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js +632 -0
  40. package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js.map +1 -0
  41. package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js +11 -0
  42. package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js.map +1 -0
  43. package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js +318 -0
  44. package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js.map +1 -0
  45. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js +364 -0
  46. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js.map +1 -0
  47. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js +492 -0
  48. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js.map +1 -0
  49. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js +786 -0
  50. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js.map +1 -0
  51. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js +16 -0
  52. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js.map +1 -0
  53. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js +342 -0
  54. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js.map +1 -0
  55. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js +601 -0
  56. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js.map +1 -0
  57. package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js +211 -0
  58. package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js.map +1 -0
  59. package/.claude-flow-novice/dist/src/coordination/v2/core/index.js +1 -0
  60. package/.claude-flow-novice/dist/src/coordination/v2/core/index.js.map +1 -1
  61. package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js +365 -6
  62. package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js.map +1 -1
  63. package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js +478 -0
  64. package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js.map +1 -0
  65. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js +5 -2
  66. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js.map +1 -1
  67. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js +189 -0
  68. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js.map +1 -1
  69. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js +424 -0
  70. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js.map +1 -0
  71. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js +9 -0
  72. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js.map +1 -0
  73. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js +669 -0
  74. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js.map +1 -0
  75. package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js +451 -0
  76. package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js.map +1 -0
  77. package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js +271 -0
  78. package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js.map +1 -0
  79. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js +335 -0
  80. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js.map +1 -0
  81. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js +439 -0
  82. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js.map +1 -0
  83. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js +92 -0
  84. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js.map +1 -0
  85. package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js +21 -0
  86. package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js.map +1 -0
  87. package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js +223 -0
  88. package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js.map +1 -0
  89. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js +436 -0
  90. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js.map +1 -0
  91. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js +278 -0
  92. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js.map +1 -0
  93. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js +317 -0
  94. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js.map +1 -0
  95. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js +273 -0
  96. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js.map +1 -0
  97. package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js +15 -0
  98. package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js.map +1 -0
  99. package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js +512 -0
  100. package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js.map +1 -0
  101. package/.claude-flow-novice/dist/src/coordination/v2/index.js +6 -0
  102. package/.claude-flow-novice/dist/src/coordination/v2/index.js.map +1 -1
  103. package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js +557 -0
  104. package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js.map +1 -0
  105. package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js +14 -0
  106. package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js.map +1 -0
  107. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js +212 -0
  108. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js.map +1 -0
  109. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js +552 -0
  110. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js.map +1 -0
  111. package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js +367 -0
  112. package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js.map +1 -0
  113. package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js +1 -0
  114. package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js.map +1 -1
  115. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js +371 -0
  116. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js.map +1 -0
  117. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js +355 -0
  118. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js.map +1 -0
  119. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js +424 -0
  120. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js.map +1 -0
  121. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js +16 -0
  122. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js.map +1 -0
  123. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js +295 -0
  124. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js.map +1 -0
  125. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js +411 -0
  126. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js.map +1 -0
  127. package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js +14 -0
  128. package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js.map +1 -0
  129. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js +387 -0
  130. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js.map +1 -0
  131. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js +589 -0
  132. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js.map +1 -0
  133. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js +444 -0
  134. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js.map +1 -0
  135. package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js +29 -8
  136. package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js.map +1 -1
  137. package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js +470 -0
  138. package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js.map +1 -0
  139. package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js +450 -0
  140. package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js.map +1 -0
  141. package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js +5 -0
  142. package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js.map +1 -1
  143. package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js +545 -0
  144. package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js.map +1 -0
  145. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js +44 -0
  146. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js.map +1 -1
  147. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js +415 -0
  148. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js.map +1 -0
  149. package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js +615 -0
  150. package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js.map +1 -0
  151. package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js +259 -0
  152. package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js.map +1 -0
  153. package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js +17 -0
  154. package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js.map +1 -0
  155. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js +357 -0
  156. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js.map +1 -0
  157. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js +679 -0
  158. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js.map +1 -0
  159. package/.claude-flow-novice/dist/src/core/agent-manager.js +30 -0
  160. package/.claude-flow-novice/dist/src/core/agent-manager.js.map +1 -1
  161. package/.claude-flow-novice/dist/src/mcp/server.js +21 -2
  162. package/.claude-flow-novice/dist/src/mcp/server.js.map +1 -1
  163. package/.claude-flow-novice/dist/src/observability/metrics-counter.js +268 -0
  164. package/.claude-flow-novice/dist/src/observability/metrics-counter.js.map +1 -0
  165. package/.claude-flow-novice/dist/src/observability/metrics-storage.js +265 -0
  166. package/.claude-flow-novice/dist/src/observability/metrics-storage.js.map +1 -0
  167. package/.claude-flow-novice/dist/src/observability/telemetry.js +26 -0
  168. package/.claude-flow-novice/dist/src/observability/telemetry.js.map +1 -1
  169. package/.claude-flow-novice/dist/src/providers/tiered-router.js +64 -10
  170. package/.claude-flow-novice/dist/src/providers/tiered-router.js.map +1 -1
  171. package/.claude-flow-novice/dist/src/providers/zai-provider.js +196 -97
  172. package/.claude-flow-novice/dist/src/providers/zai-provider.js.map +1 -1
  173. package/.claude-flow-novice/dist/src/slash-commands/cfn-claude-sync.js +533 -0
  174. package/.claude-flow-novice/dist/src/slash-commands/index.js +5 -0
  175. package/.claude-flow-novice/dist/src/slash-commands/metrics-summary-class.js +74 -0
  176. package/.claude-flow-novice/dist/src/slash-commands/metrics-summary.js +335 -0
  177. package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +12 -0
  178. package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js +96 -0
  179. package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js.map +1 -0
  180. package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js +406 -0
  181. package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js.map +1 -0
  182. package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js +35 -5
  183. package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js.map +1 -1
  184. package/.claude-flow-novice/dist/src/web/api/config/api-config.js +186 -0
  185. package/.claude-flow-novice/dist/src/web/api/config/api-config.js.map +1 -0
  186. package/.claude-flow-novice/dist/src/web/api/middleware/auth.js +205 -0
  187. package/.claude-flow-novice/dist/src/web/api/middleware/auth.js.map +1 -0
  188. package/.claude-flow-novice/dist/src/web/api/middleware/cache.js +262 -0
  189. package/.claude-flow-novice/dist/src/web/api/middleware/cache.js.map +1 -0
  190. package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js +250 -0
  191. package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js.map +1 -0
  192. package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js +217 -0
  193. package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js.map +1 -0
  194. package/.claude-flow-novice/dist/src/web/api/middleware/validation.js +325 -0
  195. package/.claude-flow-novice/dist/src/web/api/middleware/validation.js.map +1 -0
  196. package/.claude-flow-novice/dist/src/web/api/routes/events.js +465 -0
  197. package/.claude-flow-novice/dist/src/web/api/routes/events.js.map +1 -0
  198. package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js +302 -0
  199. package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js.map +1 -0
  200. package/.claude-flow-novice/dist/src/web/api/routes/index.js +14 -0
  201. package/.claude-flow-novice/dist/src/web/api/routes/index.js.map +1 -0
  202. package/.claude-flow-novice/dist/src/web/api/routes/metrics.js +561 -0
  203. package/.claude-flow-novice/dist/src/web/api/routes/metrics.js.map +1 -0
  204. package/.claude-flow-novice/dist/src/web/api/routes/status.js +450 -0
  205. package/.claude-flow-novice/dist/src/web/api/routes/status.js.map +1 -0
  206. package/.claude-flow-novice/dist/src/web/api/server.js +451 -0
  207. package/.claude-flow-novice/dist/src/web/api/server.js.map +1 -0
  208. package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js +385 -0
  209. package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js.map +1 -0
  210. package/.claude-flow-novice/dist/src/web/dashboard/index.js +87 -0
  211. package/.claude-flow-novice/dist/src/web/dashboard/index.js.map +1 -0
  212. package/.claude-flow-novice/dist/src/web/dashboard/types.js +6 -0
  213. package/.claude-flow-novice/dist/src/web/dashboard/types.js.map +1 -0
  214. package/.claude-flow-novice/metrics.db +0 -0
  215. package/.claude-flow-novice/metrics.db-shm +0 -0
  216. package/.claude-flow-novice/metrics.db-wal +0 -0
  217. package/CLAUDE.md +29 -0
  218. package/README.md +27 -0
  219. package/config/hooks/post-edit-pipeline.js +36 -2
  220. package/examples/metrics-counter-demo.ts +106 -0
  221. package/examples/persistent-metrics-demo.ts +83 -0
  222. package/examples/phase-5-multi-level-control.ts +282 -0
  223. package/examples/session-pool-optimizer-example.ts +311 -0
  224. package/package.json +15 -3
  225. package/scripts/check-routing-stats.cjs +122 -0
  226. package/scripts/pre-publish-validation.cjs +212 -0
  227. package/scripts/test-provider-routing.cjs +228 -0
  228. package/scripts/test-routing-telemetry.cjs +147 -0
  229. package/scripts/test-zai-10k.cjs +81 -0
  230. package/scripts/test-zai-api.cjs +191 -0
  231. package/scripts/test-zai-diagnostic.cjs +151 -0
  232. package/scripts/test-zai-final.cjs +128 -0
  233. package/scripts/test-zai-with-env.cjs +85 -0
  234. package/scripts/validate-coordination-cli.js +69 -0
  235. package/scripts/validate-coordination-toggle-integration.cjs +501 -0
  236. package/src/cli/simple-commands/init/templates/CLAUDE.md +29 -0
  237. package/src/observability/metrics-counter.ts +347 -0
  238. package/src/observability/metrics-storage.ts +356 -0
  239. package/src/observability/telemetry.ts +658 -0
  240. package/src/slash-commands/cfn-claude-sync.js +533 -0
  241. package/src/slash-commands/index.js +5 -0
  242. package/src/slash-commands/metrics-summary-class.js +74 -0
  243. package/src/slash-commands/metrics-summary.js +335 -0
  244. package/src/slash-commands/register-all-commands.js +12 -0
@@ -7,6 +7,7 @@
7
7
  * - Maximum: 80,000 tokens (supports large code generation tasks)
8
8
  */ import { BaseProvider } from "./base-provider.js";
9
9
  import { LLMProviderError } from "./types.js";
10
+ import { incrementMetric, recordTiming } from "../observability/metrics-counter.js";
10
11
  export class ZaiProvider extends BaseProvider {
11
12
  name = "zai";
12
13
  capabilities = {
@@ -67,7 +68,14 @@ export class ZaiProvider extends BaseProvider {
67
68
  });
68
69
  }
69
70
  async doComplete(request) {
71
+ const startTime = Date.now();
70
72
  const model = request.model || this.config.model;
73
+ // Track API request
74
+ incrementMetric('claude.api.request', 1, {
75
+ model,
76
+ provider: 'z.ai',
77
+ stream: 'false'
78
+ });
71
79
  // Build request payload
72
80
  const payload = {
73
81
  model,
@@ -79,34 +87,75 @@ export class ZaiProvider extends BaseProvider {
79
87
  max_tokens: Math.max(201, request.maxTokens ?? this.config.maxTokens ?? 8192),
80
88
  stream: false
81
89
  };
82
- // Call Z.ai API
83
- const response = await this.callZaiAPI("/chat/completions", payload);
84
- // Calculate cost
85
- const pricing = this.capabilities.pricing[model];
86
- const promptCost = response.usage.prompt_tokens / 1000 * pricing.promptCostPer1k;
87
- const completionCost = response.usage.completion_tokens / 1000 * pricing.completionCostPer1k;
88
- // Convert to unified response format
89
- return {
90
- id: response.id,
91
- model,
92
- provider: "zai",
93
- content: response.choices[0].message.content,
94
- usage: {
95
- promptTokens: response.usage.prompt_tokens,
96
- completionTokens: response.usage.completion_tokens,
97
- totalTokens: response.usage.total_tokens
98
- },
99
- cost: {
100
- promptCost,
101
- completionCost,
102
- totalCost: promptCost + completionCost,
103
- currency: "USD"
104
- },
105
- finishReason: response.choices[0].finish_reason === "stop" ? "stop" : "length"
106
- };
90
+ try {
91
+ // Call Z.ai API
92
+ const response = await this.callZaiAPI("/chat/completions", payload);
93
+ // Track success duration
94
+ recordTiming('claude.api.duration', Date.now() - startTime, {
95
+ model,
96
+ status: 'success',
97
+ stream: 'false'
98
+ });
99
+ // Track token usage
100
+ incrementMetric('claude.tokens.input', response.usage.prompt_tokens, {
101
+ model
102
+ });
103
+ incrementMetric('claude.tokens.output', response.usage.completion_tokens, {
104
+ model
105
+ });
106
+ incrementMetric('claude.tokens.total', response.usage.total_tokens, {
107
+ model
108
+ });
109
+ // Calculate cost
110
+ const pricing = this.capabilities.pricing[model];
111
+ const promptCost = response.usage.prompt_tokens / 1000 * pricing.promptCostPer1k;
112
+ const completionCost = response.usage.completion_tokens / 1000 * pricing.completionCostPer1k;
113
+ // Convert to unified response format
114
+ return {
115
+ id: response.id,
116
+ model,
117
+ provider: "zai",
118
+ content: response.choices[0].message.content,
119
+ usage: {
120
+ promptTokens: response.usage.prompt_tokens,
121
+ completionTokens: response.usage.completion_tokens,
122
+ totalTokens: response.usage.total_tokens
123
+ },
124
+ cost: {
125
+ promptCost,
126
+ completionCost,
127
+ totalCost: promptCost + completionCost,
128
+ currency: "USD"
129
+ },
130
+ finishReason: response.choices[0].finish_reason === "stop" ? "stop" : "length"
131
+ };
132
+ } catch (error) {
133
+ // Track error duration and metrics
134
+ recordTiming('claude.api.duration', Date.now() - startTime, {
135
+ model,
136
+ status: 'error',
137
+ stream: 'false'
138
+ });
139
+ incrementMetric('claude.api.error', 1, {
140
+ model,
141
+ errorType: error instanceof Error ? error.name : 'Unknown',
142
+ statusCode: 'unknown',
143
+ retryable: 'false'
144
+ });
145
+ throw error;
146
+ }
107
147
  }
108
148
  async *doStreamComplete(request) {
149
+ const startTime = Date.now();
109
150
  const model = request.model || this.config.model;
151
+ let totalInputTokens = 0;
152
+ let totalOutputTokens = 0;
153
+ // Track API request
154
+ incrementMetric('claude.api.request', 1, {
155
+ model,
156
+ provider: 'z.ai',
157
+ stream: 'true'
158
+ });
110
159
  // Build request payload
111
160
  const payload = {
112
161
  model,
@@ -118,84 +167,134 @@ export class ZaiProvider extends BaseProvider {
118
167
  max_tokens: Math.max(201, request.maxTokens ?? this.config.maxTokens ?? 8192),
119
168
  stream: true
120
169
  };
121
- // Call Z.ai streaming API
122
- const response = await fetch(`${this.baseURL}/chat/completions`, {
123
- method: "POST",
124
- headers: {
125
- "Content-Type": "application/json",
126
- Authorization: `Bearer ${this.apiKey}`
127
- },
128
- body: JSON.stringify(payload)
129
- });
130
- if (!response.ok) {
131
- throw new LLMProviderError(`Z.ai API error: ${response.status} ${response.statusText}`, "API_ERROR", "zai", undefined, response.status >= 500);
132
- }
133
- if (!response.body) {
134
- throw new LLMProviderError("No response body from Z.ai API", "NO_RESPONSE_BODY", "zai");
135
- }
136
- // Process SSE stream
137
- const reader = response.body.getReader();
138
- const decoder = new TextDecoder();
139
- let buffer = "";
140
- let totalTokens = 0;
141
170
  try {
142
- while(true){
143
- const { done, value } = await reader.read();
144
- if (done) break;
145
- buffer += decoder.decode(value, {
146
- stream: true
147
- });
148
- const lines = buffer.split("\n");
149
- buffer = lines.pop() || "";
150
- for (const line of lines){
151
- if (!line.trim() || line.startsWith(":")) continue;
152
- if (line.startsWith("data: ")) {
153
- const data = line.slice(6);
154
- if (data === "[DONE]") continue;
155
- try {
156
- const event = JSON.parse(data);
157
- if (event.choices?.[0]?.delta?.content) {
158
- yield {
159
- type: "content",
160
- delta: {
161
- content: event.choices[0].delta.content
162
- }
163
- };
164
- }
165
- if (event.usage) {
166
- totalTokens = event.usage.total_tokens;
171
+ // Call Z.ai streaming API
172
+ const response = await fetch(`${this.baseURL}/chat/completions`, {
173
+ method: "POST",
174
+ headers: {
175
+ "Content-Type": "application/json",
176
+ Authorization: `Bearer ${this.apiKey}`
177
+ },
178
+ body: JSON.stringify(payload)
179
+ });
180
+ if (!response.ok) {
181
+ throw new LLMProviderError(`Z.ai API error: ${response.status} ${response.statusText}`, "API_ERROR", "zai", undefined, response.status >= 500);
182
+ }
183
+ if (!response.body) {
184
+ throw new LLMProviderError("No response body from Z.ai API", "NO_RESPONSE_BODY", "zai");
185
+ }
186
+ // Process SSE stream
187
+ const reader = response.body.getReader();
188
+ const decoder = new TextDecoder();
189
+ let buffer = "";
190
+ let totalTokens = 0;
191
+ try {
192
+ while(true){
193
+ const { done, value } = await reader.read();
194
+ if (done) break;
195
+ buffer += decoder.decode(value, {
196
+ stream: true
197
+ });
198
+ const lines = buffer.split("\n");
199
+ buffer = lines.pop() || "";
200
+ for (const line of lines){
201
+ if (!line.trim() || line.startsWith(":")) continue;
202
+ if (line.startsWith("data: ")) {
203
+ const data = line.slice(6);
204
+ if (data === "[DONE]") continue;
205
+ try {
206
+ const event = JSON.parse(data);
207
+ if (event.choices?.[0]?.delta?.content) {
208
+ yield {
209
+ type: "content",
210
+ delta: {
211
+ content: event.choices[0].delta.content
212
+ }
213
+ };
214
+ }
215
+ if (event.usage) {
216
+ totalTokens = event.usage.total_tokens;
217
+ totalInputTokens = event.usage.prompt_tokens || 0;
218
+ totalOutputTokens = event.usage.completion_tokens || 0;
219
+ }
220
+ } catch (parseError) {
221
+ this.logger.warn("Failed to parse SSE event", {
222
+ line,
223
+ error: parseError
224
+ });
167
225
  }
168
- } catch (parseError) {
169
- this.logger.warn("Failed to parse SSE event", {
170
- line,
171
- error: parseError
172
- });
173
226
  }
174
227
  }
175
228
  }
176
- }
177
- // Emit final usage statistics
178
- const pricing = this.capabilities.pricing[model];
179
- const promptTokens = this.estimateTokens(JSON.stringify(request.messages));
180
- const completionTokens = totalTokens - promptTokens;
181
- const promptCost = promptTokens / 1000 * pricing.promptCostPer1k;
182
- const completionCost = completionTokens / 1000 * pricing.completionCostPer1k;
183
- yield {
184
- type: "done",
185
- usage: {
186
- promptTokens,
187
- completionTokens,
188
- totalTokens
189
- },
190
- cost: {
191
- promptCost,
192
- completionCost,
193
- totalCost: promptCost + completionCost,
194
- currency: "USD"
229
+ // Emit final usage statistics
230
+ const pricing = this.capabilities.pricing[model];
231
+ const promptTokens = totalInputTokens || this.estimateTokens(JSON.stringify(request.messages));
232
+ const completionTokens = totalOutputTokens || totalTokens - promptTokens;
233
+ const promptCost = promptTokens / 1000 * pricing.promptCostPer1k;
234
+ const completionCost = completionTokens / 1000 * pricing.completionCostPer1k;
235
+ // Track success duration
236
+ recordTiming('claude.api.duration', Date.now() - startTime, {
237
+ model,
238
+ status: 'success',
239
+ stream: 'true'
240
+ });
241
+ // Track token usage
242
+ if (totalInputTokens > 0 || totalOutputTokens > 0) {
243
+ incrementMetric('claude.tokens.input', totalInputTokens, {
244
+ model
245
+ });
246
+ incrementMetric('claude.tokens.output', totalOutputTokens, {
247
+ model
248
+ });
249
+ incrementMetric('claude.tokens.total', totalInputTokens + totalOutputTokens, {
250
+ model
251
+ });
195
252
  }
196
- };
197
- } finally{
198
- reader.releaseLock();
253
+ yield {
254
+ type: "done",
255
+ usage: {
256
+ promptTokens,
257
+ completionTokens,
258
+ totalTokens
259
+ },
260
+ cost: {
261
+ promptCost,
262
+ completionCost,
263
+ totalCost: promptCost + completionCost,
264
+ currency: "USD"
265
+ }
266
+ };
267
+ } catch (error) {
268
+ // Track error duration and metrics
269
+ recordTiming('claude.api.duration', Date.now() - startTime, {
270
+ model,
271
+ status: 'error',
272
+ stream: 'true'
273
+ });
274
+ incrementMetric('claude.api.error', 1, {
275
+ model,
276
+ errorType: error instanceof Error ? error.name : 'Unknown',
277
+ statusCode: 'unknown',
278
+ retryable: 'false'
279
+ });
280
+ throw error;
281
+ } finally{
282
+ reader.releaseLock();
283
+ }
284
+ } catch (error) {
285
+ // Track error duration and metrics
286
+ recordTiming('claude.api.duration', Date.now() - startTime, {
287
+ model,
288
+ status: 'error',
289
+ stream: 'true'
290
+ });
291
+ incrementMetric('claude.api.error', 1, {
292
+ model,
293
+ errorType: error instanceof Error ? error.name : 'Unknown',
294
+ statusCode: 'unknown',
295
+ retryable: 'false'
296
+ });
297
+ throw error;
199
298
  }
200
299
  }
201
300
  async listModels() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/providers/zai-provider.ts"],"names":["BaseProvider","LLMProviderError","ZaiProvider","name","capabilities","supportedModels","maxContextLength","maxOutputTokens","supportsStreaming","supportsFunctionCalling","supportsSystemMessages","supportsVision","supportsAudio","supportsTools","supportsFineTuning","supportsEmbeddings","supportsLogprobs","supportsBatching","pricing","promptCostPer1k","completionCostPer1k","currency","apiKey","baseURL","doInitialize","config","Error","logger","info","model","doComplete","request","payload","messages","filter","msg","role","map","content","temperature","max_tokens","Math","max","maxTokens","stream","response","callZaiAPI","promptCost","usage","prompt_tokens","completionCost","completion_tokens","id","provider","choices","message","promptTokens","completionTokens","totalTokens","total_tokens","cost","totalCost","finishReason","finish_reason","doStreamComplete","fetch","method","headers","Authorization","body","JSON","stringify","ok","status","statusText","undefined","reader","getReader","decoder","TextDecoder","buffer","done","value","read","decode","lines","split","pop","line","trim","startsWith","data","slice","event","parse","delta","type","parseError","warn","error","estimateTokens","releaseLock","listModels","getModelInfo","modelNames","modelDescriptions","description","contextLength","supportedFeatures","doHealthCheck","healthy","timestamp","Date","details","endpoint","url","errorBody","text","errorMessage","errorJson","json","String","destroy"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/providers/zai-provider.ts"],"names":["BaseProvider","LLMProviderError","incrementMetric","recordTiming","ZaiProvider","name","capabilities","supportedModels","maxContextLength","maxOutputTokens","supportsStreaming","supportsFunctionCalling","supportsSystemMessages","supportsVision","supportsAudio","supportsTools","supportsFineTuning","supportsEmbeddings","supportsLogprobs","supportsBatching","pricing","promptCostPer1k","completionCostPer1k","currency","apiKey","baseURL","doInitialize","config","Error","logger","info","model","doComplete","request","startTime","Date","now","provider","stream","payload","messages","filter","msg","role","map","content","temperature","max_tokens","Math","max","maxTokens","response","callZaiAPI","status","usage","prompt_tokens","completion_tokens","total_tokens","promptCost","completionCost","id","choices","message","promptTokens","completionTokens","totalTokens","cost","totalCost","finishReason","finish_reason","error","errorType","statusCode","retryable","doStreamComplete","totalInputTokens","totalOutputTokens","fetch","method","headers","Authorization","body","JSON","stringify","ok","statusText","undefined","reader","getReader","decoder","TextDecoder","buffer","done","value","read","decode","lines","split","pop","line","trim","startsWith","data","slice","event","parse","delta","type","parseError","warn","estimateTokens","releaseLock","listModels","getModelInfo","modelNames","modelDescriptions","description","contextLength","supportedFeatures","doHealthCheck","healthy","timestamp","details","endpoint","url","errorBody","text","errorMessage","errorJson","json","String","destroy"],"mappings":"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"}