steroids-cli 0.12.6 → 0.12.8
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.
- package/README.md +52 -0
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +10 -0
- package/dist/commands/gc.js.map +1 -1
- package/dist/commands/llm-content.d.ts +2 -0
- package/dist/commands/llm-content.d.ts.map +1 -0
- package/dist/commands/llm-content.js +319 -0
- package/dist/commands/llm-content.js.map +1 -0
- package/dist/commands/llm.d.ts.map +1 -1
- package/dist/commands/llm.js +22 -290
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/loop-phases-coder.js +1 -1
- package/dist/commands/loop-phases-coder.js.map +1 -1
- package/dist/commands/loop-phases-reviewer-follow-ups.d.ts +7 -0
- package/dist/commands/loop-phases-reviewer-follow-ups.d.ts.map +1 -0
- package/dist/commands/loop-phases-reviewer-follow-ups.js +44 -0
- package/dist/commands/loop-phases-reviewer-follow-ups.js.map +1 -0
- package/dist/commands/loop-phases-reviewer.d.ts.map +1 -1
- package/dist/commands/loop-phases-reviewer.js +6 -45
- package/dist/commands/loop-phases-reviewer.js.map +1 -1
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +12 -1
- package/dist/commands/web.js.map +1 -1
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +27 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +111 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +74 -0
- package/dist/config/validator.js.map +1 -1
- package/dist/database/intake-queries.d.ts +51 -0
- package/dist/database/intake-queries.d.ts.map +1 -0
- package/dist/database/intake-queries.js +250 -0
- package/dist/database/intake-queries.js.map +1 -0
- package/dist/database/queries.d.ts +4 -0
- package/dist/database/queries.d.ts.map +1 -1
- package/dist/database/queries.js.map +1 -1
- package/dist/database/schema.d.ts +2 -2
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +49 -0
- package/dist/database/schema.js.map +1 -1
- package/dist/git/section-pr.d.ts +3 -2
- package/dist/git/section-pr.d.ts.map +1 -1
- package/dist/git/section-pr.js +95 -15
- package/dist/git/section-pr.js.map +1 -1
- package/dist/hooks/events.d.ts +10 -1
- package/dist/hooks/events.d.ts.map +1 -1
- package/dist/hooks/events.js +23 -1
- package/dist/hooks/events.js.map +1 -1
- package/dist/hooks/integration.d.ts +22 -0
- package/dist/hooks/integration.d.ts.map +1 -1
- package/dist/hooks/integration.js +52 -0
- package/dist/hooks/integration.js.map +1 -1
- package/dist/hooks/payload-factories.d.ts +17 -0
- package/dist/hooks/payload-factories.d.ts.map +1 -0
- package/dist/hooks/payload-factories.js +69 -0
- package/dist/hooks/payload-factories.js.map +1 -0
- package/dist/hooks/payload-types.d.ts +169 -0
- package/dist/hooks/payload-types.d.ts.map +1 -0
- package/dist/hooks/payload-types.js +3 -0
- package/dist/hooks/payload-types.js.map +1 -0
- package/dist/hooks/payload-validation.d.ts +6 -0
- package/dist/hooks/payload-validation.d.ts.map +1 -0
- package/dist/hooks/payload-validation.js +186 -0
- package/dist/hooks/payload-validation.js.map +1 -0
- package/dist/hooks/payload.d.ts +6 -334
- package/dist/hooks/payload.d.ts.map +1 -1
- package/dist/hooks/payload.js +21 -307
- package/dist/hooks/payload.js.map +1 -1
- package/dist/hooks/template-resolvers.d.ts +9 -0
- package/dist/hooks/template-resolvers.d.ts.map +1 -0
- package/dist/hooks/template-resolvers.js +133 -0
- package/dist/hooks/template-resolvers.js.map +1 -0
- package/dist/hooks/templates.d.ts +13 -0
- package/dist/hooks/templates.d.ts.map +1 -1
- package/dist/hooks/templates.js +40 -118
- package/dist/hooks/templates.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/intake/github-gate-api.d.ts +37 -0
- package/dist/intake/github-gate-api.d.ts.map +1 -0
- package/dist/intake/github-gate-api.js +210 -0
- package/dist/intake/github-gate-api.js.map +1 -0
- package/dist/intake/github-gate.d.ts +22 -0
- package/dist/intake/github-gate.d.ts.map +1 -0
- package/dist/intake/github-gate.js +261 -0
- package/dist/intake/github-gate.js.map +1 -0
- package/dist/intake/github-issues-connector.d.ts +26 -0
- package/dist/intake/github-issues-connector.d.ts.map +1 -0
- package/dist/intake/github-issues-connector.js +350 -0
- package/dist/intake/github-issues-connector.js.map +1 -0
- package/dist/intake/index.d.ts +10 -0
- package/dist/intake/index.d.ts.map +1 -0
- package/dist/intake/index.js +26 -0
- package/dist/intake/index.js.map +1 -0
- package/dist/intake/pipeline-glue.d.ts +61 -0
- package/dist/intake/pipeline-glue.d.ts.map +1 -0
- package/dist/intake/pipeline-glue.js +137 -0
- package/dist/intake/pipeline-glue.js.map +1 -0
- package/dist/intake/poller.d.ts +28 -0
- package/dist/intake/poller.d.ts.map +1 -0
- package/dist/intake/poller.js +186 -0
- package/dist/intake/poller.js.map +1 -0
- package/dist/intake/post-pr.d.ts +17 -0
- package/dist/intake/post-pr.d.ts.map +1 -0
- package/dist/intake/post-pr.js +78 -0
- package/dist/intake/post-pr.js.map +1 -0
- package/dist/intake/registry.d.ts +17 -0
- package/dist/intake/registry.d.ts.map +1 -0
- package/dist/intake/registry.js +57 -0
- package/dist/intake/registry.js.map +1 -0
- package/dist/intake/reviewer-approval.d.ts +10 -0
- package/dist/intake/reviewer-approval.d.ts.map +1 -0
- package/dist/intake/reviewer-approval.js +70 -0
- package/dist/intake/reviewer-approval.js.map +1 -0
- package/dist/intake/task-reference.d.ts +10 -0
- package/dist/intake/task-reference.d.ts.map +1 -0
- package/dist/intake/task-reference.js +23 -0
- package/dist/intake/task-reference.js.map +1 -0
- package/dist/intake/task-templates.d.ts +25 -0
- package/dist/intake/task-templates.d.ts.map +1 -0
- package/dist/intake/task-templates.js +98 -0
- package/dist/intake/task-templates.js.map +1 -0
- package/dist/intake/types.d.ts +103 -0
- package/dist/intake/types.d.ts.map +1 -0
- package/dist/intake/types.js +3 -0
- package/dist/intake/types.js.map +1 -0
- package/dist/orchestrator/coder.d.ts +2 -0
- package/dist/orchestrator/coder.d.ts.map +1 -1
- package/dist/orchestrator/coder.js +25 -2
- package/dist/orchestrator/coder.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +7 -14
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/interface.d.ts.map +1 -1
- package/dist/providers/interface.js +50 -0
- package/dist/providers/interface.js.map +1 -1
- package/dist/runners/orchestrator-loop.d.ts.map +1 -1
- package/dist/runners/orchestrator-loop.js +7 -0
- package/dist/runners/orchestrator-loop.js.map +1 -1
- package/dist/runners/system-pressure.d.ts +26 -0
- package/dist/runners/system-pressure.d.ts.map +1 -0
- package/dist/runners/system-pressure.js +128 -0
- package/dist/runners/system-pressure.js.map +1 -0
- package/dist/runners/wakeup-checks.d.ts.map +1 -1
- package/dist/runners/wakeup-checks.js +16 -1
- package/dist/runners/wakeup-checks.js.map +1 -1
- package/dist/runners/wakeup-global-cleanup.d.ts +20 -0
- package/dist/runners/wakeup-global-cleanup.d.ts.map +1 -0
- package/dist/runners/wakeup-global-cleanup.js +317 -0
- package/dist/runners/wakeup-global-cleanup.js.map +1 -0
- package/dist/runners/wakeup-needed.d.ts +5 -0
- package/dist/runners/wakeup-needed.d.ts.map +1 -0
- package/dist/runners/wakeup-needed.js +42 -0
- package/dist/runners/wakeup-needed.js.map +1 -0
- package/dist/runners/wakeup-project-parallel.d.ts +13 -0
- package/dist/runners/wakeup-project-parallel.d.ts.map +1 -0
- package/dist/runners/wakeup-project-parallel.js +238 -0
- package/dist/runners/wakeup-project-parallel.js.map +1 -0
- package/dist/runners/wakeup-project.d.ts +10 -0
- package/dist/runners/wakeup-project.d.ts.map +1 -0
- package/dist/runners/wakeup-project.js +209 -0
- package/dist/runners/wakeup-project.js.map +1 -0
- package/dist/runners/wakeup-registration.d.ts +2 -0
- package/dist/runners/wakeup-registration.d.ts.map +1 -0
- package/dist/runners/wakeup-registration.js +42 -0
- package/dist/runners/wakeup-registration.js.map +1 -0
- package/dist/runners/wakeup-types.d.ts +25 -0
- package/dist/runners/wakeup-types.d.ts.map +1 -0
- package/dist/runners/wakeup-types.js +3 -0
- package/dist/runners/wakeup-types.js.map +1 -0
- package/dist/runners/wakeup.d.ts +4 -24
- package/dist/runners/wakeup.d.ts.map +1 -1
- package/dist/runners/wakeup.js +25 -601
- package/dist/runners/wakeup.js.map +1 -1
- package/dist/workspace/pool.d.ts.map +1 -1
- package/dist/workspace/pool.js +37 -4
- package/dist/workspace/pool.js.map +1 -1
- package/migrations/025_add_intake_tables.sql +51 -0
- package/migrations/026_add_section_coder_and_pr_fields.sql +11 -0
- package/migrations/manifest.json +18 -2
- package/package.json +1 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type { HookEvent, TaskEvent, IntakeEvent, HealthEvent, DisputeEvent, CreditEvent } from './events.js';
|
|
2
|
+
import type { IntakeReportStatus, IntakeSeverity, IntakeSource } from '../intake/types.js';
|
|
3
|
+
export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'review';
|
|
4
|
+
export type HealthStatus = 'healthy' | 'warning' | 'critical';
|
|
5
|
+
export type DisputeStatus = 'open' | 'resolved';
|
|
6
|
+
export type DisputeType = 'scope' | 'quality' | 'requirements' | 'other';
|
|
7
|
+
export type DisputeResolution = 'coder_wins' | 'reviewer_wins' | 'compromise' | 'escalated';
|
|
8
|
+
export interface BasePayload {
|
|
9
|
+
event: HookEvent;
|
|
10
|
+
timestamp: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ProjectContext {
|
|
13
|
+
name: string;
|
|
14
|
+
path: string;
|
|
15
|
+
}
|
|
16
|
+
export interface TaskData {
|
|
17
|
+
id: string;
|
|
18
|
+
title: string;
|
|
19
|
+
status: TaskStatus;
|
|
20
|
+
previousStatus?: TaskStatus;
|
|
21
|
+
section?: string | null;
|
|
22
|
+
sectionId?: string | null;
|
|
23
|
+
file?: string;
|
|
24
|
+
line?: number;
|
|
25
|
+
sourceFile?: string | null;
|
|
26
|
+
rejectionCount?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface IntakeData {
|
|
29
|
+
source: IntakeSource;
|
|
30
|
+
externalId: string;
|
|
31
|
+
url: string;
|
|
32
|
+
fingerprint: string;
|
|
33
|
+
title: string;
|
|
34
|
+
summary?: string;
|
|
35
|
+
severity: IntakeSeverity;
|
|
36
|
+
status: IntakeReportStatus;
|
|
37
|
+
linkedTaskId?: string | null;
|
|
38
|
+
prNumber?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface SectionData {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
taskCount: number;
|
|
44
|
+
file?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface TaskSummary {
|
|
47
|
+
id: string;
|
|
48
|
+
title: string;
|
|
49
|
+
}
|
|
50
|
+
export interface HealthData {
|
|
51
|
+
score: number;
|
|
52
|
+
previousScore?: number;
|
|
53
|
+
status: HealthStatus;
|
|
54
|
+
failedChecks?: string[];
|
|
55
|
+
}
|
|
56
|
+
export interface DisputeData {
|
|
57
|
+
id: string;
|
|
58
|
+
taskId: string;
|
|
59
|
+
type: DisputeType;
|
|
60
|
+
status: DisputeStatus;
|
|
61
|
+
reason: string;
|
|
62
|
+
coderPosition?: string;
|
|
63
|
+
reviewerPosition?: string;
|
|
64
|
+
resolution?: DisputeResolution;
|
|
65
|
+
resolutionNotes?: string;
|
|
66
|
+
createdBy: string;
|
|
67
|
+
resolvedBy?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface ProjectSummary {
|
|
70
|
+
totalTasks: number;
|
|
71
|
+
files: string[];
|
|
72
|
+
sectionCount?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface TaskCreatedPayload extends BasePayload {
|
|
75
|
+
event: 'task.created';
|
|
76
|
+
task: TaskData;
|
|
77
|
+
project: ProjectContext;
|
|
78
|
+
}
|
|
79
|
+
export interface TaskUpdatedPayload extends BasePayload {
|
|
80
|
+
event: 'task.updated';
|
|
81
|
+
task: TaskData;
|
|
82
|
+
project: ProjectContext;
|
|
83
|
+
}
|
|
84
|
+
export interface TaskCompletedPayload extends BasePayload {
|
|
85
|
+
event: 'task.completed';
|
|
86
|
+
task: TaskData;
|
|
87
|
+
project: ProjectContext;
|
|
88
|
+
}
|
|
89
|
+
export interface TaskFailedPayload extends BasePayload {
|
|
90
|
+
event: 'task.failed';
|
|
91
|
+
task: TaskData;
|
|
92
|
+
project: ProjectContext;
|
|
93
|
+
maxRejections: number;
|
|
94
|
+
}
|
|
95
|
+
export interface IntakeReceivedPayload extends BasePayload {
|
|
96
|
+
event: 'intake.received';
|
|
97
|
+
intake: IntakeData;
|
|
98
|
+
project: ProjectContext;
|
|
99
|
+
}
|
|
100
|
+
export interface IntakeTriagedPayload extends BasePayload {
|
|
101
|
+
event: 'intake.triaged';
|
|
102
|
+
intake: IntakeData;
|
|
103
|
+
project: ProjectContext;
|
|
104
|
+
}
|
|
105
|
+
export interface IntakePRCreatedPayload extends BasePayload {
|
|
106
|
+
event: 'intake.pr_created';
|
|
107
|
+
intake: IntakeData;
|
|
108
|
+
project: ProjectContext;
|
|
109
|
+
}
|
|
110
|
+
export interface SectionCompletedPayload extends BasePayload {
|
|
111
|
+
event: 'section.completed';
|
|
112
|
+
section: SectionData;
|
|
113
|
+
tasks: TaskSummary[];
|
|
114
|
+
project: ProjectContext;
|
|
115
|
+
}
|
|
116
|
+
export interface ProjectCompletedPayload extends BasePayload {
|
|
117
|
+
event: 'project.completed';
|
|
118
|
+
project: ProjectContext;
|
|
119
|
+
summary: ProjectSummary;
|
|
120
|
+
}
|
|
121
|
+
export interface HealthChangedPayload extends BasePayload {
|
|
122
|
+
event: 'health.changed';
|
|
123
|
+
project: ProjectContext;
|
|
124
|
+
health: HealthData;
|
|
125
|
+
}
|
|
126
|
+
export interface HealthCriticalPayload extends BasePayload {
|
|
127
|
+
event: 'health.critical';
|
|
128
|
+
project: ProjectContext;
|
|
129
|
+
health: HealthData;
|
|
130
|
+
threshold: number;
|
|
131
|
+
}
|
|
132
|
+
export interface DisputeCreatedPayload extends BasePayload {
|
|
133
|
+
event: 'dispute.created';
|
|
134
|
+
dispute: DisputeData;
|
|
135
|
+
task: TaskData;
|
|
136
|
+
project: ProjectContext;
|
|
137
|
+
}
|
|
138
|
+
export interface DisputeResolvedPayload extends BasePayload {
|
|
139
|
+
event: 'dispute.resolved';
|
|
140
|
+
dispute: DisputeData;
|
|
141
|
+
task: TaskData;
|
|
142
|
+
project: ProjectContext;
|
|
143
|
+
}
|
|
144
|
+
export interface CreditData {
|
|
145
|
+
provider: string;
|
|
146
|
+
model: string;
|
|
147
|
+
role: 'orchestrator' | 'coder' | 'reviewer';
|
|
148
|
+
message: string;
|
|
149
|
+
runner_id?: string;
|
|
150
|
+
}
|
|
151
|
+
export interface CreditExhaustedPayload extends BasePayload {
|
|
152
|
+
event: 'credit.exhausted';
|
|
153
|
+
credit: CreditData;
|
|
154
|
+
project: ProjectContext;
|
|
155
|
+
}
|
|
156
|
+
export interface CreditResolvedPayload extends BasePayload {
|
|
157
|
+
event: 'credit.resolved';
|
|
158
|
+
credit: CreditData;
|
|
159
|
+
project: ProjectContext;
|
|
160
|
+
resolution: 'config_changed';
|
|
161
|
+
}
|
|
162
|
+
export type CreditEventPayload = CreditExhaustedPayload | CreditResolvedPayload;
|
|
163
|
+
export type IntakeEventPayload = IntakeReceivedPayload | IntakeTriagedPayload | IntakePRCreatedPayload;
|
|
164
|
+
export type TaskEventPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload;
|
|
165
|
+
export type HealthEventPayload = HealthChangedPayload | HealthCriticalPayload;
|
|
166
|
+
export type DisputeEventPayload = DisputeCreatedPayload | DisputeResolvedPayload;
|
|
167
|
+
export type HookPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskFailedPayload | IntakeReceivedPayload | IntakeTriagedPayload | IntakePRCreatedPayload | SectionCompletedPayload | ProjectCompletedPayload | HealthChangedPayload | HealthCriticalPayload | DisputeCreatedPayload | DisputeResolvedPayload | CreditExhaustedPayload | CreditResolvedPayload;
|
|
168
|
+
export type { TaskEvent, IntakeEvent, HealthEvent, DisputeEvent, CreditEvent, };
|
|
169
|
+
//# sourceMappingURL=payload-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-types.d.ts","sourceRoot":"","sources":["../../src/hooks/payload-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE3F,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,GAAG,OAAO,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC;AAE5F,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,KAAK,EAAE,mBAAmB,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,KAAK,EAAE,mBAAmB,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAE9E,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG,sBAAsB,CAAC;AAEjF,MAAM,MAAM,WAAW,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,GACvB,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,CAAC;AAE1B,YAAY,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-types.js","sourceRoot":"","sources":["../../src/hooks/payload-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-validation.d.ts","sourceRoot":"","sources":["../../src/hooks/payload-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,WAAW,EAKZ,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA8C1F"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validatePayload = validatePayload;
|
|
4
|
+
function validatePayload(payload) {
|
|
5
|
+
const errors = [];
|
|
6
|
+
if (!payload.event) {
|
|
7
|
+
errors.push('Missing required field: event');
|
|
8
|
+
}
|
|
9
|
+
if (!payload.timestamp) {
|
|
10
|
+
errors.push('Missing required field: timestamp');
|
|
11
|
+
}
|
|
12
|
+
switch (payload.event) {
|
|
13
|
+
case 'task.created':
|
|
14
|
+
case 'task.updated':
|
|
15
|
+
case 'task.completed':
|
|
16
|
+
case 'task.failed':
|
|
17
|
+
validateTaskPayload(payload, errors);
|
|
18
|
+
break;
|
|
19
|
+
case 'intake.received':
|
|
20
|
+
case 'intake.triaged':
|
|
21
|
+
case 'intake.pr_created':
|
|
22
|
+
validateIntakePayload(payload, errors);
|
|
23
|
+
break;
|
|
24
|
+
case 'section.completed':
|
|
25
|
+
validateSectionPayload(payload, errors);
|
|
26
|
+
break;
|
|
27
|
+
case 'project.completed':
|
|
28
|
+
validateProjectPayload(payload, errors);
|
|
29
|
+
break;
|
|
30
|
+
case 'health.changed':
|
|
31
|
+
case 'health.critical':
|
|
32
|
+
validateHealthPayload(payload, errors);
|
|
33
|
+
break;
|
|
34
|
+
case 'dispute.created':
|
|
35
|
+
case 'dispute.resolved':
|
|
36
|
+
validateDisputePayload(payload, errors);
|
|
37
|
+
break;
|
|
38
|
+
case 'credit.exhausted':
|
|
39
|
+
case 'credit.resolved':
|
|
40
|
+
validateCreditPayload(payload, errors);
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
valid: errors.length === 0,
|
|
45
|
+
errors,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function validateTaskPayload(payload, errors) {
|
|
49
|
+
if (!payload.task) {
|
|
50
|
+
errors.push('Missing required field: task');
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (!payload.task.id) {
|
|
54
|
+
errors.push('Missing required field: task.id');
|
|
55
|
+
}
|
|
56
|
+
if (!payload.task.title) {
|
|
57
|
+
errors.push('Missing required field: task.title');
|
|
58
|
+
}
|
|
59
|
+
if (!payload.task.status) {
|
|
60
|
+
errors.push('Missing required field: task.status');
|
|
61
|
+
}
|
|
62
|
+
if (!payload.project) {
|
|
63
|
+
errors.push('Missing required field: project');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function validateIntakePayload(payload, errors) {
|
|
67
|
+
if (!payload.intake) {
|
|
68
|
+
errors.push('Missing required field: intake');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (!payload.intake.source) {
|
|
72
|
+
errors.push('Missing required field: intake.source');
|
|
73
|
+
}
|
|
74
|
+
if (!payload.intake.externalId) {
|
|
75
|
+
errors.push('Missing required field: intake.externalId');
|
|
76
|
+
}
|
|
77
|
+
if (!payload.intake.url) {
|
|
78
|
+
errors.push('Missing required field: intake.url');
|
|
79
|
+
}
|
|
80
|
+
if (!payload.intake.fingerprint) {
|
|
81
|
+
errors.push('Missing required field: intake.fingerprint');
|
|
82
|
+
}
|
|
83
|
+
if (!payload.intake.title) {
|
|
84
|
+
errors.push('Missing required field: intake.title');
|
|
85
|
+
}
|
|
86
|
+
if (!payload.intake.severity) {
|
|
87
|
+
errors.push('Missing required field: intake.severity');
|
|
88
|
+
}
|
|
89
|
+
if (!payload.intake.status) {
|
|
90
|
+
errors.push('Missing required field: intake.status');
|
|
91
|
+
}
|
|
92
|
+
if (!payload.project) {
|
|
93
|
+
errors.push('Missing required field: project');
|
|
94
|
+
}
|
|
95
|
+
if (payload.event === 'intake.pr_created' && typeof payload.intake.prNumber !== 'number') {
|
|
96
|
+
errors.push('Missing required field: intake.prNumber');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function validateSectionPayload(payload, errors) {
|
|
100
|
+
if (!payload.section) {
|
|
101
|
+
errors.push('Missing required field: section');
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (!payload.section.id) {
|
|
105
|
+
errors.push('Missing required field: section.id');
|
|
106
|
+
}
|
|
107
|
+
if (!payload.section.name) {
|
|
108
|
+
errors.push('Missing required field: section.name');
|
|
109
|
+
}
|
|
110
|
+
if (!payload.project) {
|
|
111
|
+
errors.push('Missing required field: project');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function validateProjectPayload(payload, errors) {
|
|
115
|
+
if (!payload.project) {
|
|
116
|
+
errors.push('Missing required field: project');
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (!payload.project.name) {
|
|
120
|
+
errors.push('Missing required field: project.name');
|
|
121
|
+
}
|
|
122
|
+
if (!payload.project.path) {
|
|
123
|
+
errors.push('Missing required field: project.path');
|
|
124
|
+
}
|
|
125
|
+
if (!payload.summary) {
|
|
126
|
+
errors.push('Missing required field: summary');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function validateHealthPayload(payload, errors) {
|
|
130
|
+
if (!payload.health) {
|
|
131
|
+
errors.push('Missing required field: health');
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (typeof payload.health.score !== 'number') {
|
|
135
|
+
errors.push('Missing or invalid field: health.score');
|
|
136
|
+
}
|
|
137
|
+
if (!payload.health.status) {
|
|
138
|
+
errors.push('Missing required field: health.status');
|
|
139
|
+
}
|
|
140
|
+
if (!payload.project) {
|
|
141
|
+
errors.push('Missing required field: project');
|
|
142
|
+
}
|
|
143
|
+
if (payload.event === 'health.critical') {
|
|
144
|
+
const criticalPayload = payload;
|
|
145
|
+
if (typeof criticalPayload.threshold !== 'number') {
|
|
146
|
+
errors.push('Missing required field: threshold');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function validateDisputePayload(payload, errors) {
|
|
151
|
+
if (!payload.dispute) {
|
|
152
|
+
errors.push('Missing required field: dispute');
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (!payload.dispute.id) {
|
|
156
|
+
errors.push('Missing required field: dispute.id');
|
|
157
|
+
}
|
|
158
|
+
if (!payload.dispute.taskId) {
|
|
159
|
+
errors.push('Missing required field: dispute.taskId');
|
|
160
|
+
}
|
|
161
|
+
if (!payload.task) {
|
|
162
|
+
errors.push('Missing required field: task');
|
|
163
|
+
}
|
|
164
|
+
if (!payload.project) {
|
|
165
|
+
errors.push('Missing required field: project');
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function validateCreditPayload(payload, errors) {
|
|
169
|
+
if (!payload.credit) {
|
|
170
|
+
errors.push('Missing required field: credit');
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (!payload.credit.provider) {
|
|
174
|
+
errors.push('Missing required field: credit.provider');
|
|
175
|
+
}
|
|
176
|
+
if (!payload.credit.model) {
|
|
177
|
+
errors.push('Missing required field: credit.model');
|
|
178
|
+
}
|
|
179
|
+
if (!payload.credit.role) {
|
|
180
|
+
errors.push('Missing required field: credit.role');
|
|
181
|
+
}
|
|
182
|
+
if (!payload.project) {
|
|
183
|
+
errors.push('Missing required field: project');
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=payload-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-validation.js","sourceRoot":"","sources":["../../src/hooks/payload-validation.ts"],"names":[],"mappings":"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"}
|