@zakstam/codex-local-component 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/LLMS.md +54 -6
  2. package/dist/component/_generated/api.d.ts +42 -0
  3. package/dist/component/_generated/api.d.ts.map +1 -1
  4. package/dist/component/_generated/api.js.map +1 -1
  5. package/dist/component/_generated/component.d.ts +279 -126
  6. package/dist/component/_generated/component.d.ts.map +1 -1
  7. package/dist/component/approvals.d.ts +2 -6
  8. package/dist/component/approvals.d.ts.map +1 -1
  9. package/dist/component/approvals.js +8 -7
  10. package/dist/component/approvals.js.map +1 -1
  11. package/dist/component/dispatch.d.ts +7 -21
  12. package/dist/component/dispatch.d.ts.map +1 -1
  13. package/dist/component/dispatch.js +21 -20
  14. package/dist/component/dispatch.js.map +1 -1
  15. package/dist/component/ingest/applyApprovals.d.ts.map +1 -1
  16. package/dist/component/ingest/applyApprovals.js +3 -2
  17. package/dist/component/ingest/applyApprovals.js.map +1 -1
  18. package/dist/component/ingest/applyMessages.d.ts.map +1 -1
  19. package/dist/component/ingest/applyMessages.js +8 -7
  20. package/dist/component/ingest/applyMessages.js.map +1 -1
  21. package/dist/component/ingest/applyStreams.d.ts.map +1 -1
  22. package/dist/component/ingest/applyStreams.js +13 -12
  23. package/dist/component/ingest/applyStreams.js.map +1 -1
  24. package/dist/component/ingest/applyTurns.d.ts.map +1 -1
  25. package/dist/component/ingest/applyTurns.js +10 -9
  26. package/dist/component/ingest/applyTurns.js.map +1 -1
  27. package/dist/component/ingest/checkpoints.d.ts.map +1 -1
  28. package/dist/component/ingest/checkpoints.js +10 -13
  29. package/dist/component/ingest/checkpoints.js.map +1 -1
  30. package/dist/component/ingest/index.d.ts.map +1 -1
  31. package/dist/component/ingest/index.js +3 -2
  32. package/dist/component/ingest/index.js.map +1 -1
  33. package/dist/component/ingest/postIngest.d.ts.map +1 -1
  34. package/dist/component/ingest/postIngest.js +2 -1
  35. package/dist/component/ingest/postIngest.js.map +1 -1
  36. package/dist/component/ingest/sessionGuard.d.ts.map +1 -1
  37. package/dist/component/ingest/sessionGuard.js +5 -14
  38. package/dist/component/ingest/sessionGuard.js.map +1 -1
  39. package/dist/component/ingest/stateCache.d.ts +1 -1
  40. package/dist/component/ingest/stateCache.d.ts.map +1 -1
  41. package/dist/component/ingest/stateCache.js +8 -8
  42. package/dist/component/ingest/stateCache.js.map +1 -1
  43. package/dist/component/ingest/types.d.ts +2 -4
  44. package/dist/component/ingest/types.d.ts.map +1 -1
  45. package/dist/component/messages.d.ts +2 -6
  46. package/dist/component/messages.d.ts.map +1 -1
  47. package/dist/component/messages.js +4 -3
  48. package/dist/component/messages.js.map +1 -1
  49. package/dist/component/pagination.d.ts +4 -0
  50. package/dist/component/pagination.d.ts.map +1 -1
  51. package/dist/component/pagination.js +11 -2
  52. package/dist/component/pagination.js.map +1 -1
  53. package/dist/component/reasoning.d.ts +1 -3
  54. package/dist/component/reasoning.d.ts.map +1 -1
  55. package/dist/component/reasoning.js +3 -2
  56. package/dist/component/reasoning.js.map +1 -1
  57. package/dist/component/schema.d.ts +116 -122
  58. package/dist/component/schema.d.ts.map +1 -1
  59. package/dist/component/schema.js +74 -78
  60. package/dist/component/schema.js.map +1 -1
  61. package/dist/component/scope.d.ts +4 -0
  62. package/dist/component/scope.d.ts.map +1 -0
  63. package/dist/component/scope.js +6 -0
  64. package/dist/component/scope.js.map +1 -0
  65. package/dist/component/serverRequests.d.ts +3 -9
  66. package/dist/component/serverRequests.d.ts.map +1 -1
  67. package/dist/component/serverRequests.js +20 -17
  68. package/dist/component/serverRequests.js.map +1 -1
  69. package/dist/component/sessions.d.ts +1 -1
  70. package/dist/component/sessions.js +3 -3
  71. package/dist/component/sessions.js.map +1 -1
  72. package/dist/component/streamStats.d.ts +4 -4
  73. package/dist/component/streamStats.d.ts.map +1 -1
  74. package/dist/component/streamStats.js +10 -10
  75. package/dist/component/streamStats.js.map +1 -1
  76. package/dist/component/streams.d.ts +3 -3
  77. package/dist/component/streams.js +18 -18
  78. package/dist/component/streams.js.map +1 -1
  79. package/dist/component/sync.d.ts +4 -12
  80. package/dist/component/sync.d.ts.map +1 -1
  81. package/dist/component/sync.js +1 -1
  82. package/dist/component/sync.js.map +1 -1
  83. package/dist/component/syncIngest.d.ts +1 -3
  84. package/dist/component/syncIngest.d.ts.map +1 -1
  85. package/dist/component/syncReplay.d.ts +1 -3
  86. package/dist/component/syncReplay.d.ts.map +1 -1
  87. package/dist/component/syncReplay.js +11 -12
  88. package/dist/component/syncReplay.js.map +1 -1
  89. package/dist/component/threads.d.ts +7 -21
  90. package/dist/component/threads.d.ts.map +1 -1
  91. package/dist/component/threads.js +35 -34
  92. package/dist/component/threads.js.map +1 -1
  93. package/dist/component/turns.d.ts +2 -6
  94. package/dist/component/turns.d.ts.map +1 -1
  95. package/dist/component/turns.js +9 -8
  96. package/dist/component/turns.js.map +1 -1
  97. package/dist/component/turnsInternal.d.ts +1 -1
  98. package/dist/component/turnsInternal.js +3 -3
  99. package/dist/component/turnsInternal.js.map +1 -1
  100. package/dist/component/types.d.ts +4 -10
  101. package/dist/component/types.d.ts.map +1 -1
  102. package/dist/component/types.js +1 -3
  103. package/dist/component/types.js.map +1 -1
  104. package/dist/component/utils.d.ts.map +1 -1
  105. package/dist/component/utils.js +8 -11
  106. package/dist/component/utils.js.map +1 -1
  107. package/dist/host/convexPreset.d.ts +90 -194
  108. package/dist/host/convexPreset.d.ts.map +1 -1
  109. package/dist/host/convexSlice.d.ts +10 -16
  110. package/dist/host/convexSlice.d.ts.map +1 -1
  111. package/dist/host/convexSlice.js +2 -4
  112. package/dist/host/convexSlice.js.map +1 -1
  113. package/dist/host/index.d.ts +1 -0
  114. package/dist/host/index.d.ts.map +1 -1
  115. package/dist/host/index.js +1 -0
  116. package/dist/host/index.js.map +1 -1
  117. package/dist/host/ingestRecovery.d.ts +5 -0
  118. package/dist/host/ingestRecovery.d.ts.map +1 -0
  119. package/dist/host/ingestRecovery.js +4 -0
  120. package/dist/host/ingestRecovery.js.map +1 -0
  121. package/dist/host/runtime.d.ts +2 -4
  122. package/dist/host/runtime.d.ts.map +1 -1
  123. package/dist/host/runtime.js +177 -150
  124. package/dist/host/runtime.js.map +1 -1
  125. package/dist/host/surfaceGenerator.d.ts +0 -2
  126. package/dist/host/surfaceGenerator.d.ts.map +1 -1
  127. package/dist/host/surfaceGenerator.js +2 -2
  128. package/dist/host/surfaceGenerator.js.map +1 -1
  129. package/dist/mapping.d.ts.map +1 -1
  130. package/dist/mapping.js +4 -1
  131. package/dist/mapping.js.map +1 -1
  132. package/dist/protocol/events.d.ts +6 -2
  133. package/dist/protocol/events.d.ts.map +1 -1
  134. package/dist/protocol/events.js +34 -12
  135. package/dist/protocol/events.js.map +1 -1
  136. package/docs/CLIENT_AND_REACT_HOOKS.md +7 -0
  137. package/docs/DISPATCH_MANAGED_REFERENCE_HOST.md +6 -1
  138. package/docs/HOST_INTEGRATION.md +8 -0
  139. package/docs/OPERATIONS_AND_ERRORS.md +11 -1
  140. package/docs/RUNTIME_OWNED_REFERENCE_HOST.md +5 -0
  141. package/package.json +3 -2
@@ -34,37 +34,37 @@ export declare const vStreamState: import("convex/values").VUnion<{
34
34
  }, "required", "reason" | "kind" | "endedAt">], "required", "reason" | "kind" | "lastHeartbeatAt" | "timeoutFnId" | "endedAt">;
35
35
  declare const _default: import("convex/server").SchemaDefinition<{
36
36
  codex_thread_bindings: import("convex/server").TableDefinition<import("convex/values").VObject<{
37
+ userId?: string;
37
38
  threadId: string;
38
39
  createdAt: number;
39
40
  updatedAt: number;
40
- tenantId: string;
41
- userId: string;
41
+ userScope: string;
42
42
  externalThreadId: string;
43
43
  }, {
44
- tenantId: import("convex/values").VString<string, "required">;
45
- userId: import("convex/values").VString<string, "required">;
44
+ userScope: import("convex/values").VString<string, "required">;
45
+ userId: import("convex/values").VString<string | undefined, "optional">;
46
46
  externalThreadId: import("convex/values").VString<string, "required">;
47
47
  threadId: import("convex/values").VString<string, "required">;
48
48
  createdAt: import("convex/values").VFloat64<number, "required">;
49
49
  updatedAt: import("convex/values").VFloat64<number, "required">;
50
- }, "required", "threadId" | "createdAt" | "updatedAt" | "tenantId" | "userId" | "externalThreadId">, {
51
- tenantId_userId_externalThreadId: ["tenantId", "userId", "externalThreadId", "_creationTime"];
52
- tenantId_userId_threadId: ["tenantId", "userId", "threadId", "_creationTime"];
50
+ }, "required", "threadId" | "createdAt" | "updatedAt" | "userScope" | "userId" | "externalThreadId">, {
51
+ userScope_userId_externalThreadId: ["userScope", "userId", "externalThreadId", "_creationTime"];
52
+ userScope_userId_threadId: ["userScope", "userId", "threadId", "_creationTime"];
53
53
  }, {}, {}>;
54
54
  codex_threads: import("convex/server").TableDefinition<import("convex/values").VObject<{
55
55
  cwd?: string;
56
56
  model?: string;
57
57
  personality?: string;
58
+ userId?: string;
58
59
  localThreadId?: string;
59
60
  status: "failed" | "archived" | "active";
60
61
  threadId: string;
61
62
  createdAt: number;
62
63
  updatedAt: number;
63
- tenantId: string;
64
- userId: string;
64
+ userScope: string;
65
65
  }, {
66
- tenantId: import("convex/values").VString<string, "required">;
67
- userId: import("convex/values").VString<string, "required">;
66
+ userScope: import("convex/values").VString<string, "required">;
67
+ userId: import("convex/values").VString<string | undefined, "optional">;
68
68
  threadId: import("convex/values").VString<string, "required">;
69
69
  localThreadId: import("convex/values").VString<string | undefined, "optional">;
70
70
  status: import("convex/values").VUnion<"failed" | "archived" | "active", [import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"archived", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>;
@@ -73,25 +73,25 @@ declare const _default: import("convex/server").SchemaDefinition<{
73
73
  personality: import("convex/values").VString<string | undefined, "optional">;
74
74
  createdAt: import("convex/values").VFloat64<number, "required">;
75
75
  updatedAt: import("convex/values").VFloat64<number, "required">;
76
- }, "required", "cwd" | "status" | "threadId" | "model" | "createdAt" | "updatedAt" | "personality" | "tenantId" | "userId" | "localThreadId">, {
77
- tenantId_updatedAt: ["tenantId", "updatedAt", "_creationTime"];
78
- tenantId_userId_updatedAt_threadId: ["tenantId", "userId", "updatedAt", "threadId", "_creationTime"];
79
- tenantId_threadId: ["tenantId", "threadId", "_creationTime"];
76
+ }, "required", "cwd" | "status" | "threadId" | "model" | "createdAt" | "updatedAt" | "personality" | "userScope" | "userId" | "localThreadId">, {
77
+ userScope_updatedAt: ["userScope", "updatedAt", "_creationTime"];
78
+ userScope_userId_updatedAt_threadId: ["userScope", "userId", "updatedAt", "threadId", "_creationTime"];
79
+ userScope_threadId: ["userScope", "threadId", "_creationTime"];
80
80
  }, {}, {}>;
81
81
  codex_turns: import("convex/server").TableDefinition<import("convex/values").VObject<{
82
82
  error?: string;
83
+ userId?: string;
83
84
  inputSummary?: string;
84
85
  completedAt?: number;
85
86
  status: "completed" | "failed" | "interrupted" | "inProgress" | "queued";
86
87
  threadId: string;
87
88
  turnId: string;
88
- tenantId: string;
89
- userId: string;
89
+ userScope: string;
90
90
  idempotencyKey: string;
91
91
  startedAt: number;
92
92
  }, {
93
- tenantId: import("convex/values").VString<string, "required">;
94
- userId: import("convex/values").VString<string, "required">;
93
+ userScope: import("convex/values").VString<string, "required">;
94
+ userId: import("convex/values").VString<string | undefined, "optional">;
95
95
  threadId: import("convex/values").VString<string, "required">;
96
96
  turnId: import("convex/values").VString<string, "required">;
97
97
  status: import("convex/values").VUnion<"completed" | "failed" | "interrupted" | "inProgress" | "queued", [import("convex/values").VLiteral<"queued", "required">, import("convex/values").VLiteral<"inProgress", "required">, import("convex/values").VLiteral<"completed", "required">, import("convex/values").VLiteral<"interrupted", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>;
@@ -100,12 +100,13 @@ declare const _default: import("convex/server").SchemaDefinition<{
100
100
  error: import("convex/values").VString<string | undefined, "optional">;
101
101
  startedAt: import("convex/values").VFloat64<number, "required">;
102
102
  completedAt: import("convex/values").VFloat64<number | undefined, "optional">;
103
- }, "required", "error" | "status" | "threadId" | "turnId" | "tenantId" | "userId" | "idempotencyKey" | "inputSummary" | "startedAt" | "completedAt">, {
104
- tenantId_threadId_startedAt: ["tenantId", "threadId", "startedAt", "_creationTime"];
105
- tenantId_idempotencyKey: ["tenantId", "idempotencyKey", "_creationTime"];
106
- tenantId_threadId_turnId: ["tenantId", "threadId", "turnId", "_creationTime"];
103
+ }, "required", "error" | "status" | "threadId" | "turnId" | "userScope" | "userId" | "idempotencyKey" | "inputSummary" | "startedAt" | "completedAt">, {
104
+ userScope_threadId_startedAt: ["userScope", "threadId", "startedAt", "_creationTime"];
105
+ userScope_idempotencyKey: ["userScope", "idempotencyKey", "_creationTime"];
106
+ userScope_threadId_turnId: ["userScope", "threadId", "turnId", "_creationTime"];
107
107
  }, {}, {}>;
108
108
  codex_turn_dispatches: import("convex/server").TableDefinition<import("convex/values").VObject<{
109
+ userId?: string;
109
110
  startedAt?: number;
110
111
  completedAt?: number;
111
112
  claimOwner?: string;
@@ -121,15 +122,14 @@ declare const _default: import("convex/server").SchemaDefinition<{
121
122
  turnId: string;
122
123
  createdAt: number;
123
124
  updatedAt: number;
124
- tenantId: string;
125
- userId: string;
125
+ userScope: string;
126
126
  idempotencyKey: string;
127
127
  dispatchId: string;
128
128
  leaseExpiresAt: number;
129
129
  attemptCount: number;
130
130
  }, {
131
- tenantId: import("convex/values").VString<string, "required">;
132
- userId: import("convex/values").VString<string, "required">;
131
+ userScope: import("convex/values").VString<string, "required">;
132
+ userId: import("convex/values").VString<string | undefined, "optional">;
133
133
  threadId: import("convex/values").VString<string, "required">;
134
134
  dispatchId: import("convex/values").VString<string, "required">;
135
135
  turnId: import("convex/values").VString<string, "required">;
@@ -149,14 +149,15 @@ declare const _default: import("convex/server").SchemaDefinition<{
149
149
  startedAt: import("convex/values").VFloat64<number | undefined, "optional">;
150
150
  completedAt: import("convex/values").VFloat64<number | undefined, "optional">;
151
151
  cancelledAt: import("convex/values").VFloat64<number | undefined, "optional">;
152
- }, "required", "inputText" | "status" | "threadId" | "turnId" | "createdAt" | "updatedAt" | "tenantId" | "userId" | "idempotencyKey" | "startedAt" | "completedAt" | "dispatchId" | "claimOwner" | "claimToken" | "leaseExpiresAt" | "attemptCount" | "runtimeThreadId" | "runtimeTurnId" | "failureCode" | "failureReason" | "cancelledAt">, {
153
- tenantId_threadId_dispatchId: ["tenantId", "threadId", "dispatchId", "_creationTime"];
154
- tenantId_threadId_turnId: ["tenantId", "threadId", "turnId", "_creationTime"];
155
- tenantId_threadId_idempotencyKey: ["tenantId", "threadId", "idempotencyKey", "_creationTime"];
156
- tenantId_threadId_status_createdAt: ["tenantId", "threadId", "status", "createdAt", "_creationTime"];
157
- tenantId_threadId_status_leaseExpiresAt: ["tenantId", "threadId", "status", "leaseExpiresAt", "_creationTime"];
152
+ }, "required", "inputText" | "status" | "threadId" | "turnId" | "createdAt" | "updatedAt" | "userScope" | "userId" | "idempotencyKey" | "startedAt" | "completedAt" | "dispatchId" | "claimOwner" | "claimToken" | "leaseExpiresAt" | "attemptCount" | "runtimeThreadId" | "runtimeTurnId" | "failureCode" | "failureReason" | "cancelledAt">, {
153
+ userScope_threadId_dispatchId: ["userScope", "threadId", "dispatchId", "_creationTime"];
154
+ userScope_threadId_turnId: ["userScope", "threadId", "turnId", "_creationTime"];
155
+ userScope_threadId_idempotencyKey: ["userScope", "threadId", "idempotencyKey", "_creationTime"];
156
+ userScope_threadId_status_createdAt: ["userScope", "threadId", "status", "createdAt", "_creationTime"];
157
+ userScope_threadId_status_leaseExpiresAt: ["userScope", "threadId", "status", "leaseExpiresAt", "_creationTime"];
158
158
  }, {}, {}>;
159
159
  codex_items: import("convex/server").TableDefinition<import("convex/values").VObject<{
160
+ userId?: string;
160
161
  status: "completed" | "failed" | "inProgress" | "declined";
161
162
  threadId: string;
162
163
  turnId: string;
@@ -165,11 +166,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
165
166
  updatedAt: number;
166
167
  itemType: string;
167
168
  payloadJson: string;
168
- tenantId: string;
169
- userId: string;
169
+ userScope: string;
170
170
  }, {
171
- tenantId: import("convex/values").VString<string, "required">;
172
- userId: import("convex/values").VString<string, "required">;
171
+ userScope: import("convex/values").VString<string, "required">;
172
+ userId: import("convex/values").VString<string | undefined, "optional">;
173
173
  threadId: import("convex/values").VString<string, "required">;
174
174
  turnId: import("convex/values").VString<string, "required">;
175
175
  itemId: import("convex/values").VString<string, "required">;
@@ -178,9 +178,9 @@ declare const _default: import("convex/server").SchemaDefinition<{
178
178
  payloadJson: import("convex/values").VString<string, "required">;
179
179
  createdAt: import("convex/values").VFloat64<number, "required">;
180
180
  updatedAt: import("convex/values").VFloat64<number, "required">;
181
- }, "required", "status" | "threadId" | "turnId" | "itemId" | "createdAt" | "updatedAt" | "itemType" | "payloadJson" | "tenantId" | "userId">, {
182
- tenantId_threadId_turnId_itemId: ["tenantId", "threadId", "turnId", "itemId", "_creationTime"];
183
- tenantId_threadId_createdAt: ["tenantId", "threadId", "createdAt", "_creationTime"];
181
+ }, "required", "status" | "threadId" | "turnId" | "itemId" | "createdAt" | "updatedAt" | "itemType" | "payloadJson" | "userScope" | "userId">, {
182
+ userScope_threadId_turnId_itemId: ["userScope", "threadId", "turnId", "itemId", "_creationTime"];
183
+ userScope_threadId_createdAt: ["userScope", "threadId", "createdAt", "_creationTime"];
184
184
  }, {}, {}>;
185
185
  codex_event_summaries: import("convex/server").TableDefinition<import("convex/values").VObject<{
186
186
  turnId?: string;
@@ -188,21 +188,22 @@ declare const _default: import("convex/server").SchemaDefinition<{
188
188
  threadId: string;
189
189
  kind: string;
190
190
  createdAt: number;
191
- tenantId: string;
191
+ userScope: string;
192
192
  eventId: string;
193
193
  }, {
194
- tenantId: import("convex/values").VString<string, "required">;
194
+ userScope: import("convex/values").VString<string, "required">;
195
195
  threadId: import("convex/values").VString<string, "required">;
196
196
  turnId: import("convex/values").VString<string | undefined, "optional">;
197
197
  eventId: import("convex/values").VString<string, "required">;
198
198
  kind: import("convex/values").VString<string, "required">;
199
199
  summary: import("convex/values").VString<string, "required">;
200
200
  createdAt: import("convex/values").VFloat64<number, "required">;
201
- }, "required", "summary" | "threadId" | "turnId" | "kind" | "createdAt" | "tenantId" | "eventId">, {
202
- tenantId_threadId_createdAt: ["tenantId", "threadId", "createdAt", "_creationTime"];
201
+ }, "required", "summary" | "threadId" | "turnId" | "kind" | "createdAt" | "userScope" | "eventId">, {
202
+ userScope_threadId_createdAt: ["userScope", "threadId", "createdAt", "_creationTime"];
203
203
  }, {}, {}>;
204
204
  codex_messages: import("convex/server").TableDefinition<import("convex/values").VObject<{
205
205
  error?: string;
206
+ userId?: string;
206
207
  completedAt?: number;
207
208
  text: string;
208
209
  role: "user" | "system" | "tool" | "assistant";
@@ -214,12 +215,11 @@ declare const _default: import("convex/server").SchemaDefinition<{
214
215
  payloadJson: string;
215
216
  messageId: string;
216
217
  sourceItemType: string;
217
- tenantId: string;
218
- userId: string;
218
+ userScope: string;
219
219
  orderInTurn: number;
220
220
  }, {
221
- tenantId: import("convex/values").VString<string, "required">;
222
- userId: import("convex/values").VString<string, "required">;
221
+ userScope: import("convex/values").VString<string, "required">;
222
+ userId: import("convex/values").VString<string | undefined, "optional">;
223
223
  threadId: import("convex/values").VString<string, "required">;
224
224
  turnId: import("convex/values").VString<string, "required">;
225
225
  messageId: import("convex/values").VString<string, "required">;
@@ -233,17 +233,18 @@ declare const _default: import("convex/server").SchemaDefinition<{
233
233
  createdAt: import("convex/values").VFloat64<number, "required">;
234
234
  updatedAt: import("convex/values").VFloat64<number, "required">;
235
235
  completedAt: import("convex/values").VFloat64<number | undefined, "optional">;
236
- }, "required", "text" | "error" | "role" | "status" | "threadId" | "turnId" | "createdAt" | "updatedAt" | "payloadJson" | "messageId" | "sourceItemType" | "tenantId" | "userId" | "completedAt" | "orderInTurn">, {
237
- tenantId_threadId_createdAt: ["tenantId", "threadId", "createdAt", "_creationTime"];
238
- tenantId_threadId_createdAt_messageId: ["tenantId", "threadId", "createdAt", "messageId", "_creationTime"];
239
- tenantId_threadId_turnId_createdAt: ["tenantId", "threadId", "turnId", "createdAt", "_creationTime"];
240
- tenantId_threadId_turnId_messageId: ["tenantId", "threadId", "turnId", "messageId", "_creationTime"];
241
- tenantId_threadId_turnId_orderInTurn: ["tenantId", "threadId", "turnId", "orderInTurn", "_creationTime"];
242
- tenantId_threadId_turnId_status: ["tenantId", "threadId", "turnId", "status", "_creationTime"];
236
+ }, "required", "text" | "error" | "role" | "status" | "threadId" | "turnId" | "createdAt" | "updatedAt" | "payloadJson" | "messageId" | "sourceItemType" | "userScope" | "userId" | "completedAt" | "orderInTurn">, {
237
+ userScope_threadId_createdAt: ["userScope", "threadId", "createdAt", "_creationTime"];
238
+ userScope_threadId_createdAt_messageId: ["userScope", "threadId", "createdAt", "messageId", "_creationTime"];
239
+ userScope_threadId_turnId_createdAt: ["userScope", "threadId", "turnId", "createdAt", "_creationTime"];
240
+ userScope_threadId_turnId_messageId: ["userScope", "threadId", "turnId", "messageId", "_creationTime"];
241
+ userScope_threadId_turnId_orderInTurn: ["userScope", "threadId", "turnId", "orderInTurn", "_creationTime"];
242
+ userScope_threadId_turnId_status: ["userScope", "threadId", "turnId", "status", "_creationTime"];
243
243
  }, {}, {}>;
244
244
  codex_reasoning_segments: import("convex/server").TableDefinition<import("convex/values").VObject<{
245
245
  summaryIndex?: number;
246
246
  contentIndex?: number;
247
+ userId?: string;
247
248
  text: string;
248
249
  threadId: string;
249
250
  turnId: string;
@@ -252,14 +253,13 @@ declare const _default: import("convex/server").SchemaDefinition<{
252
253
  cursorEnd: number;
253
254
  channel: "summary" | "raw";
254
255
  segmentType: "textDelta" | "sectionBreak";
255
- tenantId: string;
256
- userId: string;
256
+ userScope: string;
257
257
  eventId: string;
258
258
  segmentId: string;
259
259
  cursorStart: number;
260
260
  }, {
261
- tenantId: import("convex/values").VString<string, "required">;
262
- userId: import("convex/values").VString<string, "required">;
261
+ userScope: import("convex/values").VString<string, "required">;
262
+ userId: import("convex/values").VString<string | undefined, "optional">;
263
263
  threadId: import("convex/values").VString<string, "required">;
264
264
  turnId: import("convex/values").VString<string, "required">;
265
265
  itemId: import("convex/values").VString<string, "required">;
@@ -273,27 +273,25 @@ declare const _default: import("convex/server").SchemaDefinition<{
273
273
  cursorStart: import("convex/values").VFloat64<number, "required">;
274
274
  cursorEnd: import("convex/values").VFloat64<number, "required">;
275
275
  createdAt: import("convex/values").VFloat64<number, "required">;
276
- }, "required", "text" | "threadId" | "turnId" | "itemId" | "summaryIndex" | "contentIndex" | "createdAt" | "cursorEnd" | "channel" | "segmentType" | "tenantId" | "userId" | "eventId" | "segmentId" | "cursorStart">, {
277
- tenantId_threadId_createdAt_segmentId: ["tenantId", "threadId", "createdAt", "segmentId", "_creationTime"];
278
- tenantId_threadId_turnId_itemId_createdAt: ["tenantId", "threadId", "turnId", "itemId", "createdAt", "_creationTime"];
279
- tenantId_threadId_eventId: ["tenantId", "threadId", "eventId", "_creationTime"];
276
+ }, "required", "text" | "threadId" | "turnId" | "itemId" | "summaryIndex" | "contentIndex" | "createdAt" | "cursorEnd" | "channel" | "segmentType" | "userScope" | "userId" | "eventId" | "segmentId" | "cursorStart">, {
277
+ userScope_threadId_createdAt_segmentId: ["userScope", "threadId", "createdAt", "segmentId", "_creationTime"];
278
+ userScope_threadId_turnId_itemId_createdAt: ["userScope", "threadId", "turnId", "itemId", "createdAt", "_creationTime"];
279
+ userScope_threadId_eventId: ["userScope", "threadId", "eventId", "_creationTime"];
280
280
  }, {}, {}>;
281
281
  codex_sessions: import("convex/server").TableDefinition<import("convex/values").VObject<{
282
282
  error?: string;
283
283
  endedAt?: number;
284
+ userId?: string;
284
285
  status: "starting" | "failed" | "active" | "stale" | "ended";
285
286
  threadId: string;
286
287
  sessionId: string;
287
288
  lastHeartbeatAt: number;
288
- tenantId: string;
289
- userId: string;
289
+ userScope: string;
290
290
  startedAt: number;
291
- deviceId: string;
292
291
  lastEventCursor: number;
293
292
  }, {
294
- tenantId: import("convex/values").VString<string, "required">;
295
- userId: import("convex/values").VString<string, "required">;
296
- deviceId: import("convex/values").VString<string, "required">;
293
+ userScope: import("convex/values").VString<string, "required">;
294
+ userId: import("convex/values").VString<string | undefined, "optional">;
297
295
  threadId: import("convex/values").VString<string, "required">;
298
296
  sessionId: import("convex/values").VString<string, "required">;
299
297
  status: import("convex/values").VUnion<"starting" | "failed" | "active" | "stale" | "ended", [import("convex/values").VLiteral<"starting", "required">, import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"stale", "required">, import("convex/values").VLiteral<"ended", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>;
@@ -302,11 +300,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
302
300
  startedAt: import("convex/values").VFloat64<number, "required">;
303
301
  endedAt: import("convex/values").VFloat64<number | undefined, "optional">;
304
302
  error: import("convex/values").VString<string | undefined, "optional">;
305
- }, "required", "error" | "status" | "threadId" | "sessionId" | "lastHeartbeatAt" | "endedAt" | "tenantId" | "userId" | "startedAt" | "deviceId" | "lastEventCursor">, {
306
- tenantId_threadId: ["tenantId", "threadId", "_creationTime"];
307
- tenantId_deviceId_status: ["tenantId", "deviceId", "status", "_creationTime"];
308
- tenantId_lastHeartbeatAt: ["tenantId", "lastHeartbeatAt", "_creationTime"];
309
- tenantId_sessionId: ["tenantId", "sessionId", "_creationTime"];
303
+ }, "required", "error" | "status" | "threadId" | "sessionId" | "lastHeartbeatAt" | "endedAt" | "userScope" | "userId" | "startedAt" | "lastEventCursor">, {
304
+ userScope_threadId: ["userScope", "threadId", "_creationTime"];
305
+ userScope_lastHeartbeatAt: ["userScope", "lastHeartbeatAt", "_creationTime"];
306
+ userScope_sessionId: ["userScope", "sessionId", "_creationTime"];
310
307
  }, {}, {}>;
311
308
  codex_streams: import("convex/server").TableDefinition<import("convex/values").VObject<{
312
309
  endedAt?: number;
@@ -327,10 +324,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
327
324
  endedAt: number;
328
325
  };
329
326
  streamId: string;
330
- tenantId: string;
327
+ userScope: string;
331
328
  startedAt: number;
332
329
  }, {
333
- tenantId: import("convex/values").VString<string, "required">;
330
+ userScope: import("convex/values").VString<string, "required">;
334
331
  threadId: import("convex/values").VString<string, "required">;
335
332
  turnId: import("convex/values").VString<string, "required">;
336
333
  streamId: import("convex/values").VString<string, "required">;
@@ -372,10 +369,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
372
369
  endedAt: import("convex/values").VFloat64<number | undefined, "optional">;
373
370
  cleanupScheduledAt: import("convex/values").VFloat64<number | undefined, "optional">;
374
371
  cleanupFnId: import("convex/values").VId<import("convex/values").GenericId<"_scheduled_functions"> | undefined, "optional">;
375
- }, "required", "threadId" | "turnId" | "state" | "streamId" | "endedAt" | "tenantId" | "startedAt" | "cleanupScheduledAt" | "cleanupFnId" | "state.reason" | "state.kind" | "state.lastHeartbeatAt" | "state.timeoutFnId" | "state.endedAt">, {
376
- tenantId_threadId_state: ["tenantId", "threadId", "state.kind", "_creationTime"];
377
- tenantId_threadId_turnId: ["tenantId", "threadId", "turnId", "_creationTime"];
378
- tenantId_streamId: ["tenantId", "streamId", "_creationTime"];
372
+ }, "required", "threadId" | "turnId" | "state" | "streamId" | "endedAt" | "userScope" | "startedAt" | "cleanupScheduledAt" | "cleanupFnId" | "state.reason" | "state.kind" | "state.lastHeartbeatAt" | "state.timeoutFnId" | "state.endedAt">, {
373
+ userScope_threadId_state: ["userScope", "threadId", "state.kind", "_creationTime"];
374
+ userScope_threadId_turnId: ["userScope", "threadId", "turnId", "_creationTime"];
375
+ userScope_streamId: ["userScope", "streamId", "_creationTime"];
379
376
  }, {}, {}>;
380
377
  codex_stream_stats: import("convex/server").TableDefinition<import("convex/values").VObject<{
381
378
  threadId: string;
@@ -383,11 +380,11 @@ declare const _default: import("convex/server").SchemaDefinition<{
383
380
  state: "streaming" | "finished" | "aborted";
384
381
  updatedAt: number;
385
382
  streamId: string;
386
- tenantId: string;
383
+ userScope: string;
387
384
  deltaCount: number;
388
385
  latestCursor: number;
389
386
  }, {
390
- tenantId: import("convex/values").VString<string, "required">;
387
+ userScope: import("convex/values").VString<string, "required">;
391
388
  threadId: import("convex/values").VString<string, "required">;
392
389
  turnId: import("convex/values").VString<string, "required">;
393
390
  streamId: import("convex/values").VString<string, "required">;
@@ -395,9 +392,9 @@ declare const _default: import("convex/server").SchemaDefinition<{
395
392
  deltaCount: import("convex/values").VFloat64<number, "required">;
396
393
  latestCursor: import("convex/values").VFloat64<number, "required">;
397
394
  updatedAt: import("convex/values").VFloat64<number, "required">;
398
- }, "required", "threadId" | "turnId" | "state" | "updatedAt" | "streamId" | "tenantId" | "deltaCount" | "latestCursor">, {
399
- tenantId_threadId: ["tenantId", "threadId", "_creationTime"];
400
- tenantId_streamId: ["tenantId", "streamId", "_creationTime"];
395
+ }, "required", "threadId" | "turnId" | "state" | "updatedAt" | "streamId" | "userScope" | "deltaCount" | "latestCursor">, {
396
+ userScope_threadId: ["userScope", "threadId", "_creationTime"];
397
+ userScope_streamId: ["userScope", "streamId", "_creationTime"];
401
398
  }, {}, {}>;
402
399
  codex_stream_deltas_ttl: import("convex/server").TableDefinition<import("convex/values").VObject<{
403
400
  turnId: string;
@@ -406,12 +403,12 @@ declare const _default: import("convex/server").SchemaDefinition<{
406
403
  cursorEnd: number;
407
404
  payloadJson: string;
408
405
  streamId: string;
409
- tenantId: string;
406
+ userScope: string;
410
407
  eventId: string;
411
408
  cursorStart: number;
412
409
  expiresAt: number;
413
410
  }, {
414
- tenantId: import("convex/values").VString<string, "required">;
411
+ userScope: import("convex/values").VString<string, "required">;
415
412
  streamId: import("convex/values").VString<string, "required">;
416
413
  turnId: import("convex/values").VString<string, "required">;
417
414
  eventId: import("convex/values").VString<string, "required">;
@@ -421,9 +418,9 @@ declare const _default: import("convex/server").SchemaDefinition<{
421
418
  payloadJson: import("convex/values").VString<string, "required">;
422
419
  createdAt: import("convex/values").VFloat64<number, "required">;
423
420
  expiresAt: import("convex/values").VFloat64<number, "required">;
424
- }, "required", "turnId" | "kind" | "createdAt" | "cursorEnd" | "payloadJson" | "streamId" | "tenantId" | "eventId" | "cursorStart" | "expiresAt">, {
425
- tenantId_streamId_cursorStart: ["tenantId", "streamId", "cursorStart", "_creationTime"];
426
- tenantId_streamId_eventId: ["tenantId", "streamId", "eventId", "_creationTime"];
421
+ }, "required", "turnId" | "kind" | "createdAt" | "cursorEnd" | "payloadJson" | "streamId" | "userScope" | "eventId" | "cursorStart" | "expiresAt">, {
422
+ userScope_streamId_cursorStart: ["userScope", "streamId", "cursorStart", "_creationTime"];
423
+ userScope_streamId_eventId: ["userScope", "streamId", "eventId", "_creationTime"];
427
424
  expiresAt: ["expiresAt", "_creationTime"];
428
425
  }, {}, {}>;
429
426
  codex_lifecycle_events: import("convex/server").TableDefinition<import("convex/values").VObject<{
@@ -432,43 +429,41 @@ declare const _default: import("convex/server").SchemaDefinition<{
432
429
  kind: string;
433
430
  createdAt: number;
434
431
  payloadJson: string;
435
- tenantId: string;
432
+ userScope: string;
436
433
  eventId: string;
437
434
  }, {
438
- tenantId: import("convex/values").VString<string, "required">;
435
+ userScope: import("convex/values").VString<string, "required">;
439
436
  threadId: import("convex/values").VString<string, "required">;
440
437
  turnId: import("convex/values").VString<string | undefined, "optional">;
441
438
  eventId: import("convex/values").VString<string, "required">;
442
439
  kind: import("convex/values").VString<string, "required">;
443
440
  payloadJson: import("convex/values").VString<string, "required">;
444
441
  createdAt: import("convex/values").VFloat64<number, "required">;
445
- }, "required", "threadId" | "turnId" | "kind" | "createdAt" | "payloadJson" | "tenantId" | "eventId">, {
446
- tenantId_threadId_createdAt: ["tenantId", "threadId", "createdAt", "_creationTime"];
447
- tenantId_threadId_turnId_createdAt: ["tenantId", "threadId", "turnId", "createdAt", "_creationTime"];
448
- tenantId_threadId_eventId: ["tenantId", "threadId", "eventId", "_creationTime"];
442
+ }, "required", "threadId" | "turnId" | "kind" | "createdAt" | "payloadJson" | "userScope" | "eventId">, {
443
+ userScope_threadId_createdAt: ["userScope", "threadId", "createdAt", "_creationTime"];
444
+ userScope_threadId_turnId_createdAt: ["userScope", "threadId", "turnId", "createdAt", "_creationTime"];
445
+ userScope_threadId_eventId: ["userScope", "threadId", "eventId", "_creationTime"];
449
446
  }, {}, {}>;
450
447
  codex_stream_checkpoints: import("convex/server").TableDefinition<import("convex/values").VObject<{
448
+ userId?: string;
451
449
  threadId: string;
452
450
  updatedAt: number;
453
451
  streamId: string;
454
- tenantId: string;
455
- userId: string;
456
- deviceId: string;
452
+ userScope: string;
457
453
  ackedCursor: number;
458
454
  }, {
459
- tenantId: import("convex/values").VString<string, "required">;
460
- userId: import("convex/values").VString<string, "required">;
461
- deviceId: import("convex/values").VString<string, "required">;
455
+ userScope: import("convex/values").VString<string, "required">;
456
+ userId: import("convex/values").VString<string | undefined, "optional">;
462
457
  threadId: import("convex/values").VString<string, "required">;
463
458
  streamId: import("convex/values").VString<string, "required">;
464
459
  ackedCursor: import("convex/values").VFloat64<number, "required">;
465
460
  updatedAt: import("convex/values").VFloat64<number, "required">;
466
- }, "required", "threadId" | "updatedAt" | "streamId" | "tenantId" | "userId" | "deviceId" | "ackedCursor">, {
467
- tenantId_threadId_deviceId_streamId: ["tenantId", "threadId", "deviceId", "streamId", "_creationTime"];
468
- tenantId_threadId_streamId: ["tenantId", "threadId", "streamId", "_creationTime"];
461
+ }, "required", "threadId" | "updatedAt" | "streamId" | "userScope" | "userId" | "ackedCursor">, {
462
+ userScope_threadId_streamId: ["userScope", "threadId", "streamId", "_creationTime"];
469
463
  }, {}, {}>;
470
464
  codex_approvals: import("convex/server").TableDefinition<import("convex/values").VObject<{
471
465
  reason?: string;
466
+ userId?: string;
472
467
  decidedBy?: string;
473
468
  decidedAt?: number;
474
469
  status: "pending" | "declined" | "accepted";
@@ -477,11 +472,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
477
472
  itemId: string;
478
473
  kind: string;
479
474
  createdAt: number;
480
- tenantId: string;
481
- userId: string;
475
+ userScope: string;
482
476
  }, {
483
- tenantId: import("convex/values").VString<string, "required">;
484
- userId: import("convex/values").VString<string, "required">;
477
+ userScope: import("convex/values").VString<string, "required">;
478
+ userId: import("convex/values").VString<string | undefined, "optional">;
485
479
  threadId: import("convex/values").VString<string, "required">;
486
480
  turnId: import("convex/values").VString<string, "required">;
487
481
  itemId: import("convex/values").VString<string, "required">;
@@ -491,14 +485,15 @@ declare const _default: import("convex/server").SchemaDefinition<{
491
485
  decidedBy: import("convex/values").VString<string | undefined, "optional">;
492
486
  decidedAt: import("convex/values").VFloat64<number | undefined, "optional">;
493
487
  createdAt: import("convex/values").VFloat64<number, "required">;
494
- }, "required", "status" | "threadId" | "turnId" | "reason" | "itemId" | "kind" | "createdAt" | "tenantId" | "userId" | "decidedBy" | "decidedAt">, {
495
- tenantId_threadId_status: ["tenantId", "threadId", "status", "_creationTime"];
496
- tenantId_userId_status_createdAt_threadId_itemId: ["tenantId", "userId", "status", "createdAt", "threadId", "itemId", "_creationTime"];
497
- tenantId_userId_threadId_status_createdAt_itemId: ["tenantId", "userId", "threadId", "status", "createdAt", "itemId", "_creationTime"];
498
- tenantId_threadId_turnId_itemId: ["tenantId", "threadId", "turnId", "itemId", "_creationTime"];
488
+ }, "required", "status" | "threadId" | "turnId" | "reason" | "itemId" | "kind" | "createdAt" | "userScope" | "userId" | "decidedBy" | "decidedAt">, {
489
+ userScope_threadId_status: ["userScope", "threadId", "status", "_creationTime"];
490
+ userScope_userId_status_createdAt_threadId_itemId: ["userScope", "userId", "status", "createdAt", "threadId", "itemId", "_creationTime"];
491
+ userScope_userId_threadId_status_createdAt_itemId: ["userScope", "userId", "threadId", "status", "createdAt", "itemId", "_creationTime"];
492
+ userScope_threadId_turnId_itemId: ["userScope", "threadId", "turnId", "itemId", "_creationTime"];
499
493
  }, {}, {}>;
500
494
  codex_server_requests: import("convex/server").TableDefinition<import("convex/values").VObject<{
501
495
  reason?: string;
496
+ userId?: string;
502
497
  questionsJson?: string;
503
498
  responseJson?: string;
504
499
  resolvedAt?: number;
@@ -510,13 +505,12 @@ declare const _default: import("convex/server").SchemaDefinition<{
510
505
  createdAt: number;
511
506
  updatedAt: number;
512
507
  payloadJson: string;
513
- tenantId: string;
514
- userId: string;
508
+ userScope: string;
515
509
  requestIdType: "string" | "number";
516
510
  requestIdText: string;
517
511
  }, {
518
- tenantId: import("convex/values").VString<string, "required">;
519
- userId: import("convex/values").VString<string, "required">;
512
+ userScope: import("convex/values").VString<string, "required">;
513
+ userId: import("convex/values").VString<string | undefined, "optional">;
520
514
  threadId: import("convex/values").VString<string, "required">;
521
515
  turnId: import("convex/values").VString<string, "required">;
522
516
  itemId: import("convex/values").VString<string, "required">;
@@ -531,10 +525,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
531
525
  createdAt: import("convex/values").VFloat64<number, "required">;
532
526
  updatedAt: import("convex/values").VFloat64<number, "required">;
533
527
  resolvedAt: import("convex/values").VFloat64<number | undefined, "optional">;
534
- }, "required", "method" | "status" | "threadId" | "turnId" | "reason" | "itemId" | "createdAt" | "updatedAt" | "payloadJson" | "tenantId" | "userId" | "requestIdType" | "requestIdText" | "questionsJson" | "responseJson" | "resolvedAt">, {
535
- tenantId_threadId_requestIdType_requestIdText: ["tenantId", "threadId", "requestIdType", "requestIdText", "_creationTime"];
536
- tenantId_userId_status_updatedAt: ["tenantId", "userId", "status", "updatedAt", "_creationTime"];
537
- tenantId_userId_threadId_status_updatedAt: ["tenantId", "userId", "threadId", "status", "updatedAt", "_creationTime"];
528
+ }, "required", "method" | "status" | "threadId" | "turnId" | "reason" | "itemId" | "createdAt" | "updatedAt" | "payloadJson" | "userScope" | "userId" | "requestIdType" | "requestIdText" | "questionsJson" | "responseJson" | "resolvedAt">, {
529
+ userScope_threadId_requestIdType_requestIdText: ["userScope", "threadId", "requestIdType", "requestIdText", "_creationTime"];
530
+ userScope_userId_status_updatedAt: ["userScope", "userId", "status", "updatedAt", "_creationTime"];
531
+ userScope_userId_threadId_status_updatedAt: ["userScope", "userId", "threadId", "status", "updatedAt", "_creationTime"];
538
532
  }, {}, {}>;
539
533
  }, true>;
540
534
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8HAexB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,wBAuTG"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8HAexB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,wBAmTG"}