@jamesaphoenix/tx-core 0.5.10 → 0.6.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 (103) hide show
  1. package/README.md +47 -4
  2. package/dist/errors.d.ts +25 -1
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +16 -0
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts +6 -5
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -4
  9. package/dist/index.js.map +1 -1
  10. package/dist/layer.d.ts +8 -4
  11. package/dist/layer.d.ts.map +1 -1
  12. package/dist/layer.js +25 -4
  13. package/dist/layer.js.map +1 -1
  14. package/dist/mappers/index.d.ts +1 -0
  15. package/dist/mappers/index.d.ts.map +1 -1
  16. package/dist/mappers/index.js +2 -0
  17. package/dist/mappers/index.js.map +1 -1
  18. package/dist/mappers/memory.d.ts +34 -0
  19. package/dist/mappers/memory.d.ts.map +1 -0
  20. package/dist/mappers/memory.js +135 -0
  21. package/dist/mappers/memory.js.map +1 -0
  22. package/dist/mappers/pin.d.ts +6 -0
  23. package/dist/mappers/pin.d.ts.map +1 -0
  24. package/dist/mappers/pin.js +10 -0
  25. package/dist/mappers/pin.js.map +1 -0
  26. package/dist/migrations-embedded.d.ts.map +1 -1
  27. package/dist/migrations-embedded.js +10 -0
  28. package/dist/migrations-embedded.js.map +1 -1
  29. package/dist/repo/index.d.ts +2 -0
  30. package/dist/repo/index.d.ts.map +1 -1
  31. package/dist/repo/index.js +2 -0
  32. package/dist/repo/index.js.map +1 -1
  33. package/dist/repo/memory-repo.d.ts +88 -0
  34. package/dist/repo/memory-repo.d.ts.map +1 -0
  35. package/dist/repo/memory-repo.js +556 -0
  36. package/dist/repo/memory-repo.js.map +1 -0
  37. package/dist/repo/pin-repo.d.ts +29 -0
  38. package/dist/repo/pin-repo.d.ts.map +1 -0
  39. package/dist/repo/pin-repo.js +79 -0
  40. package/dist/repo/pin-repo.js.map +1 -0
  41. package/dist/schemas/index.d.ts +2 -2
  42. package/dist/schemas/index.d.ts.map +1 -1
  43. package/dist/schemas/index.js +1 -1
  44. package/dist/schemas/index.js.map +1 -1
  45. package/dist/schemas/sync.d.ts +598 -3
  46. package/dist/schemas/sync.d.ts.map +1 -1
  47. package/dist/schemas/sync.js +280 -6
  48. package/dist/schemas/sync.js.map +1 -1
  49. package/dist/services/agent-service.d.ts +2 -0
  50. package/dist/services/agent-service.d.ts.map +1 -1
  51. package/dist/services/agent-service.js +15 -1
  52. package/dist/services/agent-service.js.map +1 -1
  53. package/dist/services/cycle-scan-service.d.ts.map +1 -1
  54. package/dist/services/cycle-scan-service.js +11 -7
  55. package/dist/services/cycle-scan-service.js.map +1 -1
  56. package/dist/services/diversifier-service.d.ts +2 -2
  57. package/dist/services/diversifier-service.d.ts.map +1 -1
  58. package/dist/services/diversifier-service.js.map +1 -1
  59. package/dist/services/index.d.ts +3 -1
  60. package/dist/services/index.d.ts.map +1 -1
  61. package/dist/services/index.js +2 -0
  62. package/dist/services/index.js.map +1 -1
  63. package/dist/services/learning-service.d.ts +3 -2
  64. package/dist/services/learning-service.d.ts.map +1 -1
  65. package/dist/services/learning-service.js.map +1 -1
  66. package/dist/services/memory-retriever-service.d.ts +48 -0
  67. package/dist/services/memory-retriever-service.d.ts.map +1 -0
  68. package/dist/services/memory-retriever-service.js +332 -0
  69. package/dist/services/memory-retriever-service.js.map +1 -0
  70. package/dist/services/memory-service.d.ts +49 -0
  71. package/dist/services/memory-service.d.ts.map +1 -0
  72. package/dist/services/memory-service.js +1061 -0
  73. package/dist/services/memory-service.js.map +1 -0
  74. package/dist/services/pin-service.d.ts +33 -0
  75. package/dist/services/pin-service.d.ts.map +1 -0
  76. package/dist/services/pin-service.js +140 -0
  77. package/dist/services/pin-service.js.map +1 -0
  78. package/dist/services/ready-service.js +1 -1
  79. package/dist/services/ready-service.js.map +1 -1
  80. package/dist/services/retriever-service.d.ts +2 -2
  81. package/dist/services/retriever-service.d.ts.map +1 -1
  82. package/dist/services/retriever-service.js.map +1 -1
  83. package/dist/services/sync-service.d.ts +123 -4
  84. package/dist/services/sync-service.d.ts.map +1 -1
  85. package/dist/services/sync-service.js +1099 -11
  86. package/dist/services/sync-service.js.map +1 -1
  87. package/dist/services/task-service.js +2 -2
  88. package/dist/services/task-service.js.map +1 -1
  89. package/dist/utils/math.d.ts +4 -3
  90. package/dist/utils/math.d.ts.map +1 -1
  91. package/dist/utils/math.js +9 -4
  92. package/dist/utils/math.js.map +1 -1
  93. package/dist/utils/pin-file.d.ts +33 -0
  94. package/dist/utils/pin-file.d.ts.map +1 -0
  95. package/dist/utils/pin-file.js +87 -0
  96. package/dist/utils/pin-file.js.map +1 -0
  97. package/dist/utils/toml-config.d.ts +12 -0
  98. package/dist/utils/toml-config.d.ts.map +1 -1
  99. package/dist/utils/toml-config.js +111 -1
  100. package/dist/utils/toml-config.js.map +1 -1
  101. package/migrations/029_memory.sql +83 -0
  102. package/migrations/030_context_pins.sql +24 -0
  103. package/package.json +1 -1
@@ -8,6 +8,8 @@ export declare const TaskDataSchema: Schema.Struct<{
8
8
  status: Schema.Literal<["backlog", "ready", "planning", "active", "blocked", "review", "human_needs_to_review", "done"]>;
9
9
  score: Schema.filter<typeof Schema.Number>;
10
10
  parentId: Schema.NullOr<Schema.filter<typeof Schema.String>>;
11
+ createdAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
12
+ completedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
11
13
  assigneeType: Schema.optional<Schema.NullOr<Schema.Literal<["human", "agent"]>>>;
12
14
  assigneeId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
13
15
  assignedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
@@ -25,6 +27,8 @@ declare const TaskUpsertOpSchema: Schema.Struct<{
25
27
  status: Schema.Literal<["backlog", "ready", "planning", "active", "blocked", "review", "human_needs_to_review", "done"]>;
26
28
  score: Schema.filter<typeof Schema.Number>;
27
29
  parentId: Schema.NullOr<Schema.filter<typeof Schema.String>>;
30
+ createdAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
31
+ completedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
28
32
  assigneeType: Schema.optional<Schema.NullOr<Schema.Literal<["human", "agent"]>>>;
29
33
  assigneeId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
30
34
  assignedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
@@ -71,6 +75,8 @@ declare const TaskSyncOperationSchema: Schema.Union<[Schema.Struct<{
71
75
  status: Schema.Literal<["backlog", "ready", "planning", "active", "blocked", "review", "human_needs_to_review", "done"]>;
72
76
  score: Schema.filter<typeof Schema.Number>;
73
77
  parentId: Schema.NullOr<Schema.filter<typeof Schema.String>>;
78
+ createdAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
79
+ completedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
74
80
  assigneeType: Schema.optional<Schema.NullOr<Schema.Literal<["human", "agent"]>>>;
75
81
  assigneeId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
76
82
  assignedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
@@ -110,6 +116,7 @@ declare const LearningUpsertOpSchema: Schema.Struct<{
110
116
  op: Schema.Literal<["learning_upsert"]>;
111
117
  ts: Schema.filter<typeof Schema.String>;
112
118
  id: Schema.filter<typeof Schema.Number>;
119
+ contentHash: typeof Schema.String;
113
120
  data: Schema.Struct<{
114
121
  content: typeof Schema.String;
115
122
  sourceType: Schema.Literal<["compaction", "run", "manual", "claude_md"]>;
@@ -125,6 +132,7 @@ declare const LearningDeleteOpSchema: Schema.Struct<{
125
132
  op: Schema.Literal<["learning_delete"]>;
126
133
  ts: Schema.filter<typeof Schema.String>;
127
134
  id: Schema.filter<typeof Schema.Number>;
135
+ contentHash: typeof Schema.String;
128
136
  }>;
129
137
  export { LearningDeleteOpSchema as LearningDeleteOp };
130
138
  export type LearningDeleteOp = typeof LearningDeleteOpSchema.Type;
@@ -133,6 +141,7 @@ declare const LearningSyncOperationSchema: Schema.Union<[Schema.Struct<{
133
141
  op: Schema.Literal<["learning_upsert"]>;
134
142
  ts: Schema.filter<typeof Schema.String>;
135
143
  id: Schema.filter<typeof Schema.Number>;
144
+ contentHash: typeof Schema.String;
136
145
  data: Schema.Struct<{
137
146
  content: typeof Schema.String;
138
147
  sourceType: Schema.Literal<["compaction", "run", "manual", "claude_md"]>;
@@ -145,6 +154,7 @@ declare const LearningSyncOperationSchema: Schema.Union<[Schema.Struct<{
145
154
  op: Schema.Literal<["learning_delete"]>;
146
155
  ts: Schema.filter<typeof Schema.String>;
147
156
  id: Schema.filter<typeof Schema.Number>;
157
+ contentHash: typeof Schema.String;
148
158
  }>]>;
149
159
  export { LearningSyncOperationSchema as LearningSyncOperation };
150
160
  export type LearningSyncOperation = typeof LearningSyncOperationSchema.Type;
@@ -158,6 +168,7 @@ declare const FileLearningUpsertOpSchema: Schema.Struct<{
158
168
  op: Schema.Literal<["file_learning_upsert"]>;
159
169
  ts: Schema.filter<typeof Schema.String>;
160
170
  id: Schema.filter<typeof Schema.Number>;
171
+ contentHash: typeof Schema.String;
161
172
  data: Schema.Struct<{
162
173
  filePattern: typeof Schema.String;
163
174
  note: typeof Schema.String;
@@ -171,14 +182,16 @@ declare const FileLearningDeleteOpSchema: Schema.Struct<{
171
182
  op: Schema.Literal<["file_learning_delete"]>;
172
183
  ts: Schema.filter<typeof Schema.String>;
173
184
  id: Schema.filter<typeof Schema.Number>;
185
+ contentHash: typeof Schema.String;
174
186
  }>;
175
187
  export { FileLearningDeleteOpSchema as FileLearningDeleteOp };
176
188
  export type FileLearningDeleteOp = typeof FileLearningDeleteOpSchema.Type;
177
- declare const FileLearnningSyncOperationSchema: Schema.Union<[Schema.Struct<{
189
+ declare const FileLearningSyncOperationSchema: Schema.Union<[Schema.Struct<{
178
190
  v: Schema.Literal<[1]>;
179
191
  op: Schema.Literal<["file_learning_upsert"]>;
180
192
  ts: Schema.filter<typeof Schema.String>;
181
193
  id: Schema.filter<typeof Schema.Number>;
194
+ contentHash: typeof Schema.String;
182
195
  data: Schema.Struct<{
183
196
  filePattern: typeof Schema.String;
184
197
  note: typeof Schema.String;
@@ -189,9 +202,10 @@ declare const FileLearnningSyncOperationSchema: Schema.Union<[Schema.Struct<{
189
202
  op: Schema.Literal<["file_learning_delete"]>;
190
203
  ts: Schema.filter<typeof Schema.String>;
191
204
  id: Schema.filter<typeof Schema.Number>;
205
+ contentHash: typeof Schema.String;
192
206
  }>]>;
193
- export { FileLearnningSyncOperationSchema as FileLearnningSyncOperation };
194
- export type FileLearnningSyncOperation = typeof FileLearnningSyncOperationSchema.Type;
207
+ export { FileLearningSyncOperationSchema as FileLearningSyncOperation };
208
+ export type FileLearningSyncOperation = typeof FileLearningSyncOperationSchema.Type;
195
209
  export declare const AttemptOutcomeSchema: Schema.Literal<["failed", "succeeded"]>;
196
210
  export declare const AttemptDataSchema: Schema.Struct<{
197
211
  taskId: typeof Schema.String;
@@ -204,6 +218,7 @@ declare const AttemptUpsertOpSchema: Schema.Struct<{
204
218
  op: Schema.Literal<["attempt_upsert"]>;
205
219
  ts: Schema.filter<typeof Schema.String>;
206
220
  id: Schema.filter<typeof Schema.Number>;
221
+ contentHash: typeof Schema.String;
207
222
  data: Schema.Struct<{
208
223
  taskId: typeof Schema.String;
209
224
  approach: typeof Schema.String;
@@ -218,6 +233,7 @@ declare const AttemptSyncOperationSchema: Schema.Struct<{
218
233
  op: Schema.Literal<["attempt_upsert"]>;
219
234
  ts: Schema.filter<typeof Schema.String>;
220
235
  id: Schema.filter<typeof Schema.Number>;
236
+ contentHash: typeof Schema.String;
221
237
  data: Schema.Struct<{
222
238
  taskId: typeof Schema.String;
223
239
  approach: typeof Schema.String;
@@ -227,6 +243,434 @@ declare const AttemptSyncOperationSchema: Schema.Struct<{
227
243
  }>;
228
244
  export { AttemptSyncOperationSchema as AttemptSyncOperation };
229
245
  export type AttemptSyncOperation = typeof AttemptSyncOperationSchema.Type;
246
+ export declare const PinDataSchema: Schema.Struct<{
247
+ content: typeof Schema.String;
248
+ }>;
249
+ declare const PinUpsertOpSchema: Schema.Struct<{
250
+ v: Schema.Literal<[1]>;
251
+ op: Schema.Literal<["pin_upsert"]>;
252
+ ts: Schema.filter<typeof Schema.String>;
253
+ id: typeof Schema.String;
254
+ contentHash: typeof Schema.String;
255
+ data: Schema.Struct<{
256
+ content: typeof Schema.String;
257
+ }>;
258
+ }>;
259
+ export { PinUpsertOpSchema as PinUpsertOp };
260
+ export type PinUpsertOp = typeof PinUpsertOpSchema.Type;
261
+ declare const PinDeleteOpSchema: Schema.Struct<{
262
+ v: Schema.Literal<[1]>;
263
+ op: Schema.Literal<["pin_delete"]>;
264
+ ts: Schema.filter<typeof Schema.String>;
265
+ id: typeof Schema.String;
266
+ contentHash: typeof Schema.String;
267
+ }>;
268
+ export { PinDeleteOpSchema as PinDeleteOp };
269
+ export type PinDeleteOp = typeof PinDeleteOpSchema.Type;
270
+ declare const PinSyncOperationSchema: Schema.Union<[Schema.Struct<{
271
+ v: Schema.Literal<[1]>;
272
+ op: Schema.Literal<["pin_upsert"]>;
273
+ ts: Schema.filter<typeof Schema.String>;
274
+ id: typeof Schema.String;
275
+ contentHash: typeof Schema.String;
276
+ data: Schema.Struct<{
277
+ content: typeof Schema.String;
278
+ }>;
279
+ }>, Schema.Struct<{
280
+ v: Schema.Literal<[1]>;
281
+ op: Schema.Literal<["pin_delete"]>;
282
+ ts: Schema.filter<typeof Schema.String>;
283
+ id: typeof Schema.String;
284
+ contentHash: typeof Schema.String;
285
+ }>]>;
286
+ export { PinSyncOperationSchema as PinSyncOperation };
287
+ export type PinSyncOperation = typeof PinSyncOperationSchema.Type;
288
+ export declare const AnchorTypeSchema: Schema.Literal<["glob", "hash", "symbol", "line_range"]>;
289
+ export declare const AnchorStatusSchema: Schema.Literal<["valid", "drifted", "invalid"]>;
290
+ export declare const AnchorDataSchema: Schema.Struct<{
291
+ learningContentHash: typeof Schema.String;
292
+ anchorType: Schema.Literal<["glob", "hash", "symbol", "line_range"]>;
293
+ anchorValue: typeof Schema.String;
294
+ filePath: typeof Schema.String;
295
+ symbolFqname: Schema.NullOr<typeof Schema.String>;
296
+ lineStart: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
297
+ lineEnd: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
298
+ contentHash: Schema.NullOr<typeof Schema.String>;
299
+ contentPreview: Schema.NullOr<typeof Schema.String>;
300
+ status: Schema.Literal<["valid", "drifted", "invalid"]>;
301
+ pinned: typeof Schema.Boolean;
302
+ }>;
303
+ declare const AnchorUpsertOpSchema: Schema.Struct<{
304
+ v: Schema.Literal<[1]>;
305
+ op: Schema.Literal<["anchor_upsert"]>;
306
+ ts: Schema.filter<typeof Schema.String>;
307
+ id: Schema.filter<typeof Schema.Number>;
308
+ contentHash: typeof Schema.String;
309
+ data: Schema.Struct<{
310
+ learningContentHash: typeof Schema.String;
311
+ anchorType: Schema.Literal<["glob", "hash", "symbol", "line_range"]>;
312
+ anchorValue: typeof Schema.String;
313
+ filePath: typeof Schema.String;
314
+ symbolFqname: Schema.NullOr<typeof Schema.String>;
315
+ lineStart: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
316
+ lineEnd: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
317
+ contentHash: Schema.NullOr<typeof Schema.String>;
318
+ contentPreview: Schema.NullOr<typeof Schema.String>;
319
+ status: Schema.Literal<["valid", "drifted", "invalid"]>;
320
+ pinned: typeof Schema.Boolean;
321
+ }>;
322
+ }>;
323
+ export { AnchorUpsertOpSchema as AnchorUpsertOp };
324
+ export type AnchorUpsertOp = typeof AnchorUpsertOpSchema.Type;
325
+ declare const AnchorDeleteOpSchema: Schema.Struct<{
326
+ v: Schema.Literal<[1]>;
327
+ op: Schema.Literal<["anchor_delete"]>;
328
+ ts: Schema.filter<typeof Schema.String>;
329
+ id: Schema.filter<typeof Schema.Number>;
330
+ contentHash: typeof Schema.String;
331
+ }>;
332
+ export { AnchorDeleteOpSchema as AnchorDeleteOp };
333
+ export type AnchorDeleteOp = typeof AnchorDeleteOpSchema.Type;
334
+ declare const AnchorSyncOperationSchema: Schema.Union<[Schema.Struct<{
335
+ v: Schema.Literal<[1]>;
336
+ op: Schema.Literal<["anchor_upsert"]>;
337
+ ts: Schema.filter<typeof Schema.String>;
338
+ id: Schema.filter<typeof Schema.Number>;
339
+ contentHash: typeof Schema.String;
340
+ data: Schema.Struct<{
341
+ learningContentHash: typeof Schema.String;
342
+ anchorType: Schema.Literal<["glob", "hash", "symbol", "line_range"]>;
343
+ anchorValue: typeof Schema.String;
344
+ filePath: typeof Schema.String;
345
+ symbolFqname: Schema.NullOr<typeof Schema.String>;
346
+ lineStart: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
347
+ lineEnd: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
348
+ contentHash: Schema.NullOr<typeof Schema.String>;
349
+ contentPreview: Schema.NullOr<typeof Schema.String>;
350
+ status: Schema.Literal<["valid", "drifted", "invalid"]>;
351
+ pinned: typeof Schema.Boolean;
352
+ }>;
353
+ }>, Schema.Struct<{
354
+ v: Schema.Literal<[1]>;
355
+ op: Schema.Literal<["anchor_delete"]>;
356
+ ts: Schema.filter<typeof Schema.String>;
357
+ id: Schema.filter<typeof Schema.Number>;
358
+ contentHash: typeof Schema.String;
359
+ }>]>;
360
+ export { AnchorSyncOperationSchema as AnchorSyncOperation };
361
+ export type AnchorSyncOperation = typeof AnchorSyncOperationSchema.Type;
362
+ export declare const SyncEdgeTypeSchema: Schema.Literal<["ANCHORED_TO", "DERIVED_FROM", "IMPORTS", "CO_CHANGES_WITH", "SIMILAR_TO", "LINKS_TO", "USED_IN_RUN", "INVALIDATED_BY"]>;
363
+ export declare const SyncNodeTypeSchema: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
364
+ export declare const EdgeDataSchema: Schema.Struct<{
365
+ edgeType: Schema.Literal<["ANCHORED_TO", "DERIVED_FROM", "IMPORTS", "CO_CHANGES_WITH", "SIMILAR_TO", "LINKS_TO", "USED_IN_RUN", "INVALIDATED_BY"]>;
366
+ sourceType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
367
+ sourceId: typeof Schema.String;
368
+ targetType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
369
+ targetId: typeof Schema.String;
370
+ weight: typeof Schema.Number;
371
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
372
+ }>;
373
+ declare const EdgeUpsertOpSchema: Schema.Struct<{
374
+ v: Schema.Literal<[1]>;
375
+ op: Schema.Literal<["edge_upsert"]>;
376
+ ts: Schema.filter<typeof Schema.String>;
377
+ id: Schema.filter<typeof Schema.Number>;
378
+ contentHash: typeof Schema.String;
379
+ data: Schema.Struct<{
380
+ edgeType: Schema.Literal<["ANCHORED_TO", "DERIVED_FROM", "IMPORTS", "CO_CHANGES_WITH", "SIMILAR_TO", "LINKS_TO", "USED_IN_RUN", "INVALIDATED_BY"]>;
381
+ sourceType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
382
+ sourceId: typeof Schema.String;
383
+ targetType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
384
+ targetId: typeof Schema.String;
385
+ weight: typeof Schema.Number;
386
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
387
+ }>;
388
+ }>;
389
+ export { EdgeUpsertOpSchema as EdgeUpsertOp };
390
+ export type EdgeUpsertOp = typeof EdgeUpsertOpSchema.Type;
391
+ declare const EdgeDeleteOpSchema: Schema.Struct<{
392
+ v: Schema.Literal<[1]>;
393
+ op: Schema.Literal<["edge_delete"]>;
394
+ ts: Schema.filter<typeof Schema.String>;
395
+ id: Schema.filter<typeof Schema.Number>;
396
+ contentHash: typeof Schema.String;
397
+ }>;
398
+ export { EdgeDeleteOpSchema as EdgeDeleteOp };
399
+ export type EdgeDeleteOp = typeof EdgeDeleteOpSchema.Type;
400
+ declare const EdgeSyncOperationSchema: Schema.Union<[Schema.Struct<{
401
+ v: Schema.Literal<[1]>;
402
+ op: Schema.Literal<["edge_upsert"]>;
403
+ ts: Schema.filter<typeof Schema.String>;
404
+ id: Schema.filter<typeof Schema.Number>;
405
+ contentHash: typeof Schema.String;
406
+ data: Schema.Struct<{
407
+ edgeType: Schema.Literal<["ANCHORED_TO", "DERIVED_FROM", "IMPORTS", "CO_CHANGES_WITH", "SIMILAR_TO", "LINKS_TO", "USED_IN_RUN", "INVALIDATED_BY"]>;
408
+ sourceType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
409
+ sourceId: typeof Schema.String;
410
+ targetType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
411
+ targetId: typeof Schema.String;
412
+ weight: typeof Schema.Number;
413
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
414
+ }>;
415
+ }>, Schema.Struct<{
416
+ v: Schema.Literal<[1]>;
417
+ op: Schema.Literal<["edge_delete"]>;
418
+ ts: Schema.filter<typeof Schema.String>;
419
+ id: Schema.filter<typeof Schema.Number>;
420
+ contentHash: typeof Schema.String;
421
+ }>]>;
422
+ export { EdgeSyncOperationSchema as EdgeSyncOperation };
423
+ export type EdgeSyncOperation = typeof EdgeSyncOperationSchema.Type;
424
+ export declare const SyncDocKindSchema: Schema.Literal<["overview", "prd", "design"]>;
425
+ export declare const SyncDocStatusSchema: Schema.Literal<["changing", "locked"]>;
426
+ export declare const DocDataSchema: Schema.Struct<{
427
+ kind: Schema.Literal<["overview", "prd", "design"]>;
428
+ name: typeof Schema.String;
429
+ title: typeof Schema.String;
430
+ version: Schema.filter<typeof Schema.Number>;
431
+ status: Schema.Literal<["changing", "locked"]>;
432
+ filePath: typeof Schema.String;
433
+ hash: typeof Schema.String;
434
+ parentDocKey: Schema.NullOr<typeof Schema.String>;
435
+ lockedAt: Schema.NullOr<typeof Schema.String>;
436
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
437
+ }>;
438
+ declare const DocUpsertOpSchema: Schema.Struct<{
439
+ v: Schema.Literal<[1]>;
440
+ op: Schema.Literal<["doc_upsert"]>;
441
+ ts: Schema.filter<typeof Schema.String>;
442
+ id: Schema.filter<typeof Schema.Number>;
443
+ contentHash: typeof Schema.String;
444
+ data: Schema.Struct<{
445
+ kind: Schema.Literal<["overview", "prd", "design"]>;
446
+ name: typeof Schema.String;
447
+ title: typeof Schema.String;
448
+ version: Schema.filter<typeof Schema.Number>;
449
+ status: Schema.Literal<["changing", "locked"]>;
450
+ filePath: typeof Schema.String;
451
+ hash: typeof Schema.String;
452
+ parentDocKey: Schema.NullOr<typeof Schema.String>;
453
+ lockedAt: Schema.NullOr<typeof Schema.String>;
454
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
455
+ }>;
456
+ }>;
457
+ export { DocUpsertOpSchema as DocUpsertOp };
458
+ export type DocUpsertOp = typeof DocUpsertOpSchema.Type;
459
+ declare const DocDeleteOpSchema: Schema.Struct<{
460
+ v: Schema.Literal<[1]>;
461
+ op: Schema.Literal<["doc_delete"]>;
462
+ ts: Schema.filter<typeof Schema.String>;
463
+ id: Schema.filter<typeof Schema.Number>;
464
+ contentHash: typeof Schema.String;
465
+ }>;
466
+ export { DocDeleteOpSchema as DocDeleteOp };
467
+ export type DocDeleteOp = typeof DocDeleteOpSchema.Type;
468
+ declare const DocSyncOperationSchema: Schema.Union<[Schema.Struct<{
469
+ v: Schema.Literal<[1]>;
470
+ op: Schema.Literal<["doc_upsert"]>;
471
+ ts: Schema.filter<typeof Schema.String>;
472
+ id: Schema.filter<typeof Schema.Number>;
473
+ contentHash: typeof Schema.String;
474
+ data: Schema.Struct<{
475
+ kind: Schema.Literal<["overview", "prd", "design"]>;
476
+ name: typeof Schema.String;
477
+ title: typeof Schema.String;
478
+ version: Schema.filter<typeof Schema.Number>;
479
+ status: Schema.Literal<["changing", "locked"]>;
480
+ filePath: typeof Schema.String;
481
+ hash: typeof Schema.String;
482
+ parentDocKey: Schema.NullOr<typeof Schema.String>;
483
+ lockedAt: Schema.NullOr<typeof Schema.String>;
484
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
485
+ }>;
486
+ }>, Schema.Struct<{
487
+ v: Schema.Literal<[1]>;
488
+ op: Schema.Literal<["doc_delete"]>;
489
+ ts: Schema.filter<typeof Schema.String>;
490
+ id: Schema.filter<typeof Schema.Number>;
491
+ contentHash: typeof Schema.String;
492
+ }>]>;
493
+ export { DocSyncOperationSchema as DocSyncOperation };
494
+ export type DocSyncOperation = typeof DocSyncOperationSchema.Type;
495
+ export declare const SyncDocLinkTypeSchema: Schema.Literal<["overview_to_prd", "overview_to_design", "prd_to_design", "design_patch"]>;
496
+ export declare const DocLinkDataSchema: Schema.Struct<{
497
+ fromDocKey: typeof Schema.String;
498
+ toDocKey: typeof Schema.String;
499
+ linkType: Schema.Literal<["overview_to_prd", "overview_to_design", "prd_to_design", "design_patch"]>;
500
+ }>;
501
+ declare const DocLinkUpsertOpSchema: Schema.Struct<{
502
+ v: Schema.Literal<[1]>;
503
+ op: Schema.Literal<["doc_link_upsert"]>;
504
+ ts: Schema.filter<typeof Schema.String>;
505
+ id: Schema.filter<typeof Schema.Number>;
506
+ contentHash: typeof Schema.String;
507
+ data: Schema.Struct<{
508
+ fromDocKey: typeof Schema.String;
509
+ toDocKey: typeof Schema.String;
510
+ linkType: Schema.Literal<["overview_to_prd", "overview_to_design", "prd_to_design", "design_patch"]>;
511
+ }>;
512
+ }>;
513
+ export { DocLinkUpsertOpSchema as DocLinkUpsertOp };
514
+ export type DocLinkUpsertOp = typeof DocLinkUpsertOpSchema.Type;
515
+ declare const DocLinkSyncOperationSchema: Schema.Struct<{
516
+ v: Schema.Literal<[1]>;
517
+ op: Schema.Literal<["doc_link_upsert"]>;
518
+ ts: Schema.filter<typeof Schema.String>;
519
+ id: Schema.filter<typeof Schema.Number>;
520
+ contentHash: typeof Schema.String;
521
+ data: Schema.Struct<{
522
+ fromDocKey: typeof Schema.String;
523
+ toDocKey: typeof Schema.String;
524
+ linkType: Schema.Literal<["overview_to_prd", "overview_to_design", "prd_to_design", "design_patch"]>;
525
+ }>;
526
+ }>;
527
+ export { DocLinkSyncOperationSchema as DocLinkSyncOperation };
528
+ export type DocLinkSyncOperation = typeof DocLinkSyncOperationSchema.Type;
529
+ export declare const SyncTaskDocLinkTypeSchema: Schema.Literal<["implements", "references"]>;
530
+ export declare const TaskDocLinkDataSchema: Schema.Struct<{
531
+ taskId: typeof Schema.String;
532
+ docKey: typeof Schema.String;
533
+ linkType: Schema.Literal<["implements", "references"]>;
534
+ }>;
535
+ declare const TaskDocLinkUpsertOpSchema: Schema.Struct<{
536
+ v: Schema.Literal<[1]>;
537
+ op: Schema.Literal<["task_doc_link_upsert"]>;
538
+ ts: Schema.filter<typeof Schema.String>;
539
+ id: Schema.filter<typeof Schema.Number>;
540
+ contentHash: typeof Schema.String;
541
+ data: Schema.Struct<{
542
+ taskId: typeof Schema.String;
543
+ docKey: typeof Schema.String;
544
+ linkType: Schema.Literal<["implements", "references"]>;
545
+ }>;
546
+ }>;
547
+ export { TaskDocLinkUpsertOpSchema as TaskDocLinkUpsertOp };
548
+ export type TaskDocLinkUpsertOp = typeof TaskDocLinkUpsertOpSchema.Type;
549
+ declare const TaskDocLinkSyncOperationSchema: Schema.Struct<{
550
+ v: Schema.Literal<[1]>;
551
+ op: Schema.Literal<["task_doc_link_upsert"]>;
552
+ ts: Schema.filter<typeof Schema.String>;
553
+ id: Schema.filter<typeof Schema.Number>;
554
+ contentHash: typeof Schema.String;
555
+ data: Schema.Struct<{
556
+ taskId: typeof Schema.String;
557
+ docKey: typeof Schema.String;
558
+ linkType: Schema.Literal<["implements", "references"]>;
559
+ }>;
560
+ }>;
561
+ export { TaskDocLinkSyncOperationSchema as TaskDocLinkSyncOperation };
562
+ export type TaskDocLinkSyncOperation = typeof TaskDocLinkSyncOperationSchema.Type;
563
+ export declare const SyncInvariantEnforcementSchema: Schema.Literal<["integration_test", "linter", "llm_as_judge"]>;
564
+ export declare const SyncInvariantStatusSchema: Schema.Literal<["active", "deprecated"]>;
565
+ export declare const InvariantDataSchema: Schema.Struct<{
566
+ id: typeof Schema.String;
567
+ rule: typeof Schema.String;
568
+ enforcement: Schema.Literal<["integration_test", "linter", "llm_as_judge"]>;
569
+ docKey: typeof Schema.String;
570
+ subsystem: Schema.NullOr<typeof Schema.String>;
571
+ testRef: Schema.NullOr<typeof Schema.String>;
572
+ lintRule: Schema.NullOr<typeof Schema.String>;
573
+ promptRef: Schema.NullOr<typeof Schema.String>;
574
+ status: Schema.Literal<["active", "deprecated"]>;
575
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
576
+ }>;
577
+ declare const InvariantUpsertOpSchema: Schema.Struct<{
578
+ v: Schema.Literal<[1]>;
579
+ op: Schema.Literal<["invariant_upsert"]>;
580
+ ts: Schema.filter<typeof Schema.String>;
581
+ id: typeof Schema.String;
582
+ contentHash: typeof Schema.String;
583
+ data: Schema.Struct<{
584
+ id: typeof Schema.String;
585
+ rule: typeof Schema.String;
586
+ enforcement: Schema.Literal<["integration_test", "linter", "llm_as_judge"]>;
587
+ docKey: typeof Schema.String;
588
+ subsystem: Schema.NullOr<typeof Schema.String>;
589
+ testRef: Schema.NullOr<typeof Schema.String>;
590
+ lintRule: Schema.NullOr<typeof Schema.String>;
591
+ promptRef: Schema.NullOr<typeof Schema.String>;
592
+ status: Schema.Literal<["active", "deprecated"]>;
593
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
594
+ }>;
595
+ }>;
596
+ export { InvariantUpsertOpSchema as InvariantUpsertOp };
597
+ export type InvariantUpsertOp = typeof InvariantUpsertOpSchema.Type;
598
+ declare const InvariantSyncOperationSchema: Schema.Struct<{
599
+ v: Schema.Literal<[1]>;
600
+ op: Schema.Literal<["invariant_upsert"]>;
601
+ ts: Schema.filter<typeof Schema.String>;
602
+ id: typeof Schema.String;
603
+ contentHash: typeof Schema.String;
604
+ data: Schema.Struct<{
605
+ id: typeof Schema.String;
606
+ rule: typeof Schema.String;
607
+ enforcement: Schema.Literal<["integration_test", "linter", "llm_as_judge"]>;
608
+ docKey: typeof Schema.String;
609
+ subsystem: Schema.NullOr<typeof Schema.String>;
610
+ testRef: Schema.NullOr<typeof Schema.String>;
611
+ lintRule: Schema.NullOr<typeof Schema.String>;
612
+ promptRef: Schema.NullOr<typeof Schema.String>;
613
+ status: Schema.Literal<["active", "deprecated"]>;
614
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
615
+ }>;
616
+ }>;
617
+ export { InvariantSyncOperationSchema as InvariantSyncOperation };
618
+ export type InvariantSyncOperation = typeof InvariantSyncOperationSchema.Type;
619
+ export declare const LabelDataSchema: Schema.Struct<{
620
+ name: typeof Schema.String;
621
+ color: typeof Schema.String;
622
+ }>;
623
+ declare const LabelUpsertOpSchema: Schema.Struct<{
624
+ v: Schema.Literal<[1]>;
625
+ op: Schema.Literal<["label_upsert"]>;
626
+ ts: Schema.filter<typeof Schema.String>;
627
+ id: Schema.filter<typeof Schema.Number>;
628
+ contentHash: typeof Schema.String;
629
+ data: Schema.Struct<{
630
+ name: typeof Schema.String;
631
+ color: typeof Schema.String;
632
+ }>;
633
+ }>;
634
+ export { LabelUpsertOpSchema as LabelUpsertOp };
635
+ export type LabelUpsertOp = typeof LabelUpsertOpSchema.Type;
636
+ export declare const LabelAssignmentDataSchema: Schema.Struct<{
637
+ taskId: typeof Schema.String;
638
+ labelName: typeof Schema.String;
639
+ }>;
640
+ declare const LabelAssignmentUpsertOpSchema: Schema.Struct<{
641
+ v: Schema.Literal<[1]>;
642
+ op: Schema.Literal<["label_assignment_upsert"]>;
643
+ ts: Schema.filter<typeof Schema.String>;
644
+ contentHash: typeof Schema.String;
645
+ data: Schema.Struct<{
646
+ taskId: typeof Schema.String;
647
+ labelName: typeof Schema.String;
648
+ }>;
649
+ }>;
650
+ export { LabelAssignmentUpsertOpSchema as LabelAssignmentUpsertOp };
651
+ export type LabelAssignmentUpsertOp = typeof LabelAssignmentUpsertOpSchema.Type;
652
+ declare const LabelSyncOperationSchema: Schema.Union<[Schema.Struct<{
653
+ v: Schema.Literal<[1]>;
654
+ op: Schema.Literal<["label_upsert"]>;
655
+ ts: Schema.filter<typeof Schema.String>;
656
+ id: Schema.filter<typeof Schema.Number>;
657
+ contentHash: typeof Schema.String;
658
+ data: Schema.Struct<{
659
+ name: typeof Schema.String;
660
+ color: typeof Schema.String;
661
+ }>;
662
+ }>, Schema.Struct<{
663
+ v: Schema.Literal<[1]>;
664
+ op: Schema.Literal<["label_assignment_upsert"]>;
665
+ ts: Schema.filter<typeof Schema.String>;
666
+ contentHash: typeof Schema.String;
667
+ data: Schema.Struct<{
668
+ taskId: typeof Schema.String;
669
+ labelName: typeof Schema.String;
670
+ }>;
671
+ }>]>;
672
+ export { LabelSyncOperationSchema as LabelSyncOperation };
673
+ export type LabelSyncOperation = typeof LabelSyncOperationSchema.Type;
230
674
  export { TaskSyncOperationSchema as SyncOperation };
231
675
  export type SyncOperation = typeof TaskSyncOperationSchema.Type;
232
676
  declare const AnySyncOperationSchema: Schema.Union<[Schema.Struct<{
@@ -240,6 +684,8 @@ declare const AnySyncOperationSchema: Schema.Union<[Schema.Struct<{
240
684
  status: Schema.Literal<["backlog", "ready", "planning", "active", "blocked", "review", "human_needs_to_review", "done"]>;
241
685
  score: Schema.filter<typeof Schema.Number>;
242
686
  parentId: Schema.NullOr<Schema.filter<typeof Schema.String>>;
687
+ createdAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
688
+ completedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
243
689
  assigneeType: Schema.optional<Schema.NullOr<Schema.Literal<["human", "agent"]>>>;
244
690
  assigneeId: Schema.optional<Schema.NullOr<typeof Schema.String>>;
245
691
  assignedAt: Schema.optional<Schema.NullOr<typeof Schema.String>>;
@@ -268,6 +714,7 @@ declare const AnySyncOperationSchema: Schema.Union<[Schema.Struct<{
268
714
  op: Schema.Literal<["learning_upsert"]>;
269
715
  ts: Schema.filter<typeof Schema.String>;
270
716
  id: Schema.filter<typeof Schema.Number>;
717
+ contentHash: typeof Schema.String;
271
718
  data: Schema.Struct<{
272
719
  content: typeof Schema.String;
273
720
  sourceType: Schema.Literal<["compaction", "run", "manual", "claude_md"]>;
@@ -280,11 +727,13 @@ declare const AnySyncOperationSchema: Schema.Union<[Schema.Struct<{
280
727
  op: Schema.Literal<["learning_delete"]>;
281
728
  ts: Schema.filter<typeof Schema.String>;
282
729
  id: Schema.filter<typeof Schema.Number>;
730
+ contentHash: typeof Schema.String;
283
731
  }>, Schema.Struct<{
284
732
  v: Schema.Literal<[1]>;
285
733
  op: Schema.Literal<["file_learning_upsert"]>;
286
734
  ts: Schema.filter<typeof Schema.String>;
287
735
  id: Schema.filter<typeof Schema.Number>;
736
+ contentHash: typeof Schema.String;
288
737
  data: Schema.Struct<{
289
738
  filePattern: typeof Schema.String;
290
739
  note: typeof Schema.String;
@@ -295,17 +744,163 @@ declare const AnySyncOperationSchema: Schema.Union<[Schema.Struct<{
295
744
  op: Schema.Literal<["file_learning_delete"]>;
296
745
  ts: Schema.filter<typeof Schema.String>;
297
746
  id: Schema.filter<typeof Schema.Number>;
747
+ contentHash: typeof Schema.String;
298
748
  }>, Schema.Struct<{
299
749
  v: Schema.Literal<[1]>;
300
750
  op: Schema.Literal<["attempt_upsert"]>;
301
751
  ts: Schema.filter<typeof Schema.String>;
302
752
  id: Schema.filter<typeof Schema.Number>;
753
+ contentHash: typeof Schema.String;
303
754
  data: Schema.Struct<{
304
755
  taskId: typeof Schema.String;
305
756
  approach: typeof Schema.String;
306
757
  outcome: Schema.Literal<["failed", "succeeded"]>;
307
758
  reason: Schema.NullOr<typeof Schema.String>;
308
759
  }>;
760
+ }>, Schema.Struct<{
761
+ v: Schema.Literal<[1]>;
762
+ op: Schema.Literal<["pin_upsert"]>;
763
+ ts: Schema.filter<typeof Schema.String>;
764
+ id: typeof Schema.String;
765
+ contentHash: typeof Schema.String;
766
+ data: Schema.Struct<{
767
+ content: typeof Schema.String;
768
+ }>;
769
+ }>, Schema.Struct<{
770
+ v: Schema.Literal<[1]>;
771
+ op: Schema.Literal<["pin_delete"]>;
772
+ ts: Schema.filter<typeof Schema.String>;
773
+ id: typeof Schema.String;
774
+ contentHash: typeof Schema.String;
775
+ }>, Schema.Struct<{
776
+ v: Schema.Literal<[1]>;
777
+ op: Schema.Literal<["anchor_upsert"]>;
778
+ ts: Schema.filter<typeof Schema.String>;
779
+ id: Schema.filter<typeof Schema.Number>;
780
+ contentHash: typeof Schema.String;
781
+ data: Schema.Struct<{
782
+ learningContentHash: typeof Schema.String;
783
+ anchorType: Schema.Literal<["glob", "hash", "symbol", "line_range"]>;
784
+ anchorValue: typeof Schema.String;
785
+ filePath: typeof Schema.String;
786
+ symbolFqname: Schema.NullOr<typeof Schema.String>;
787
+ lineStart: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
788
+ lineEnd: Schema.NullOr<Schema.filter<typeof Schema.Number>>;
789
+ contentHash: Schema.NullOr<typeof Schema.String>;
790
+ contentPreview: Schema.NullOr<typeof Schema.String>;
791
+ status: Schema.Literal<["valid", "drifted", "invalid"]>;
792
+ pinned: typeof Schema.Boolean;
793
+ }>;
794
+ }>, Schema.Struct<{
795
+ v: Schema.Literal<[1]>;
796
+ op: Schema.Literal<["anchor_delete"]>;
797
+ ts: Schema.filter<typeof Schema.String>;
798
+ id: Schema.filter<typeof Schema.Number>;
799
+ contentHash: typeof Schema.String;
800
+ }>, Schema.Struct<{
801
+ v: Schema.Literal<[1]>;
802
+ op: Schema.Literal<["edge_upsert"]>;
803
+ ts: Schema.filter<typeof Schema.String>;
804
+ id: Schema.filter<typeof Schema.Number>;
805
+ contentHash: typeof Schema.String;
806
+ data: Schema.Struct<{
807
+ edgeType: Schema.Literal<["ANCHORED_TO", "DERIVED_FROM", "IMPORTS", "CO_CHANGES_WITH", "SIMILAR_TO", "LINKS_TO", "USED_IN_RUN", "INVALIDATED_BY"]>;
808
+ sourceType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
809
+ sourceId: typeof Schema.String;
810
+ targetType: Schema.Literal<["learning", "file", "task", "run", "memory"]>;
811
+ targetId: typeof Schema.String;
812
+ weight: typeof Schema.Number;
813
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
814
+ }>;
815
+ }>, Schema.Struct<{
816
+ v: Schema.Literal<[1]>;
817
+ op: Schema.Literal<["edge_delete"]>;
818
+ ts: Schema.filter<typeof Schema.String>;
819
+ id: Schema.filter<typeof Schema.Number>;
820
+ contentHash: typeof Schema.String;
821
+ }>, Schema.Struct<{
822
+ v: Schema.Literal<[1]>;
823
+ op: Schema.Literal<["doc_upsert"]>;
824
+ ts: Schema.filter<typeof Schema.String>;
825
+ id: Schema.filter<typeof Schema.Number>;
826
+ contentHash: typeof Schema.String;
827
+ data: Schema.Struct<{
828
+ kind: Schema.Literal<["overview", "prd", "design"]>;
829
+ name: typeof Schema.String;
830
+ title: typeof Schema.String;
831
+ version: Schema.filter<typeof Schema.Number>;
832
+ status: Schema.Literal<["changing", "locked"]>;
833
+ filePath: typeof Schema.String;
834
+ hash: typeof Schema.String;
835
+ parentDocKey: Schema.NullOr<typeof Schema.String>;
836
+ lockedAt: Schema.NullOr<typeof Schema.String>;
837
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
838
+ }>;
839
+ }>, Schema.Struct<{
840
+ v: Schema.Literal<[1]>;
841
+ op: Schema.Literal<["doc_delete"]>;
842
+ ts: Schema.filter<typeof Schema.String>;
843
+ id: Schema.filter<typeof Schema.Number>;
844
+ contentHash: typeof Schema.String;
845
+ }>, Schema.Struct<{
846
+ v: Schema.Literal<[1]>;
847
+ op: Schema.Literal<["doc_link_upsert"]>;
848
+ ts: Schema.filter<typeof Schema.String>;
849
+ id: Schema.filter<typeof Schema.Number>;
850
+ contentHash: typeof Schema.String;
851
+ data: Schema.Struct<{
852
+ fromDocKey: typeof Schema.String;
853
+ toDocKey: typeof Schema.String;
854
+ linkType: Schema.Literal<["overview_to_prd", "overview_to_design", "prd_to_design", "design_patch"]>;
855
+ }>;
856
+ }>, Schema.Struct<{
857
+ v: Schema.Literal<[1]>;
858
+ op: Schema.Literal<["task_doc_link_upsert"]>;
859
+ ts: Schema.filter<typeof Schema.String>;
860
+ id: Schema.filter<typeof Schema.Number>;
861
+ contentHash: typeof Schema.String;
862
+ data: Schema.Struct<{
863
+ taskId: typeof Schema.String;
864
+ docKey: typeof Schema.String;
865
+ linkType: Schema.Literal<["implements", "references"]>;
866
+ }>;
867
+ }>, Schema.Struct<{
868
+ v: Schema.Literal<[1]>;
869
+ op: Schema.Literal<["invariant_upsert"]>;
870
+ ts: Schema.filter<typeof Schema.String>;
871
+ id: typeof Schema.String;
872
+ contentHash: typeof Schema.String;
873
+ data: Schema.Struct<{
874
+ id: typeof Schema.String;
875
+ rule: typeof Schema.String;
876
+ enforcement: Schema.Literal<["integration_test", "linter", "llm_as_judge"]>;
877
+ docKey: typeof Schema.String;
878
+ subsystem: Schema.NullOr<typeof Schema.String>;
879
+ testRef: Schema.NullOr<typeof Schema.String>;
880
+ lintRule: Schema.NullOr<typeof Schema.String>;
881
+ promptRef: Schema.NullOr<typeof Schema.String>;
882
+ status: Schema.Literal<["active", "deprecated"]>;
883
+ metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
884
+ }>;
885
+ }>, Schema.Struct<{
886
+ v: Schema.Literal<[1]>;
887
+ op: Schema.Literal<["label_upsert"]>;
888
+ ts: Schema.filter<typeof Schema.String>;
889
+ id: Schema.filter<typeof Schema.Number>;
890
+ contentHash: typeof Schema.String;
891
+ data: Schema.Struct<{
892
+ name: typeof Schema.String;
893
+ color: typeof Schema.String;
894
+ }>;
895
+ }>, Schema.Struct<{
896
+ v: Schema.Literal<[1]>;
897
+ op: Schema.Literal<["label_assignment_upsert"]>;
898
+ ts: Schema.filter<typeof Schema.String>;
899
+ contentHash: typeof Schema.String;
900
+ data: Schema.Struct<{
901
+ taskId: typeof Schema.String;
902
+ labelName: typeof Schema.String;
903
+ }>;
309
904
  }>]>;
310
905
  export { AnySyncOperationSchema as AnySyncOperation };
311
906
  export type AnySyncOperation = typeof AnySyncOperationSchema.Type;