@fleettools/squawk 0.1.0 → 0.1.1

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 (66) hide show
  1. package/package.json +1 -1
  2. package/AGENTS.md +0 -28
  3. package/dist/src/db/checkpoint-storage.d.ts +0 -19
  4. package/dist/src/db/checkpoint-storage.d.ts.map +0 -1
  5. package/dist/src/db/checkpoint-storage.js +0 -355
  6. package/dist/src/db/checkpoint-storage.js.map +0 -1
  7. package/dist/src/db/index.d.ts +0 -30
  8. package/dist/src/db/index.d.ts.map +0 -1
  9. package/dist/src/db/index.js +0 -329
  10. package/dist/src/db/index.js.map +0 -1
  11. package/dist/src/db/sqlite.d.ts +0 -31
  12. package/dist/src/db/sqlite.d.ts.map +0 -1
  13. package/dist/src/db/sqlite.js +0 -558
  14. package/dist/src/db/sqlite.js.map +0 -1
  15. package/dist/src/db/types.d.ts +0 -611
  16. package/dist/src/db/types.d.ts.map +0 -1
  17. package/dist/src/db/types.js +0 -4
  18. package/dist/src/db/types.js.map +0 -1
  19. package/dist/src/index.d.ts +0 -2
  20. package/dist/src/index.d.ts.map +0 -1
  21. package/dist/src/index.js +0 -285
  22. package/dist/src/index.js.map +0 -1
  23. package/dist/src/recovery/checkpointing.d.ts +0 -244
  24. package/dist/src/recovery/checkpointing.d.ts.map +0 -1
  25. package/dist/src/recovery/checkpointing.js +0 -511
  26. package/dist/src/recovery/checkpointing.js.map +0 -1
  27. package/dist/src/recovery/detection.d.ts +0 -137
  28. package/dist/src/recovery/detection.d.ts.map +0 -1
  29. package/dist/src/recovery/detection.js +0 -240
  30. package/dist/src/recovery/detection.js.map +0 -1
  31. package/dist/src/recovery/detector.d.ts +0 -34
  32. package/dist/src/recovery/detector.d.ts.map +0 -1
  33. package/dist/src/recovery/detector.js +0 -42
  34. package/dist/src/recovery/detector.js.map +0 -1
  35. package/dist/src/recovery/index.d.ts +0 -3
  36. package/dist/src/recovery/index.d.ts.map +0 -1
  37. package/dist/src/recovery/index.js +0 -3
  38. package/dist/src/recovery/index.js.map +0 -1
  39. package/dist/src/recovery/restorer.d.ts +0 -51
  40. package/dist/src/recovery/restorer.d.ts.map +0 -1
  41. package/dist/src/recovery/restorer.js +0 -266
  42. package/dist/src/recovery/restorer.js.map +0 -1
  43. package/dist/src/schemas.d.ts +0 -142
  44. package/dist/src/schemas.d.ts.map +0 -1
  45. package/dist/src/schemas.js +0 -110
  46. package/dist/src/schemas.js.map +0 -1
  47. package/src/db/checkpoint-storage.ts +0 -443
  48. package/src/db/index.d.ts +0 -30
  49. package/src/db/index.d.ts.map +0 -1
  50. package/src/db/index.js.map +0 -1
  51. package/src/db/index.ts +0 -417
  52. package/src/db/schema.sql +0 -112
  53. package/src/db/sqlite.d.ts +0 -31
  54. package/src/db/sqlite.d.ts.map +0 -1
  55. package/src/db/sqlite.js +0 -667
  56. package/src/db/sqlite.js.map +0 -1
  57. package/src/db/sqlite.ts +0 -677
  58. package/src/db/types.d.ts +0 -612
  59. package/src/db/types.d.ts.map +0 -1
  60. package/src/db/types.js +0 -4
  61. package/src/db/types.js.map +0 -1
  62. package/src/db/types.ts +0 -771
  63. package/src/index.ts +0 -332
  64. package/src/recovery/detector.ts +0 -82
  65. package/src/recovery/index.ts +0 -3
  66. package/src/recovery/restorer.ts +0 -377
@@ -1,266 +0,0 @@
1
- export class StateRestorer {
2
- db;
3
- constructor(db) {
4
- this.db = db;
5
- }
6
- async restoreFromCheckpoint(checkpointId, options = {}) {
7
- const { dryRun = false, forceLocks = false } = options;
8
- try {
9
- const checkpoint = await this.db.checkpoints.getById(checkpointId);
10
- if (!checkpoint) {
11
- return {
12
- success: false,
13
- checkpoint_id: checkpointId,
14
- mission_id: '',
15
- recovery_context: {},
16
- restored: { sorties: 0, locks: 0, messages: 0 },
17
- errors: [`Checkpoint not found: ${checkpointId}`],
18
- warnings: []
19
- };
20
- }
21
- return await this.restore(checkpoint, { dryRun, forceLocks });
22
- }
23
- catch (error) {
24
- return {
25
- success: false,
26
- checkpoint_id: checkpointId,
27
- mission_id: '',
28
- recovery_context: {},
29
- restored: { sorties: 0, locks: 0, messages: 0 },
30
- errors: [`Restore failed: ${error instanceof Error ? error.message : String(error)}`],
31
- warnings: []
32
- };
33
- }
34
- }
35
- async restoreLatest(missionId, options = {}) {
36
- const { dryRun = false, forceLocks = false } = options;
37
- try {
38
- const checkpoint = await this.db.checkpoints.getLatestByMission(missionId);
39
- if (!checkpoint) {
40
- return {
41
- success: false,
42
- checkpoint_id: '',
43
- mission_id: missionId,
44
- recovery_context: {},
45
- restored: { sorties: 0, locks: 0, messages: 0 },
46
- errors: [`No checkpoints found for mission: ${missionId}`],
47
- warnings: []
48
- };
49
- }
50
- return await this.restore(checkpoint, { dryRun, forceLocks });
51
- }
52
- catch (error) {
53
- return {
54
- success: false,
55
- checkpoint_id: '',
56
- mission_id: missionId,
57
- recovery_context: {},
58
- restored: { sorties: 0, locks: 0, messages: 0 },
59
- errors: [`Restore failed: ${error instanceof Error ? error.message : String(error)}`],
60
- warnings: []
61
- };
62
- }
63
- }
64
- async restore(checkpoint, options) {
65
- const { dryRun = false, forceLocks = false } = options;
66
- const now = new Date().toISOString();
67
- const result = {
68
- success: true,
69
- checkpoint_id: checkpoint.id,
70
- mission_id: checkpoint.mission_id,
71
- recovery_context: {
72
- last_action: 'Restored from checkpoint',
73
- next_steps: this.extractNextSteps(checkpoint),
74
- blockers: [],
75
- files_modified: this.extractModifiedFiles(checkpoint),
76
- mission_summary: `${checkpoint.mission_id} checkpoint restoration`,
77
- elapsed_time_ms: Date.now() - new Date(checkpoint.timestamp).getTime(),
78
- last_activity_at: checkpoint.timestamp
79
- },
80
- restored: { sorties: 0, locks: 0, messages: 0 },
81
- errors: [],
82
- warnings: []
83
- };
84
- try {
85
- if (!dryRun) {
86
- await this.db.beginTransaction();
87
- }
88
- // 1. Restore sortie states
89
- for (const sortie of checkpoint.sorties || []) {
90
- try {
91
- if (!dryRun) {
92
- await this.db.sorties.update(sortie.id, {
93
- status: sortie.status,
94
- assigned_to: sortie.assigned_to,
95
- files: sortie.files,
96
- progress: sortie.progress,
97
- progress_notes: sortie.progress_notes
98
- });
99
- }
100
- result.restored.sorties++;
101
- }
102
- catch (error) {
103
- result.errors.push(`Failed to restore sortie ${sortie.id}: ${error}`);
104
- }
105
- }
106
- for (const lock of checkpoint.active_locks || []) {
107
- try {
108
- const lockAge = Date.now() - new Date(lock.acquired_at).getTime();
109
- const isExpired = lockAge > (lock.timeout_ms || 30000);
110
- if (isExpired) {
111
- result.warnings.push(`Lock ${lock.id} expired, skipping re-acquisition`);
112
- result.recovery_context.blockers.push(`Expired lock on ${lock.file} (held by ${lock.held_by})`);
113
- continue;
114
- }
115
- if (!dryRun) {
116
- const lockResult = await this.db.locks.acquire({
117
- file: lock.file,
118
- specialist_id: lock.held_by,
119
- timeout_ms: lock.timeout_ms,
120
- purpose: lock.purpose
121
- });
122
- if (lockResult.conflict) {
123
- if (forceLocks) {
124
- await this.db.locks.forceRelease(lockResult.existing_lock?.id || '');
125
- await this.db.locks.acquire({
126
- file: lock.file,
127
- specialist_id: lock.held_by,
128
- timeout_ms: lock.timeout_ms,
129
- purpose: lock.purpose
130
- });
131
- }
132
- else {
133
- result.warnings.push(`Lock conflict on ${lock.file}, skipping re-acquisition`);
134
- result.recovery_context.blockers.push(`Lock conflict on ${lock.file} (held by ${lock.held_by})`);
135
- continue;
136
- }
137
- }
138
- }
139
- result.restored.locks++;
140
- }
141
- catch (error) {
142
- result.errors.push(`Failed to restore lock ${lock.id}: ${error}`);
143
- }
144
- }
145
- // 3. Requeue pending messages
146
- for (const message of checkpoint.pending_messages || []) {
147
- try {
148
- if (!message.delivered) {
149
- if (!dryRun) {
150
- await this.db.messages.requeue(message.id);
151
- }
152
- result.restored.messages++;
153
- }
154
- }
155
- catch (error) {
156
- result.errors.push(`Failed to requeue message ${message.id}: ${error}`);
157
- }
158
- }
159
- // 4. Mark checkpoint as consumed (only if not dry run and successful)
160
- if (!dryRun && result.errors.length === 0) {
161
- await this.db.checkpoints.markConsumed(checkpoint.id);
162
- }
163
- // 5. Emit fleet_recovered event
164
- if (!dryRun && result.errors.length === 0) {
165
- await this.db.events.append({
166
- event_type: 'fleet_recovered',
167
- stream_type: 'mission',
168
- stream_id: checkpoint.mission_id,
169
- data: {
170
- checkpoint_id: checkpoint.id,
171
- restored_at: now,
172
- sorties_restored: result.restored.sorties,
173
- locks_restored: result.restored.locks,
174
- messages_requeued: result.restored.messages,
175
- warnings: result.warnings.length
176
- },
177
- occurred_at: now
178
- });
179
- }
180
- if (!dryRun) {
181
- await this.db.commitTransaction();
182
- }
183
- return result;
184
- }
185
- catch (error) {
186
- if (!dryRun) {
187
- try {
188
- await this.db.rollbackTransaction();
189
- }
190
- catch (rollbackError) {
191
- result.errors.push(`Failed to rollback transaction: ${rollbackError}`);
192
- }
193
- }
194
- result.success = false;
195
- result.errors.push(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
196
- return result;
197
- }
198
- }
199
- extractNextSteps(checkpoint) {
200
- const steps = [];
201
- const inProgressSorties = checkpoint.sorties?.filter((s) => s.status === 'in_progress') || [];
202
- const blockedSorties = checkpoint.sorties?.filter((s) => s.progress_notes && s.progress_notes.toLowerCase().includes('blocked')) || [];
203
- if (inProgressSorties && inProgressSorties.length > 0) {
204
- steps.push('Continue work on in-progress sorties');
205
- }
206
- if (blockedSorties && blockedSorties.length > 0) {
207
- steps.push('Resolve blockers for stuck sorties');
208
- }
209
- if (checkpoint.active_locks && checkpoint.active_locks.length > 0) {
210
- steps.push('Verify file lock integrity');
211
- }
212
- if (checkpoint.pending_messages && checkpoint.pending_messages.length > 0) {
213
- steps.push('Process pending messages');
214
- }
215
- if (steps.length === 0) {
216
- steps.push('Review mission status and continue');
217
- }
218
- return steps;
219
- }
220
- extractModifiedFiles(checkpoint) {
221
- const files = new Set();
222
- checkpoint.sorties?.forEach((sortie) => {
223
- sortie.files?.forEach((file) => files.add(file));
224
- });
225
- checkpoint.active_locks?.forEach((lock) => {
226
- files.add(lock.file);
227
- });
228
- return Array.from(files);
229
- }
230
- formatRecoveryPrompt(result) {
231
- const { recovery_context, restored, errors, warnings } = result;
232
- const sections = [
233
- '# Mission Recovery Context',
234
- '',
235
- '## Mission Summary',
236
- recovery_context.mission_summary,
237
- '',
238
- '## Last Action',
239
- recovery_context.last_action,
240
- '',
241
- '## Time Context',
242
- `- Last activity: ${recovery_context.last_activity_at}`,
243
- `- Elapsed time: ${Math.round(recovery_context.elapsed_time_ms / 60000)} minutes`,
244
- '',
245
- '## Next Steps',
246
- ...recovery_context.next_steps.map((step) => `- ${step}`),
247
- ''
248
- ];
249
- if (recovery_context.files_modified.length > 0) {
250
- sections.push('## Files Modified', ...recovery_context.files_modified.map((file) => `- ${file}`), '');
251
- }
252
- if (recovery_context.blockers.length > 0) {
253
- sections.push('## Blockers', ...recovery_context.blockers.map((blocker) => `- ${blocker}`), '');
254
- }
255
- sections.push('## Restoration Summary', `- Sorties restored: ${restored.sorties}`, `- Locks restored: ${restored.locks}`, `- Messages requeued: ${restored.messages}`, '');
256
- if (warnings.length > 0) {
257
- sections.push('## Warnings', ...warnings.map(warning => `- ${warning}`), '');
258
- }
259
- if (errors.length > 0) {
260
- sections.push('## Errors', ...errors.map(error => `- ${error}`), '');
261
- }
262
- sections.push('---', '*This context was automatically generated from checkpoint restoration.*');
263
- return sections.join('\n');
264
- }
265
- }
266
- //# sourceMappingURL=restorer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"restorer.js","sourceRoot":"","sources":["../../../src/recovery/restorer.ts"],"names":[],"mappings":"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"}
@@ -1,142 +0,0 @@
1
- /**
2
- * FleetTools API Validation Schemas
3
- *
4
- * Provides Zod schemas for all API endpoints to ensure type safety
5
- * and prevent injection attacks through proper validation.
6
- */
7
- import { z } from 'zod';
8
- export declare const StreamIdSchema: z.ZodString;
9
- export declare const EventIdSchema: z.ZodString;
10
- export declare const LockIdSchema: z.ZodString;
11
- export declare const CursorIdSchema: z.ZodString;
12
- export declare const SpecialistIdSchema: z.ZodString;
13
- export declare const TimestampSchema: z.ZodOptional<z.ZodString>;
14
- export declare const JsonDataSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
15
- export declare const MetadataSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
16
- export declare const EventSchema: z.ZodObject<{
17
- id: z.ZodString;
18
- type: z.ZodString;
19
- stream_id: z.ZodString;
20
- data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
21
- causation_id: z.ZodOptional<z.ZodString>;
22
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
- }, z.core.$strip>;
24
- export declare const EventArraySchema: z.ZodArray<z.ZodObject<{
25
- id: z.ZodString;
26
- type: z.ZodString;
27
- stream_id: z.ZodString;
28
- data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
29
- causation_id: z.ZodOptional<z.ZodString>;
30
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
31
- }, z.core.$strip>>;
32
- export declare const AppendEventsRequestSchema: z.ZodObject<{
33
- stream_id: z.ZodString;
34
- events: z.ZodArray<z.ZodObject<{
35
- id: z.ZodString;
36
- type: z.ZodString;
37
- stream_id: z.ZodString;
38
- data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
39
- causation_id: z.ZodOptional<z.ZodString>;
40
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
41
- }, z.core.$strip>>;
42
- }, z.core.$strip>;
43
- export declare const MailboxResponseSchema: z.ZodObject<{
44
- id: z.ZodString;
45
- created_at: z.ZodString;
46
- updated_at: z.ZodString;
47
- events: z.ZodOptional<z.ZodArray<z.ZodObject<{
48
- id: z.ZodString;
49
- type: z.ZodString;
50
- stream_id: z.ZodString;
51
- data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
52
- causation_id: z.ZodOptional<z.ZodString>;
53
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
54
- }, z.core.$strip>>>;
55
- }, z.core.$strip>;
56
- export declare const CursorAdvanceRequestSchema: z.ZodObject<{
57
- stream_id: z.ZodString;
58
- position: z.ZodNumber;
59
- }, z.core.$strip>;
60
- export declare const CursorSchema: z.ZodObject<{
61
- id: z.ZodString;
62
- stream_id: z.ZodString;
63
- position: z.ZodNumber;
64
- consumer_id: z.ZodOptional<z.ZodString>;
65
- created_at: z.ZodString;
66
- updated_at: z.ZodString;
67
- }, z.core.$strip>;
68
- export declare const FilePathSchema: z.ZodString;
69
- export declare const LockPurposeSchema: z.ZodOptional<z.ZodEnum<{
70
- edit: "edit";
71
- read: "read";
72
- delete: "delete";
73
- }>>;
74
- export declare const AcquireLockRequestSchema: z.ZodObject<{
75
- file: z.ZodString;
76
- specialist_id: z.ZodString;
77
- timeout_ms: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
78
- purpose: z.ZodOptional<z.ZodEnum<{
79
- edit: "edit";
80
- read: "read";
81
- delete: "delete";
82
- }>>;
83
- checksum: z.ZodOptional<z.ZodString>;
84
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
85
- }, z.core.$strip>;
86
- export declare const ReleaseLockRequestSchema: z.ZodObject<{
87
- lock_id: z.ZodString;
88
- specialist_id: z.ZodOptional<z.ZodString>;
89
- }, z.core.$strip>;
90
- export declare const LockSchema: z.ZodObject<{
91
- id: z.ZodString;
92
- file: z.ZodString;
93
- reserved_by: z.ZodString;
94
- reserved_at: z.ZodString;
95
- released_at: z.ZodNullable<z.ZodString>;
96
- purpose: z.ZodString;
97
- checksum: z.ZodNullable<z.ZodString>;
98
- timeout_ms: z.ZodNumber;
99
- metadata: z.ZodNullable<z.ZodString>;
100
- }, z.core.$strip>;
101
- export declare const CoordinatorStatusSchema: z.ZodObject<{
102
- active_mailboxes: z.ZodNumber;
103
- active_locks: z.ZodNumber;
104
- timestamp: z.ZodString;
105
- }, z.core.$strip>;
106
- export declare const ErrorResponseSchema: z.ZodObject<{
107
- error: z.ZodString;
108
- }, z.core.$strip>;
109
- export declare const HealthResponseSchema: z.ZodObject<{
110
- status: z.ZodLiteral<"healthy">;
111
- service: z.ZodLiteral<"squawk">;
112
- timestamp: z.ZodString;
113
- }, z.core.$strip>;
114
- export declare const MailboxAppendResponseSchema: z.ZodObject<{
115
- mailbox: z.ZodObject<{
116
- id: z.ZodString;
117
- created_at: z.ZodString;
118
- updated_at: z.ZodString;
119
- events: z.ZodOptional<z.ZodArray<z.ZodObject<{
120
- id: z.ZodString;
121
- type: z.ZodString;
122
- stream_id: z.ZodString;
123
- data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
124
- causation_id: z.ZodOptional<z.ZodString>;
125
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
- }, z.core.$strip>>>;
127
- }, z.core.$strip>;
128
- inserted: z.ZodNumber;
129
- }, z.core.$strip>;
130
- export type AppendEventsRequest = z.infer<typeof AppendEventsRequestSchema>;
131
- export type Event = z.infer<typeof EventSchema>;
132
- export type MailboxResponse = z.infer<typeof MailboxResponseSchema>;
133
- export type CursorAdvanceRequest = z.infer<typeof CursorAdvanceRequestSchema>;
134
- export type Cursor = z.infer<typeof CursorSchema>;
135
- export type AcquireLockRequest = z.infer<typeof AcquireLockRequestSchema>;
136
- export type ReleaseLockRequest = z.infer<typeof ReleaseLockRequestSchema>;
137
- export type Lock = z.infer<typeof LockSchema>;
138
- export type CoordinatorStatus = z.infer<typeof CoordinatorStatusSchema>;
139
- export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
140
- export type HealthResponse = z.infer<typeof HealthResponseSchema>;
141
- export type MailboxAppendResponse = z.infer<typeof MailboxAppendResponseSchema>;
142
- //# sourceMappingURL=schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,cAAc,aAAmG,CAAC;AAC/H,eAAO,MAAM,aAAa,aAAiG,CAAC;AAC5H,eAAO,MAAM,YAAY,aAA+F,CAAC;AACzH,eAAO,MAAM,cAAc,aAAmG,CAAC;AAC/H,eAAO,MAAM,kBAAkB,aAA2G,CAAC;AAE3I,eAAO,MAAM,eAAe,4BAAmC,CAAC;AAChE,eAAO,MAAM,cAAc,uDAA+C,CAAC;AAC3E,eAAO,MAAM,cAAc,uDAA+C,CAAC;AAM3E,eAAO,MAAM,WAAW;;;;;;;iBAOtB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;kBAAuB,CAAC;AAErD,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAGpC,CAAC;AAMH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAKhC,CAAC;AAMH,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;iBAOvB,CAAC;AAMH,eAAO,MAAM,cAAc,aAA8B,CAAC;AAC1D,eAAO,MAAM,iBAAiB;;;;GAAgD,CAAC;AAE/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAOnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;iBAUrB,CAAC;AAMH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AAMH,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;iBAGtC,CAAC;AAMH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -1,110 +0,0 @@
1
- /**
2
- * FleetTools API Validation Schemas
3
- *
4
- * Provides Zod schemas for all API endpoints to ensure type safety
5
- * and prevent injection attacks through proper validation.
6
- */
7
- import { z } from 'zod';
8
- // ============================================================================
9
- // COMMON SCHEMAS
10
- // ============================================================================
11
- export const StreamIdSchema = z.string().min(1, { message: "Stream ID required" }).max(255, { message: "Stream ID too long" });
12
- export const EventIdSchema = z.string().min(1, { message: "Event ID required" }).max(255, { message: "Event ID too long" });
13
- export const LockIdSchema = z.string().min(1, { message: "Lock ID required" }).max(255, { message: "Lock ID too long" });
14
- export const CursorIdSchema = z.string().min(1, { message: "Cursor ID required" }).max(255, { message: "Cursor ID too long" });
15
- export const SpecialistIdSchema = z.string().min(1, { message: "Specialist ID required" }).max(255, { message: "Specialist ID too long" });
16
- export const TimestampSchema = z.string().datetime().optional();
17
- export const JsonDataSchema = z.record(z.string(), z.unknown()).optional();
18
- export const MetadataSchema = z.record(z.string(), z.unknown()).optional();
19
- // ============================================================================
20
- // EVENT SCHEMAS
21
- // ============================================================================
22
- export const EventSchema = z.object({
23
- id: z.string().min(1),
24
- type: z.string().min(1),
25
- stream_id: z.string().min(1),
26
- data: z.record(z.string(), z.unknown()),
27
- causation_id: z.string().optional(),
28
- metadata: z.record(z.string(), z.unknown()).optional(),
29
- });
30
- export const EventArraySchema = z.array(EventSchema);
31
- export const AppendEventsRequestSchema = z.object({
32
- stream_id: StreamIdSchema,
33
- events: EventArraySchema.min(1),
34
- });
35
- // ============================================================================
36
- // MAILBOX SCHEMAS
37
- // ============================================================================
38
- export const MailboxResponseSchema = z.object({
39
- id: z.string(),
40
- created_at: z.string(),
41
- updated_at: z.string(),
42
- events: z.array(EventSchema).optional(),
43
- });
44
- // ============================================================================
45
- // CURSOR SCHEMAS
46
- // ============================================================================
47
- export const CursorAdvanceRequestSchema = z.object({
48
- stream_id: StreamIdSchema,
49
- position: z.number().int().min(0),
50
- });
51
- export const CursorSchema = z.object({
52
- id: z.string(),
53
- stream_id: z.string(),
54
- position: z.number().int().min(0),
55
- consumer_id: z.string().optional(),
56
- created_at: z.string(),
57
- updated_at: z.string(),
58
- });
59
- // ============================================================================
60
- // LOCK SCHEMAS
61
- // ============================================================================
62
- export const FilePathSchema = z.string().min(1).max(1024);
63
- export const LockPurposeSchema = z.enum(['edit', 'read', 'delete']).optional();
64
- export const AcquireLockRequestSchema = z.object({
65
- file: FilePathSchema,
66
- specialist_id: SpecialistIdSchema,
67
- timeout_ms: z.number().int().min(1000).max(3600000).optional().default(30000),
68
- purpose: LockPurposeSchema,
69
- checksum: z.string().optional(),
70
- metadata: JsonDataSchema,
71
- });
72
- export const ReleaseLockRequestSchema = z.object({
73
- lock_id: LockIdSchema,
74
- specialist_id: SpecialistIdSchema.optional(),
75
- });
76
- export const LockSchema = z.object({
77
- id: z.string(),
78
- file: z.string(),
79
- reserved_by: z.string(),
80
- reserved_at: z.string(),
81
- released_at: z.string().nullable(),
82
- purpose: z.string(),
83
- checksum: z.string().nullable(),
84
- timeout_ms: z.number(),
85
- metadata: z.string().nullable(),
86
- });
87
- // ============================================================================
88
- // COORDINATOR SCHEMAS
89
- // ============================================================================
90
- export const CoordinatorStatusSchema = z.object({
91
- active_mailboxes: z.number(),
92
- active_locks: z.number(),
93
- timestamp: z.string(),
94
- });
95
- // ============================================================================
96
- // RESPONSE SCHEMAS
97
- // ============================================================================
98
- export const ErrorResponseSchema = z.object({
99
- error: z.string(),
100
- });
101
- export const HealthResponseSchema = z.object({
102
- status: z.literal('healthy'),
103
- service: z.literal('squawk'),
104
- timestamp: z.string(),
105
- });
106
- export const MailboxAppendResponseSchema = z.object({
107
- mailbox: MailboxResponseSchema,
108
- inserted: z.number(),
109
- });
110
- //# sourceMappingURL=schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"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"}