@otto-code/protocol 0.8.10 → 0.8.13
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.
- package/dist/agent-labels.d.ts +3 -0
- package/dist/agent-labels.js +10 -0
- package/dist/agent-personalities.d.ts +4 -3
- package/dist/agent-personalities.js +13 -20
- package/dist/agent-queue.d.ts +87 -0
- package/dist/agent-queue.js +106 -0
- package/dist/agent-types.d.ts +24 -4
- package/dist/binary-frames/terminal.d.ts +4 -0
- package/dist/binary-frames/terminal.js +1 -0
- package/dist/brain.d.ts +2412 -0
- package/dist/brain.js +1100 -0
- package/dist/chat/rpc-schemas.js +1 -0
- package/dist/chat/types.js +1 -0
- package/dist/client-capabilities.d.ts +3 -0
- package/dist/client-capabilities.js +14 -0
- package/dist/code-intelligence.d.ts +917 -0
- package/dist/code-intelligence.js +699 -0
- package/dist/communications.d.ts +1106 -0
- package/dist/communications.js +384 -0
- package/dist/context.d.ts +787 -0
- package/dist/context.js +295 -0
- package/dist/daemon-config.d.ts +383 -0
- package/dist/daemon-config.js +401 -0
- package/dist/file-operations.d.ts +380 -0
- package/dist/file-operations.js +282 -0
- package/dist/generated/validation/ws-outbound.aot.js +67260 -57392
- package/dist/git-hosting.d.ts +117 -0
- package/dist/git-hosting.js +109 -0
- package/dist/git-operations.d.ts +255 -0
- package/dist/git-operations.js +221 -0
- package/dist/integration-authorization.d.ts +195 -0
- package/dist/integration-authorization.js +125 -0
- package/dist/kanban.d.ts +341 -0
- package/dist/kanban.js +273 -0
- package/dist/loop/rpc-schemas.d.ts +6 -6
- package/dist/loop/rpc-schemas.js +1 -0
- package/dist/meetings.d.ts +95 -0
- package/dist/meetings.js +57 -0
- package/dist/messages.d.ts +11175 -11039
- package/dist/messages.js +4756 -8700
- package/dist/orchestration.d.ts +726 -0
- package/dist/orchestration.js +232 -0
- package/dist/personality-schemas.d.ts +221 -0
- package/dist/personality-schemas.js +340 -0
- package/dist/preview.d.ts +140 -0
- package/dist/preview.js +98 -0
- package/dist/project-knowledge.d.ts +740 -0
- package/dist/project-knowledge.js +229 -0
- package/dist/project-links.d.ts +102 -0
- package/dist/project-links.js +62 -0
- package/dist/provider-config.d.ts +87 -2
- package/dist/provider-config.js +110 -0
- package/dist/provider-manifest.js +7 -0
- package/dist/provider-snapshot-codec.d.ts +18 -0
- package/dist/provider-snapshot-codec.js +71 -0
- package/dist/refine.d.ts +93 -0
- package/dist/refine.js +78 -0
- package/dist/schedule/rpc-schemas.d.ts +55 -111
- package/dist/schedule/types.d.ts +16 -37
- package/dist/schedule/types.js +1 -11
- package/dist/search/text-match.d.ts +55 -0
- package/dist/search/text-match.js +262 -0
- package/dist/speech.d.ts +180 -0
- package/dist/speech.js +177 -0
- package/dist/storage.d.ts +79 -0
- package/dist/storage.js +107 -0
- package/dist/suggested-tasks.d.ts +106 -0
- package/dist/suggested-tasks.js +81 -0
- package/dist/terminal-compatibility.d.ts +55 -0
- package/dist/terminal-compatibility.js +35 -0
- package/dist/terminal-input-mode.d.ts +4 -0
- package/dist/terminal-input-mode.js +35 -6
- package/dist/terminal-key-input.js +15 -6
- package/dist/terminal-profiles.d.ts +35 -0
- package/dist/terminal-profiles.js +246 -4
- package/dist/tool-call-display.d.ts +2 -2
- package/dist/tool-call-display.js +6 -6
- package/dist/usage-stats.d.ts +255 -0
- package/dist/usage-stats.js +162 -0
- package/dist/validation/ws-outbound-schema-metadata.d.ts +1906 -266
- package/dist/worktree-ops.d.ts +81 -0
- package/dist/worktree-ops.js +88 -0
- package/package.json +1 -1
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Otto usage and activity-stats wire schemas: the usage.log.get and stats.activity.* RPCs, the usage event, and the activity counters push. Fork-only capability, so it owns its schemas; messages.ts re-exports them.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ActivityCountersSchema: z.ZodObject<{
|
|
6
|
+
messagesSent: z.ZodDefault<z.ZodNumber>;
|
|
7
|
+
messagesReceived: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
tokensSent: z.ZodDefault<z.ZodNumber>;
|
|
9
|
+
tokensReceived: z.ZodDefault<z.ZodNumber>;
|
|
10
|
+
agentsCreated: z.ZodDefault<z.ZodNumber>;
|
|
11
|
+
runsOrchestrated: z.ZodDefault<z.ZodNumber>;
|
|
12
|
+
subagentsInvoked: z.ZodDefault<z.ZodNumber>;
|
|
13
|
+
backgroundTasksInvoked: z.ZodDefault<z.ZodNumber>;
|
|
14
|
+
thoughts: z.ZodDefault<z.ZodNumber>;
|
|
15
|
+
toolsCalled: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
artifactsCreated: z.ZodDefault<z.ZodNumber>;
|
|
17
|
+
schedulesExecuted: z.ZodDefault<z.ZodNumber>;
|
|
18
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
19
|
+
mainChatTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
20
|
+
mainChatTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
21
|
+
mainChatCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
22
|
+
generationsTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
23
|
+
generationsTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
24
|
+
generationsCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
25
|
+
subagentTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
26
|
+
subagentTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
27
|
+
subagentCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
28
|
+
compactionTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
29
|
+
compactionTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
30
|
+
claudeTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
31
|
+
claudeTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export declare const StatsActivityGetRequestMessageSchema: z.ZodObject<{
|
|
34
|
+
type: z.ZodLiteral<"stats.activity.get.request">;
|
|
35
|
+
requestId: z.ZodString;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
export declare const StatsActivityGetResponseMessageSchema: z.ZodObject<{
|
|
38
|
+
type: z.ZodLiteral<"stats.activity.get.response">;
|
|
39
|
+
payload: z.ZodObject<{
|
|
40
|
+
requestId: z.ZodString;
|
|
41
|
+
today: z.ZodObject<{
|
|
42
|
+
messagesSent: z.ZodDefault<z.ZodNumber>;
|
|
43
|
+
messagesReceived: z.ZodDefault<z.ZodNumber>;
|
|
44
|
+
tokensSent: z.ZodDefault<z.ZodNumber>;
|
|
45
|
+
tokensReceived: z.ZodDefault<z.ZodNumber>;
|
|
46
|
+
agentsCreated: z.ZodDefault<z.ZodNumber>;
|
|
47
|
+
runsOrchestrated: z.ZodDefault<z.ZodNumber>;
|
|
48
|
+
subagentsInvoked: z.ZodDefault<z.ZodNumber>;
|
|
49
|
+
backgroundTasksInvoked: z.ZodDefault<z.ZodNumber>;
|
|
50
|
+
thoughts: z.ZodDefault<z.ZodNumber>;
|
|
51
|
+
toolsCalled: z.ZodDefault<z.ZodNumber>;
|
|
52
|
+
artifactsCreated: z.ZodDefault<z.ZodNumber>;
|
|
53
|
+
schedulesExecuted: z.ZodDefault<z.ZodNumber>;
|
|
54
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
55
|
+
mainChatTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
56
|
+
mainChatTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
57
|
+
mainChatCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
58
|
+
generationsTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
59
|
+
generationsTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
60
|
+
generationsCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
61
|
+
subagentTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
62
|
+
subagentTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
63
|
+
subagentCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
64
|
+
compactionTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
65
|
+
compactionTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
66
|
+
claudeTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
67
|
+
claudeTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
yesterday: z.ZodObject<{
|
|
70
|
+
messagesSent: z.ZodDefault<z.ZodNumber>;
|
|
71
|
+
messagesReceived: z.ZodDefault<z.ZodNumber>;
|
|
72
|
+
tokensSent: z.ZodDefault<z.ZodNumber>;
|
|
73
|
+
tokensReceived: z.ZodDefault<z.ZodNumber>;
|
|
74
|
+
agentsCreated: z.ZodDefault<z.ZodNumber>;
|
|
75
|
+
runsOrchestrated: z.ZodDefault<z.ZodNumber>;
|
|
76
|
+
subagentsInvoked: z.ZodDefault<z.ZodNumber>;
|
|
77
|
+
backgroundTasksInvoked: z.ZodDefault<z.ZodNumber>;
|
|
78
|
+
thoughts: z.ZodDefault<z.ZodNumber>;
|
|
79
|
+
toolsCalled: z.ZodDefault<z.ZodNumber>;
|
|
80
|
+
artifactsCreated: z.ZodDefault<z.ZodNumber>;
|
|
81
|
+
schedulesExecuted: z.ZodDefault<z.ZodNumber>;
|
|
82
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
83
|
+
mainChatTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
84
|
+
mainChatTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
85
|
+
mainChatCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
86
|
+
generationsTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
87
|
+
generationsTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
88
|
+
generationsCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
89
|
+
subagentTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
90
|
+
subagentTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
91
|
+
subagentCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
92
|
+
compactionTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
93
|
+
compactionTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
94
|
+
claudeTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
95
|
+
claudeTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
96
|
+
}, z.core.$strip>;
|
|
97
|
+
last7Days: z.ZodObject<{
|
|
98
|
+
messagesSent: z.ZodDefault<z.ZodNumber>;
|
|
99
|
+
messagesReceived: z.ZodDefault<z.ZodNumber>;
|
|
100
|
+
tokensSent: z.ZodDefault<z.ZodNumber>;
|
|
101
|
+
tokensReceived: z.ZodDefault<z.ZodNumber>;
|
|
102
|
+
agentsCreated: z.ZodDefault<z.ZodNumber>;
|
|
103
|
+
runsOrchestrated: z.ZodDefault<z.ZodNumber>;
|
|
104
|
+
subagentsInvoked: z.ZodDefault<z.ZodNumber>;
|
|
105
|
+
backgroundTasksInvoked: z.ZodDefault<z.ZodNumber>;
|
|
106
|
+
thoughts: z.ZodDefault<z.ZodNumber>;
|
|
107
|
+
toolsCalled: z.ZodDefault<z.ZodNumber>;
|
|
108
|
+
artifactsCreated: z.ZodDefault<z.ZodNumber>;
|
|
109
|
+
schedulesExecuted: z.ZodDefault<z.ZodNumber>;
|
|
110
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
111
|
+
mainChatTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
112
|
+
mainChatTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
113
|
+
mainChatCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
114
|
+
generationsTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
115
|
+
generationsTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
116
|
+
generationsCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
117
|
+
subagentTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
118
|
+
subagentTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
119
|
+
subagentCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
120
|
+
compactionTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
121
|
+
compactionTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
122
|
+
claudeTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
123
|
+
claudeTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
124
|
+
}, z.core.$strip>;
|
|
125
|
+
last30Days: z.ZodObject<{
|
|
126
|
+
messagesSent: z.ZodDefault<z.ZodNumber>;
|
|
127
|
+
messagesReceived: z.ZodDefault<z.ZodNumber>;
|
|
128
|
+
tokensSent: z.ZodDefault<z.ZodNumber>;
|
|
129
|
+
tokensReceived: z.ZodDefault<z.ZodNumber>;
|
|
130
|
+
agentsCreated: z.ZodDefault<z.ZodNumber>;
|
|
131
|
+
runsOrchestrated: z.ZodDefault<z.ZodNumber>;
|
|
132
|
+
subagentsInvoked: z.ZodDefault<z.ZodNumber>;
|
|
133
|
+
backgroundTasksInvoked: z.ZodDefault<z.ZodNumber>;
|
|
134
|
+
thoughts: z.ZodDefault<z.ZodNumber>;
|
|
135
|
+
toolsCalled: z.ZodDefault<z.ZodNumber>;
|
|
136
|
+
artifactsCreated: z.ZodDefault<z.ZodNumber>;
|
|
137
|
+
schedulesExecuted: z.ZodDefault<z.ZodNumber>;
|
|
138
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
139
|
+
mainChatTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
140
|
+
mainChatTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
141
|
+
mainChatCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
142
|
+
generationsTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
143
|
+
generationsTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
144
|
+
generationsCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
145
|
+
subagentTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
146
|
+
subagentTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
147
|
+
subagentCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
148
|
+
compactionTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
149
|
+
compactionTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
150
|
+
claudeTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
151
|
+
claudeTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
152
|
+
}, z.core.$strip>;
|
|
153
|
+
allTime: z.ZodObject<{
|
|
154
|
+
messagesSent: z.ZodDefault<z.ZodNumber>;
|
|
155
|
+
messagesReceived: z.ZodDefault<z.ZodNumber>;
|
|
156
|
+
tokensSent: z.ZodDefault<z.ZodNumber>;
|
|
157
|
+
tokensReceived: z.ZodDefault<z.ZodNumber>;
|
|
158
|
+
agentsCreated: z.ZodDefault<z.ZodNumber>;
|
|
159
|
+
runsOrchestrated: z.ZodDefault<z.ZodNumber>;
|
|
160
|
+
subagentsInvoked: z.ZodDefault<z.ZodNumber>;
|
|
161
|
+
backgroundTasksInvoked: z.ZodDefault<z.ZodNumber>;
|
|
162
|
+
thoughts: z.ZodDefault<z.ZodNumber>;
|
|
163
|
+
toolsCalled: z.ZodDefault<z.ZodNumber>;
|
|
164
|
+
artifactsCreated: z.ZodDefault<z.ZodNumber>;
|
|
165
|
+
schedulesExecuted: z.ZodDefault<z.ZodNumber>;
|
|
166
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
167
|
+
mainChatTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
168
|
+
mainChatTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
169
|
+
mainChatCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
170
|
+
generationsTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
171
|
+
generationsTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
172
|
+
generationsCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
173
|
+
subagentTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
174
|
+
subagentTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
175
|
+
subagentCostMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
176
|
+
compactionTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
177
|
+
compactionTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
178
|
+
claudeTokensIn: z.ZodDefault<z.ZodNumber>;
|
|
179
|
+
claudeTokensOut: z.ZodDefault<z.ZodNumber>;
|
|
180
|
+
}, z.core.$strip>;
|
|
181
|
+
}, z.core.$strip>;
|
|
182
|
+
}, z.core.$strip>;
|
|
183
|
+
export declare const ActivityStatsChangedSchema: z.ZodObject<{
|
|
184
|
+
type: z.ZodLiteral<"activity_stats_changed">;
|
|
185
|
+
}, z.core.$strip>;
|
|
186
|
+
export declare const UsageEventSchema: z.ZodObject<{
|
|
187
|
+
id: z.ZodString;
|
|
188
|
+
at: z.ZodNumber;
|
|
189
|
+
kind: z.ZodString;
|
|
190
|
+
subtype: z.ZodOptional<z.ZodString>;
|
|
191
|
+
provider: z.ZodString;
|
|
192
|
+
model: z.ZodOptional<z.ZodString>;
|
|
193
|
+
tokensIn: z.ZodDefault<z.ZodNumber>;
|
|
194
|
+
cachedTokensIn: z.ZodOptional<z.ZodNumber>;
|
|
195
|
+
tokensOut: z.ZodDefault<z.ZodNumber>;
|
|
196
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
197
|
+
compactionTokensIn: z.ZodOptional<z.ZodNumber>;
|
|
198
|
+
compactionTokensOut: z.ZodOptional<z.ZodNumber>;
|
|
199
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
200
|
+
rounds: z.ZodOptional<z.ZodNumber>;
|
|
201
|
+
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
202
|
+
subagentKey: z.ZodOptional<z.ZodString>;
|
|
203
|
+
parentSubagentKey: z.ZodOptional<z.ZodString>;
|
|
204
|
+
}, z.core.$strip>;
|
|
205
|
+
export declare const UsageLogGetRequestMessageSchema: z.ZodObject<{
|
|
206
|
+
type: z.ZodLiteral<"usage.log.get.request">;
|
|
207
|
+
requestId: z.ZodString;
|
|
208
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
209
|
+
before: z.ZodOptional<z.ZodNumber>;
|
|
210
|
+
}, z.core.$strip>;
|
|
211
|
+
export declare const UsageLogGetResponseMessageSchema: z.ZodObject<{
|
|
212
|
+
type: z.ZodLiteral<"usage.log.get.response">;
|
|
213
|
+
payload: z.ZodObject<{
|
|
214
|
+
requestId: z.ZodString;
|
|
215
|
+
events: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
216
|
+
id: z.ZodString;
|
|
217
|
+
at: z.ZodNumber;
|
|
218
|
+
kind: z.ZodString;
|
|
219
|
+
subtype: z.ZodOptional<z.ZodString>;
|
|
220
|
+
provider: z.ZodString;
|
|
221
|
+
model: z.ZodOptional<z.ZodString>;
|
|
222
|
+
tokensIn: z.ZodDefault<z.ZodNumber>;
|
|
223
|
+
cachedTokensIn: z.ZodOptional<z.ZodNumber>;
|
|
224
|
+
tokensOut: z.ZodDefault<z.ZodNumber>;
|
|
225
|
+
costMicroUsd: z.ZodDefault<z.ZodNumber>;
|
|
226
|
+
compactionTokensIn: z.ZodOptional<z.ZodNumber>;
|
|
227
|
+
compactionTokensOut: z.ZodOptional<z.ZodNumber>;
|
|
228
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
229
|
+
rounds: z.ZodOptional<z.ZodNumber>;
|
|
230
|
+
startedAt: z.ZodOptional<z.ZodNumber>;
|
|
231
|
+
subagentKey: z.ZodOptional<z.ZodString>;
|
|
232
|
+
parentSubagentKey: z.ZodOptional<z.ZodString>;
|
|
233
|
+
}, z.core.$strip>>>;
|
|
234
|
+
hasMore: z.ZodDefault<z.ZodBoolean>;
|
|
235
|
+
}, z.core.$strip>;
|
|
236
|
+
}, z.core.$strip>;
|
|
237
|
+
export declare const StatsActivityResetRequestMessageSchema: z.ZodObject<{
|
|
238
|
+
type: z.ZodLiteral<"stats.activity.reset.request">;
|
|
239
|
+
requestId: z.ZodString;
|
|
240
|
+
}, z.core.$strip>;
|
|
241
|
+
export declare const StatsActivityResetResponseMessageSchema: z.ZodObject<{
|
|
242
|
+
type: z.ZodLiteral<"stats.activity.reset.response">;
|
|
243
|
+
payload: z.ZodObject<{
|
|
244
|
+
requestId: z.ZodString;
|
|
245
|
+
}, z.core.$strip>;
|
|
246
|
+
}, z.core.$strip>;
|
|
247
|
+
export type ActivityCounters = z.infer<typeof ActivityCountersSchema>;
|
|
248
|
+
export type StatsActivityGetResponseMessage = z.infer<typeof StatsActivityGetResponseMessageSchema>;
|
|
249
|
+
export type StatsActivityResetRequestMessage = z.infer<typeof StatsActivityResetRequestMessageSchema>;
|
|
250
|
+
export type StatsActivityResetResponseMessage = z.infer<typeof StatsActivityResetResponseMessageSchema>;
|
|
251
|
+
export type ActivityStatsChanged = z.infer<typeof ActivityStatsChangedSchema>;
|
|
252
|
+
export type UsageEvent = z.infer<typeof UsageEventSchema>;
|
|
253
|
+
export type UsageLogGetRequestMessage = z.infer<typeof UsageLogGetRequestMessageSchema>;
|
|
254
|
+
export type UsageLogGetResponseMessage = z.infer<typeof UsageLogGetResponseMessageSchema>;
|
|
255
|
+
//# sourceMappingURL=usage-stats.d.ts.map
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Otto usage and activity-stats wire schemas: the usage.log.get and stats.activity.* RPCs, the usage event, and the activity counters push. Fork-only capability, so it owns its schemas; messages.ts re-exports them.
|
|
4
|
+
*/
|
|
5
|
+
// Daemon-wide "fun stats" counters - see docs/data-model.md ActivityStatsStore.
|
|
6
|
+
// Every field defaults to 0 so old and new daemons/clients stay compatible as
|
|
7
|
+
// counters are added later.
|
|
8
|
+
export const ActivityCountersSchema = z.object({
|
|
9
|
+
messagesSent: z.number().default(0),
|
|
10
|
+
messagesReceived: z.number().default(0),
|
|
11
|
+
tokensSent: z.number().default(0),
|
|
12
|
+
tokensReceived: z.number().default(0),
|
|
13
|
+
agentsCreated: z.number().default(0),
|
|
14
|
+
runsOrchestrated: z.number().default(0),
|
|
15
|
+
subagentsInvoked: z.number().default(0),
|
|
16
|
+
backgroundTasksInvoked: z.number().default(0),
|
|
17
|
+
thoughts: z.number().default(0),
|
|
18
|
+
toolsCalled: z.number().default(0),
|
|
19
|
+
artifactsCreated: z.number().default(0),
|
|
20
|
+
schedulesExecuted: z.number().default(0),
|
|
21
|
+
// Usage & cost accounting (WP-G). Additive/defaulted like every counter above,
|
|
22
|
+
// so old daemons emit 0 and old clients drop the unknown leaves. "In"/"Out"
|
|
23
|
+
// are token totals; *CostMicroUsd are integer micro-USD (usd*1e6) to stay
|
|
24
|
+
// summable - populated only for turns reporting a real provider cost (Claude).
|
|
25
|
+
// The client detects whether the daemon actually populates these via
|
|
26
|
+
// features.usageCostCategories (see below).
|
|
27
|
+
costMicroUsd: z.number().default(0),
|
|
28
|
+
mainChatTokensIn: z.number().default(0),
|
|
29
|
+
mainChatTokensOut: z.number().default(0),
|
|
30
|
+
mainChatCostMicroUsd: z.number().default(0),
|
|
31
|
+
generationsTokensIn: z.number().default(0),
|
|
32
|
+
generationsTokensOut: z.number().default(0),
|
|
33
|
+
generationsCostMicroUsd: z.number().default(0),
|
|
34
|
+
subagentTokensIn: z.number().default(0),
|
|
35
|
+
subagentTokensOut: z.number().default(0),
|
|
36
|
+
subagentCostMicroUsd: z.number().default(0),
|
|
37
|
+
compactionTokensIn: z.number().default(0),
|
|
38
|
+
compactionTokensOut: z.number().default(0),
|
|
39
|
+
claudeTokensIn: z.number().default(0),
|
|
40
|
+
claudeTokensOut: z.number().default(0),
|
|
41
|
+
});
|
|
42
|
+
export const StatsActivityGetRequestMessageSchema = z.object({
|
|
43
|
+
type: z.literal("stats.activity.get.request"),
|
|
44
|
+
requestId: z.string(),
|
|
45
|
+
});
|
|
46
|
+
export const StatsActivityGetResponseMessageSchema = z.object({
|
|
47
|
+
type: z.literal("stats.activity.get.response"),
|
|
48
|
+
payload: z.object({
|
|
49
|
+
requestId: z.string(),
|
|
50
|
+
today: ActivityCountersSchema,
|
|
51
|
+
yesterday: ActivityCountersSchema,
|
|
52
|
+
last7Days: ActivityCountersSchema,
|
|
53
|
+
last30Days: ActivityCountersSchema,
|
|
54
|
+
allTime: ActivityCountersSchema,
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
// Daemon-wide "activity counters moved" ping - broadcast to every client,
|
|
58
|
+
// coalesced at the daemon (at most once every few seconds) so bursts of
|
|
59
|
+
// increments don't get chatty. Carries no payload: clients re-fetch the
|
|
60
|
+
// rollups via stats.activity.get. Purely additive - old clients drop the
|
|
61
|
+
// unknown type with a warning, and against old daemons (which never send it)
|
|
62
|
+
// the stats screen degrades to today's focus/manual refresh. Rides the
|
|
63
|
+
// existing activityStats capability; no new feature flag needed because no
|
|
64
|
+
// client behavior depends on detecting it.
|
|
65
|
+
export const ActivityStatsChangedSchema = z.object({
|
|
66
|
+
type: z.literal("activity_stats_changed"),
|
|
67
|
+
});
|
|
68
|
+
// One itemized row of the usage ledger - a single token/cost-bearing activity
|
|
69
|
+
// (a chat turn, a sub-agent turn, or a background generation). The aggregate
|
|
70
|
+
// ActivityCounters above are the rollup of this same event stream; the ledger is
|
|
71
|
+
// the scrollable detail behind the tiles (usage-ledger project). `kind` and
|
|
72
|
+
// `provider` are plain strings (not enums) so an OLD client still parses a NEW
|
|
73
|
+
// daemon that emits a kind it hasn't heard of - it renders it generically rather
|
|
74
|
+
// than failing the whole message. All token/cost leaves default to 0.
|
|
75
|
+
export const UsageEventSchema = z.object({
|
|
76
|
+
/** Stable unique id for the row (daemon-generated). */
|
|
77
|
+
id: z.string(),
|
|
78
|
+
/** Epoch milliseconds when the activity was recorded. */
|
|
79
|
+
at: z.number(),
|
|
80
|
+
/** "chat" | "subagent" | "generation" today; open for future kinds. */
|
|
81
|
+
kind: z.string(),
|
|
82
|
+
/** Finer label within the kind (e.g. a generation's purpose, a sub-agent name). */
|
|
83
|
+
subtype: z.string().optional(),
|
|
84
|
+
/** Agent provider id (e.g. "claude", an openai-compat endpoint id). */
|
|
85
|
+
provider: z.string(),
|
|
86
|
+
/** Model id/name if known at the increment site. */
|
|
87
|
+
model: z.string().optional(),
|
|
88
|
+
/** input + cached + cache-creation tokens (same "in" split the counters use). */
|
|
89
|
+
tokensIn: z.number().default(0),
|
|
90
|
+
/**
|
|
91
|
+
* The portion of `tokensIn` served from the provider prompt cache (cache-read),
|
|
92
|
+
* billed at a fraction of fresh input. The fresh (full-rate) portion is
|
|
93
|
+
* `tokensIn - cachedTokensIn`. Absent when the provider reports no cache reads
|
|
94
|
+
* (e.g. openai-compat endpoints with no caching), which reads as all-fresh.
|
|
95
|
+
*/
|
|
96
|
+
cachedTokensIn: z.number().optional(),
|
|
97
|
+
/** output tokens. */
|
|
98
|
+
tokensOut: z.number().default(0),
|
|
99
|
+
/** Real provider spend in integer micro-USD (usd*1e6); 0 for token-only providers. */
|
|
100
|
+
costMicroUsd: z.number().default(0),
|
|
101
|
+
/** Mid-turn compaction slice folded into this turn's usage, if any (token-only). */
|
|
102
|
+
compactionTokensIn: z.number().optional(),
|
|
103
|
+
compactionTokensOut: z.number().optional(),
|
|
104
|
+
/** The agent this activity belonged to, for tracing back to the chat. */
|
|
105
|
+
agentId: z.string().optional(),
|
|
106
|
+
/**
|
|
107
|
+
* How many model round-trips this row aggregates. A chat row is one query, but
|
|
108
|
+
* a sub-agent row covers a whole delegated task that internally ran many
|
|
109
|
+
* rounds - and each round re-reads the growing context, so `cachedTokensIn` is
|
|
110
|
+
* cumulative cache-READS, not a cache size. Surfacing the count is what makes a
|
|
111
|
+
* large cached figure legible instead of looking like a bug. Absent when the
|
|
112
|
+
* provider doesn't report it.
|
|
113
|
+
*/
|
|
114
|
+
rounds: z.number().optional(),
|
|
115
|
+
/**
|
|
116
|
+
* Sub-agent rows only - the spawn-tree identity that lets the Log group rows
|
|
117
|
+
* the way a human reads the run (chat turn → its sub-agents → their
|
|
118
|
+
* sub-agents) instead of by settle time, which async sub-agents crossing turn
|
|
119
|
+
* boundaries makes wrong. `startedAt` is when the sub-agent was first
|
|
120
|
+
* observed (epoch ms; a row belongs to the turn that spawned it, not the turn
|
|
121
|
+
* it happened to settle in), `subagentKey` is its stable observed key, and
|
|
122
|
+
* `parentSubagentKey` is the spawning sub-agent's key - absent for depth-1
|
|
123
|
+
* sub-agents spawned by the chat itself.
|
|
124
|
+
*/
|
|
125
|
+
startedAt: z.number().optional(),
|
|
126
|
+
subagentKey: z.string().optional(),
|
|
127
|
+
parentSubagentKey: z.string().optional(),
|
|
128
|
+
});
|
|
129
|
+
export const UsageLogGetRequestMessageSchema = z.object({
|
|
130
|
+
type: z.literal("usage.log.get.request"),
|
|
131
|
+
requestId: z.string(),
|
|
132
|
+
/** Max rows to return (daemon clamps). Newest-first. */
|
|
133
|
+
limit: z.number().optional(),
|
|
134
|
+
/** Cursor: return only rows strictly older than this epoch-ms (for "load more"). */
|
|
135
|
+
before: z.number().optional(),
|
|
136
|
+
});
|
|
137
|
+
export const UsageLogGetResponseMessageSchema = z.object({
|
|
138
|
+
type: z.literal("usage.log.get.response"),
|
|
139
|
+
payload: z.object({
|
|
140
|
+
requestId: z.string(),
|
|
141
|
+
/** Newest-first page of ledger rows. */
|
|
142
|
+
events: z.array(UsageEventSchema).default([]),
|
|
143
|
+
/** True when older rows exist beyond this page (paginate with `before`). */
|
|
144
|
+
hasMore: z.boolean().default(false),
|
|
145
|
+
}),
|
|
146
|
+
});
|
|
147
|
+
// Wipe every daemon-wide usage counter AND the itemized usage ledger back to
|
|
148
|
+
// zero - the "Reset" action on the Metrics screen. One RPC clears both sinks
|
|
149
|
+
// (the day-bucketed ActivityStatsStore and the UsageLogStore) so the tiles and
|
|
150
|
+
// the Log tab start fresh together. Gated behind features.statsReset so an old
|
|
151
|
+
// daemon (no handler) never receives a request the client thinks it can send.
|
|
152
|
+
export const StatsActivityResetRequestMessageSchema = z.object({
|
|
153
|
+
type: z.literal("stats.activity.reset.request"),
|
|
154
|
+
requestId: z.string(),
|
|
155
|
+
});
|
|
156
|
+
export const StatsActivityResetResponseMessageSchema = z.object({
|
|
157
|
+
type: z.literal("stats.activity.reset.response"),
|
|
158
|
+
payload: z.object({
|
|
159
|
+
requestId: z.string(),
|
|
160
|
+
}),
|
|
161
|
+
});
|
|
162
|
+
//# sourceMappingURL=usage-stats.js.map
|