steroids-cli 0.12.6 → 0.12.7

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 (182) hide show
  1. package/README.md +52 -0
  2. package/dist/commands/gc.d.ts.map +1 -1
  3. package/dist/commands/gc.js +10 -0
  4. package/dist/commands/gc.js.map +1 -1
  5. package/dist/commands/llm-content.d.ts +2 -0
  6. package/dist/commands/llm-content.d.ts.map +1 -0
  7. package/dist/commands/llm-content.js +319 -0
  8. package/dist/commands/llm-content.js.map +1 -0
  9. package/dist/commands/llm.d.ts.map +1 -1
  10. package/dist/commands/llm.js +22 -290
  11. package/dist/commands/llm.js.map +1 -1
  12. package/dist/commands/loop-phases-coder.js +1 -1
  13. package/dist/commands/loop-phases-coder.js.map +1 -1
  14. package/dist/commands/loop-phases-reviewer-follow-ups.d.ts +7 -0
  15. package/dist/commands/loop-phases-reviewer-follow-ups.d.ts.map +1 -0
  16. package/dist/commands/loop-phases-reviewer-follow-ups.js +44 -0
  17. package/dist/commands/loop-phases-reviewer-follow-ups.js.map +1 -0
  18. package/dist/commands/loop-phases-reviewer.d.ts.map +1 -1
  19. package/dist/commands/loop-phases-reviewer.js +6 -45
  20. package/dist/commands/loop-phases-reviewer.js.map +1 -1
  21. package/dist/config/loader.d.ts +4 -0
  22. package/dist/config/loader.d.ts.map +1 -1
  23. package/dist/config/loader.js +27 -0
  24. package/dist/config/loader.js.map +1 -1
  25. package/dist/config/schema.d.ts.map +1 -1
  26. package/dist/config/schema.js +111 -0
  27. package/dist/config/schema.js.map +1 -1
  28. package/dist/config/validator.d.ts.map +1 -1
  29. package/dist/config/validator.js +74 -0
  30. package/dist/config/validator.js.map +1 -1
  31. package/dist/database/intake-queries.d.ts +51 -0
  32. package/dist/database/intake-queries.d.ts.map +1 -0
  33. package/dist/database/intake-queries.js +250 -0
  34. package/dist/database/intake-queries.js.map +1 -0
  35. package/dist/database/queries.d.ts +4 -0
  36. package/dist/database/queries.d.ts.map +1 -1
  37. package/dist/database/queries.js.map +1 -1
  38. package/dist/database/schema.d.ts +2 -2
  39. package/dist/database/schema.d.ts.map +1 -1
  40. package/dist/database/schema.js +49 -0
  41. package/dist/database/schema.js.map +1 -1
  42. package/dist/git/section-pr.d.ts +3 -2
  43. package/dist/git/section-pr.d.ts.map +1 -1
  44. package/dist/git/section-pr.js +95 -15
  45. package/dist/git/section-pr.js.map +1 -1
  46. package/dist/hooks/events.d.ts +10 -1
  47. package/dist/hooks/events.d.ts.map +1 -1
  48. package/dist/hooks/events.js +23 -1
  49. package/dist/hooks/events.js.map +1 -1
  50. package/dist/hooks/integration.d.ts +22 -0
  51. package/dist/hooks/integration.d.ts.map +1 -1
  52. package/dist/hooks/integration.js +52 -0
  53. package/dist/hooks/integration.js.map +1 -1
  54. package/dist/hooks/payload-factories.d.ts +17 -0
  55. package/dist/hooks/payload-factories.d.ts.map +1 -0
  56. package/dist/hooks/payload-factories.js +69 -0
  57. package/dist/hooks/payload-factories.js.map +1 -0
  58. package/dist/hooks/payload-types.d.ts +169 -0
  59. package/dist/hooks/payload-types.d.ts.map +1 -0
  60. package/dist/hooks/payload-types.js +3 -0
  61. package/dist/hooks/payload-types.js.map +1 -0
  62. package/dist/hooks/payload-validation.d.ts +6 -0
  63. package/dist/hooks/payload-validation.d.ts.map +1 -0
  64. package/dist/hooks/payload-validation.js +186 -0
  65. package/dist/hooks/payload-validation.js.map +1 -0
  66. package/dist/hooks/payload.d.ts +6 -334
  67. package/dist/hooks/payload.d.ts.map +1 -1
  68. package/dist/hooks/payload.js +21 -307
  69. package/dist/hooks/payload.js.map +1 -1
  70. package/dist/hooks/template-resolvers.d.ts +9 -0
  71. package/dist/hooks/template-resolvers.d.ts.map +1 -0
  72. package/dist/hooks/template-resolvers.js +133 -0
  73. package/dist/hooks/template-resolvers.js.map +1 -0
  74. package/dist/hooks/templates.d.ts +13 -0
  75. package/dist/hooks/templates.d.ts.map +1 -1
  76. package/dist/hooks/templates.js +40 -118
  77. package/dist/hooks/templates.js.map +1 -1
  78. package/dist/index.js +2 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/intake/github-gate-api.d.ts +37 -0
  81. package/dist/intake/github-gate-api.d.ts.map +1 -0
  82. package/dist/intake/github-gate-api.js +210 -0
  83. package/dist/intake/github-gate-api.js.map +1 -0
  84. package/dist/intake/github-gate.d.ts +22 -0
  85. package/dist/intake/github-gate.d.ts.map +1 -0
  86. package/dist/intake/github-gate.js +261 -0
  87. package/dist/intake/github-gate.js.map +1 -0
  88. package/dist/intake/github-issues-connector.d.ts +26 -0
  89. package/dist/intake/github-issues-connector.d.ts.map +1 -0
  90. package/dist/intake/github-issues-connector.js +350 -0
  91. package/dist/intake/github-issues-connector.js.map +1 -0
  92. package/dist/intake/index.d.ts +10 -0
  93. package/dist/intake/index.d.ts.map +1 -0
  94. package/dist/intake/index.js +26 -0
  95. package/dist/intake/index.js.map +1 -0
  96. package/dist/intake/pipeline-glue.d.ts +61 -0
  97. package/dist/intake/pipeline-glue.d.ts.map +1 -0
  98. package/dist/intake/pipeline-glue.js +137 -0
  99. package/dist/intake/pipeline-glue.js.map +1 -0
  100. package/dist/intake/poller.d.ts +28 -0
  101. package/dist/intake/poller.d.ts.map +1 -0
  102. package/dist/intake/poller.js +186 -0
  103. package/dist/intake/poller.js.map +1 -0
  104. package/dist/intake/post-pr.d.ts +17 -0
  105. package/dist/intake/post-pr.d.ts.map +1 -0
  106. package/dist/intake/post-pr.js +78 -0
  107. package/dist/intake/post-pr.js.map +1 -0
  108. package/dist/intake/registry.d.ts +17 -0
  109. package/dist/intake/registry.d.ts.map +1 -0
  110. package/dist/intake/registry.js +57 -0
  111. package/dist/intake/registry.js.map +1 -0
  112. package/dist/intake/reviewer-approval.d.ts +10 -0
  113. package/dist/intake/reviewer-approval.d.ts.map +1 -0
  114. package/dist/intake/reviewer-approval.js +70 -0
  115. package/dist/intake/reviewer-approval.js.map +1 -0
  116. package/dist/intake/task-reference.d.ts +10 -0
  117. package/dist/intake/task-reference.d.ts.map +1 -0
  118. package/dist/intake/task-reference.js +23 -0
  119. package/dist/intake/task-reference.js.map +1 -0
  120. package/dist/intake/task-templates.d.ts +25 -0
  121. package/dist/intake/task-templates.d.ts.map +1 -0
  122. package/dist/intake/task-templates.js +98 -0
  123. package/dist/intake/task-templates.js.map +1 -0
  124. package/dist/intake/types.d.ts +103 -0
  125. package/dist/intake/types.d.ts.map +1 -0
  126. package/dist/intake/types.js +3 -0
  127. package/dist/intake/types.js.map +1 -0
  128. package/dist/orchestrator/coder.d.ts +2 -0
  129. package/dist/orchestrator/coder.d.ts.map +1 -1
  130. package/dist/orchestrator/coder.js +25 -2
  131. package/dist/orchestrator/coder.js.map +1 -1
  132. package/dist/providers/gemini.d.ts.map +1 -1
  133. package/dist/providers/gemini.js +7 -14
  134. package/dist/providers/gemini.js.map +1 -1
  135. package/dist/providers/interface.d.ts.map +1 -1
  136. package/dist/providers/interface.js +50 -0
  137. package/dist/providers/interface.js.map +1 -1
  138. package/dist/runners/orchestrator-loop.d.ts.map +1 -1
  139. package/dist/runners/orchestrator-loop.js +7 -0
  140. package/dist/runners/orchestrator-loop.js.map +1 -1
  141. package/dist/runners/system-pressure.d.ts +26 -0
  142. package/dist/runners/system-pressure.d.ts.map +1 -0
  143. package/dist/runners/system-pressure.js +128 -0
  144. package/dist/runners/system-pressure.js.map +1 -0
  145. package/dist/runners/wakeup-checks.d.ts.map +1 -1
  146. package/dist/runners/wakeup-checks.js +16 -1
  147. package/dist/runners/wakeup-checks.js.map +1 -1
  148. package/dist/runners/wakeup-global-cleanup.d.ts +20 -0
  149. package/dist/runners/wakeup-global-cleanup.d.ts.map +1 -0
  150. package/dist/runners/wakeup-global-cleanup.js +317 -0
  151. package/dist/runners/wakeup-global-cleanup.js.map +1 -0
  152. package/dist/runners/wakeup-needed.d.ts +5 -0
  153. package/dist/runners/wakeup-needed.d.ts.map +1 -0
  154. package/dist/runners/wakeup-needed.js +42 -0
  155. package/dist/runners/wakeup-needed.js.map +1 -0
  156. package/dist/runners/wakeup-project-parallel.d.ts +13 -0
  157. package/dist/runners/wakeup-project-parallel.d.ts.map +1 -0
  158. package/dist/runners/wakeup-project-parallel.js +238 -0
  159. package/dist/runners/wakeup-project-parallel.js.map +1 -0
  160. package/dist/runners/wakeup-project.d.ts +10 -0
  161. package/dist/runners/wakeup-project.d.ts.map +1 -0
  162. package/dist/runners/wakeup-project.js +209 -0
  163. package/dist/runners/wakeup-project.js.map +1 -0
  164. package/dist/runners/wakeup-registration.d.ts +2 -0
  165. package/dist/runners/wakeup-registration.d.ts.map +1 -0
  166. package/dist/runners/wakeup-registration.js +42 -0
  167. package/dist/runners/wakeup-registration.js.map +1 -0
  168. package/dist/runners/wakeup-types.d.ts +25 -0
  169. package/dist/runners/wakeup-types.d.ts.map +1 -0
  170. package/dist/runners/wakeup-types.js +3 -0
  171. package/dist/runners/wakeup-types.js.map +1 -0
  172. package/dist/runners/wakeup.d.ts +4 -24
  173. package/dist/runners/wakeup.d.ts.map +1 -1
  174. package/dist/runners/wakeup.js +25 -601
  175. package/dist/runners/wakeup.js.map +1 -1
  176. package/dist/workspace/pool.d.ts.map +1 -1
  177. package/dist/workspace/pool.js +37 -4
  178. package/dist/workspace/pool.js.map +1 -1
  179. package/migrations/025_add_intake_tables.sql +51 -0
  180. package/migrations/026_add_section_coder_and_pr_fields.sql +11 -0
  181. package/migrations/manifest.json +18 -2
  182. package/package.json +1 -1
@@ -1,338 +1,10 @@
1
1
  /**
2
- * Hook Payload Schemas
2
+ * Hook payload public surface.
3
3
  *
4
- * Defines the payload structures for each hook event type.
5
- * Payloads contain all context needed by hook handlers.
4
+ * Keeps the main import path stable while the implementation stays split into
5
+ * focused modules that fit the repo size limits.
6
6
  */
7
- import type { HookEvent } from './events';
8
- /**
9
- * Task status values
10
- */
11
- export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'review';
12
- /**
13
- * Health status values
14
- */
15
- export type HealthStatus = 'healthy' | 'warning' | 'critical';
16
- /**
17
- * Dispute status values
18
- */
19
- export type DisputeStatus = 'open' | 'resolved';
20
- /**
21
- * Dispute type values
22
- */
23
- export type DisputeType = 'scope' | 'quality' | 'requirements' | 'other';
24
- /**
25
- * Dispute resolution values
26
- */
27
- export type DisputeResolution = 'coder_wins' | 'reviewer_wins' | 'compromise' | 'escalated';
28
- /**
29
- * Base payload structure for all events
30
- */
31
- export interface BasePayload {
32
- /** Event name that triggered this hook */
33
- event: HookEvent;
34
- /** ISO 8601 timestamp of when the event occurred */
35
- timestamp: string;
36
- }
37
- /**
38
- * Project context included in all payloads
39
- */
40
- export interface ProjectContext {
41
- /** Project name (directory name) */
42
- name: string;
43
- /** Absolute path to project root */
44
- path: string;
45
- }
46
- /**
47
- * Task data for task-related events
48
- */
49
- export interface TaskData {
50
- /** Unique task identifier */
51
- id: string;
52
- /** Task title/description */
53
- title: string;
54
- /** Current task status */
55
- status: TaskStatus;
56
- /** Previous status (for update events) */
57
- previousStatus?: TaskStatus;
58
- /** Section name the task belongs to */
59
- section?: string | null;
60
- /** Section ID the task belongs to */
61
- sectionId?: string | null;
62
- /** File where task is defined */
63
- file?: string;
64
- /** Line number in source file */
65
- line?: number;
66
- /** Original source file for synced tasks */
67
- sourceFile?: string | null;
68
- /** Number of times task was rejected */
69
- rejectionCount?: number;
70
- }
71
- /**
72
- * Section data for section-related events
73
- */
74
- export interface SectionData {
75
- /** Unique section identifier */
76
- id: string;
77
- /** Section name */
78
- name: string;
79
- /** Number of tasks in section */
80
- taskCount: number;
81
- /** File where section is defined */
82
- file?: string;
83
- }
84
- /**
85
- * Task summary for section/project completion
86
- */
87
- export interface TaskSummary {
88
- /** Task ID */
89
- id: string;
90
- /** Task title */
91
- title: string;
92
- }
93
- /**
94
- * Health data for health-related events
95
- */
96
- export interface HealthData {
97
- /** Current health score (0-100) */
98
- score: number;
99
- /** Previous health score (for change events) */
100
- previousScore?: number;
101
- /** Health status category */
102
- status: HealthStatus;
103
- /** List of failed check names */
104
- failedChecks?: string[];
105
- }
106
- /**
107
- * Dispute data for dispute-related events
108
- */
109
- export interface DisputeData {
110
- /** Unique dispute identifier */
111
- id: string;
112
- /** Task ID the dispute is about */
113
- taskId: string;
114
- /** Type of dispute */
115
- type: DisputeType;
116
- /** Dispute status */
117
- status: DisputeStatus;
118
- /** Reason for opening dispute */
119
- reason: string;
120
- /** Coder's position */
121
- coderPosition?: string;
122
- /** Reviewer's position */
123
- reviewerPosition?: string;
124
- /** Resolution (for resolved disputes) */
125
- resolution?: DisputeResolution;
126
- /** Resolution notes */
127
- resolutionNotes?: string;
128
- /** Who created the dispute */
129
- createdBy: string;
130
- /** Who resolved the dispute (if resolved) */
131
- resolvedBy?: string;
132
- }
133
- /**
134
- * Project summary for project completion
135
- */
136
- export interface ProjectSummary {
137
- /** Total number of tasks in project */
138
- totalTasks: number;
139
- /** List of files containing tasks */
140
- files: string[];
141
- /** Number of sections */
142
- sectionCount?: number;
143
- }
144
- /**
145
- * Payload for task.created event
146
- */
147
- export interface TaskCreatedPayload extends BasePayload {
148
- event: 'task.created';
149
- task: TaskData;
150
- project: ProjectContext;
151
- }
152
- /**
153
- * Payload for task.updated event
154
- */
155
- export interface TaskUpdatedPayload extends BasePayload {
156
- event: 'task.updated';
157
- task: TaskData;
158
- project: ProjectContext;
159
- }
160
- /**
161
- * Payload for task.completed event
162
- */
163
- export interface TaskCompletedPayload extends BasePayload {
164
- event: 'task.completed';
165
- task: TaskData;
166
- project: ProjectContext;
167
- }
168
- /**
169
- * Payload for task.failed event
170
- */
171
- export interface TaskFailedPayload extends BasePayload {
172
- event: 'task.failed';
173
- task: TaskData;
174
- project: ProjectContext;
175
- /** Maximum rejections reached */
176
- maxRejections: number;
177
- }
178
- /**
179
- * Payload for section.completed event
180
- */
181
- export interface SectionCompletedPayload extends BasePayload {
182
- event: 'section.completed';
183
- section: SectionData;
184
- tasks: TaskSummary[];
185
- project: ProjectContext;
186
- }
187
- /**
188
- * Payload for project.completed event
189
- */
190
- export interface ProjectCompletedPayload extends BasePayload {
191
- event: 'project.completed';
192
- project: ProjectContext;
193
- summary: ProjectSummary;
194
- }
195
- /**
196
- * Payload for health.changed event
197
- */
198
- export interface HealthChangedPayload extends BasePayload {
199
- event: 'health.changed';
200
- project: ProjectContext;
201
- health: HealthData;
202
- }
203
- /**
204
- * Payload for health.critical event
205
- */
206
- export interface HealthCriticalPayload extends BasePayload {
207
- event: 'health.critical';
208
- project: ProjectContext;
209
- health: HealthData;
210
- /** Threshold that was violated */
211
- threshold: number;
212
- }
213
- /**
214
- * Payload for dispute.created event
215
- */
216
- export interface DisputeCreatedPayload extends BasePayload {
217
- event: 'dispute.created';
218
- dispute: DisputeData;
219
- task: TaskData;
220
- project: ProjectContext;
221
- }
222
- /**
223
- * Payload for dispute.resolved event
224
- */
225
- export interface DisputeResolvedPayload extends BasePayload {
226
- event: 'dispute.resolved';
227
- dispute: DisputeData;
228
- task: TaskData;
229
- project: ProjectContext;
230
- }
231
- /**
232
- * Credit exhaustion data for credit-related events
233
- */
234
- export interface CreditData {
235
- /** Provider name (e.g. 'claude', 'codex', 'gemini') */
236
- provider: string;
237
- /** Model name */
238
- model: string;
239
- /** Role that was affected */
240
- role: 'orchestrator' | 'coder' | 'reviewer';
241
- /** Error message from the provider */
242
- message: string;
243
- /** Runner ID if available */
244
- runner_id?: string;
245
- }
246
- /**
247
- * Payload for credit.exhausted event
248
- */
249
- export interface CreditExhaustedPayload extends BasePayload {
250
- event: 'credit.exhausted';
251
- credit: CreditData;
252
- project: ProjectContext;
253
- }
254
- /**
255
- * Payload for credit.resolved event
256
- */
257
- export interface CreditResolvedPayload extends BasePayload {
258
- event: 'credit.resolved';
259
- credit: CreditData;
260
- project: ProjectContext;
261
- resolution: 'config_changed';
262
- }
263
- /**
264
- * Union of all credit event payloads
265
- */
266
- export type CreditEventPayload = CreditExhaustedPayload | CreditResolvedPayload;
267
- /**
268
- * Union of all task event payloads
269
- */
270
- export type TaskEventPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload;
271
- /**
272
- * Union of all health event payloads
273
- */
274
- export type HealthEventPayload = HealthChangedPayload | HealthCriticalPayload;
275
- /**
276
- * Union of all dispute event payloads
277
- */
278
- export type DisputeEventPayload = DisputeCreatedPayload | DisputeResolvedPayload;
279
- /**
280
- * Union of all possible hook payloads
281
- */
282
- export type HookPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload | SectionCompletedPayload | ProjectCompletedPayload | HealthChangedPayload | HealthCriticalPayload | DisputeCreatedPayload | DisputeResolvedPayload | CreditExhaustedPayload | CreditResolvedPayload;
283
- /**
284
- * Create a task.created payload
285
- */
286
- export declare function createTaskCreatedPayload(task: TaskData, project: ProjectContext): TaskCreatedPayload;
287
- /**
288
- * Create a task.updated payload
289
- */
290
- export declare function createTaskUpdatedPayload(task: TaskData, project: ProjectContext): TaskUpdatedPayload;
291
- /**
292
- * Create a task.completed payload
293
- */
294
- export declare function createTaskCompletedPayload(task: TaskData, project: ProjectContext): TaskCompletedPayload;
295
- /**
296
- * Create a task.failed payload
297
- */
298
- export declare function createTaskFailedPayload(task: TaskData, project: ProjectContext, maxRejections: number): TaskFailedPayload;
299
- /**
300
- * Create a section.completed payload
301
- */
302
- export declare function createSectionCompletedPayload(section: SectionData, tasks: TaskSummary[], project: ProjectContext): SectionCompletedPayload;
303
- /**
304
- * Create a project.completed payload
305
- */
306
- export declare function createProjectCompletedPayload(project: ProjectContext, summary: ProjectSummary): ProjectCompletedPayload;
307
- /**
308
- * Create a health.changed payload
309
- */
310
- export declare function createHealthChangedPayload(project: ProjectContext, health: HealthData): HealthChangedPayload;
311
- /**
312
- * Create a health.critical payload
313
- */
314
- export declare function createHealthCriticalPayload(project: ProjectContext, health: HealthData, threshold: number): HealthCriticalPayload;
315
- /**
316
- * Create a dispute.created payload
317
- */
318
- export declare function createDisputeCreatedPayload(dispute: DisputeData, task: TaskData, project: ProjectContext): DisputeCreatedPayload;
319
- /**
320
- * Create a dispute.resolved payload
321
- */
322
- export declare function createDisputeResolvedPayload(dispute: DisputeData, task: TaskData, project: ProjectContext): DisputeResolvedPayload;
323
- /**
324
- * Create a credit.exhausted payload
325
- */
326
- export declare function createCreditExhaustedPayload(credit: CreditData, project: ProjectContext): CreditExhaustedPayload;
327
- /**
328
- * Create a credit.resolved payload
329
- */
330
- export declare function createCreditResolvedPayload(credit: CreditData, project: ProjectContext, resolution: 'config_changed'): CreditResolvedPayload;
331
- /**
332
- * Validate that a payload has required fields for its event type
333
- */
334
- export declare function validatePayload(payload: HookPayload): {
335
- valid: boolean;
336
- errors: string[];
337
- };
7
+ export * from './payload-types.js';
8
+ export * from './payload-factories.js';
9
+ export * from './payload-validation.js';
338
10
  //# sourceMappingURL=payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/hooks/payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/hooks/payload.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -1,312 +1,26 @@
1
1
  "use strict";
2
2
  /**
3
- * Hook Payload Schemas
3
+ * Hook payload public surface.
4
4
  *
5
- * Defines the payload structures for each hook event type.
6
- * Payloads contain all context needed by hook handlers.
7
- */
5
+ * Keeps the main import path stable while the implementation stays split into
6
+ * focused modules that fit the repo size limits.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
8
22
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.createTaskCreatedPayload = createTaskCreatedPayload;
10
- exports.createTaskUpdatedPayload = createTaskUpdatedPayload;
11
- exports.createTaskCompletedPayload = createTaskCompletedPayload;
12
- exports.createTaskFailedPayload = createTaskFailedPayload;
13
- exports.createSectionCompletedPayload = createSectionCompletedPayload;
14
- exports.createProjectCompletedPayload = createProjectCompletedPayload;
15
- exports.createHealthChangedPayload = createHealthChangedPayload;
16
- exports.createHealthCriticalPayload = createHealthCriticalPayload;
17
- exports.createDisputeCreatedPayload = createDisputeCreatedPayload;
18
- exports.createDisputeResolvedPayload = createDisputeResolvedPayload;
19
- exports.createCreditExhaustedPayload = createCreditExhaustedPayload;
20
- exports.createCreditResolvedPayload = createCreditResolvedPayload;
21
- exports.validatePayload = validatePayload;
22
- // ============================================================================
23
- // Payload Factory Functions
24
- // ============================================================================
25
- /**
26
- * Create a base payload with common fields
27
- */
28
- function createBasePayload(event) {
29
- return {
30
- event,
31
- timestamp: new Date().toISOString(),
32
- };
33
- }
34
- /**
35
- * Create a task.created payload
36
- */
37
- function createTaskCreatedPayload(task, project) {
38
- return {
39
- ...createBasePayload('task.created'),
40
- task,
41
- project,
42
- };
43
- }
44
- /**
45
- * Create a task.updated payload
46
- */
47
- function createTaskUpdatedPayload(task, project) {
48
- return {
49
- ...createBasePayload('task.updated'),
50
- task,
51
- project,
52
- };
53
- }
54
- /**
55
- * Create a task.completed payload
56
- */
57
- function createTaskCompletedPayload(task, project) {
58
- return {
59
- ...createBasePayload('task.completed'),
60
- task,
61
- project,
62
- };
63
- }
64
- /**
65
- * Create a task.failed payload
66
- */
67
- function createTaskFailedPayload(task, project, maxRejections) {
68
- return {
69
- ...createBasePayload('task.failed'),
70
- task,
71
- project,
72
- maxRejections,
73
- };
74
- }
75
- /**
76
- * Create a section.completed payload
77
- */
78
- function createSectionCompletedPayload(section, tasks, project) {
79
- return {
80
- ...createBasePayload('section.completed'),
81
- section,
82
- tasks,
83
- project,
84
- };
85
- }
86
- /**
87
- * Create a project.completed payload
88
- */
89
- function createProjectCompletedPayload(project, summary) {
90
- return {
91
- ...createBasePayload('project.completed'),
92
- project,
93
- summary,
94
- };
95
- }
96
- /**
97
- * Create a health.changed payload
98
- */
99
- function createHealthChangedPayload(project, health) {
100
- return {
101
- ...createBasePayload('health.changed'),
102
- project,
103
- health,
104
- };
105
- }
106
- /**
107
- * Create a health.critical payload
108
- */
109
- function createHealthCriticalPayload(project, health, threshold) {
110
- return {
111
- ...createBasePayload('health.critical'),
112
- project,
113
- health,
114
- threshold,
115
- };
116
- }
117
- /**
118
- * Create a dispute.created payload
119
- */
120
- function createDisputeCreatedPayload(dispute, task, project) {
121
- return {
122
- ...createBasePayload('dispute.created'),
123
- dispute,
124
- task,
125
- project,
126
- };
127
- }
128
- /**
129
- * Create a dispute.resolved payload
130
- */
131
- function createDisputeResolvedPayload(dispute, task, project) {
132
- return {
133
- ...createBasePayload('dispute.resolved'),
134
- dispute,
135
- task,
136
- project,
137
- };
138
- }
139
- /**
140
- * Create a credit.exhausted payload
141
- */
142
- function createCreditExhaustedPayload(credit, project) {
143
- return {
144
- ...createBasePayload('credit.exhausted'),
145
- credit,
146
- project,
147
- };
148
- }
149
- /**
150
- * Create a credit.resolved payload
151
- */
152
- function createCreditResolvedPayload(credit, project, resolution) {
153
- return {
154
- ...createBasePayload('credit.resolved'),
155
- credit,
156
- project,
157
- resolution,
158
- };
159
- }
160
- // ============================================================================
161
- // Payload Validation
162
- // ============================================================================
163
- /**
164
- * Validate that a payload has required fields for its event type
165
- */
166
- function validatePayload(payload) {
167
- const errors = [];
168
- // Base validation
169
- if (!payload.event) {
170
- errors.push('Missing required field: event');
171
- }
172
- if (!payload.timestamp) {
173
- errors.push('Missing required field: timestamp');
174
- }
175
- // Event-specific validation
176
- switch (payload.event) {
177
- case 'task.created':
178
- case 'task.updated':
179
- case 'task.completed':
180
- case 'task.failed':
181
- validateTaskPayload(payload, errors);
182
- break;
183
- case 'section.completed':
184
- validateSectionPayload(payload, errors);
185
- break;
186
- case 'project.completed':
187
- validateProjectPayload(payload, errors);
188
- break;
189
- case 'health.changed':
190
- case 'health.critical':
191
- validateHealthPayload(payload, errors);
192
- break;
193
- case 'dispute.created':
194
- case 'dispute.resolved':
195
- validateDisputePayload(payload, errors);
196
- break;
197
- case 'credit.exhausted':
198
- case 'credit.resolved':
199
- validateCreditPayload(payload, errors);
200
- break;
201
- }
202
- return {
203
- valid: errors.length === 0,
204
- errors,
205
- };
206
- }
207
- function validateTaskPayload(payload, errors) {
208
- if (!payload.task) {
209
- errors.push('Missing required field: task');
210
- return;
211
- }
212
- if (!payload.task.id) {
213
- errors.push('Missing required field: task.id');
214
- }
215
- if (!payload.task.title) {
216
- errors.push('Missing required field: task.title');
217
- }
218
- if (!payload.task.status) {
219
- errors.push('Missing required field: task.status');
220
- }
221
- if (!payload.project) {
222
- errors.push('Missing required field: project');
223
- }
224
- }
225
- function validateSectionPayload(payload, errors) {
226
- if (!payload.section) {
227
- errors.push('Missing required field: section');
228
- return;
229
- }
230
- if (!payload.section.id) {
231
- errors.push('Missing required field: section.id');
232
- }
233
- if (!payload.section.name) {
234
- errors.push('Missing required field: section.name');
235
- }
236
- if (!payload.project) {
237
- errors.push('Missing required field: project');
238
- }
239
- }
240
- function validateProjectPayload(payload, errors) {
241
- if (!payload.project) {
242
- errors.push('Missing required field: project');
243
- return;
244
- }
245
- if (!payload.project.name) {
246
- errors.push('Missing required field: project.name');
247
- }
248
- if (!payload.project.path) {
249
- errors.push('Missing required field: project.path');
250
- }
251
- if (!payload.summary) {
252
- errors.push('Missing required field: summary');
253
- }
254
- }
255
- function validateHealthPayload(payload, errors) {
256
- if (!payload.health) {
257
- errors.push('Missing required field: health');
258
- return;
259
- }
260
- if (typeof payload.health.score !== 'number') {
261
- errors.push('Missing or invalid field: health.score');
262
- }
263
- if (!payload.health.status) {
264
- errors.push('Missing required field: health.status');
265
- }
266
- if (!payload.project) {
267
- errors.push('Missing required field: project');
268
- }
269
- if (payload.event === 'health.critical') {
270
- const criticalPayload = payload;
271
- if (typeof criticalPayload.threshold !== 'number') {
272
- errors.push('Missing required field: threshold');
273
- }
274
- }
275
- }
276
- function validateDisputePayload(payload, errors) {
277
- if (!payload.dispute) {
278
- errors.push('Missing required field: dispute');
279
- return;
280
- }
281
- if (!payload.dispute.id) {
282
- errors.push('Missing required field: dispute.id');
283
- }
284
- if (!payload.dispute.taskId) {
285
- errors.push('Missing required field: dispute.taskId');
286
- }
287
- if (!payload.task) {
288
- errors.push('Missing required field: task');
289
- }
290
- if (!payload.project) {
291
- errors.push('Missing required field: project');
292
- }
293
- }
294
- function validateCreditPayload(payload, errors) {
295
- if (!payload.credit) {
296
- errors.push('Missing required field: credit');
297
- return;
298
- }
299
- if (!payload.credit.provider) {
300
- errors.push('Missing required field: credit.provider');
301
- }
302
- if (!payload.credit.model) {
303
- errors.push('Missing required field: credit.model');
304
- }
305
- if (!payload.credit.role) {
306
- errors.push('Missing required field: credit.role');
307
- }
308
- if (!payload.project) {
309
- errors.push('Missing required field: project');
310
- }
311
- }
23
+ __exportStar(require("./payload-types.js"), exports);
24
+ __exportStar(require("./payload-factories.js"), exports);
25
+ __exportStar(require("./payload-validation.js"), exports);
312
26
  //# sourceMappingURL=payload.js.map