@slope-dev/slope 1.5.4 → 1.7.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.
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +70 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +46 -66
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/standup.d.ts.map +1 -1
- package/dist/cli/commands/standup.js +31 -2
- package/dist/cli/commands/standup.js.map +1 -1
- package/dist/cli/guards/subagent-gate.d.ts.map +1 -1
- package/dist/cli/guards/subagent-gate.js +31 -1
- package/dist/cli/guards/subagent-gate.js.map +1 -1
- package/dist/cli/store.d.ts.map +1 -1
- package/dist/cli/store.js +16 -0
- package/dist/cli/store.js.map +1 -1
- package/dist/core/config.d.ts +6 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/event-ingestion.d.ts +34 -0
- package/dist/core/event-ingestion.d.ts.map +1 -0
- package/dist/core/event-ingestion.js +115 -0
- package/dist/core/event-ingestion.js.map +1 -0
- package/dist/core/github.d.ts +40 -0
- package/dist/core/github.d.ts.map +1 -0
- package/dist/core/github.js +130 -0
- package/dist/core/github.js.map +1 -0
- package/dist/core/index.d.ts +13 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/interview.d.ts +31 -0
- package/dist/core/interview.d.ts.map +1 -0
- package/dist/core/interview.js +167 -0
- package/dist/core/interview.js.map +1 -0
- package/dist/core/metaphor.js +1 -1
- package/dist/core/metaphor.js.map +1 -1
- package/dist/core/metaphors/agile.d.ts +3 -0
- package/dist/core/metaphors/agile.d.ts.map +1 -0
- package/dist/core/metaphors/agile.js +90 -0
- package/dist/core/metaphors/agile.js.map +1 -0
- package/dist/core/metaphors/baseball.d.ts.map +1 -1
- package/dist/core/metaphors/baseball.js +1 -0
- package/dist/core/metaphors/baseball.js.map +1 -1
- package/dist/core/metaphors/dnd.d.ts.map +1 -1
- package/dist/core/metaphors/dnd.js +1 -0
- package/dist/core/metaphors/dnd.js.map +1 -1
- package/dist/core/metaphors/gaming.d.ts.map +1 -1
- package/dist/core/metaphors/gaming.js +1 -0
- package/dist/core/metaphors/gaming.js.map +1 -1
- package/dist/core/metaphors/golf.d.ts.map +1 -1
- package/dist/core/metaphors/golf.js +1 -0
- package/dist/core/metaphors/golf.js.map +1 -1
- package/dist/core/metaphors/index.d.ts +2 -1
- package/dist/core/metaphors/index.d.ts.map +1 -1
- package/dist/core/metaphors/index.js +3 -1
- package/dist/core/metaphors/index.js.map +1 -1
- package/dist/core/metaphors/matrix.d.ts.map +1 -1
- package/dist/core/metaphors/matrix.js +1 -0
- package/dist/core/metaphors/matrix.js.map +1 -1
- package/dist/core/metaphors/tennis.d.ts.map +1 -1
- package/dist/core/metaphors/tennis.js +1 -0
- package/dist/core/metaphors/tennis.js.map +1 -1
- package/dist/core/project-registry.d.ts +26 -0
- package/dist/core/project-registry.d.ts.map +1 -0
- package/dist/core/project-registry.js +56 -0
- package/dist/core/project-registry.js.map +1 -0
- package/dist/core/standup.d.ts +33 -0
- package/dist/core/standup.d.ts.map +1 -1
- package/dist/core/standup.js +137 -0
- package/dist/core/standup.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/webhooks.d.ts +31 -0
- package/dist/core/webhooks.d.ts.map +1 -0
- package/dist/core/webhooks.js +114 -0
- package/dist/core/webhooks.js.map +1 -0
- package/dist/mcp/registry.d.ts +1 -1
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +1 -1
- package/dist/store-pg/index.d.ts +49 -0
- package/dist/store-pg/index.d.ts.map +1 -0
- package/dist/store-pg/index.js +422 -0
- package/dist/store-pg/index.js.map +1 -0
- package/package.json +8 -1
package/dist/core/standup.d.ts
CHANGED
|
@@ -41,4 +41,37 @@ export declare function parseStandup(data: Record<string, unknown>): StandupRepo
|
|
|
41
41
|
* Returns handoffs that either have no for_role or match the target role.
|
|
42
42
|
*/
|
|
43
43
|
export declare function extractRelevantHandoffs(standup: StandupReport, roleId?: string): HandoffEntry[];
|
|
44
|
+
/** Aggregated team standup from multiple agent standups */
|
|
45
|
+
export interface TeamStandup {
|
|
46
|
+
timestamp: string;
|
|
47
|
+
agents: StandupReport[];
|
|
48
|
+
status: 'working' | 'blocked' | 'complete';
|
|
49
|
+
summary: {
|
|
50
|
+
working: number;
|
|
51
|
+
blocked: number;
|
|
52
|
+
complete: number;
|
|
53
|
+
};
|
|
54
|
+
blockers: Array<{
|
|
55
|
+
agent: string;
|
|
56
|
+
blocker: string;
|
|
57
|
+
}>;
|
|
58
|
+
decisions: Array<{
|
|
59
|
+
agent: string;
|
|
60
|
+
decision: string;
|
|
61
|
+
}>;
|
|
62
|
+
handoffs: HandoffEntry[];
|
|
63
|
+
conflicts: Array<{
|
|
64
|
+
agents: string[];
|
|
65
|
+
description: string;
|
|
66
|
+
}>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Aggregate multiple standup reports into a team-level summary.
|
|
70
|
+
* Sorts by timestamp, deduplicates, detects conflicts between agents.
|
|
71
|
+
*/
|
|
72
|
+
export declare function aggregateStandups(standups: StandupReport[]): TeamStandup;
|
|
73
|
+
/**
|
|
74
|
+
* Format a team standup as human-readable markdown.
|
|
75
|
+
*/
|
|
76
|
+
export declare function formatTeamStandup(standup: TeamStandup): string;
|
|
44
77
|
//# sourceMappingURL=standup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standup.d.ts","sourceRoot":"","sources":["../../src/core/standup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,GAAG,aAAa,CAsFhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAoD3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAgBhF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,YAAY,EAAE,CAKhB"}
|
|
1
|
+
{"version":3,"file":"standup.d.ts","sourceRoot":"","sources":["../../src/core/standup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,GAAG,aAAa,CAsFhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAoD3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAgBhF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,YAAY,EAAE,CAKhB;AAID,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3C,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,WAAW,CAkFxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA6D9D"}
|
package/dist/core/standup.js
CHANGED
|
@@ -161,4 +161,141 @@ export function extractRelevantHandoffs(standup, roleId) {
|
|
|
161
161
|
return [...standup.handoffs];
|
|
162
162
|
return standup.handoffs.filter(h => !h.for_role || h.for_role === roleId);
|
|
163
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Aggregate multiple standup reports into a team-level summary.
|
|
166
|
+
* Sorts by timestamp, deduplicates, detects conflicts between agents.
|
|
167
|
+
*/
|
|
168
|
+
export function aggregateStandups(standups) {
|
|
169
|
+
// Sort by timestamp (most recent last)
|
|
170
|
+
const sorted = [...standups].sort((a, b) => a.timestamp.localeCompare(b.timestamp));
|
|
171
|
+
// Summary counts
|
|
172
|
+
const summary = { working: 0, blocked: 0, complete: 0 };
|
|
173
|
+
for (const s of sorted) {
|
|
174
|
+
summary[s.status]++;
|
|
175
|
+
}
|
|
176
|
+
// Overall status: blocked wins > working > complete
|
|
177
|
+
let status = 'complete';
|
|
178
|
+
if (summary.working > 0)
|
|
179
|
+
status = 'working';
|
|
180
|
+
if (summary.blocked > 0)
|
|
181
|
+
status = 'blocked';
|
|
182
|
+
// Collect blockers with agent attribution
|
|
183
|
+
const blockers = [];
|
|
184
|
+
for (const s of sorted) {
|
|
185
|
+
const agent = s.agent_role ?? s.sessionId;
|
|
186
|
+
for (const b of s.blockers) {
|
|
187
|
+
blockers.push({ agent, blocker: b });
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Collect decisions with agent attribution
|
|
191
|
+
const decisions = [];
|
|
192
|
+
for (const s of sorted) {
|
|
193
|
+
const agent = s.agent_role ?? s.sessionId;
|
|
194
|
+
for (const d of s.decisions) {
|
|
195
|
+
decisions.push({ agent, decision: d });
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Deduplicate handoffs by target + description
|
|
199
|
+
const handoffKeys = new Set();
|
|
200
|
+
const handoffs = [];
|
|
201
|
+
for (const s of sorted) {
|
|
202
|
+
for (const h of s.handoffs) {
|
|
203
|
+
const key = `${h.target}::${h.description}`.toLowerCase();
|
|
204
|
+
if (!handoffKeys.has(key)) {
|
|
205
|
+
handoffKeys.add(key);
|
|
206
|
+
handoffs.push(h);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Detect conflicts: agents reporting different statuses on the same ticket
|
|
211
|
+
const conflicts = [];
|
|
212
|
+
const ticketStatuses = new Map();
|
|
213
|
+
for (const s of sorted) {
|
|
214
|
+
if (s.ticketKey) {
|
|
215
|
+
const agent = s.agent_role ?? s.sessionId;
|
|
216
|
+
if (!ticketStatuses.has(s.ticketKey)) {
|
|
217
|
+
ticketStatuses.set(s.ticketKey, []);
|
|
218
|
+
}
|
|
219
|
+
ticketStatuses.get(s.ticketKey).push({ agent, status: s.status });
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
for (const [ticket, entries] of ticketStatuses) {
|
|
223
|
+
const statuses = new Set(entries.map(e => e.status));
|
|
224
|
+
if (statuses.size > 1) {
|
|
225
|
+
const agents = entries.map(e => e.agent);
|
|
226
|
+
const statusList = entries.map(e => `${e.agent}=${e.status}`).join(', ');
|
|
227
|
+
conflicts.push({
|
|
228
|
+
agents,
|
|
229
|
+
description: `Ticket "${ticket}" has conflicting statuses: ${statusList}`,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return {
|
|
234
|
+
timestamp: new Date().toISOString(),
|
|
235
|
+
agents: sorted,
|
|
236
|
+
status,
|
|
237
|
+
summary,
|
|
238
|
+
blockers,
|
|
239
|
+
decisions,
|
|
240
|
+
handoffs,
|
|
241
|
+
conflicts,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Format a team standup as human-readable markdown.
|
|
246
|
+
*/
|
|
247
|
+
export function formatTeamStandup(standup) {
|
|
248
|
+
const lines = [];
|
|
249
|
+
const statusIcon = standup.status === 'complete' ? '[DONE]'
|
|
250
|
+
: standup.status === 'blocked' ? '[BLOCKED]'
|
|
251
|
+
: '[ACTIVE]';
|
|
252
|
+
lines.push(`# Team Standup ${statusIcon}`);
|
|
253
|
+
lines.push('');
|
|
254
|
+
lines.push(`**Agents:** ${standup.agents.length} | Working: ${standup.summary.working} | Blocked: ${standup.summary.blocked} | Complete: ${standup.summary.complete}`);
|
|
255
|
+
lines.push('');
|
|
256
|
+
// Conflicts (show first — most important)
|
|
257
|
+
if (standup.conflicts.length > 0) {
|
|
258
|
+
lines.push('## Conflicts');
|
|
259
|
+
for (const c of standup.conflicts) {
|
|
260
|
+
lines.push(`- ${c.description}`);
|
|
261
|
+
}
|
|
262
|
+
lines.push('');
|
|
263
|
+
}
|
|
264
|
+
// Blockers
|
|
265
|
+
if (standup.blockers.length > 0) {
|
|
266
|
+
lines.push('## Blockers');
|
|
267
|
+
for (const b of standup.blockers) {
|
|
268
|
+
lines.push(`- **${b.agent}**: ${b.blocker}`);
|
|
269
|
+
}
|
|
270
|
+
lines.push('');
|
|
271
|
+
}
|
|
272
|
+
// Decisions
|
|
273
|
+
if (standup.decisions.length > 0) {
|
|
274
|
+
lines.push('## Decisions');
|
|
275
|
+
for (const d of standup.decisions) {
|
|
276
|
+
lines.push(`- **${d.agent}**: ${d.decision}`);
|
|
277
|
+
}
|
|
278
|
+
lines.push('');
|
|
279
|
+
}
|
|
280
|
+
// Handoffs
|
|
281
|
+
if (standup.handoffs.length > 0) {
|
|
282
|
+
lines.push('## Handoffs');
|
|
283
|
+
for (const h of standup.handoffs) {
|
|
284
|
+
const forRole = h.for_role ? ` (for: ${h.for_role})` : '';
|
|
285
|
+
lines.push(`- **${h.target}**: ${h.description}${forRole}`);
|
|
286
|
+
}
|
|
287
|
+
lines.push('');
|
|
288
|
+
}
|
|
289
|
+
// Per-agent summaries
|
|
290
|
+
lines.push('## Agent Reports');
|
|
291
|
+
for (const agent of standup.agents) {
|
|
292
|
+
const role = agent.agent_role ?? agent.sessionId;
|
|
293
|
+
const icon = agent.status === 'complete' ? '[DONE]'
|
|
294
|
+
: agent.status === 'blocked' ? '[BLOCKED]'
|
|
295
|
+
: '[ACTIVE]';
|
|
296
|
+
lines.push(`- **${role}** ${icon}: ${agent.progress}`);
|
|
297
|
+
}
|
|
298
|
+
lines.push('');
|
|
299
|
+
return lines.join('\n');
|
|
300
|
+
}
|
|
164
301
|
//# sourceMappingURL=standup.js.map
|
package/dist/core/standup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standup.js","sourceRoot":"","sources":["../../src/core/standup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standup.js","sourceRoot":"","sources":["../../src/core/standup.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export type MissDirection = 'long' | 'short' | 'left' | 'right';
|
|
|
15
15
|
/** Golf-inspired score labels relative to par */
|
|
16
16
|
export type ScoreLabel = 'eagle' | 'birdie' | 'par' | 'bogey' | 'double_bogey' | 'triple_plus';
|
|
17
17
|
/** Sprint type — teams can extend this with their own types */
|
|
18
|
-
export type SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage';
|
|
18
|
+
export type SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage' | 'audit';
|
|
19
19
|
/** A hazard hit during a ticket */
|
|
20
20
|
export interface HazardHit {
|
|
21
21
|
type: HazardType;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAKA,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvF,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;AAE/H,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvE,qDAAqD;AACrD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAEzE,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;AAE1F,yDAAyD;AACzD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvF,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,CAAC;AAE/F,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAKA,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvF,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;AAE/H,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvE,qDAAqD;AACrD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAEzE,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;AAE1F,yDAAyD;AACzD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvF,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,aAAa,CAAC;AAE/F,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC;AAIvH,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;CACpC;AAID,gDAAgD;AAChD,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;CAChD;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC;CAClB;AAID,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAElG,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,uCAAuC;AACvC,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,CAAC;AAEjG,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,WAAW,CAAC;CACrD;AAID,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB;AAID,wEAAwE;AACxE,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC3B;AAID,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAID,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrG;AAID,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,SAAS,EAAE,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAID,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3C,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;CAClC;AAID,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,0CAA0C;IAC1C,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,wBAAwB;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,yCAAyC;IACzC,KAAK,EAAE,eAAe,CAAC;IACvB,uDAAuD;IACvD,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3F,0BAA0B;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oCAAoC;IACpC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IACxD,WAAW,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,gDAAgD;AAChD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnH,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,yCAAyC;AACzC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEvE,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,WAAW,GAAG,MAAM,CAAC;AAE3G,yEAAyE;AACzE,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,gBAAgB,CAAC;CACnC;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SlopeEvent, CISignal } from './types.js';
|
|
2
|
+
export interface WebhookResult {
|
|
3
|
+
/** Ready for store.insertEvent() — null if event not relevant */
|
|
4
|
+
event: Omit<SlopeEvent, 'id' | 'timestamp'> | null;
|
|
5
|
+
/** Parsed CI signal from test output — null if not found */
|
|
6
|
+
ciSignal: CISignal | null;
|
|
7
|
+
/** What happened in the webhook */
|
|
8
|
+
action: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Validate a GitHub webhook signature using HMAC-SHA256.
|
|
12
|
+
* Uses crypto.timingSafeEqual to prevent timing attacks.
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateGitHubWebhookSignature(payload: string, signatureHeader: string, secret: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Handle a GitHub check_run webhook payload.
|
|
17
|
+
* Extracts CI signals from check_run.output.text when available.
|
|
18
|
+
*/
|
|
19
|
+
export declare function handleCheckRunWebhook(payload: unknown, opts?: {
|
|
20
|
+
sprintNumber?: number;
|
|
21
|
+
sessionId?: string;
|
|
22
|
+
}): WebhookResult;
|
|
23
|
+
/**
|
|
24
|
+
* Handle a GitHub workflow_run webhook payload.
|
|
25
|
+
* Maps workflow conclusions to SLOPE event types.
|
|
26
|
+
*/
|
|
27
|
+
export declare function handleWorkflowRunWebhook(payload: unknown, opts?: {
|
|
28
|
+
sprintNumber?: number;
|
|
29
|
+
sessionId?: string;
|
|
30
|
+
}): WebhookResult;
|
|
31
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/core/webhooks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACnD,4DAA4D;IAC5D,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAeT;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,aAAa,CAqDf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,aAAa,CA0Cf"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// SLOPE — CI Webhook Integration
|
|
2
|
+
// Parse GitHub webhook payloads into SLOPE events and CI signals.
|
|
3
|
+
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
4
|
+
import { parseTestOutput } from './ci-signals.js';
|
|
5
|
+
/**
|
|
6
|
+
* Validate a GitHub webhook signature using HMAC-SHA256.
|
|
7
|
+
* Uses crypto.timingSafeEqual to prevent timing attacks.
|
|
8
|
+
*/
|
|
9
|
+
export function validateGitHubWebhookSignature(payload, signatureHeader, secret) {
|
|
10
|
+
const parts = signatureHeader.split('=');
|
|
11
|
+
if (parts.length !== 2 || parts[0] !== 'sha256')
|
|
12
|
+
return false;
|
|
13
|
+
const hash = parts[1];
|
|
14
|
+
if (!hash)
|
|
15
|
+
return false;
|
|
16
|
+
const computed = createHmac('sha256', secret).update(payload, 'utf8').digest('hex');
|
|
17
|
+
// Both sides must be the same length for timingSafeEqual
|
|
18
|
+
if (computed.length !== hash.length)
|
|
19
|
+
return false;
|
|
20
|
+
return timingSafeEqual(Buffer.from(computed, 'utf8'), Buffer.from(hash, 'utf8'));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Handle a GitHub check_run webhook payload.
|
|
24
|
+
* Extracts CI signals from check_run.output.text when available.
|
|
25
|
+
*/
|
|
26
|
+
export function handleCheckRunWebhook(payload, opts) {
|
|
27
|
+
const data = payload;
|
|
28
|
+
const action = data.action ?? 'unknown';
|
|
29
|
+
const checkRun = data.check_run;
|
|
30
|
+
if (!checkRun) {
|
|
31
|
+
return { event: null, ciSignal: null, action: `check_run.${action}` };
|
|
32
|
+
}
|
|
33
|
+
const name = checkRun.name ?? 'unknown';
|
|
34
|
+
const status = checkRun.status ?? 'unknown';
|
|
35
|
+
const conclusion = checkRun.conclusion ?? null;
|
|
36
|
+
// Only process completed check runs
|
|
37
|
+
if (action !== 'completed') {
|
|
38
|
+
return { event: null, ciSignal: null, action: `check_run.${action}` };
|
|
39
|
+
}
|
|
40
|
+
// Try to parse CI signals from output text
|
|
41
|
+
let ciSignal = null;
|
|
42
|
+
const output = checkRun.output;
|
|
43
|
+
const outputText = output?.text;
|
|
44
|
+
if (outputText) {
|
|
45
|
+
ciSignal = parseTestOutput(outputText);
|
|
46
|
+
// Only keep signal if it parsed something meaningful
|
|
47
|
+
if (ciSignal.test_total === 0 && ciSignal.suites_total === 0) {
|
|
48
|
+
ciSignal = null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const eventData = {
|
|
52
|
+
source: 'github_webhook',
|
|
53
|
+
webhook_event: 'check_run',
|
|
54
|
+
check_name: name,
|
|
55
|
+
status,
|
|
56
|
+
conclusion,
|
|
57
|
+
};
|
|
58
|
+
if (ciSignal) {
|
|
59
|
+
eventData.ci_signal = ciSignal;
|
|
60
|
+
}
|
|
61
|
+
const event = {
|
|
62
|
+
type: conclusion === 'failure' ? 'failure' : 'decision',
|
|
63
|
+
data: eventData,
|
|
64
|
+
session_id: opts?.sessionId,
|
|
65
|
+
sprint_number: opts?.sprintNumber,
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
event,
|
|
69
|
+
ciSignal,
|
|
70
|
+
action: `check_run.${action}.${conclusion ?? status}`,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Handle a GitHub workflow_run webhook payload.
|
|
75
|
+
* Maps workflow conclusions to SLOPE event types.
|
|
76
|
+
*/
|
|
77
|
+
export function handleWorkflowRunWebhook(payload, opts) {
|
|
78
|
+
const data = payload;
|
|
79
|
+
const action = data.action ?? 'unknown';
|
|
80
|
+
const workflowRun = data.workflow_run;
|
|
81
|
+
if (!workflowRun) {
|
|
82
|
+
return { event: null, ciSignal: null, action: `workflow_run.${action}` };
|
|
83
|
+
}
|
|
84
|
+
const name = workflowRun.name ?? 'unknown';
|
|
85
|
+
const status = workflowRun.status ?? 'unknown';
|
|
86
|
+
const conclusion = workflowRun.conclusion ?? null;
|
|
87
|
+
const branch = workflowRun.head_branch ?? undefined;
|
|
88
|
+
const runNumber = workflowRun.run_number ?? undefined;
|
|
89
|
+
// Only process completed workflow runs
|
|
90
|
+
if (action !== 'completed') {
|
|
91
|
+
return { event: null, ciSignal: null, action: `workflow_run.${action}` };
|
|
92
|
+
}
|
|
93
|
+
const eventData = {
|
|
94
|
+
source: 'github_webhook',
|
|
95
|
+
webhook_event: 'workflow_run',
|
|
96
|
+
workflow_name: name,
|
|
97
|
+
status,
|
|
98
|
+
conclusion,
|
|
99
|
+
branch,
|
|
100
|
+
run_number: runNumber,
|
|
101
|
+
};
|
|
102
|
+
const event = {
|
|
103
|
+
type: conclusion === 'failure' ? 'failure' : 'decision',
|
|
104
|
+
data: eventData,
|
|
105
|
+
session_id: opts?.sessionId,
|
|
106
|
+
sprint_number: opts?.sprintNumber,
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
event,
|
|
110
|
+
ciSignal: null, // workflow_run doesn't include test output directly
|
|
111
|
+
action: `workflow_run.${action}.${conclusion ?? status}`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/core/webhooks.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,kEAAkE;AAElE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAYlD;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAe,EACf,eAAuB,EACvB,MAAc;IAEd,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpF,yDAAyD;IACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAElD,OAAO,eAAe,CACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,IAAoD;IAEpD,MAAM,IAAI,GAAG,OAAkC,CAAC;IAChD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,SAAS,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAgD,CAAC;IAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,MAAM,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAI,QAAQ,CAAC,IAAe,IAAI,SAAS,CAAC;IACpD,MAAM,MAAM,GAAI,QAAQ,CAAC,MAAiB,IAAI,SAAS,CAAC;IACxD,MAAM,UAAU,GAAI,QAAQ,CAAC,UAAqB,IAAI,IAAI,CAAC;IAE3D,oCAAoC;IACpC,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,MAAM,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,2CAA2C;IAC3C,IAAI,QAAQ,GAAoB,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAA6C,CAAC;IACtE,MAAM,UAAU,GAAG,MAAM,EAAE,IAA0B,CAAC;IACtD,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACvC,qDAAqD;QACrD,IAAI,QAAQ,CAAC,UAAU,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC7D,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAA4B;QACzC,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,IAAI;QAChB,MAAM;QACN,UAAU;KACX,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAyC;QAClD,IAAI,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QACvD,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI,EAAE,SAAS;QAC3B,aAAa,EAAE,IAAI,EAAE,YAAY;KAClC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,aAAa,MAAM,IAAI,UAAU,IAAI,MAAM,EAAE;KACtD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,IAAoD;IAEpD,MAAM,IAAI,GAAG,OAAkC,CAAC;IAChD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,SAAS,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAmD,CAAC;IAE7E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,MAAM,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAI,WAAW,CAAC,IAAe,IAAI,SAAS,CAAC;IACvD,MAAM,MAAM,GAAI,WAAW,CAAC,MAAiB,IAAI,SAAS,CAAC;IAC3D,MAAM,UAAU,GAAI,WAAW,CAAC,UAAqB,IAAI,IAAI,CAAC;IAC9D,MAAM,MAAM,GAAI,WAAW,CAAC,WAAsB,IAAI,SAAS,CAAC;IAChE,MAAM,SAAS,GAAI,WAAW,CAAC,UAAqB,IAAI,SAAS,CAAC;IAElE,uCAAuC;IACvC,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,MAAM,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAA4B;QACzC,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE,cAAc;QAC7B,aAAa,EAAE,IAAI;QACnB,MAAM;QACN,UAAU;QACV,MAAM;QACN,UAAU,EAAE,SAAS;KACtB,CAAC;IAEF,MAAM,KAAK,GAAyC;QAClD,IAAI,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QACvD,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI,EAAE,SAAS;QAC3B,aAAa,EAAE,IAAI,EAAE,YAAY;KAClC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,IAAI,EAAG,oDAAoD;QACrE,MAAM,EAAE,gBAAgB,MAAM,IAAI,UAAU,IAAI,MAAM,EAAE;KACzD,CAAC;AACJ,CAAC"}
|
package/dist/mcp/registry.d.ts
CHANGED
|
@@ -13,5 +13,5 @@ export declare const SLOPE_REGISTRY: FunctionRegistryEntry[];
|
|
|
13
13
|
* Key TypeScript type definitions for agent reference.
|
|
14
14
|
* Agents call search({ module: 'types' }) to retrieve this.
|
|
15
15
|
*/
|
|
16
|
-
export declare const SLOPE_TYPES = "// \u2500\u2500\u2500 Core Scoring Enums \u2500\u2500\u2500\ntype ClubSelection = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ntype ShotResult = 'fairway' | 'green' | 'in_the_hole' | 'missed_long' | 'missed_short' | 'missed_left' | 'missed_right';\ntype HazardType = 'bunker' | 'water' | 'ob' | 'rough' | 'trees';\ntype ConditionType = 'wind' | 'rain' | 'frost_delay' | 'altitude' | 'pin_position';\ntype SpecialPlay = 'gimme' | 'mulligan' | 'provisional' | 'lay_up' | 'scramble';\ntype MissDirection = 'long' | 'short' | 'left' | 'right';\ntype ScoreLabel = 'eagle' | 'birdie' | 'par' | 'bogey' | 'double_bogey' | 'triple_plus';\ntype SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage';\n\n// \u2500\u2500\u2500 Record Types \u2500\u2500\u2500\ninterface HazardHit { type: HazardType; description: string; gotcha_id?: string; }\ninterface ShotRecord { ticket_key: string; title: string; club: ClubSelection; result: ShotResult; hazards: HazardHit[]; provisional_declared?: boolean; notes?: string; }\ninterface ConditionRecord { type: ConditionType; description: string; impact: 'none' | 'minor' | 'major'; }\n\n// \u2500\u2500\u2500 Scoring Types \u2500\u2500\u2500\ninterface HoleStats { fairways_hit: number; fairways_total: number; greens_in_regulation: number; greens_total: number; putts: number; penalties: number; hazards_hit: number; hazard_penalties: number; miss_directions: Record<MissDirection, number>; }\ninterface HoleScore { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; score: number; score_label: ScoreLabel; shots: ShotRecord[]; conditions: ConditionRecord[]; special_plays: SpecialPlay[]; stats: HoleStats; }\n\n// \u2500\u2500\u2500 Full Scorecard \u2500\u2500\u2500\ninterface GolfScorecard extends HoleScore { type?: SprintType; player?: string; date: string; training?: TrainingSession[]; nutrition?: NutritionEntry[]; yardage_book_updates: string[]; bunker_locations: string[]; course_management_notes: string[]; nineteenth_hole?: NineteenthHole; }\n\n// \u2500\u2500\u2500 Handicap \u2500\u2500\u2500\ninterface RollingStats { handicap: number; fairway_pct: number; gir_pct: number; avg_putts: number; penalties_per_round: number; miss_pattern: Record<MissDirection, number>; mulligans: number; gimmes: number; }\ninterface HandicapCard { last_5: RollingStats; last_10: RollingStats; all_time: RollingStats; }\n\n// \u2500\u2500\u2500 Dispersion \u2500\u2500\u2500\ninterface DispersionReport { total_shots: number; total_misses: number; miss_rate_pct: number; by_direction: Record<MissDirection, { count: number; pct: number; interpretation: string }>; dominant_miss: MissDirection | null; systemic_issues: string[]; }\ninterface AreaReport { by_sprint_type: Record<string, { count: number; avg_score_vs_par: number; fairway_pct: number; gir_pct: number }>; by_club: Record<string, { count: number; in_the_hole_rate: number; miss_rate: number }>; par_performance: Record<number, { count: number; avg_score_vs_par: number; over_par_rate: number }>; }\n\n// \u2500\u2500\u2500 Config & Loader \u2500\u2500\u2500\ninterface SlopeConfig { scorecardDir: string; scorecardPattern: string; minSprint: number; commonIssuesPath: string; sessionsPath: string; registry: 'file' | 'api'; claimsPath: string; registryApiUrl?: string; currentSprint?: number; store?: string; store_path?: string; }\n\n// \u2500\u2500\u2500 Store \u2500\u2500\u2500\ninterface SlopeSession { session_id: string; role: 'primary' | 'secondary' | 'observer'; ide: string; worktree_path?: string; branch?: string; started_at: string; last_heartbeat_at: string; metadata?: Record<string, unknown>; agent_role?: string; swarm_id?: string; }\ninterface SprintClaim { id: string; sprint_number: number; player: string; target: string; scope: ClaimScope; claimed_at: string; notes?: string; session_id?: string; expires_at?: string; metadata?: Record<string, unknown>; }\n\n// \u2500\u2500\u2500 Standup \u2500\u2500\u2500\ninterface StandupReport { sessionId: string; agent_role?: string; ticketKey?: string; status: 'working' | 'blocked' | 'complete'; progress: string; blockers: string[]; decisions: string[]; handoffs: HandoffEntry[]; timestamp: string; }\ninterface HandoffEntry { target: string; description: string; for_role?: string; }\n\n// \u2500\u2500\u2500 Roles \u2500\u2500\u2500\ninterface RoleDefinition { id: string; name: string; description: string; focusAreas: string[]; clubPreferences: Partial<Record<string, ClubSelection>>; briefingFilter: { emphasize: string[]; deemphasize: string[] }; }\n\n// \u2500\u2500\u2500 Builder Input \u2500\u2500\u2500\ninterface AgentBreakdown { session_id: string; agent_role: string; shots: ShotRecord[]; score: number; stats: HoleStats; }\ninterface AgentShotInput { session_id: string; agent_role: string; shots: ShotRecord[]; }\ninterface ScorecardInput { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; date: string; shots: ShotRecord[]; putts?: number; penalties?: number; type?: SprintType; conditions?: ConditionRecord[]; special_plays?: SpecialPlay[]; training?: TrainingSession[]; nutrition?: NutritionEntry[]; nineteenth_hole?: NineteenthHole; bunker_locations?: string[]; yardage_book_updates?: string[]; course_management_notes?: string[]; agents?: AgentBreakdown[]; }\n\n// \u2500\u2500\u2500 Escalation \u2500\u2500\u2500\ntype EscalationTrigger = 'blocker_timeout' | 'claim_conflict' | 'test_failure_cascade' | 'manual';\ntype EscalationSeverity = 'warning' | 'critical';\ntype EscalationAction = 'log_event' | 'mark_blocked' | 'notify_standup';\ninterface EscalationConfig { blocker_timeout?: number; claim_conflict?: boolean; test_failure_cascade?: number; actions?: EscalationAction[]; }\ninterface EscalationResult { trigger: EscalationTrigger; severity: EscalationSeverity; description: string; session_id?: string; agent_role?: string; actions: EscalationAction[]; }\n\n// \u2500\u2500\u2500 Team Handicap \u2500\u2500\u2500\ninterface RoleHandicap { role: string; sprints_participated: number; total_shots: number; stats: RollingStats; }\ninterface SwarmEfficiency { total_sprints: number; total_agents: number; avg_agents_per_sprint: number; total_shots: number; total_score: number; avg_score_vs_par: number; coordination_events: number; efficiency_ratio: number; }\ninterface RoleCombinationStats { roles: string[]; sprint_count: number; avg_score_vs_par: number; total_hazards: number; }\ninterface TeamHandicapCard { overall: RollingStats; by_role: RoleHandicap[]; swarm_efficiency: SwarmEfficiency; role_combinations: RoleCombinationStats[]; }\n\n// \u2500\u2500\u2500 PR Signals \u2500\u2500\u2500\ntype PRPlatform = 'github' | 'gitlab' | 'bitbucket' | 'unknown';\ntype PRReviewDecision = 'APPROVED' | 'CHANGES_REQUESTED' | 'REVIEW_REQUIRED' | 'COMMENTED' | 'NONE';\ninterface PRSignal { platform: PRPlatform; pr_number: number; review_cycles: number; change_request_count: number; time_to_merge_minutes: number | null; ci_checks_passed: number; ci_checks_failed: number; file_count: number; additions: number; deletions: number; comment_count: number; review_decision: PRReviewDecision; }\n\n// \u2500\u2500\u2500 Advisor \u2500\u2500\u2500\ninterface ExecutionTrace { planned_scope_paths: string[]; modified_files: string[]; test_results: { suite: string; passed: boolean; first_run: boolean }[]; reverts: number; elapsed_minutes: number; hazards_encountered: HazardHit[]; }\ninterface ShotClassification { result: ShotResult; miss_direction: MissDirection | null; confidence: number; reasoning: string; }\ninterface CombinedSignals { trace: ExecutionTrace; ci?: CISignal; pr?: PRSignal; events?: SlopeEvent[]; }\ninterface ClubRecommendation { club: ClubSelection; confidence: number; reasoning: string; provisional_suggestion?: string; }\ninterface TrainingRecommendation { area: string; type: TrainingType; description: string; priority: 'high' | 'medium' | 'low'; instruction_adjustment?: string; }\ninterface RecommendClubInput { ticketComplexity: 'trivial' | 'small' | 'medium' | 'large'; scorecards: GolfScorecard[]; slopeFactors?: string[]; }\ninterface TrainingPlanInput { handicap: HandicapCard; dispersion: DispersionReport; recentScorecards: GolfScorecard[]; }\n\n// \u2500\u2500\u2500 Roadmap \u2500\u2500\u2500\ntype RoadmapClub = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ninterface RoadmapTicket { key: string; title: string; club: RoadmapClub; complexity: 'trivial' | 'small' | 'standard' | 'moderate'; depends_on?: string[]; }\ninterface RoadmapSprint { id: number; theme: string; par: 3 | 4 | 5; slope: number; type: string; tickets: RoadmapTicket[]; depends_on?: number[]; }\ninterface RoadmapPhase { name: string; sprints: number[]; }\ninterface RoadmapDefinition { name: string; description?: string; phases: RoadmapPhase[]; sprints: RoadmapSprint[]; }\ninterface RoadmapValidationResult { valid: boolean; errors: RoadmapValidationError[]; warnings: RoadmapValidationWarning[]; }\ninterface RoadmapValidationError { type: 'error'; sprint?: number; ticket?: string; message: string; }\ninterface RoadmapValidationWarning { type: 'warning'; sprint?: number; ticket?: string; message: string; }\ninterface CriticalPathResult { path: number[]; length: number; totalPar: number; }\ninterface ParallelGroup { sprints: number[]; reason: string; }\n\n// \u2500\u2500\u2500 Player (Multi-Developer) \u2500\u2500\u2500\ninterface PlayerHandicap { player: string; scorecardCount: number; handicapCard: HandicapCard; }\ninterface LeaderboardEntry { rank: number; player: string; handicap: number; scorecardCount: number; improvementTrend: number; fairwayPct: number; girPct: number; }\ninterface Leaderboard { entries: LeaderboardEntry[]; generatedAt: string; }\n\n// \u2500\u2500\u2500 Flows \u2500\u2500\u2500\ninterface FlowStep { name: string; description: string; file_paths: string[]; notes?: string; }\ninterface FlowDefinition { id: string; title: string; description: string; entry_point: string; steps: FlowStep[]; files: string[]; tags: string[]; last_verified_sha: string; last_verified_at: string; }\ninterface FlowsFile { version: '1'; last_generated: string; flows: FlowDefinition[]; }\n\n// \u2500\u2500\u2500 Briefing \u2500\u2500\u2500\ninterface RecurringPattern { id: number; title: string; category: string; sprints_hit: number[]; gotcha_refs: string[]; description: string; prevention: string; reported_by?: string[]; }\ninterface CommonIssuesFile { recurring_patterns: RecurringPattern[]; }\ninterface SessionEntry { id: number; date: string; sprint: string; summary: string; where_left_off: string; }\ninterface BriefingFilter { categories?: string[]; keywords?: string[]; }\n\n// \u2500\u2500\u2500 Tournament \u2500\u2500\u2500\ninterface TournamentReview { id: string; name: string; dateRange: { start: string; end: string }; sprints: TournamentSprintEntry[]; scoring: TournamentScoring; stats: TournamentStats; hazardIndex: TournamentHazard[]; clubPerformance: Record<string, { attempts: number; inTheHole: number; avgScore: number }>; takeaways: string[]; improvements: string[]; reflection?: string; }\ninterface TournamentSprintEntry { sprintNumber: number; theme: string; par: number; slope: number; score: number; scoreLabel: ScoreLabel; ticketCount: number; ticketsLanded: number; }\ninterface TournamentScoring { totalPar: number; totalScore: number; differential: number; avgScoreLabel: string; bestSprint: { sprintNumber: number; label: ScoreLabel }; worstSprint: { sprintNumber: number; label: ScoreLabel }; sprintCount: number; ticketCount: number; ticketsLanded: number; landingRate: number; }\n";
|
|
16
|
+
export declare const SLOPE_TYPES = "// \u2500\u2500\u2500 Core Scoring Enums \u2500\u2500\u2500\ntype ClubSelection = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ntype ShotResult = 'fairway' | 'green' | 'in_the_hole' | 'missed_long' | 'missed_short' | 'missed_left' | 'missed_right';\ntype HazardType = 'bunker' | 'water' | 'ob' | 'rough' | 'trees';\ntype ConditionType = 'wind' | 'rain' | 'frost_delay' | 'altitude' | 'pin_position';\ntype SpecialPlay = 'gimme' | 'mulligan' | 'provisional' | 'lay_up' | 'scramble';\ntype MissDirection = 'long' | 'short' | 'left' | 'right';\ntype ScoreLabel = 'eagle' | 'birdie' | 'par' | 'bogey' | 'double_bogey' | 'triple_plus';\ntype SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage' | 'audit';\n\n// \u2500\u2500\u2500 Record Types \u2500\u2500\u2500\ninterface HazardHit { type: HazardType; description: string; gotcha_id?: string; }\ninterface ShotRecord { ticket_key: string; title: string; club: ClubSelection; result: ShotResult; hazards: HazardHit[]; provisional_declared?: boolean; notes?: string; }\ninterface ConditionRecord { type: ConditionType; description: string; impact: 'none' | 'minor' | 'major'; }\n\n// \u2500\u2500\u2500 Scoring Types \u2500\u2500\u2500\ninterface HoleStats { fairways_hit: number; fairways_total: number; greens_in_regulation: number; greens_total: number; putts: number; penalties: number; hazards_hit: number; hazard_penalties: number; miss_directions: Record<MissDirection, number>; }\ninterface HoleScore { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; score: number; score_label: ScoreLabel; shots: ShotRecord[]; conditions: ConditionRecord[]; special_plays: SpecialPlay[]; stats: HoleStats; }\n\n// \u2500\u2500\u2500 Full Scorecard \u2500\u2500\u2500\ninterface GolfScorecard extends HoleScore { type?: SprintType; player?: string; date: string; training?: TrainingSession[]; nutrition?: NutritionEntry[]; yardage_book_updates: string[]; bunker_locations: string[]; course_management_notes: string[]; nineteenth_hole?: NineteenthHole; }\n\n// \u2500\u2500\u2500 Handicap \u2500\u2500\u2500\ninterface RollingStats { handicap: number; fairway_pct: number; gir_pct: number; avg_putts: number; penalties_per_round: number; miss_pattern: Record<MissDirection, number>; mulligans: number; gimmes: number; }\ninterface HandicapCard { last_5: RollingStats; last_10: RollingStats; all_time: RollingStats; }\n\n// \u2500\u2500\u2500 Dispersion \u2500\u2500\u2500\ninterface DispersionReport { total_shots: number; total_misses: number; miss_rate_pct: number; by_direction: Record<MissDirection, { count: number; pct: number; interpretation: string }>; dominant_miss: MissDirection | null; systemic_issues: string[]; }\ninterface AreaReport { by_sprint_type: Record<string, { count: number; avg_score_vs_par: number; fairway_pct: number; gir_pct: number }>; by_club: Record<string, { count: number; in_the_hole_rate: number; miss_rate: number }>; par_performance: Record<number, { count: number; avg_score_vs_par: number; over_par_rate: number }>; }\n\n// \u2500\u2500\u2500 Config & Loader \u2500\u2500\u2500\ninterface SlopeConfig { scorecardDir: string; scorecardPattern: string; minSprint: number; commonIssuesPath: string; sessionsPath: string; registry: 'file' | 'api'; claimsPath: string; registryApiUrl?: string; currentSprint?: number; store?: string; store_path?: string; }\n\n// \u2500\u2500\u2500 Store \u2500\u2500\u2500\ninterface SlopeSession { session_id: string; role: 'primary' | 'secondary' | 'observer'; ide: string; worktree_path?: string; branch?: string; started_at: string; last_heartbeat_at: string; metadata?: Record<string, unknown>; agent_role?: string; swarm_id?: string; }\ninterface SprintClaim { id: string; sprint_number: number; player: string; target: string; scope: ClaimScope; claimed_at: string; notes?: string; session_id?: string; expires_at?: string; metadata?: Record<string, unknown>; }\n\n// \u2500\u2500\u2500 Standup \u2500\u2500\u2500\ninterface StandupReport { sessionId: string; agent_role?: string; ticketKey?: string; status: 'working' | 'blocked' | 'complete'; progress: string; blockers: string[]; decisions: string[]; handoffs: HandoffEntry[]; timestamp: string; }\ninterface HandoffEntry { target: string; description: string; for_role?: string; }\n\n// \u2500\u2500\u2500 Roles \u2500\u2500\u2500\ninterface RoleDefinition { id: string; name: string; description: string; focusAreas: string[]; clubPreferences: Partial<Record<string, ClubSelection>>; briefingFilter: { emphasize: string[]; deemphasize: string[] }; }\n\n// \u2500\u2500\u2500 Builder Input \u2500\u2500\u2500\ninterface AgentBreakdown { session_id: string; agent_role: string; shots: ShotRecord[]; score: number; stats: HoleStats; }\ninterface AgentShotInput { session_id: string; agent_role: string; shots: ShotRecord[]; }\ninterface ScorecardInput { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; date: string; shots: ShotRecord[]; putts?: number; penalties?: number; type?: SprintType; conditions?: ConditionRecord[]; special_plays?: SpecialPlay[]; training?: TrainingSession[]; nutrition?: NutritionEntry[]; nineteenth_hole?: NineteenthHole; bunker_locations?: string[]; yardage_book_updates?: string[]; course_management_notes?: string[]; agents?: AgentBreakdown[]; }\n\n// \u2500\u2500\u2500 Escalation \u2500\u2500\u2500\ntype EscalationTrigger = 'blocker_timeout' | 'claim_conflict' | 'test_failure_cascade' | 'manual';\ntype EscalationSeverity = 'warning' | 'critical';\ntype EscalationAction = 'log_event' | 'mark_blocked' | 'notify_standup';\ninterface EscalationConfig { blocker_timeout?: number; claim_conflict?: boolean; test_failure_cascade?: number; actions?: EscalationAction[]; }\ninterface EscalationResult { trigger: EscalationTrigger; severity: EscalationSeverity; description: string; session_id?: string; agent_role?: string; actions: EscalationAction[]; }\n\n// \u2500\u2500\u2500 Team Handicap \u2500\u2500\u2500\ninterface RoleHandicap { role: string; sprints_participated: number; total_shots: number; stats: RollingStats; }\ninterface SwarmEfficiency { total_sprints: number; total_agents: number; avg_agents_per_sprint: number; total_shots: number; total_score: number; avg_score_vs_par: number; coordination_events: number; efficiency_ratio: number; }\ninterface RoleCombinationStats { roles: string[]; sprint_count: number; avg_score_vs_par: number; total_hazards: number; }\ninterface TeamHandicapCard { overall: RollingStats; by_role: RoleHandicap[]; swarm_efficiency: SwarmEfficiency; role_combinations: RoleCombinationStats[]; }\n\n// \u2500\u2500\u2500 PR Signals \u2500\u2500\u2500\ntype PRPlatform = 'github' | 'gitlab' | 'bitbucket' | 'unknown';\ntype PRReviewDecision = 'APPROVED' | 'CHANGES_REQUESTED' | 'REVIEW_REQUIRED' | 'COMMENTED' | 'NONE';\ninterface PRSignal { platform: PRPlatform; pr_number: number; review_cycles: number; change_request_count: number; time_to_merge_minutes: number | null; ci_checks_passed: number; ci_checks_failed: number; file_count: number; additions: number; deletions: number; comment_count: number; review_decision: PRReviewDecision; }\n\n// \u2500\u2500\u2500 Advisor \u2500\u2500\u2500\ninterface ExecutionTrace { planned_scope_paths: string[]; modified_files: string[]; test_results: { suite: string; passed: boolean; first_run: boolean }[]; reverts: number; elapsed_minutes: number; hazards_encountered: HazardHit[]; }\ninterface ShotClassification { result: ShotResult; miss_direction: MissDirection | null; confidence: number; reasoning: string; }\ninterface CombinedSignals { trace: ExecutionTrace; ci?: CISignal; pr?: PRSignal; events?: SlopeEvent[]; }\ninterface ClubRecommendation { club: ClubSelection; confidence: number; reasoning: string; provisional_suggestion?: string; }\ninterface TrainingRecommendation { area: string; type: TrainingType; description: string; priority: 'high' | 'medium' | 'low'; instruction_adjustment?: string; }\ninterface RecommendClubInput { ticketComplexity: 'trivial' | 'small' | 'medium' | 'large'; scorecards: GolfScorecard[]; slopeFactors?: string[]; }\ninterface TrainingPlanInput { handicap: HandicapCard; dispersion: DispersionReport; recentScorecards: GolfScorecard[]; }\n\n// \u2500\u2500\u2500 Roadmap \u2500\u2500\u2500\ntype RoadmapClub = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ninterface RoadmapTicket { key: string; title: string; club: RoadmapClub; complexity: 'trivial' | 'small' | 'standard' | 'moderate'; depends_on?: string[]; }\ninterface RoadmapSprint { id: number; theme: string; par: 3 | 4 | 5; slope: number; type: string; tickets: RoadmapTicket[]; depends_on?: number[]; }\ninterface RoadmapPhase { name: string; sprints: number[]; }\ninterface RoadmapDefinition { name: string; description?: string; phases: RoadmapPhase[]; sprints: RoadmapSprint[]; }\ninterface RoadmapValidationResult { valid: boolean; errors: RoadmapValidationError[]; warnings: RoadmapValidationWarning[]; }\ninterface RoadmapValidationError { type: 'error'; sprint?: number; ticket?: string; message: string; }\ninterface RoadmapValidationWarning { type: 'warning'; sprint?: number; ticket?: string; message: string; }\ninterface CriticalPathResult { path: number[]; length: number; totalPar: number; }\ninterface ParallelGroup { sprints: number[]; reason: string; }\n\n// \u2500\u2500\u2500 Player (Multi-Developer) \u2500\u2500\u2500\ninterface PlayerHandicap { player: string; scorecardCount: number; handicapCard: HandicapCard; }\ninterface LeaderboardEntry { rank: number; player: string; handicap: number; scorecardCount: number; improvementTrend: number; fairwayPct: number; girPct: number; }\ninterface Leaderboard { entries: LeaderboardEntry[]; generatedAt: string; }\n\n// \u2500\u2500\u2500 Flows \u2500\u2500\u2500\ninterface FlowStep { name: string; description: string; file_paths: string[]; notes?: string; }\ninterface FlowDefinition { id: string; title: string; description: string; entry_point: string; steps: FlowStep[]; files: string[]; tags: string[]; last_verified_sha: string; last_verified_at: string; }\ninterface FlowsFile { version: '1'; last_generated: string; flows: FlowDefinition[]; }\n\n// \u2500\u2500\u2500 Briefing \u2500\u2500\u2500\ninterface RecurringPattern { id: number; title: string; category: string; sprints_hit: number[]; gotcha_refs: string[]; description: string; prevention: string; reported_by?: string[]; }\ninterface CommonIssuesFile { recurring_patterns: RecurringPattern[]; }\ninterface SessionEntry { id: number; date: string; sprint: string; summary: string; where_left_off: string; }\ninterface BriefingFilter { categories?: string[]; keywords?: string[]; }\n\n// \u2500\u2500\u2500 Tournament \u2500\u2500\u2500\ninterface TournamentReview { id: string; name: string; dateRange: { start: string; end: string }; sprints: TournamentSprintEntry[]; scoring: TournamentScoring; stats: TournamentStats; hazardIndex: TournamentHazard[]; clubPerformance: Record<string, { attempts: number; inTheHole: number; avgScore: number }>; takeaways: string[]; improvements: string[]; reflection?: string; }\ninterface TournamentSprintEntry { sprintNumber: number; theme: string; par: number; slope: number; score: number; scoreLabel: ScoreLabel; ticketCount: number; ticketsLanded: number; }\ninterface TournamentScoring { totalPar: number; totalScore: number; differential: number; avgScoreLabel: string; bestSprint: { sprintNumber: number; label: ScoreLabel }; worstSprint: { sprintNumber: number; label: ScoreLabel }; sprintCount: number; ticketCount: number; ticketsLanded: number; landingRate: number; }\n";
|
|
17
17
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,qBAAqB,EAimBjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,qBAAqB,EAimBjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,24WA6GvB,CAAC"}
|
package/dist/mcp/registry.js
CHANGED
|
@@ -604,7 +604,7 @@ type ConditionType = 'wind' | 'rain' | 'frost_delay' | 'altitude' | 'pin_positio
|
|
|
604
604
|
type SpecialPlay = 'gimme' | 'mulligan' | 'provisional' | 'lay_up' | 'scramble';
|
|
605
605
|
type MissDirection = 'long' | 'short' | 'left' | 'right';
|
|
606
606
|
type ScoreLabel = 'eagle' | 'birdie' | 'par' | 'bogey' | 'double_bogey' | 'triple_plus';
|
|
607
|
-
type SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage';
|
|
607
|
+
type SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage' | 'audit';
|
|
608
608
|
|
|
609
609
|
// ─── Record Types ───
|
|
610
610
|
interface HazardHit { type: HazardType; description: string; gotcha_id?: string; }
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { SprintClaim, GolfScorecard, SlopeEvent } from '../core/types.js';
|
|
2
|
+
import type { CommonIssuesFile } from '../core/briefing.js';
|
|
3
|
+
import type { SlopeStore, SlopeSession } from '../core/store.js';
|
|
4
|
+
type Pool = import('pg').Pool;
|
|
5
|
+
export interface PostgresStoreOptions {
|
|
6
|
+
connectionString?: string;
|
|
7
|
+
pool?: Pool;
|
|
8
|
+
projectId?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class PostgresSlopeStore implements SlopeStore {
|
|
11
|
+
private pool;
|
|
12
|
+
private ownedPool;
|
|
13
|
+
private projectId;
|
|
14
|
+
private migrated;
|
|
15
|
+
constructor(opts: PostgresStoreOptions);
|
|
16
|
+
/** Run schema migrations with transaction-scoped advisory lock for concurrency safety */
|
|
17
|
+
migrate(): Promise<void>;
|
|
18
|
+
registerSession(session: Omit<SlopeSession, 'started_at' | 'last_heartbeat_at'>): Promise<SlopeSession>;
|
|
19
|
+
removeSession(sessionId: string): Promise<boolean>;
|
|
20
|
+
getActiveSessions(): Promise<SlopeSession[]>;
|
|
21
|
+
getSessionsBySwarm(swarmId: string): Promise<SlopeSession[]>;
|
|
22
|
+
updateHeartbeat(sessionId: string): Promise<void>;
|
|
23
|
+
cleanStaleSessions(maxAgeMs: number): Promise<number>;
|
|
24
|
+
claim(input: Omit<SprintClaim, 'id' | 'claimed_at'>): Promise<SprintClaim>;
|
|
25
|
+
release(id: string): Promise<boolean>;
|
|
26
|
+
list(sprintNumber: number): Promise<SprintClaim[]>;
|
|
27
|
+
get(id: string): Promise<SprintClaim | undefined>;
|
|
28
|
+
getActiveClaims(sprintNumber?: number): Promise<SprintClaim[]>;
|
|
29
|
+
saveScorecard(card: GolfScorecard): Promise<void>;
|
|
30
|
+
listScorecards(filter?: {
|
|
31
|
+
minSprint?: number;
|
|
32
|
+
maxSprint?: number;
|
|
33
|
+
}): Promise<GolfScorecard[]>;
|
|
34
|
+
loadCommonIssues(): Promise<CommonIssuesFile>;
|
|
35
|
+
saveCommonIssues(issues: CommonIssuesFile): Promise<void>;
|
|
36
|
+
insertEvent(event: Omit<SlopeEvent, 'id' | 'timestamp'>): Promise<SlopeEvent>;
|
|
37
|
+
getEventsBySession(sessionId: string): Promise<SlopeEvent[]>;
|
|
38
|
+
getEventsBySprint(sprintNumber: number): Promise<SlopeEvent[]>;
|
|
39
|
+
getEventsByTicket(ticketKey: string): Promise<SlopeEvent[]>;
|
|
40
|
+
close(): void;
|
|
41
|
+
}
|
|
42
|
+
/** Create a PostgreSQL-backed SlopeStore. Requires `pg` package to be installed. */
|
|
43
|
+
export declare function createPostgresStore(opts: {
|
|
44
|
+
connectionString?: string;
|
|
45
|
+
pool?: unknown;
|
|
46
|
+
projectId?: string;
|
|
47
|
+
}): Promise<SlopeStore>;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store-pg/index.ts"],"names":[],"mappings":"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"}
|