@knpkv/jcf-web 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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +315 -0
  3. package/dist/client/assets/AgentSettingsPanel-NhTzwiq6.js +1 -0
  4. package/dist/client/assets/Schema-DUFTUil2.js +2 -0
  5. package/dist/client/assets/UrlParams-ZN2s8OM_.js +6 -0
  6. package/dist/client/assets/agentSettings-nw9lCgBQ.js +1 -0
  7. package/dist/client/assets/api-BQCWhiKV.js +4 -0
  8. package/dist/client/assets/decoding-CebF86HD.js +1 -0
  9. package/dist/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  10. package/dist/client/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
  11. package/dist/client/assets/index-Ch0W9DhA.css +1 -0
  12. package/dist/client/assets/index-N2vhoKYl.js +51 -0
  13. package/dist/client/assets/rolldown-runtime-hePW80VL.js +1 -0
  14. package/dist/client/assets/transport-AcByYfLh.js +1 -0
  15. package/dist/client/index.html +19 -0
  16. package/dist/index.d.ts +11 -0
  17. package/dist/index.js +12 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/main.d.ts +2 -0
  20. package/dist/main.js +32 -0
  21. package/dist/main.js.map +1 -0
  22. package/dist/server/Api.d.ts +789 -0
  23. package/dist/server/Api.js +98 -0
  24. package/dist/server/Api.js.map +1 -0
  25. package/dist/server/Confirm.d.ts +94 -0
  26. package/dist/server/Confirm.js +243 -0
  27. package/dist/server/Confirm.js.map +1 -0
  28. package/dist/server/Handlers.d.ts +14 -0
  29. package/dist/server/Handlers.js +157 -0
  30. package/dist/server/Handlers.js.map +1 -0
  31. package/dist/server/HttpApplication.d.ts +7 -0
  32. package/dist/server/HttpApplication.js +62 -0
  33. package/dist/server/HttpApplication.js.map +1 -0
  34. package/dist/server/OwnerSession.d.ts +62 -0
  35. package/dist/server/OwnerSession.js +219 -0
  36. package/dist/server/OwnerSession.js.map +1 -0
  37. package/dist/server/RowDescriptions.d.ts +19 -0
  38. package/dist/server/RowDescriptions.js +42 -0
  39. package/dist/server/RowDescriptions.js.map +1 -0
  40. package/dist/server/SavedEntryOperations.d.ts +27 -0
  41. package/dist/server/SavedEntryOperations.js +171 -0
  42. package/dist/server/SavedEntryOperations.js.map +1 -0
  43. package/dist/server/Server.d.ts +13 -0
  44. package/dist/server/Server.js +29 -0
  45. package/dist/server/Server.js.map +1 -0
  46. package/dist/server/WeekPlan.d.ts +110 -0
  47. package/dist/server/WeekPlan.js +258 -0
  48. package/dist/server/WeekPlan.js.map +1 -0
  49. package/dist/server/WeekPlans.d.ts +30 -0
  50. package/dist/server/WeekPlans.js +190 -0
  51. package/dist/server/WeekPlans.js.map +1 -0
  52. package/dist/server/WeekRead.d.ts +435 -0
  53. package/dist/server/WeekRead.js +189 -0
  54. package/dist/server/WeekRead.js.map +1 -0
  55. package/dist/shared/contracts.d.ts +901 -0
  56. package/dist/shared/contracts.js +365 -0
  57. package/dist/shared/contracts.js.map +1 -0
  58. package/dist/shared/writePlanning.d.ts +6 -0
  59. package/dist/shared/writePlanning.js +19 -0
  60. package/dist/shared/writePlanning.js.map +1 -0
  61. package/dist/tsconfig.tsbuildinfo +1 -0
  62. package/package.json +60 -0
@@ -0,0 +1,789 @@
1
+ import { Schema } from "effect";
2
+ import { HttpApi, HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, HttpApiSecurity } from "effect/http-api";
3
+ import { ApiError, ForbiddenApiError, PlanExpiredError, ProposalRejectedError, UnauthorizedApiError } from "../shared/contracts.js";
4
+ export * from "../shared/contracts.js";
5
+ declare const OwnerSessionAuth_base: HttpApiMiddleware.ServiceClass<OwnerSessionAuth, "@knpkv/jcf-web/OwnerSessionAuth", {
6
+ requires: never;
7
+ provides: never;
8
+ error: readonly [typeof UnauthorizedApiError, typeof ForbiddenApiError];
9
+ clientError: never;
10
+ requiredForClient: false;
11
+ security: {
12
+ readonly ownerCookie: HttpApiSecurity.ApiKey;
13
+ };
14
+ }, HttpApiMiddleware.HttpApiMiddlewareSecurity<{
15
+ readonly ownerCookie: HttpApiSecurity.ApiKey;
16
+ }, never, readonly [typeof UnauthorizedApiError, typeof ForbiddenApiError], never>>;
17
+ export declare class OwnerSessionAuth extends OwnerSessionAuth_base {
18
+ }
19
+ declare const WeekGroup_base: HttpApiGroup.HttpApiGroup<"week", HttpApiEndpoint.HttpApiEndpoint<"read", "GET", "/api/week/", never, Schema.toCodecStringTree<Schema.Struct<{
20
+ readonly monday: Schema.optional<Schema.String>;
21
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
22
+ }>>, never, never, Schema.toCodecJson<Schema.Struct<{
23
+ readonly attributorAvailable: Schema.Boolean;
24
+ readonly attributorCalls: Schema.Number;
25
+ readonly days: Schema.$Array<Schema.String>;
26
+ readonly excludedDays: Schema.$Array<Schema.Struct<{
27
+ readonly day: Schema.String;
28
+ readonly reason: Schema.String;
29
+ }>>;
30
+ readonly monday: Schema.String;
31
+ readonly planId: Schema.String;
32
+ readonly rows: Schema.$Array<Schema.Struct<{
33
+ readonly clockifyDescription: Schema.NullOr<Schema.String>;
34
+ readonly clockifySeconds: Schema.Number;
35
+ readonly day: Schema.String;
36
+ readonly intervals: Schema.$Array<Schema.Struct<{
37
+ readonly entry: Schema.optionalKey<Schema.Struct<{
38
+ readonly revision: Schema.String;
39
+ readonly id: Schema.String;
40
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
41
+ readonly ticketKey: Schema.NullOr<Schema.String>;
42
+ readonly startMs: Schema.Number;
43
+ readonly endMs: Schema.Number;
44
+ readonly description: Schema.NullOr<Schema.String>;
45
+ }>>;
46
+ readonly endMs: Schema.Number;
47
+ readonly source: Schema.Literals<readonly ["clockify", "jira"]>;
48
+ readonly startMs: Schema.Number;
49
+ }>>;
50
+ readonly jiraSeconds: Schema.Number;
51
+ readonly proposal: Schema.optional<Schema.Struct<{
52
+ readonly activeSeconds: Schema.Number;
53
+ readonly blocks: Schema.$Array<Schema.Struct<{
54
+ readonly consumed: Schema.Struct<{
55
+ readonly clockify: Schema.Number;
56
+ readonly jira: Schema.Number;
57
+ }>;
58
+ readonly clockifyRefusal: Schema.optionalKey<Schema.Literal<"unlinked-overlap">>;
59
+ readonly endMs: Schema.Number;
60
+ readonly seconds: Schema.Number;
61
+ readonly startMs: Schema.Number;
62
+ readonly sourceStartMs: Schema.optional<Schema.Number>;
63
+ }>>;
64
+ readonly clockifyDelta: Schema.Number;
65
+ readonly confidence: Schema.NullOr<Schema.Number>;
66
+ readonly jiraDelta: Schema.Number;
67
+ readonly maxSeconds: Schema.Number;
68
+ readonly sessionCount: Schema.Number;
69
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
70
+ }>>;
71
+ readonly rowId: Schema.String;
72
+ readonly ticketKey: Schema.String;
73
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
74
+ }>>;
75
+ readonly unlinkedClockify: Schema.$Array<Schema.Struct<{
76
+ readonly entry: Schema.optionalKey<Schema.Struct<{
77
+ readonly revision: Schema.String;
78
+ readonly id: Schema.String;
79
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
80
+ readonly ticketKey: Schema.NullOr<Schema.String>;
81
+ readonly startMs: Schema.Number;
82
+ readonly endMs: Schema.Number;
83
+ readonly description: Schema.NullOr<Schema.String>;
84
+ }>>;
85
+ readonly day: Schema.String;
86
+ readonly seconds: Schema.Number;
87
+ readonly description: Schema.NullOr<Schema.String>;
88
+ readonly startMs: Schema.Number;
89
+ readonly endMs: Schema.Number;
90
+ }>>;
91
+ readonly sessionCount: Schema.Number;
92
+ readonly sessionScanAvailable: Schema.optional<Schema.Boolean>;
93
+ readonly scope: Schema.Literals<readonly ["both", "clockify", "jira"]>;
94
+ readonly sessionRootCount: Schema.Number;
95
+ readonly notMine: Schema.$Array<Schema.Struct<{
96
+ readonly assignee: Schema.NullOr<Schema.String>;
97
+ readonly day: Schema.String;
98
+ readonly seconds: Schema.Number;
99
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
100
+ readonly ticketKey: Schema.String;
101
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
102
+ }>>;
103
+ readonly ownershipChecked: Schema.Boolean;
104
+ readonly ownership: Schema.Literals<readonly ["assigned", "any"]>;
105
+ readonly unattributed: Schema.$Array<Schema.Struct<{
106
+ readonly cwds: Schema.$Array<Schema.String>;
107
+ readonly day: Schema.String;
108
+ readonly seconds: Schema.Number;
109
+ readonly sessionCount: Schema.Number;
110
+ }>>;
111
+ readonly withheld: Schema.$Array<Schema.Struct<{
112
+ readonly confidence: Schema.NullOr<Schema.Number>;
113
+ readonly day: Schema.String;
114
+ readonly seconds: Schema.Number;
115
+ readonly ticketKey: Schema.String;
116
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
117
+ }>>;
118
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"recorded", "GET", "/api/week/recorded", never, Schema.toCodecStringTree<Schema.Struct<{
119
+ readonly planId: Schema.String;
120
+ }>>, never, never, HttpApiSchema.StreamUint8Array, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"recordedOnly", "GET", "/api/week/recorded-only", never, Schema.toCodecStringTree<Schema.Struct<{
121
+ readonly monday: Schema.optional<Schema.String>;
122
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
123
+ }>>, never, never, HttpApiSchema.StreamUint8Array, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"saved", "GET", "/api/week/saved", never, Schema.toCodecStringTree<Schema.Struct<{
124
+ readonly monday: Schema.optional<Schema.String>;
125
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
126
+ }>>, never, never, Schema.toCodecJson<Schema.Struct<{
127
+ readonly monday: Schema.String;
128
+ readonly scope: Schema.Literals<readonly ["both", "clockify", "jira"]>;
129
+ readonly plan: Schema.NullOr<Schema.Struct<{
130
+ readonly attributorAvailable: Schema.Boolean;
131
+ readonly attributorCalls: Schema.Number;
132
+ readonly days: Schema.$Array<Schema.String>;
133
+ readonly excludedDays: Schema.$Array<Schema.Struct<{
134
+ readonly day: Schema.String;
135
+ readonly reason: Schema.String;
136
+ }>>;
137
+ readonly monday: Schema.String;
138
+ readonly planId: Schema.String;
139
+ readonly rows: Schema.$Array<Schema.Struct<{
140
+ readonly clockifyDescription: Schema.NullOr<Schema.String>;
141
+ readonly clockifySeconds: Schema.Number;
142
+ readonly day: Schema.String;
143
+ readonly intervals: Schema.$Array<Schema.Struct<{
144
+ readonly entry: Schema.optionalKey<Schema.Struct<{
145
+ readonly revision: Schema.String;
146
+ readonly id: Schema.String;
147
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
148
+ readonly ticketKey: Schema.NullOr<Schema.String>;
149
+ readonly startMs: Schema.Number;
150
+ readonly endMs: Schema.Number;
151
+ readonly description: Schema.NullOr<Schema.String>;
152
+ }>>;
153
+ readonly endMs: Schema.Number;
154
+ readonly source: Schema.Literals<readonly ["clockify", "jira"]>;
155
+ readonly startMs: Schema.Number;
156
+ }>>;
157
+ readonly jiraSeconds: Schema.Number;
158
+ readonly proposal: Schema.optional<Schema.Struct<{
159
+ readonly activeSeconds: Schema.Number;
160
+ readonly blocks: Schema.$Array<Schema.Struct<{
161
+ readonly consumed: Schema.Struct<{
162
+ readonly clockify: Schema.Number;
163
+ readonly jira: Schema.Number;
164
+ }>;
165
+ readonly clockifyRefusal: Schema.optionalKey<Schema.Literal<"unlinked-overlap">>;
166
+ readonly endMs: Schema.Number;
167
+ readonly seconds: Schema.Number;
168
+ readonly startMs: Schema.Number;
169
+ readonly sourceStartMs: Schema.optional<Schema.Number>;
170
+ }>>;
171
+ readonly clockifyDelta: Schema.Number;
172
+ readonly confidence: Schema.NullOr<Schema.Number>;
173
+ readonly jiraDelta: Schema.Number;
174
+ readonly maxSeconds: Schema.Number;
175
+ readonly sessionCount: Schema.Number;
176
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
177
+ }>>;
178
+ readonly rowId: Schema.String;
179
+ readonly ticketKey: Schema.String;
180
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
181
+ }>>;
182
+ readonly unlinkedClockify: Schema.$Array<Schema.Struct<{
183
+ readonly entry: Schema.optionalKey<Schema.Struct<{
184
+ readonly revision: Schema.String;
185
+ readonly id: Schema.String;
186
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
187
+ readonly ticketKey: Schema.NullOr<Schema.String>;
188
+ readonly startMs: Schema.Number;
189
+ readonly endMs: Schema.Number;
190
+ readonly description: Schema.NullOr<Schema.String>;
191
+ }>>;
192
+ readonly day: Schema.String;
193
+ readonly seconds: Schema.Number;
194
+ readonly description: Schema.NullOr<Schema.String>;
195
+ readonly startMs: Schema.Number;
196
+ readonly endMs: Schema.Number;
197
+ }>>;
198
+ readonly sessionCount: Schema.Number;
199
+ readonly sessionScanAvailable: Schema.optional<Schema.Boolean>;
200
+ readonly scope: Schema.Literals<readonly ["both", "clockify", "jira"]>;
201
+ readonly sessionRootCount: Schema.Number;
202
+ readonly notMine: Schema.$Array<Schema.Struct<{
203
+ readonly assignee: Schema.NullOr<Schema.String>;
204
+ readonly day: Schema.String;
205
+ readonly seconds: Schema.Number;
206
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
207
+ readonly ticketKey: Schema.String;
208
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
209
+ }>>;
210
+ readonly ownershipChecked: Schema.Boolean;
211
+ readonly ownership: Schema.Literals<readonly ["assigned", "any"]>;
212
+ readonly unattributed: Schema.$Array<Schema.Struct<{
213
+ readonly cwds: Schema.$Array<Schema.String>;
214
+ readonly day: Schema.String;
215
+ readonly seconds: Schema.Number;
216
+ readonly sessionCount: Schema.Number;
217
+ }>>;
218
+ readonly withheld: Schema.$Array<Schema.Struct<{
219
+ readonly confidence: Schema.NullOr<Schema.Number>;
220
+ readonly day: Schema.String;
221
+ readonly seconds: Schema.Number;
222
+ readonly ticketKey: Schema.String;
223
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
224
+ }>>;
225
+ }>>;
226
+ }>>, never, never, never> | HttpApiEndpoint.HttpApiEndpoint<"stream", "GET", "/api/week/stream", never, Schema.toCodecStringTree<Schema.Struct<{
227
+ readonly monday: Schema.optional<Schema.String>;
228
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
229
+ }>>, never, never, HttpApiSchema.StreamUint8Array, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, never, never>, false>;
230
+ export declare class WeekGroup extends WeekGroup_base {
231
+ }
232
+ declare const RowsGroup_base: HttpApiGroup.HttpApiGroup<"rows", HttpApiEndpoint.HttpApiEndpoint<"confirm", "POST", "/api/rows/confirm", never, never, Schema.toCodecJson<Schema.Struct<{
233
+ readonly blocks: Schema.optional<Schema.$Array<Schema.Number>>;
234
+ readonly note: Schema.optional<Schema.String>;
235
+ readonly planId: Schema.String;
236
+ readonly rowId: Schema.String;
237
+ readonly targets: Schema.optional<Schema.Struct<{
238
+ readonly clockify: Schema.Boolean;
239
+ readonly jira: Schema.Boolean;
240
+ }>>;
241
+ readonly seconds: Schema.optional<Schema.Number>;
242
+ readonly ticketKey: Schema.optional<Schema.String>;
243
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
244
+ readonly clockify: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
245
+ readonly seconds: Schema.Number;
246
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
247
+ readonly startMs: Schema.Number;
248
+ readonly endMs: Schema.Number;
249
+ }>>>;
250
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
251
+ readonly seconds: Schema.Number;
252
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
253
+ readonly startMs: Schema.Number;
254
+ readonly endMs: Schema.Number;
255
+ }>>>;
256
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
257
+ readonly message: Schema.String;
258
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
259
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
260
+ readonly message: Schema.String;
261
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
262
+ readonly description: Schema.String;
263
+ readonly jira: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
264
+ readonly seconds: Schema.Number;
265
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
266
+ readonly startMs: Schema.Number;
267
+ readonly endMs: Schema.Number;
268
+ }>>>;
269
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
270
+ readonly seconds: Schema.Number;
271
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
272
+ readonly startMs: Schema.Number;
273
+ readonly endMs: Schema.Number;
274
+ }>>>;
275
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
276
+ readonly message: Schema.String;
277
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
278
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
279
+ readonly message: Schema.String;
280
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
281
+ readonly lines: Schema.$Array<Schema.String>;
282
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError | typeof ProposalRejectedError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"describe", "POST", "/api/rows/describe", never, never, Schema.toCodecJson<Schema.Struct<{
283
+ readonly planId: Schema.String;
284
+ readonly rowId: Schema.String;
285
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
286
+ readonly planId: Schema.String;
287
+ readonly rowId: Schema.String;
288
+ readonly note: Schema.NullOr<Schema.String>;
289
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"manual", "POST", "/api/rows/manual", never, never, Schema.toCodecJson<Schema.Struct<{
290
+ readonly day: Schema.String;
291
+ readonly note: Schema.optional<Schema.String>;
292
+ readonly seconds: Schema.Number;
293
+ readonly targets: Schema.optional<Schema.Struct<{
294
+ readonly clockify: Schema.Boolean;
295
+ readonly jira: Schema.Boolean;
296
+ }>>;
297
+ readonly startClock: Schema.optional<Schema.String>;
298
+ readonly ticketKey: Schema.String;
299
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
300
+ readonly clockify: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
301
+ readonly seconds: Schema.Number;
302
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
303
+ readonly startMs: Schema.Number;
304
+ readonly endMs: Schema.Number;
305
+ }>>>;
306
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
307
+ readonly seconds: Schema.Number;
308
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
309
+ readonly startMs: Schema.Number;
310
+ readonly endMs: Schema.Number;
311
+ }>>>;
312
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
313
+ readonly message: Schema.String;
314
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
315
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
316
+ readonly message: Schema.String;
317
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
318
+ readonly description: Schema.String;
319
+ readonly jira: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
320
+ readonly seconds: Schema.Number;
321
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
322
+ readonly startMs: Schema.Number;
323
+ readonly endMs: Schema.Number;
324
+ }>>>;
325
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
326
+ readonly seconds: Schema.Number;
327
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
328
+ readonly startMs: Schema.Number;
329
+ readonly endMs: Schema.Number;
330
+ }>>>;
331
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
332
+ readonly message: Schema.String;
333
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
334
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
335
+ readonly message: Schema.String;
336
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
337
+ readonly lines: Schema.$Array<Schema.String>;
338
+ }>>, Schema.toCodecJson<typeof ApiError | typeof ProposalRejectedError>, never, never>, false>;
339
+ export declare class RowsGroup extends RowsGroup_base {
340
+ }
341
+ declare const ConfigGroup_base: HttpApiGroup.HttpApiGroup<"config", HttpApiEndpoint.HttpApiEndpoint<"agent", "GET", "/api/config/agent", never, never, never, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{
342
+ readonly provider: Schema.Literal<"claude">;
343
+ readonly model: Schema.NullOr<Schema.String>;
344
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max"]>>;
345
+ }>, Schema.Struct<{
346
+ readonly provider: Schema.Literal<"codex">;
347
+ readonly model: Schema.NullOr<Schema.String>;
348
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["minimal", "low", "medium", "high", "xhigh"]>>;
349
+ }>]>>, never, never, never> | HttpApiEndpoint.HttpApiEndpoint<"mine", "POST", "/api/config/mine", never, never, Schema.toCodecJson<Schema.Struct<{
350
+ readonly ticketKey: Schema.String;
351
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
352
+ readonly ownershipOverrides: Schema.$Array<Schema.String>;
353
+ }>>, Schema.toCodecJson<typeof ApiError | typeof ProposalRejectedError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"saveAgent", "POST", "/api/config/agent", never, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{
354
+ readonly provider: Schema.Literal<"claude">;
355
+ readonly model: Schema.NullOr<Schema.String>;
356
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max"]>>;
357
+ }>, Schema.Struct<{
358
+ readonly provider: Schema.Literal<"codex">;
359
+ readonly model: Schema.NullOr<Schema.String>;
360
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["minimal", "low", "medium", "high", "xhigh"]>>;
361
+ }>]>>, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{
362
+ readonly provider: Schema.Literal<"claude">;
363
+ readonly model: Schema.NullOr<Schema.String>;
364
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max"]>>;
365
+ }>, Schema.Struct<{
366
+ readonly provider: Schema.Literal<"codex">;
367
+ readonly model: Schema.NullOr<Schema.String>;
368
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["minimal", "low", "medium", "high", "xhigh"]>>;
369
+ }>]>>, Schema.toCodecJson<typeof ApiError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"standing", "POST", "/api/config/standing", never, never, Schema.toCodecJson<Schema.Struct<{
370
+ readonly cwd: Schema.String;
371
+ readonly ticketKey: Schema.String;
372
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
373
+ readonly sessionTicketMap: Schema.$Record<Schema.String, Schema.String>;
374
+ }>>, Schema.toCodecJson<typeof ApiError | typeof ProposalRejectedError>, never, never>, false>;
375
+ export declare class ConfigGroup extends ConfigGroup_base {
376
+ }
377
+ declare const EntriesGroup_base: HttpApiGroup.HttpApiGroup<"entries", HttpApiEndpoint.HttpApiEndpoint<"describe", "POST", "/api/entries/describe", never, never, Schema.toCodecJson<Schema.Struct<{
378
+ readonly planId: Schema.String;
379
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
380
+ readonly entryId: Schema.String;
381
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
382
+ readonly planId: Schema.String;
383
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
384
+ readonly entryId: Schema.String;
385
+ readonly note: Schema.NullOr<Schema.String>;
386
+ readonly sessionCount: Schema.Number;
387
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"update", "POST", "/api/entries/update", never, never, Schema.toCodecJson<Schema.Struct<{
388
+ readonly planId: Schema.String;
389
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
390
+ readonly entryId: Schema.String;
391
+ readonly revision: Schema.String;
392
+ readonly startMs: Schema.Number;
393
+ readonly endMs: Schema.Number;
394
+ readonly description: Schema.String;
395
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
396
+ readonly planId: Schema.String;
397
+ readonly entry: Schema.Struct<{
398
+ readonly revision: Schema.String;
399
+ readonly id: Schema.String;
400
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
401
+ readonly ticketKey: Schema.NullOr<Schema.String>;
402
+ readonly startMs: Schema.Number;
403
+ readonly endMs: Schema.Number;
404
+ readonly description: Schema.NullOr<Schema.String>;
405
+ }>;
406
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError | typeof ProposalRejectedError>, never, never>, false>;
407
+ export declare class EntriesGroup extends EntriesGroup_base {
408
+ }
409
+ declare const JcfWebApi_base: HttpApi.HttpApi<"JcfWebApi", HttpApiGroup.HttpApiGroup<"config", HttpApiEndpoint.HttpApiEndpoint<"agent", "GET", "/api/config/agent", never, never, never, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{
410
+ readonly provider: Schema.Literal<"claude">;
411
+ readonly model: Schema.NullOr<Schema.String>;
412
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max"]>>;
413
+ }>, Schema.Struct<{
414
+ readonly provider: Schema.Literal<"codex">;
415
+ readonly model: Schema.NullOr<Schema.String>;
416
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["minimal", "low", "medium", "high", "xhigh"]>>;
417
+ }>]>>, never, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"saveAgent", "POST", "/api/config/agent", never, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{
418
+ readonly provider: Schema.Literal<"claude">;
419
+ readonly model: Schema.NullOr<Schema.String>;
420
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max"]>>;
421
+ }>, Schema.Struct<{
422
+ readonly provider: Schema.Literal<"codex">;
423
+ readonly model: Schema.NullOr<Schema.String>;
424
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["minimal", "low", "medium", "high", "xhigh"]>>;
425
+ }>]>>, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{
426
+ readonly provider: Schema.Literal<"claude">;
427
+ readonly model: Schema.NullOr<Schema.String>;
428
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max"]>>;
429
+ }>, Schema.Struct<{
430
+ readonly provider: Schema.Literal<"codex">;
431
+ readonly model: Schema.NullOr<Schema.String>;
432
+ readonly effort: Schema.NullOr<Schema.Literals<readonly ["minimal", "low", "medium", "high", "xhigh"]>>;
433
+ }>]>>, Schema.toCodecJson<typeof ApiError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"mine", "POST", "/api/config/mine", never, never, Schema.toCodecJson<Schema.Struct<{
434
+ readonly ticketKey: Schema.String;
435
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
436
+ readonly ownershipOverrides: Schema.$Array<Schema.String>;
437
+ }>>, Schema.toCodecJson<typeof ApiError | typeof ProposalRejectedError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"standing", "POST", "/api/config/standing", never, never, Schema.toCodecJson<Schema.Struct<{
438
+ readonly cwd: Schema.String;
439
+ readonly ticketKey: Schema.String;
440
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
441
+ readonly sessionTicketMap: Schema.$Record<Schema.String, Schema.String>;
442
+ }>>, Schema.toCodecJson<typeof ApiError | typeof ProposalRejectedError>, OwnerSessionAuth, never>, false> | HttpApiGroup.HttpApiGroup<"entries", HttpApiEndpoint.HttpApiEndpoint<"describe", "POST", "/api/entries/describe", never, never, Schema.toCodecJson<Schema.Struct<{
443
+ readonly planId: Schema.String;
444
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
445
+ readonly entryId: Schema.String;
446
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
447
+ readonly planId: Schema.String;
448
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
449
+ readonly entryId: Schema.String;
450
+ readonly note: Schema.NullOr<Schema.String>;
451
+ readonly sessionCount: Schema.Number;
452
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"update", "POST", "/api/entries/update", never, never, Schema.toCodecJson<Schema.Struct<{
453
+ readonly planId: Schema.String;
454
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
455
+ readonly entryId: Schema.String;
456
+ readonly revision: Schema.String;
457
+ readonly startMs: Schema.Number;
458
+ readonly endMs: Schema.Number;
459
+ readonly description: Schema.String;
460
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
461
+ readonly planId: Schema.String;
462
+ readonly entry: Schema.Struct<{
463
+ readonly revision: Schema.String;
464
+ readonly id: Schema.String;
465
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
466
+ readonly ticketKey: Schema.NullOr<Schema.String>;
467
+ readonly startMs: Schema.Number;
468
+ readonly endMs: Schema.Number;
469
+ readonly description: Schema.NullOr<Schema.String>;
470
+ }>;
471
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError | typeof ProposalRejectedError>, OwnerSessionAuth, never>, false> | HttpApiGroup.HttpApiGroup<"rows", HttpApiEndpoint.HttpApiEndpoint<"confirm", "POST", "/api/rows/confirm", never, never, Schema.toCodecJson<Schema.Struct<{
472
+ readonly blocks: Schema.optional<Schema.$Array<Schema.Number>>;
473
+ readonly note: Schema.optional<Schema.String>;
474
+ readonly planId: Schema.String;
475
+ readonly rowId: Schema.String;
476
+ readonly targets: Schema.optional<Schema.Struct<{
477
+ readonly clockify: Schema.Boolean;
478
+ readonly jira: Schema.Boolean;
479
+ }>>;
480
+ readonly seconds: Schema.optional<Schema.Number>;
481
+ readonly ticketKey: Schema.optional<Schema.String>;
482
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
483
+ readonly clockify: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
484
+ readonly seconds: Schema.Number;
485
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
486
+ readonly startMs: Schema.Number;
487
+ readonly endMs: Schema.Number;
488
+ }>>>;
489
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
490
+ readonly seconds: Schema.Number;
491
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
492
+ readonly startMs: Schema.Number;
493
+ readonly endMs: Schema.Number;
494
+ }>>>;
495
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
496
+ readonly message: Schema.String;
497
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
498
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
499
+ readonly message: Schema.String;
500
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
501
+ readonly description: Schema.String;
502
+ readonly jira: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
503
+ readonly seconds: Schema.Number;
504
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
505
+ readonly startMs: Schema.Number;
506
+ readonly endMs: Schema.Number;
507
+ }>>>;
508
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
509
+ readonly seconds: Schema.Number;
510
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
511
+ readonly startMs: Schema.Number;
512
+ readonly endMs: Schema.Number;
513
+ }>>>;
514
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
515
+ readonly message: Schema.String;
516
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
517
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
518
+ readonly message: Schema.String;
519
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
520
+ readonly lines: Schema.$Array<Schema.String>;
521
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError | typeof ProposalRejectedError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"describe", "POST", "/api/rows/describe", never, never, Schema.toCodecJson<Schema.Struct<{
522
+ readonly planId: Schema.String;
523
+ readonly rowId: Schema.String;
524
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
525
+ readonly planId: Schema.String;
526
+ readonly rowId: Schema.String;
527
+ readonly note: Schema.NullOr<Schema.String>;
528
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"manual", "POST", "/api/rows/manual", never, never, Schema.toCodecJson<Schema.Struct<{
529
+ readonly day: Schema.String;
530
+ readonly note: Schema.optional<Schema.String>;
531
+ readonly seconds: Schema.Number;
532
+ readonly targets: Schema.optional<Schema.Struct<{
533
+ readonly clockify: Schema.Boolean;
534
+ readonly jira: Schema.Boolean;
535
+ }>>;
536
+ readonly startClock: Schema.optional<Schema.String>;
537
+ readonly ticketKey: Schema.String;
538
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
539
+ readonly clockify: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
540
+ readonly seconds: Schema.Number;
541
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
542
+ readonly startMs: Schema.Number;
543
+ readonly endMs: Schema.Number;
544
+ }>>>;
545
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
546
+ readonly seconds: Schema.Number;
547
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
548
+ readonly startMs: Schema.Number;
549
+ readonly endMs: Schema.Number;
550
+ }>>>;
551
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
552
+ readonly message: Schema.String;
553
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
554
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
555
+ readonly message: Schema.String;
556
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
557
+ readonly description: Schema.String;
558
+ readonly jira: Schema.Union<readonly [Schema.TaggedStruct<"Written", {
559
+ readonly seconds: Schema.Number;
560
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
561
+ readonly startMs: Schema.Number;
562
+ readonly endMs: Schema.Number;
563
+ }>>>;
564
+ }>, Schema.TaggedStruct<"PartiallyWritten", {
565
+ readonly seconds: Schema.Number;
566
+ readonly segments: Schema.optional<Schema.$Array<Schema.Struct<{
567
+ readonly startMs: Schema.Number;
568
+ readonly endMs: Schema.Number;
569
+ }>>>;
570
+ readonly failure: Schema.Union<readonly [Schema.TaggedStruct<"Refused", {
571
+ readonly message: Schema.String;
572
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
573
+ }>, Schema.TaggedStruct<"NothingOwed", {}>, Schema.TaggedStruct<"Skipped", {}>, Schema.TaggedStruct<"Refused", {
574
+ readonly message: Schema.String;
575
+ }>, Schema.TaggedStruct<"NotLoggedIn", {}>]>;
576
+ readonly lines: Schema.$Array<Schema.String>;
577
+ }>>, Schema.toCodecJson<typeof ApiError | typeof ProposalRejectedError>, OwnerSessionAuth, never>, false> | HttpApiGroup.HttpApiGroup<"week", HttpApiEndpoint.HttpApiEndpoint<"read", "GET", "/api/week/", never, Schema.toCodecStringTree<Schema.Struct<{
578
+ readonly monday: Schema.optional<Schema.String>;
579
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
580
+ }>>, never, never, Schema.toCodecJson<Schema.Struct<{
581
+ readonly attributorAvailable: Schema.Boolean;
582
+ readonly attributorCalls: Schema.Number;
583
+ readonly days: Schema.$Array<Schema.String>;
584
+ readonly excludedDays: Schema.$Array<Schema.Struct<{
585
+ readonly day: Schema.String;
586
+ readonly reason: Schema.String;
587
+ }>>;
588
+ readonly monday: Schema.String;
589
+ readonly planId: Schema.String;
590
+ readonly rows: Schema.$Array<Schema.Struct<{
591
+ readonly clockifyDescription: Schema.NullOr<Schema.String>;
592
+ readonly clockifySeconds: Schema.Number;
593
+ readonly day: Schema.String;
594
+ readonly intervals: Schema.$Array<Schema.Struct<{
595
+ readonly entry: Schema.optionalKey<Schema.Struct<{
596
+ readonly revision: Schema.String;
597
+ readonly id: Schema.String;
598
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
599
+ readonly ticketKey: Schema.NullOr<Schema.String>;
600
+ readonly startMs: Schema.Number;
601
+ readonly endMs: Schema.Number;
602
+ readonly description: Schema.NullOr<Schema.String>;
603
+ }>>;
604
+ readonly endMs: Schema.Number;
605
+ readonly source: Schema.Literals<readonly ["clockify", "jira"]>;
606
+ readonly startMs: Schema.Number;
607
+ }>>;
608
+ readonly jiraSeconds: Schema.Number;
609
+ readonly proposal: Schema.optional<Schema.Struct<{
610
+ readonly activeSeconds: Schema.Number;
611
+ readonly blocks: Schema.$Array<Schema.Struct<{
612
+ readonly consumed: Schema.Struct<{
613
+ readonly clockify: Schema.Number;
614
+ readonly jira: Schema.Number;
615
+ }>;
616
+ readonly clockifyRefusal: Schema.optionalKey<Schema.Literal<"unlinked-overlap">>;
617
+ readonly endMs: Schema.Number;
618
+ readonly seconds: Schema.Number;
619
+ readonly startMs: Schema.Number;
620
+ readonly sourceStartMs: Schema.optional<Schema.Number>;
621
+ }>>;
622
+ readonly clockifyDelta: Schema.Number;
623
+ readonly confidence: Schema.NullOr<Schema.Number>;
624
+ readonly jiraDelta: Schema.Number;
625
+ readonly maxSeconds: Schema.Number;
626
+ readonly sessionCount: Schema.Number;
627
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
628
+ }>>;
629
+ readonly rowId: Schema.String;
630
+ readonly ticketKey: Schema.String;
631
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
632
+ }>>;
633
+ readonly unlinkedClockify: Schema.$Array<Schema.Struct<{
634
+ readonly entry: Schema.optionalKey<Schema.Struct<{
635
+ readonly revision: Schema.String;
636
+ readonly id: Schema.String;
637
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
638
+ readonly ticketKey: Schema.NullOr<Schema.String>;
639
+ readonly startMs: Schema.Number;
640
+ readonly endMs: Schema.Number;
641
+ readonly description: Schema.NullOr<Schema.String>;
642
+ }>>;
643
+ readonly day: Schema.String;
644
+ readonly seconds: Schema.Number;
645
+ readonly description: Schema.NullOr<Schema.String>;
646
+ readonly startMs: Schema.Number;
647
+ readonly endMs: Schema.Number;
648
+ }>>;
649
+ readonly sessionCount: Schema.Number;
650
+ readonly sessionScanAvailable: Schema.optional<Schema.Boolean>;
651
+ readonly scope: Schema.Literals<readonly ["both", "clockify", "jira"]>;
652
+ readonly sessionRootCount: Schema.Number;
653
+ readonly notMine: Schema.$Array<Schema.Struct<{
654
+ readonly assignee: Schema.NullOr<Schema.String>;
655
+ readonly day: Schema.String;
656
+ readonly seconds: Schema.Number;
657
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
658
+ readonly ticketKey: Schema.String;
659
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
660
+ }>>;
661
+ readonly ownershipChecked: Schema.Boolean;
662
+ readonly ownership: Schema.Literals<readonly ["assigned", "any"]>;
663
+ readonly unattributed: Schema.$Array<Schema.Struct<{
664
+ readonly cwds: Schema.$Array<Schema.String>;
665
+ readonly day: Schema.String;
666
+ readonly seconds: Schema.Number;
667
+ readonly sessionCount: Schema.Number;
668
+ }>>;
669
+ readonly withheld: Schema.$Array<Schema.Struct<{
670
+ readonly confidence: Schema.NullOr<Schema.Number>;
671
+ readonly day: Schema.String;
672
+ readonly seconds: Schema.Number;
673
+ readonly ticketKey: Schema.String;
674
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
675
+ }>>;
676
+ }>>, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"recorded", "GET", "/api/week/recorded", never, Schema.toCodecStringTree<Schema.Struct<{
677
+ readonly planId: Schema.String;
678
+ }>>, never, never, HttpApiSchema.StreamUint8Array, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"recordedOnly", "GET", "/api/week/recorded-only", never, Schema.toCodecStringTree<Schema.Struct<{
679
+ readonly monday: Schema.optional<Schema.String>;
680
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
681
+ }>>, never, never, HttpApiSchema.StreamUint8Array, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"saved", "GET", "/api/week/saved", never, Schema.toCodecStringTree<Schema.Struct<{
682
+ readonly monday: Schema.optional<Schema.String>;
683
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
684
+ }>>, never, never, Schema.toCodecJson<Schema.Struct<{
685
+ readonly monday: Schema.String;
686
+ readonly scope: Schema.Literals<readonly ["both", "clockify", "jira"]>;
687
+ readonly plan: Schema.NullOr<Schema.Struct<{
688
+ readonly attributorAvailable: Schema.Boolean;
689
+ readonly attributorCalls: Schema.Number;
690
+ readonly days: Schema.$Array<Schema.String>;
691
+ readonly excludedDays: Schema.$Array<Schema.Struct<{
692
+ readonly day: Schema.String;
693
+ readonly reason: Schema.String;
694
+ }>>;
695
+ readonly monday: Schema.String;
696
+ readonly planId: Schema.String;
697
+ readonly rows: Schema.$Array<Schema.Struct<{
698
+ readonly clockifyDescription: Schema.NullOr<Schema.String>;
699
+ readonly clockifySeconds: Schema.Number;
700
+ readonly day: Schema.String;
701
+ readonly intervals: Schema.$Array<Schema.Struct<{
702
+ readonly entry: Schema.optionalKey<Schema.Struct<{
703
+ readonly revision: Schema.String;
704
+ readonly id: Schema.String;
705
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
706
+ readonly ticketKey: Schema.NullOr<Schema.String>;
707
+ readonly startMs: Schema.Number;
708
+ readonly endMs: Schema.Number;
709
+ readonly description: Schema.NullOr<Schema.String>;
710
+ }>>;
711
+ readonly endMs: Schema.Number;
712
+ readonly source: Schema.Literals<readonly ["clockify", "jira"]>;
713
+ readonly startMs: Schema.Number;
714
+ }>>;
715
+ readonly jiraSeconds: Schema.Number;
716
+ readonly proposal: Schema.optional<Schema.Struct<{
717
+ readonly activeSeconds: Schema.Number;
718
+ readonly blocks: Schema.$Array<Schema.Struct<{
719
+ readonly consumed: Schema.Struct<{
720
+ readonly clockify: Schema.Number;
721
+ readonly jira: Schema.Number;
722
+ }>;
723
+ readonly clockifyRefusal: Schema.optionalKey<Schema.Literal<"unlinked-overlap">>;
724
+ readonly endMs: Schema.Number;
725
+ readonly seconds: Schema.Number;
726
+ readonly startMs: Schema.Number;
727
+ readonly sourceStartMs: Schema.optional<Schema.Number>;
728
+ }>>;
729
+ readonly clockifyDelta: Schema.Number;
730
+ readonly confidence: Schema.NullOr<Schema.Number>;
731
+ readonly jiraDelta: Schema.Number;
732
+ readonly maxSeconds: Schema.Number;
733
+ readonly sessionCount: Schema.Number;
734
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
735
+ }>>;
736
+ readonly rowId: Schema.String;
737
+ readonly ticketKey: Schema.String;
738
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
739
+ }>>;
740
+ readonly unlinkedClockify: Schema.$Array<Schema.Struct<{
741
+ readonly entry: Schema.optionalKey<Schema.Struct<{
742
+ readonly revision: Schema.String;
743
+ readonly id: Schema.String;
744
+ readonly source: Schema.Literals<readonly ["jira", "clockify"]>;
745
+ readonly ticketKey: Schema.NullOr<Schema.String>;
746
+ readonly startMs: Schema.Number;
747
+ readonly endMs: Schema.Number;
748
+ readonly description: Schema.NullOr<Schema.String>;
749
+ }>>;
750
+ readonly day: Schema.String;
751
+ readonly seconds: Schema.Number;
752
+ readonly description: Schema.NullOr<Schema.String>;
753
+ readonly startMs: Schema.Number;
754
+ readonly endMs: Schema.Number;
755
+ }>>;
756
+ readonly sessionCount: Schema.Number;
757
+ readonly sessionScanAvailable: Schema.optional<Schema.Boolean>;
758
+ readonly scope: Schema.Literals<readonly ["both", "clockify", "jira"]>;
759
+ readonly sessionRootCount: Schema.Number;
760
+ readonly notMine: Schema.$Array<Schema.Struct<{
761
+ readonly assignee: Schema.NullOr<Schema.String>;
762
+ readonly day: Schema.String;
763
+ readonly seconds: Schema.Number;
764
+ readonly signal: Schema.Literals<readonly ["branch", "path", "standing", "agent", "none"]>;
765
+ readonly ticketKey: Schema.String;
766
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
767
+ }>>;
768
+ readonly ownershipChecked: Schema.Boolean;
769
+ readonly ownership: Schema.Literals<readonly ["assigned", "any"]>;
770
+ readonly unattributed: Schema.$Array<Schema.Struct<{
771
+ readonly cwds: Schema.$Array<Schema.String>;
772
+ readonly day: Schema.String;
773
+ readonly seconds: Schema.Number;
774
+ readonly sessionCount: Schema.Number;
775
+ }>>;
776
+ readonly withheld: Schema.$Array<Schema.Struct<{
777
+ readonly confidence: Schema.NullOr<Schema.Number>;
778
+ readonly day: Schema.String;
779
+ readonly seconds: Schema.Number;
780
+ readonly ticketKey: Schema.String;
781
+ readonly ticketTitle: Schema.NullOr<Schema.String>;
782
+ }>>;
783
+ }>>;
784
+ }>>, never, OwnerSessionAuth, never> | HttpApiEndpoint.HttpApiEndpoint<"stream", "GET", "/api/week/stream", never, Schema.toCodecStringTree<Schema.Struct<{
785
+ readonly monday: Schema.optional<Schema.String>;
786
+ readonly only: Schema.optional<Schema.Literals<readonly ["both", "clockify", "jira"]>>;
787
+ }>>, never, never, HttpApiSchema.StreamUint8Array, Schema.toCodecJson<typeof ApiError | typeof PlanExpiredError>, OwnerSessionAuth, never>, false>>;
788
+ export declare class JcfWebApi extends JcfWebApi_base {
789
+ }