paseo-plugin-zcode-provider 0.0.0-stage → 0.2.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 (141) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +29 -0
  3. package/README.md +112 -2
  4. package/client/account.tsx +827 -0
  5. package/client/diagnostics.tsx +379 -0
  6. package/client/runtime.tsx +296 -0
  7. package/client/settings.tsx +84 -0
  8. package/client/value.tsx +20 -0
  9. package/icon.svg +1 -0
  10. package/index.client.tsx +22 -0
  11. package/index.server.ts +39 -0
  12. package/package.json +77 -4
  13. package/paseo-plugin.json +6 -0
  14. package/server/account.ts +781 -0
  15. package/server/attachments.ts +150 -0
  16. package/server/build-info.ts +2 -0
  17. package/server/conversation.ts +319 -0
  18. package/server/diagnostics.ts +252 -0
  19. package/server/discovery/discover.ts +225 -0
  20. package/server/discovery/manifest.ts +36 -0
  21. package/server/discovery/types.ts +30 -0
  22. package/server/errors.ts +36 -0
  23. package/server/host/bridge.ts +490 -0
  24. package/server/host/schemas.ts +119 -0
  25. package/server/logger.ts +19 -0
  26. package/server/mapping.ts +270 -0
  27. package/server/models.ts +68 -0
  28. package/server/persistence.ts +146 -0
  29. package/server/presentation.ts +470 -0
  30. package/server/provider-status.ts +81 -0
  31. package/server/provider.ts +838 -0
  32. package/server/runtime/managed.ts +501 -0
  33. package/server/runtime/pins.ts +72 -0
  34. package/server/runtime-setup.ts +77 -0
  35. package/server/session-types.ts +49 -0
  36. package/server/session.ts +866 -0
  37. package/server/status.ts +89 -0
  38. package/server/timeline.ts +18 -0
  39. package/server/usage.ts +362 -0
  40. package/server/vendor/zcode/LICENSE +202 -0
  41. package/server/vendor/zcode/NOTICE.md +70 -0
  42. package/server/vendor/zcode/THIRD-PARTY-NOTICES.md +37 -0
  43. package/server/vendor/zcode/packages/model-option-map/src/compiler.ts +92 -0
  44. package/server/vendor/zcode/packages/model-option-map/src/evaluator.ts +214 -0
  45. package/server/vendor/zcode/packages/model-option-map/src/index.ts +5 -0
  46. package/server/vendor/zcode/packages/model-option-map/src/merge-patch.ts +97 -0
  47. package/server/vendor/zcode/packages/model-option-map/src/option-maps.ts +42 -0
  48. package/server/vendor/zcode/packages/model-option-map/src/parser.ts +240 -0
  49. package/server/vendor/zcode/packages/model-option-map/src/tokenizer.ts +141 -0
  50. package/server/vendor/zcode/packages/model-option-map/src/types.ts +36 -0
  51. package/server/vendor/zcode/packages/rpc/src/buffer.ts +88 -0
  52. package/server/vendor/zcode/packages/rpc/src/channelClient.ts +275 -0
  53. package/server/vendor/zcode/packages/rpc/src/channelServer.ts +283 -0
  54. package/server/vendor/zcode/packages/rpc/src/channels.shared.ts +66 -0
  55. package/server/vendor/zcode/packages/rpc/src/channels.ts +4 -0
  56. package/server/vendor/zcode/packages/rpc/src/delayedChannel.ts +17 -0
  57. package/server/vendor/zcode/packages/rpc/src/foundation.ts +260 -0
  58. package/server/vendor/zcode/packages/rpc/src/protocol.ts +397 -0
  59. package/server/vendor/zcode/packages/rpc/src/proxy-channel.ts +213 -0
  60. package/server/vendor/zcode/packages/rpc/src/serialization.ts +291 -0
  61. package/server/vendor/zcode/packages/shared/src/account-provider-state.ts +13 -0
  62. package/server/vendor/zcode/packages/shared/src/background-bash-output.ts +24 -0
  63. package/server/vendor/zcode/packages/shared/src/background-task-controls.ts +404 -0
  64. package/server/vendor/zcode/packages/shared/src/bash-output-display.ts +11 -0
  65. package/server/vendor/zcode/packages/shared/src/bots.ts +558 -0
  66. package/server/vendor/zcode/packages/shared/src/browser-use/backend.ts +80 -0
  67. package/server/vendor/zcode/packages/shared/src/browser-use/command-metadata.ts +170 -0
  68. package/server/vendor/zcode/packages/shared/src/browser-use/commands.ts +588 -0
  69. package/server/vendor/zcode/packages/shared/src/browser-use/result.ts +130 -0
  70. package/server/vendor/zcode/packages/shared/src/browser-use/snapshot.ts +77 -0
  71. package/server/vendor/zcode/packages/shared/src/command-types.ts +96 -0
  72. package/server/vendor/zcode/packages/shared/src/config-schema.ts +8 -0
  73. package/server/vendor/zcode/packages/shared/src/cuaAccessibilitySettings.ts +41 -0
  74. package/server/vendor/zcode/packages/shared/src/database-startup.ts +178 -0
  75. package/server/vendor/zcode/packages/shared/src/env.ts +63 -0
  76. package/server/vendor/zcode/packages/shared/src/execution-output-preview.ts +14 -0
  77. package/server/vendor/zcode/packages/shared/src/localTtft.ts +192 -0
  78. package/server/vendor/zcode/packages/shared/src/model-config.ts +123 -0
  79. package/server/vendor/zcode/packages/shared/src/model-execution.ts +23 -0
  80. package/server/vendor/zcode/packages/shared/src/model-provider-family.ts +171 -0
  81. package/server/vendor/zcode/packages/shared/src/model-provider-types.ts +81 -0
  82. package/server/vendor/zcode/packages/shared/src/model-selection.ts +60 -0
  83. package/server/vendor/zcode/packages/shared/src/oauth.ts +203 -0
  84. package/server/vendor/zcode/packages/shared/src/official-mcp-auth.ts +272 -0
  85. package/server/vendor/zcode/packages/shared/src/official-mcp-tool-error.ts +68 -0
  86. package/server/vendor/zcode/packages/shared/src/process-diagnostic.ts +42 -0
  87. package/server/vendor/zcode/packages/shared/src/protocol.ts +369 -0
  88. package/server/vendor/zcode/packages/shared/src/provider-family-connection-selection.ts +32 -0
  89. package/server/vendor/zcode/packages/shared/src/remoteAssetInstallMode.ts +11 -0
  90. package/server/vendor/zcode/packages/shared/src/remoteResourcePackages.ts +91 -0
  91. package/server/vendor/zcode/packages/shared/src/runtimeEnv.ts +315 -0
  92. package/server/vendor/zcode/packages/shared/src/settings-source.ts +10 -0
  93. package/server/vendor/zcode/packages/shared/src/usage-quota.ts +74 -0
  94. package/server/vendor/zcode/packages/shared/src/usage-stats.ts +462 -0
  95. package/server/vendor/zcode/packages/shared/src/validationAppSettings.ts +562 -0
  96. package/server/vendor/zcode/packages/shared/src/workspacePurpose.ts +2 -0
  97. package/server/vendor/zcode/packages/shared/src/wslUserValidation.ts +33 -0
  98. package/server/vendor/zcode/packages/shared/src/zcode-agent-policy.ts +25 -0
  99. package/server/vendor/zcode/packages/shared/src/zcode-media-policy.ts +10 -0
  100. package/server/vendor/zcode/packages/shared/src/zcode-protocol/index.ts +3720 -0
  101. package/server/vendor/zcode/packages/shared/src/zcode-protocol-legacy-types.ts +529 -0
  102. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/apply.ts +218 -0
  103. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/attachment-ref.ts +14 -0
  104. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/command.ts +482 -0
  105. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/core.ts +100 -0
  106. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/create-workflow-display.ts +156 -0
  107. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/cuaPermission.ts +41 -0
  108. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/delta.ts +147 -0
  109. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/input-intent.ts +69 -0
  110. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/rows.ts +432 -0
  111. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/session-config.ts +43 -0
  112. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/sessions-index-workflow-activity.ts +195 -0
  113. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/sessions-index.ts +85 -0
  114. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/shared-context-import.ts +38 -0
  115. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/shared-context-ref.ts +10 -0
  116. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/snapshot.ts +509 -0
  117. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/submission.ts +5 -0
  118. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/toolDisplay.ts +264 -0
  119. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/transport.ts +1152 -0
  120. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-assembler.ts +574 -0
  121. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-binary.ts +65 -0
  122. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-codec.ts +240 -0
  123. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-fault.ts +39 -0
  124. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire.ts +159 -0
  125. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-artifacts.ts +291 -0
  126. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-observation-display.ts +281 -0
  127. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-row-meta.ts +163 -0
  128. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-run-settings-command.ts +62 -0
  129. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-runs-delta.ts +517 -0
  130. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-runs.ts +512 -0
  131. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workspace-config.ts +81 -0
  132. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workspace-hook-review.ts +210 -0
  133. package/server/vendor/zcode/packages/shared/src/zcode-task-mode-schema.ts +6 -0
  134. package/server/vendor/zcode/packages/shared/src/zcode-task-types-core.ts +1187 -0
  135. package/server/vendor/zcode/packages/shared/src/zcodeEndpoint.ts +296 -0
  136. package/server/vendor/zcode/provenance.json +405 -0
  137. package/shared/account.ts +201 -0
  138. package/shared/diagnostics.ts +52 -0
  139. package/shared/runtime-setup.ts +73 -0
  140. package/vendor/acp-registry/LICENSE +176 -0
  141. package/vendor/paseo/LICENSE +211 -0
@@ -0,0 +1,462 @@
1
+ /* eslint-disable max-lines -- Usage、Entitlement 与 Reset 的跨进程协议需要共享同一组 Account Access 字段和运行时 schema,暂时集中维护。 */
2
+ import { z } from "zod";
3
+
4
+ // 额度类型拆在 usage-quota.ts,见该文件头部说明;这里 re-export 保持既有 import 路径不变。
5
+ export * from "./usage-quota.js";
6
+ import type { UsageMcpQuotaSnapshot, UsageQuotaSnapshot } from "./usage-quota.js";
7
+ import type { ZCodeAccountAccess, ZCodeProviderAccountAccess } from "./zcode-protocol/index.js";
8
+
9
+ export const ESTIMATED_TOKEN_CHAR_DIVISOR = 3;
10
+
11
+ export type UsageStatsRange = "all" | "7d" | "30d";
12
+ export type CodingPlanUsageRange = "today" | "7d" | "30d" | "custom";
13
+ export type CodingPlanUsageGranularity = "hour" | "day";
14
+ export type CodingPlanUsageDetailMetric = "credits" | "usage";
15
+ export type CodingPlanUsageDetailSubject = "model" | "tool";
16
+
17
+ export interface UsageStatsRequest {
18
+ range: UsageStatsRange;
19
+ /** 使用统计数据源。App Usage 显式使用本地 session 聚合,Coding Plan 显式使用 monitor 接口。 */
20
+ dataSource?: "local" | "monitor";
21
+ /** 设置页可传入用户当前选中的 Z.AI / BigModel 来源,避免两边都配置时只隐式读取第一家。 */
22
+ preferredProviderId?: string;
23
+ /** Registry 静态访问类别,或调用边界已解析的动态账号访问上下文。 */
24
+ accountAccess?: ZCodeProviderAccountAccess | ZCodeAccountAccess;
25
+ /** 指定来源的场景必须命中 preferredProviderId,否则不允许回退到其它 provider 或本地聚合。 */
26
+ requirePreferredProvider?: boolean;
27
+ /** 是否允许 host 环境变量覆盖 provider key。默认允许,显式 provider 场景可关闭。 */
28
+ allowEnvApiKey?: boolean;
29
+ /**
30
+ * 统计按调用端时区归桶。
31
+ * UI 默认传入浏览器当前时区;缺省时 host 侧回退到系统时区。
32
+ */
33
+ timeZone?: string;
34
+ }
35
+
36
+ export interface CodingPlanUsageRequest {
37
+ range: CodingPlanUsageRange;
38
+ /** 自定义日期范围。仅 range=custom 时生效,按调用端自然日解释,最大 30 天。 */
39
+ customStartDate?: string | null;
40
+ customEndDate?: string | null;
41
+ preferredProviderId: string;
42
+ /** Registry 静态访问类别,或本次 Team 查询绑定的动态账号访问上下文。 */
43
+ accountAccess: ZCodeProviderAccountAccess | ZCodeAccountAccess;
44
+ timeZone?: string;
45
+ }
46
+
47
+ export interface UsageEntitlementRequest {
48
+ /** 购买或领取完成后,使对应 Start Plan balance 短期缓存失效。 */
49
+ invalidateBalanceCache?: boolean;
50
+ /** 兼容旧调用方的提示;Coding Plan 权益必须查询订阅并返回摘要,不再允许仅用额度推断权益。 */
51
+ includeSubscription?: boolean;
52
+ /** 聊天输入区可传入当前选中的内置供应商,确保 BigModel/Z.AI 用量跟随模型选择。 */
53
+ preferredProviderId?: string;
54
+ /** 指定 Account Provider 的静态访问类别,或调用边界已解析的动态账号访问上下文。 */
55
+ accountAccess?: ZCodeProviderAccountAccess | ZCodeAccountAccess;
56
+ /** 当前模型已明确选中该内置供应商时,即使供应商列表里被隐藏也允许读取其 key。 */
57
+ allowDisabledPreferredProvider?: boolean;
58
+ /** 指定来源的场景必须命中 preferredProviderId,否则不允许回退到其它 provider。 */
59
+ requirePreferredProvider?: boolean;
60
+ /** 是否允许 host 环境变量覆盖 provider key。默认允许,显式 provider 场景可关闭。 */
61
+ allowEnvApiKey?: boolean;
62
+ }
63
+
64
+ export interface UsageEntitlementSnapshot {
65
+ generatedAt: number;
66
+ /** 当前额度响应的服务端时间(毫秒);与本地快照生成时间 generatedAt 分离。 */
67
+ serverTime?: number;
68
+ authenticated: boolean;
69
+ unavailableReason?: "not_authenticated" | "not_configured" | "no_plan" | "unavailable";
70
+ /** 无可用 Start Plan 时,保留明确过期原因用于展示。 */
71
+ startPlanExpired?: boolean;
72
+ /** 团队订阅明确失效的原因,仅与 no_plan 一起返回。 */
73
+ teamPlanUnavailableReason?: "expired" | "unassigned";
74
+ /** 当前 entitlement 查询对应的个人 / 团队上下文,用于设置页连接方式主判定。 */
75
+ context?: UsageEntitlementContext | null;
76
+ /** 当前用于查询 quota 的模型供应商信息。 */
77
+ provider: UsageEntitlementProviderInfo | null;
78
+ remaining: UsageEntitlementRemaining | null;
79
+ subscription: UsageEntitlementSubscription | null;
80
+ quota: UsageQuotaSnapshot | null;
81
+ /**
82
+ * ZCode 官方 Server MCP 的调用额度(`/api/v1/mcp/usage`)。
83
+ * 与 quota 同一份快照下发,是为了继承 entitlement 已有的缓存 / in-flight 合并 / TTL 策略;
84
+ * 拉取失败、未开通 Coding Plan、或该额度不属于本次查询的连接时一律为 null(可选数据面)。
85
+ */
86
+ mcpQuota?: UsageMcpQuotaSnapshot | null;
87
+ }
88
+
89
+ export interface UsageEntitlementContext {
90
+ scope: "personal" | "team";
91
+ organizationId?: string | null;
92
+ projectId?: string | null;
93
+ displayName?: string | null;
94
+ productId?: string | null;
95
+ }
96
+
97
+ export type PlanIdentityStatus = "coding_plan" | "start_plan" | "no_plan" | "unknown";
98
+
99
+ export interface PlanIdentitySnapshot {
100
+ generatedAt: number;
101
+ planStatus: PlanIdentityStatus;
102
+ planProductId: string;
103
+ }
104
+
105
+ export interface UsageEntitlementRemaining {
106
+ count: number;
107
+ isShow: boolean;
108
+ percentage?: number;
109
+ nextResetTime?: number | null;
110
+ }
111
+
112
+ export interface UsageEntitlementProviderInfo {
113
+ id: string;
114
+ name: string;
115
+ }
116
+
117
+ export interface UsageEntitlementSubscription {
118
+ identityType: "email" | "phoneNumber" | "unknown";
119
+ identityMasked: string | null;
120
+ details: UsageEntitlementSubscriptionDetail[];
121
+ }
122
+
123
+ export interface UsageEntitlementSubscriptionDetail {
124
+ productId: string;
125
+ productName: string;
126
+ purchaseTime: string | null;
127
+ beginTime: string | null;
128
+ billingCycle?: string | null;
129
+ renewTime?: string | null;
130
+ expireTime: string | null;
131
+ /** Start Plan balance 套餐下的权益生效时间;其他订阅类型可不提供。 */
132
+ entitlements?: Array<{
133
+ entitlementId: string;
134
+ /** 服务端 entitlement show_name,用于待生效提示。 */
135
+ showName?: string | null;
136
+ effectiveTime: string | null;
137
+ }>;
138
+ }
139
+
140
+ export interface UsageStatsSnapshot {
141
+ range: UsageStatsRange;
142
+ generatedAt: number;
143
+ timeZone: string;
144
+ estimatedTokenCharDivisor: number;
145
+ summary: UsageStatsSummary;
146
+ /** 按日期连续补齐后的日序列,空白日期会补 0,供趋势图直接使用。 */
147
+ daily: UsageStatsDaySummary[];
148
+ heatmap: UsageStatsHeatmap;
149
+ models: UsageStatsModelUsage[];
150
+ /**
151
+ * 数据来源标识:用于 UI 识别供应商 monitor 接口或本地 session 聚合数据。
152
+ * App Usage 显式读取本地 session 聚合;Coding Plan 显式读取当前 provider monitor。
153
+ */
154
+ source?: "bigmodel-monitor" | "local";
155
+ /** 远端用量来源供应商,用于 UI 展示 BigModel / Z.AI 等来源。 */
156
+ sourceProvider?: UsageEntitlementProviderInfo | null;
157
+ /** 工具调用维度(仅 BigModel tool-usage 接口可用,本地聚合不填)。 */
158
+ tools?: UsageStatsToolUsage[];
159
+ }
160
+
161
+ // ── App Usage(agent 数据库真实统计)────────────────────────────────
162
+ export const APP_USAGE_RANGES = ["all", "7d", "30d"] as const;
163
+ export type AppUsageRange = (typeof APP_USAGE_RANGES)[number];
164
+
165
+ export const appUsageFavoriteModelSchema = z.object({
166
+ modelId: z.string().nullable(),
167
+ totalTokens: z.number(),
168
+ share: z.number(),
169
+ });
170
+
171
+ export const appUsageSummarySchema = z.object({
172
+ totalTokens: z.number(),
173
+ inputTokens: z.number(),
174
+ outputTokens: z.number(),
175
+ reasoningTokens: z.number(),
176
+ cacheCreationTokens: z.number(),
177
+ cacheReadTokens: z.number(),
178
+ cacheHitRate: z.number(),
179
+ totalSessions: z.number(),
180
+ totalTurns: z.number(),
181
+ toolCallCount: z.number(),
182
+ toolErrorRate: z.number(),
183
+ modelErrorRate: z.number(),
184
+ avgTimeToFirstTokenMs: z.number().nullable(),
185
+ avgTurnDurationMs: z.number().nullable(),
186
+ activeDays: z.number(),
187
+ currentStreakDays: z.number(),
188
+ longestSessionMs: z.number(),
189
+ longestStreakDays: z.number(),
190
+ peakDayTokens: z.number(),
191
+ favoriteModel: appUsageFavoriteModelSchema.nullable(),
192
+ });
193
+
194
+ export const appUsageHeatmapCellSchema = z.object({
195
+ date: z.string(),
196
+ level: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3), z.literal(4)]),
197
+ totalTokens: z.number(),
198
+ turnCount: z.number(),
199
+ toolCallCount: z.number(),
200
+ });
201
+
202
+ export const appUsageHeatmapWeekSchema = z.object({
203
+ weekIndex: z.number(),
204
+ days: z.array(appUsageHeatmapCellSchema.nullable()),
205
+ });
206
+
207
+ export const appUsageHeatmapSchema = z.object({
208
+ startDate: z.string().nullable(),
209
+ endDate: z.string().nullable(),
210
+ maxTokens: z.number(),
211
+ weeks: z.array(appUsageHeatmapWeekSchema),
212
+ });
213
+
214
+ export const appUsageDailyModelItemSchema = z.object({
215
+ modelId: z.string().nullable(),
216
+ totalTokens: z.number(),
217
+ });
218
+
219
+ export const appUsageDailyModelUsageSchema = z.object({
220
+ date: z.string(),
221
+ models: z.array(appUsageDailyModelItemSchema),
222
+ });
223
+
224
+ export const appUsageModelUsageSchema = z.object({
225
+ modelId: z.string().nullable(),
226
+ totalTokens: z.number(),
227
+ inputTokens: z.number(),
228
+ outputTokens: z.number(),
229
+ requestCount: z.number(),
230
+ share: z.number(),
231
+ });
232
+
233
+ export const appUsageToolUsageSchema = z.object({
234
+ toolName: z.string(),
235
+ callCount: z.number(),
236
+ errorCount: z.number(),
237
+ errorRate: z.number(),
238
+ avgDurationMs: z.number().nullable(),
239
+ });
240
+
241
+ export const appUsageSnapshotSchema = z.object({
242
+ range: z.enum(APP_USAGE_RANGES),
243
+ generatedAt: z.number(),
244
+ timeZone: z.string(),
245
+ source: z.literal("agent-db"),
246
+ summary: appUsageSummarySchema,
247
+ heatmap: appUsageHeatmapSchema,
248
+ dailyModelUsage: z.array(appUsageDailyModelUsageSchema),
249
+ models: z.array(appUsageModelUsageSchema),
250
+ tools: z.array(appUsageToolUsageSchema),
251
+ });
252
+
253
+ export type AppUsageSummary = z.infer<typeof appUsageSummarySchema>;
254
+ export type AppUsageHeatmapCell = z.infer<typeof appUsageHeatmapCellSchema>;
255
+ export type AppUsageHeatmapWeek = z.infer<typeof appUsageHeatmapWeekSchema>;
256
+ export type AppUsageHeatmap = z.infer<typeof appUsageHeatmapSchema>;
257
+ export type AppUsageDailyModelItem = z.infer<typeof appUsageDailyModelItemSchema>;
258
+ export type AppUsageDailyModelUsage = z.infer<typeof appUsageDailyModelUsageSchema>;
259
+ export type AppUsageModelUsage = z.infer<typeof appUsageModelUsageSchema>;
260
+ export type AppUsageToolUsage = z.infer<typeof appUsageToolUsageSchema>;
261
+ export type AppUsageFavoriteModel = z.infer<typeof appUsageFavoriteModelSchema>;
262
+ export type AppUsageSnapshot = z.infer<typeof appUsageSnapshotSchema>;
263
+
264
+ export interface AppUsageRequest {
265
+ range: AppUsageRange;
266
+ timeZone?: string;
267
+ }
268
+
269
+ export interface CodingPlanUsageSnapshot {
270
+ range: CodingPlanUsageRange;
271
+ rangeStartDate: string;
272
+ rangeEndDate: string;
273
+ generatedAt: number;
274
+ sourceProvider: UsageEntitlementProviderInfo;
275
+ quota: UsageQuotaSnapshot | null;
276
+ activity: CodingPlanActivitySnapshot;
277
+ detail: CodingPlanUsageDetailSnapshot;
278
+ modelUsage: CodingPlanModelUsageSnapshot;
279
+ toolUsage: CodingPlanToolUsageSnapshot;
280
+ health: CodingPlanHealthSnapshot;
281
+ }
282
+
283
+ export interface CodingPlanActivitySnapshot {
284
+ summary: CodingPlanActivitySummary;
285
+ heatmap: AppUsageHeatmap;
286
+ }
287
+
288
+ export interface CodingPlanActivitySummary {
289
+ totalTokens: number;
290
+ peakDailyTokens: number;
291
+ peakDailyTokensDate: string | null;
292
+ totalUsageDurationMs: number;
293
+ currentStreakDays: number;
294
+ longestStreakDays: number;
295
+ favoriteModelName: string | null;
296
+ }
297
+
298
+ export interface CodingPlanUsageDetailSnapshot {
299
+ model: CodingPlanUsageDetailSummary;
300
+ tool: CodingPlanUsageDetailSummary;
301
+ }
302
+
303
+ export interface CodingPlanUsageDetailSummary {
304
+ cacheHitRate: number | null;
305
+ cacheHitRateTrend: number | null;
306
+ totalCredits: number;
307
+ totalCreditsTrend: number | null;
308
+ averageDailyCredits: number;
309
+ averageDailyCreditsTrend: number | null;
310
+ }
311
+
312
+ export interface CodingPlanModelUsageSnapshot {
313
+ xTime: string[];
314
+ granularity: CodingPlanUsageGranularity;
315
+ totalModelCallCount: number;
316
+ totalTokensUsage: number;
317
+ modelDataList: CodingPlanModelData[];
318
+ modelSummaryList: CodingPlanModelSummary[];
319
+ }
320
+
321
+ export interface CodingPlanModelData {
322
+ modelName: string;
323
+ sortOrder: number;
324
+ tokensUsage: number[];
325
+ creditsUsage?: number[];
326
+ cachedInputTokensUsage?: number[];
327
+ uncachedInputTokensUsage?: number[];
328
+ outputTokensUsage?: number[];
329
+ cachedInputCreditsUsage?: number[];
330
+ uncachedInputCreditsUsage?: number[];
331
+ outputCreditsUsage?: number[];
332
+ totalTokens: number;
333
+ totalCredits?: number;
334
+ }
335
+
336
+ export interface CodingPlanModelSummary {
337
+ modelName: string;
338
+ totalTokens: number;
339
+ totalCredits?: number;
340
+ sortOrder: number;
341
+ }
342
+
343
+ export interface CodingPlanToolUsageSnapshot {
344
+ xTime: string[];
345
+ granularity: CodingPlanUsageGranularity;
346
+ toolDataList: CodingPlanToolData[];
347
+ toolSummaryList: CodingPlanToolSummary[];
348
+ }
349
+
350
+ export interface CodingPlanToolData {
351
+ toolCode: string;
352
+ toolName: string;
353
+ sortOrder: number;
354
+ usageCount: number[];
355
+ creditsUsage?: number[];
356
+ totalUsageCount: number;
357
+ totalCredits?: number;
358
+ }
359
+
360
+ export interface CodingPlanToolSummary {
361
+ toolCode: string;
362
+ toolName: string;
363
+ totalUsageCount: number;
364
+ totalCredits?: number;
365
+ sortOrder: number;
366
+ }
367
+
368
+ export interface CodingPlanHealthSnapshot {
369
+ xTime: string[];
370
+ proMaxDecodeSpeed: number[];
371
+ liteDecodeSpeed: number[];
372
+ }
373
+
374
+ export interface UsageStatsToolUsage {
375
+ /** 工具内部代号:search-prime / web-reader / zread / search-mcp 等。 */
376
+ toolCode: string;
377
+ /** 用于展示的人类可读名称。 */
378
+ displayName: string;
379
+ totalCalls: number;
380
+ /** 与 daily 同长度的按天调用次数,便于绘制趋势。 */
381
+ dailyCalls: number[];
382
+ }
383
+
384
+ export interface UsageStatsSummary {
385
+ totalSessions: number;
386
+ totalMessages: number;
387
+ totalCharacters: number;
388
+ totalEstimatedTokens: number;
389
+ activeDays: number;
390
+ mostActiveDay: UsageStatsDaySummary | null;
391
+ favoriteModel: UsageStatsFavoriteModel | null;
392
+ longestSessionMs: number;
393
+ longestStreakDays: number;
394
+ currentStreakDays: number;
395
+ firstActivityDate: string | null;
396
+ lastActivityDate: string | null;
397
+ peakHour: UsageStatsPeakHour | null;
398
+ }
399
+
400
+ export interface UsageStatsPeakHour {
401
+ hour: number;
402
+ totalEstimatedTokens: number;
403
+ messageCount: number;
404
+ }
405
+
406
+ export interface UsageStatsFavoriteModel {
407
+ modelId: string | null;
408
+ totalCharacters: number;
409
+ totalEstimatedTokens: number;
410
+ share: number;
411
+ }
412
+
413
+ export interface UsageStatsDaySummary {
414
+ date: string;
415
+ label: string;
416
+ totalCharacters: number;
417
+ totalEstimatedTokens: number;
418
+ sessionCount: number;
419
+ messageCount: number;
420
+ activityScore: number;
421
+ }
422
+
423
+ export interface UsageStatsHeatmap {
424
+ startDate: string | null;
425
+ endDate: string | null;
426
+ maxActivityScore: number;
427
+ weeks: UsageStatsHeatmapWeek[];
428
+ monthLabels: UsageStatsHeatmapMonthLabel[];
429
+ }
430
+
431
+ export interface UsageStatsHeatmapWeek {
432
+ weekIndex: number;
433
+ days: Array<UsageStatsHeatmapCell | null>;
434
+ }
435
+
436
+ export interface UsageStatsHeatmapMonthLabel {
437
+ weekIndex: number;
438
+ date: string;
439
+ }
440
+
441
+ export interface UsageStatsHeatmapCell {
442
+ date: string;
443
+ level: 0 | 1 | 2 | 3 | 4;
444
+ totalCharacters: number;
445
+ totalEstimatedTokens: number;
446
+ sessionCount: number;
447
+ messageCount: number;
448
+ activityScore: number;
449
+ }
450
+
451
+ export interface UsageStatsModelUsage {
452
+ modelId: string | null;
453
+ totalCharacters: number;
454
+ totalEstimatedTokens: number;
455
+ inputCharacters: number;
456
+ inputEstimatedTokens: number;
457
+ outputCharacters: number;
458
+ outputEstimatedTokens: number;
459
+ sessionCount: number;
460
+ messageCount: number;
461
+ share: number;
462
+ }