codekin 0.6.3 → 0.6.5
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 +1 -0
- package/bin/codekin.mjs +69 -6
- package/dist/assets/index-B0xIzdCK.js +187 -0
- package/dist/assets/index-Q2WSVlHo.css +1 -0
- package/dist/index.html +2 -2
- package/package.json +5 -5
- package/server/dist/auth-routes.js +6 -0
- package/server/dist/auth-routes.js.map +1 -1
- package/server/dist/claude-process.d.ts +1 -0
- package/server/dist/claude-process.js +7 -3
- package/server/dist/claude-process.js.map +1 -1
- package/server/dist/commit-event-handler.d.ts +16 -2
- package/server/dist/commit-event-handler.js +43 -10
- package/server/dist/commit-event-handler.js.map +1 -1
- package/server/dist/commit-event-hooks.d.ts +11 -0
- package/server/dist/commit-event-hooks.js +61 -11
- package/server/dist/commit-event-hooks.js.map +1 -1
- package/server/dist/config.d.ts +19 -0
- package/server/dist/config.js +43 -1
- package/server/dist/config.js.map +1 -1
- package/server/dist/docs-routes.js +4 -7
- package/server/dist/docs-routes.js.map +1 -1
- package/server/dist/json-parse.d.ts +8 -0
- package/server/dist/json-parse.js +9 -0
- package/server/dist/json-parse.js.map +1 -0
- package/server/dist/opencode-process.js +8 -1
- package/server/dist/opencode-process.js.map +1 -1
- package/server/dist/orchestrator-children.d.ts +41 -1
- package/server/dist/orchestrator-children.js +87 -1
- package/server/dist/orchestrator-children.js.map +1 -1
- package/server/dist/orchestrator-learning-router.d.ts +8 -0
- package/server/dist/orchestrator-learning-router.js +126 -0
- package/server/dist/orchestrator-learning-router.js.map +1 -0
- package/server/dist/orchestrator-learning.d.ts +0 -5
- package/server/dist/orchestrator-learning.js +2 -9
- package/server/dist/orchestrator-learning.js.map +1 -1
- package/server/dist/orchestrator-memory-router.d.ts +10 -0
- package/server/dist/orchestrator-memory-router.js +148 -0
- package/server/dist/orchestrator-memory-router.js.map +1 -0
- package/server/dist/orchestrator-memory.js +2 -1
- package/server/dist/orchestrator-memory.js.map +1 -1
- package/server/dist/orchestrator-monitor.d.ts +6 -0
- package/server/dist/orchestrator-monitor.js +27 -0
- package/server/dist/orchestrator-monitor.js.map +1 -1
- package/server/dist/orchestrator-notify.d.ts +29 -0
- package/server/dist/orchestrator-notify.js +27 -0
- package/server/dist/orchestrator-notify.js.map +1 -0
- package/server/dist/orchestrator-reports.d.ts +0 -4
- package/server/dist/orchestrator-reports.js +8 -10
- package/server/dist/orchestrator-reports.js.map +1 -1
- package/server/dist/orchestrator-routes.d.ts +2 -2
- package/server/dist/orchestrator-routes.js +11 -506
- package/server/dist/orchestrator-routes.js.map +1 -1
- package/server/dist/orchestrator-session-router.d.ts +13 -0
- package/server/dist/orchestrator-session-router.js +315 -0
- package/server/dist/orchestrator-session-router.js.map +1 -0
- package/server/dist/process-coordinator.d.ts +83 -0
- package/server/dist/process-coordinator.js +167 -0
- package/server/dist/process-coordinator.js.map +1 -0
- package/server/dist/prompt-router.js +2 -1
- package/server/dist/prompt-router.js.map +1 -1
- package/server/dist/session-archive.js +2 -1
- package/server/dist/session-archive.js.map +1 -1
- package/server/dist/session-lifecycle.d.ts +1 -0
- package/server/dist/session-lifecycle.js +15 -36
- package/server/dist/session-lifecycle.js.map +1 -1
- package/server/dist/session-manager.d.ts +34 -0
- package/server/dist/session-manager.js +161 -79
- package/server/dist/session-manager.js.map +1 -1
- package/server/dist/session-persistence.js +3 -1
- package/server/dist/session-persistence.js.map +1 -1
- package/server/dist/session-routes.d.ts +18 -0
- package/server/dist/session-routes.js +60 -12
- package/server/dist/session-routes.js.map +1 -1
- package/server/dist/stepflow-handler.js +5 -1
- package/server/dist/stepflow-handler.js.map +1 -1
- package/server/dist/stepflow-prompt.js +16 -12
- package/server/dist/stepflow-prompt.js.map +1 -1
- package/server/dist/tsconfig.tsbuildinfo +1 -1
- package/server/dist/types.d.ts +4 -0
- package/server/dist/types.js +1 -0
- package/server/dist/types.js.map +1 -1
- package/server/dist/upload-routes.d.ts +5 -0
- package/server/dist/upload-routes.js +81 -16
- package/server/dist/upload-routes.js.map +1 -1
- package/server/dist/version-check.js +3 -2
- package/server/dist/version-check.js.map +1 -1
- package/server/dist/webhook-rate-limiter.js +9 -1
- package/server/dist/webhook-rate-limiter.js.map +1 -1
- package/server/dist/webhook-workspace.d.ts +12 -0
- package/server/dist/webhook-workspace.js +126 -3
- package/server/dist/webhook-workspace.js.map +1 -1
- package/server/dist/workflow-engine.d.ts +81 -7
- package/server/dist/workflow-engine.js +234 -40
- package/server/dist/workflow-engine.js.map +1 -1
- package/server/dist/workflow-loader.d.ts +6 -1
- package/server/dist/workflow-loader.js +189 -35
- package/server/dist/workflow-loader.js.map +1 -1
- package/server/dist/workflow-routes.d.ts +13 -0
- package/server/dist/workflow-routes.js +140 -4
- package/server/dist/workflow-routes.js.map +1 -1
- package/server/dist/ws-message-handler.js +5 -1
- package/server/dist/ws-message-handler.js.map +1 -1
- package/server/dist/ws-origin-check.d.ts +11 -0
- package/server/dist/ws-origin-check.js +20 -0
- package/server/dist/ws-origin-check.js.map +1 -0
- package/server/dist/ws-rate-limit.d.ts +19 -0
- package/server/dist/ws-rate-limit.js +30 -0
- package/server/dist/ws-rate-limit.js.map +1 -0
- package/server/dist/ws-server.js +69 -32
- package/server/dist/ws-server.js.map +1 -1
- package/dist/assets/index-CxlBrS5y.js +0 -182
- package/dist/assets/index-DgeUVGjz.css +0 -1
|
@@ -11,6 +11,7 @@ import { homedir } from 'os';
|
|
|
11
11
|
import { join } from 'path';
|
|
12
12
|
import { randomUUID } from 'crypto';
|
|
13
13
|
import { EventEmitter } from 'events';
|
|
14
|
+
import { jsonParse } from './json-parse.js';
|
|
14
15
|
/**
|
|
15
16
|
* Throw this from any workflow step to cleanly skip a run without marking it as failed.
|
|
16
17
|
* Useful for assessment workflows to short-circuit when no code changes have occurred.
|
|
@@ -21,6 +22,25 @@ export class WorkflowSkipped extends Error {
|
|
|
21
22
|
this.name = 'WorkflowSkipped';
|
|
22
23
|
}
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Thrown when a step references a session that no longer exists in the session manager —
|
|
27
|
+
* either because it was deleted, expired, or never persisted across a server restart.
|
|
28
|
+
* Carries enough context (run id, step key, session id, last heartbeat) for diagnostics.
|
|
29
|
+
*/
|
|
30
|
+
export class SessionGoneError extends Error {
|
|
31
|
+
runId;
|
|
32
|
+
stepKey;
|
|
33
|
+
sessionId;
|
|
34
|
+
lastSeen;
|
|
35
|
+
constructor(runId, stepKey, sessionId, lastSeen) {
|
|
36
|
+
super(`Workflow session is no longer available — run=${runId} step=${stepKey} session=${sessionId} lastSeen=${lastSeen ?? 'unknown'}`);
|
|
37
|
+
this.runId = runId;
|
|
38
|
+
this.stepKey = stepKey;
|
|
39
|
+
this.sessionId = sessionId;
|
|
40
|
+
this.lastSeen = lastSeen;
|
|
41
|
+
this.name = 'SessionGoneError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
24
44
|
// ---------------------------------------------------------------------------
|
|
25
45
|
// Cron expression parser (supports standard 5-field cron)
|
|
26
46
|
// ---------------------------------------------------------------------------
|
|
@@ -29,6 +49,12 @@ function parseCronField(field, min, max) {
|
|
|
29
49
|
for (const part of field.split(',')) {
|
|
30
50
|
const stepMatch = part.match(/^(.+)\/(\d+)$/);
|
|
31
51
|
const step = stepMatch ? parseInt(stepMatch[2], 10) : 1;
|
|
52
|
+
// Defensive guard — `step <= 0` would make the loops below never advance
|
|
53
|
+
// (or run backwards), pinning the scheduler. Any caller that reaches this
|
|
54
|
+
// branch with a zero/negative step has bypassed isValidCron, so refuse loudly.
|
|
55
|
+
if (!Number.isFinite(step) || step <= 0) {
|
|
56
|
+
throw new Error(`Invalid cron step value: ${stepMatch?.[2]} (must be > 0)`);
|
|
57
|
+
}
|
|
32
58
|
const range = stepMatch ? stepMatch[1] : part;
|
|
33
59
|
if (range === '*') {
|
|
34
60
|
for (let i = min; i <= max; i += step)
|
|
@@ -45,21 +71,28 @@ function parseCronField(field, min, max) {
|
|
|
45
71
|
}
|
|
46
72
|
return values;
|
|
47
73
|
}
|
|
48
|
-
function cronMatchesDate(expression, date) {
|
|
74
|
+
export function cronMatchesDate(expression, date) {
|
|
49
75
|
const parts = expression.trim().split(/\s+/);
|
|
50
76
|
if (parts.length !== 5)
|
|
51
77
|
return false;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
78
|
+
try {
|
|
79
|
+
const [minF, hourF, domF, monF, dowF] = parts;
|
|
80
|
+
const minute = parseCronField(minF, 0, 59);
|
|
81
|
+
const hour = parseCronField(hourF, 0, 23);
|
|
82
|
+
const dom = parseCronField(domF, 1, 31);
|
|
83
|
+
const month = parseCronField(monF, 1, 12);
|
|
84
|
+
const dow = parseCronField(dowF, 0, 6);
|
|
85
|
+
return (minute.includes(date.getMinutes()) &&
|
|
86
|
+
hour.includes(date.getHours()) &&
|
|
87
|
+
dom.includes(date.getDate()) &&
|
|
88
|
+
month.includes(date.getMonth() + 1) &&
|
|
89
|
+
dow.includes(date.getDay()));
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Malformed expression (e.g. step 0). Treat as never-matching so a bad
|
|
93
|
+
// legacy schedule cannot pin the scheduler in a tight loop.
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
63
96
|
}
|
|
64
97
|
/** Compute the next matching minute for a cron expression after `after`. */
|
|
65
98
|
function nextCronMatch(expression, after) {
|
|
@@ -103,6 +136,7 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
103
136
|
workflows = new Map();
|
|
104
137
|
activeAbortControllers = new Map();
|
|
105
138
|
cronTimer = null;
|
|
139
|
+
sessionResolver = null;
|
|
106
140
|
constructor(dbPath) {
|
|
107
141
|
super();
|
|
108
142
|
const dir = join(homedir(), '.codekin');
|
|
@@ -114,6 +148,7 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
114
148
|
chmodSync(resolvedPath, 0o600);
|
|
115
149
|
this.db.pragma('journal_mode = WAL');
|
|
116
150
|
this.createTables();
|
|
151
|
+
this.migrateSchema();
|
|
117
152
|
}
|
|
118
153
|
createTables() {
|
|
119
154
|
// WAL mode: allows concurrent reads while a write is in progress,
|
|
@@ -163,6 +198,42 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
163
198
|
CREATE INDEX IF NOT EXISTS idx_steps_run_id ON workflow_steps(run_id);
|
|
164
199
|
`);
|
|
165
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Apply additive (backwards-compatible) schema migrations.
|
|
203
|
+
* Each ALTER TABLE is wrapped in try/catch so a re-run on a migrated DB is a no-op
|
|
204
|
+
* (SQLite has no `ADD COLUMN IF NOT EXISTS`). New columns are nullable so older rows
|
|
205
|
+
* keep working without backfill.
|
|
206
|
+
*/
|
|
207
|
+
migrateSchema() {
|
|
208
|
+
const additions = [
|
|
209
|
+
// session id captured by create_session — lets resume locate the still-alive session.
|
|
210
|
+
`ALTER TABLE workflow_runs ADD COLUMN session_id TEXT`,
|
|
211
|
+
// heartbeat updated on every step start — distinguishes stuck runs from newly-started ones.
|
|
212
|
+
`ALTER TABLE workflow_runs ADD COLUMN last_step_at TEXT`,
|
|
213
|
+
// most recently running step key — tells resume where the work stopped.
|
|
214
|
+
`ALTER TABLE workflow_runs ADD COLUMN current_step_key TEXT`,
|
|
215
|
+
];
|
|
216
|
+
for (const sql of additions) {
|
|
217
|
+
try {
|
|
218
|
+
this.db.exec(sql);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
// "duplicate column name" is the expected idempotent path; anything else is a real error.
|
|
222
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
223
|
+
if (!/duplicate column/i.test(msg))
|
|
224
|
+
throw err;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Register a callback used by `resumeInterrupted()` to decide whether a workflow's
|
|
230
|
+
* session is still alive. Pass `null` to clear. Without a resolver, all interrupted
|
|
231
|
+
* runs whose session_id is set are conservatively treated as resumable — but the
|
|
232
|
+
* step handler will still surface a typed error if the session has actually gone.
|
|
233
|
+
*/
|
|
234
|
+
setSessionResolver(resolver) {
|
|
235
|
+
this.sessionResolver = resolver;
|
|
236
|
+
}
|
|
166
237
|
// -------------------------------------------------------------------------
|
|
167
238
|
// Workflow registration
|
|
168
239
|
// -------------------------------------------------------------------------
|
|
@@ -226,19 +297,40 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
226
297
|
*
|
|
227
298
|
* Cancellation: `cancelRun()` calls controller.abort(); the AbortSignal is
|
|
228
299
|
* passed to each handler so long-running async work can exit cooperatively.
|
|
300
|
+
*
|
|
301
|
+
* Resume: when `opts.resumeFromKey` is set, steps before that key are skipped
|
|
302
|
+
* (their outputs come from `opts.priorOutput`) and the resumed step receives
|
|
303
|
+
* `resumed: true` in its context so the handler can avoid double side effects.
|
|
229
304
|
*/
|
|
230
|
-
async executeRun(run, definition) {
|
|
305
|
+
async executeRun(run, definition, opts) {
|
|
231
306
|
const abortController = new AbortController();
|
|
232
307
|
this.activeAbortControllers.set(run.id, abortController);
|
|
233
|
-
|
|
308
|
+
const resumeFromKey = opts?.resumeFromKey;
|
|
309
|
+
const isResume = !!resumeFromKey;
|
|
310
|
+
// Mark running (no-op timestamp on resume so we keep the original startedAt)
|
|
234
311
|
run.status = 'running';
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
.
|
|
238
|
-
|
|
239
|
-
|
|
312
|
+
if (!isResume) {
|
|
313
|
+
run.startedAt = new Date().toISOString();
|
|
314
|
+
this.db.prepare(`UPDATE workflow_runs SET status = 'running', started_at = ? WHERE id = ?`)
|
|
315
|
+
.run(run.startedAt, run.id);
|
|
316
|
+
this.emitEvent('run_started', run);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
this.db.prepare(`UPDATE workflow_runs SET status = 'running' WHERE id = ?`).run(run.id);
|
|
320
|
+
this.emitEvent('run_resumed', run);
|
|
321
|
+
}
|
|
322
|
+
let lastOutput = isResume
|
|
323
|
+
? { ...(opts?.priorOutput ?? {}) }
|
|
324
|
+
: { ...run.input };
|
|
325
|
+
let reachedResumePoint = !isResume;
|
|
240
326
|
try {
|
|
241
327
|
for (const stepDef of definition.steps) {
|
|
328
|
+
if (!reachedResumePoint) {
|
|
329
|
+
if (stepDef.key === resumeFromKey)
|
|
330
|
+
reachedResumePoint = true;
|
|
331
|
+
else
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
242
334
|
if (abortController.signal.aborted) {
|
|
243
335
|
throw new Error('Run canceled');
|
|
244
336
|
}
|
|
@@ -246,16 +338,23 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
246
338
|
.get(run.id, stepDef.key);
|
|
247
339
|
if (!stepRow)
|
|
248
340
|
continue;
|
|
249
|
-
// Mark step running
|
|
341
|
+
// Mark step running + bump heartbeat / current step key on the run
|
|
250
342
|
const stepStarted = new Date().toISOString();
|
|
251
|
-
this.db.prepare(`UPDATE workflow_steps SET status = 'running', input = ?, started_at =
|
|
343
|
+
this.db.prepare(`UPDATE workflow_steps SET status = 'running', input = ?, started_at = ?, completed_at = NULL, output = NULL, error = NULL WHERE id = ?`)
|
|
252
344
|
.run(JSON.stringify(lastOutput), stepStarted, stepRow.id);
|
|
345
|
+
this.db.prepare(`UPDATE workflow_runs SET last_step_at = ?, current_step_key = ? WHERE id = ?`)
|
|
346
|
+
.run(stepStarted, stepDef.key, run.id);
|
|
347
|
+
run.lastStepAt = stepStarted;
|
|
348
|
+
run.currentStepKey = stepDef.key;
|
|
253
349
|
this.emitEvent('step_started', run, stepDef.key);
|
|
350
|
+
const stepIsResumed = isResume && stepDef.key === resumeFromKey;
|
|
254
351
|
try {
|
|
255
352
|
const result = await stepDef.handler(lastOutput, {
|
|
256
353
|
runId: run.id,
|
|
257
354
|
run,
|
|
258
355
|
abortSignal: abortController.signal,
|
|
356
|
+
resumed: stepIsResumed,
|
|
357
|
+
recordSessionId: (sessionId) => this.recordSessionId(run.id, sessionId),
|
|
259
358
|
});
|
|
260
359
|
// Mark step succeeded
|
|
261
360
|
const stepCompleted = new Date().toISOString();
|
|
@@ -330,6 +429,15 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
330
429
|
}
|
|
331
430
|
return false;
|
|
332
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* Persist a session id on a run so that `resumeInterrupted()` can locate the
|
|
434
|
+
* still-alive session even if the server crashes before the `create_session`
|
|
435
|
+
* step's output row is committed. Called from inside the step handler via
|
|
436
|
+
* `ctx.recordSessionId(...)`.
|
|
437
|
+
*/
|
|
438
|
+
recordSessionId(runId, sessionId) {
|
|
439
|
+
this.db.prepare(`UPDATE workflow_runs SET session_id = ? WHERE id = ?`).run(sessionId, runId);
|
|
440
|
+
}
|
|
333
441
|
// -------------------------------------------------------------------------
|
|
334
442
|
// Queries
|
|
335
443
|
// -------------------------------------------------------------------------
|
|
@@ -344,8 +452,8 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
344
452
|
runId: s.run_id,
|
|
345
453
|
key: s.key,
|
|
346
454
|
status: s.status,
|
|
347
|
-
input: s.input ?
|
|
348
|
-
output: s.output ?
|
|
455
|
+
input: s.input ? jsonParse(s.input) : null,
|
|
456
|
+
output: s.output ? jsonParse(s.output) : null,
|
|
349
457
|
error: s.error,
|
|
350
458
|
startedAt: s.started_at,
|
|
351
459
|
completedAt: s.completed_at,
|
|
@@ -354,12 +462,15 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
354
462
|
id: row.id,
|
|
355
463
|
kind: row.kind,
|
|
356
464
|
status: row.status,
|
|
357
|
-
input:
|
|
358
|
-
output: row.output ?
|
|
465
|
+
input: jsonParse(row.input),
|
|
466
|
+
output: row.output ? jsonParse(row.output) : null,
|
|
359
467
|
error: row.error,
|
|
360
468
|
createdAt: row.created_at,
|
|
361
469
|
startedAt: row.started_at,
|
|
362
470
|
completedAt: row.completed_at,
|
|
471
|
+
sessionId: row.session_id ?? null,
|
|
472
|
+
lastStepAt: row.last_step_at ?? null,
|
|
473
|
+
currentStepKey: row.current_step_key ?? null,
|
|
363
474
|
steps,
|
|
364
475
|
};
|
|
365
476
|
}
|
|
@@ -378,12 +489,15 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
378
489
|
id: row.id,
|
|
379
490
|
kind: row.kind,
|
|
380
491
|
status: row.status,
|
|
381
|
-
input:
|
|
382
|
-
output: row.output ?
|
|
492
|
+
input: jsonParse(row.input),
|
|
493
|
+
output: row.output ? jsonParse(row.output) : null,
|
|
383
494
|
error: row.error,
|
|
384
495
|
createdAt: row.created_at,
|
|
385
496
|
startedAt: row.started_at,
|
|
386
497
|
completedAt: row.completed_at,
|
|
498
|
+
sessionId: row.session_id ?? null,
|
|
499
|
+
lastStepAt: row.last_step_at ?? null,
|
|
500
|
+
currentStepKey: row.current_step_key ?? null,
|
|
387
501
|
}));
|
|
388
502
|
}
|
|
389
503
|
// -------------------------------------------------------------------------
|
|
@@ -418,7 +532,7 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
418
532
|
id: row.id,
|
|
419
533
|
kind: row.kind,
|
|
420
534
|
cronExpression: row.cron_expression,
|
|
421
|
-
input:
|
|
535
|
+
input: jsonParse(row.input),
|
|
422
536
|
enabled: !!row.enabled,
|
|
423
537
|
lastRunAt: row.last_run_at,
|
|
424
538
|
nextRunAt: row.next_run_at,
|
|
@@ -433,7 +547,7 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
433
547
|
id: row.id,
|
|
434
548
|
kind: row.kind,
|
|
435
549
|
cronExpression: row.cron_expression,
|
|
436
|
-
input:
|
|
550
|
+
input: jsonParse(row.input),
|
|
437
551
|
enabled: !!row.enabled,
|
|
438
552
|
lastRunAt: row.last_run_at,
|
|
439
553
|
nextRunAt: row.next_run_at,
|
|
@@ -487,21 +601,101 @@ export class WorkflowEngine extends EventEmitter {
|
|
|
487
601
|
// Resume interrupted runs on startup
|
|
488
602
|
// -------------------------------------------------------------------------
|
|
489
603
|
/**
|
|
490
|
-
*
|
|
491
|
-
*
|
|
492
|
-
*
|
|
493
|
-
*
|
|
604
|
+
* Resume runs that were in-flight when the server last shut down.
|
|
605
|
+
*
|
|
606
|
+
* Strategy:
|
|
607
|
+
* 1. Find all runs still marked `running` (no graceful completion happened).
|
|
608
|
+
* 2. For each, look at `session_id` + `current_step_key` — captured before the crash.
|
|
609
|
+
* 3. If the session is still alive (per `sessionResolver`) and the step is one we know how
|
|
610
|
+
* to resume (`run_prompt`, `save_report`), re-execute from there with `resumed: true`.
|
|
611
|
+
* 4. Otherwise mark the run failed with a clear, typed reason. We do NOT silently mark
|
|
612
|
+
* remaining steps `skipped` — the failure surface is loud so reports don't go missing.
|
|
613
|
+
*
|
|
614
|
+
* Earlier steps (`validate_repo`, `create_session`) are not resumed: by the time they were
|
|
615
|
+
* running, the workflow had no usable session yet, and re-creating one mid-way would risk
|
|
616
|
+
* spawning duplicate sessions or sending the prompt twice.
|
|
494
617
|
*/
|
|
495
618
|
async resumeInterrupted() {
|
|
496
|
-
const interrupted = this.db.prepare(`
|
|
619
|
+
const interrupted = this.db.prepare(`
|
|
620
|
+
SELECT id, kind, session_id, current_step_key, last_step_at, input
|
|
621
|
+
FROM workflow_runs WHERE status = 'running'
|
|
622
|
+
`).all();
|
|
497
623
|
if (interrupted.length === 0)
|
|
498
624
|
return;
|
|
499
|
-
console.log(`[workflow] Found ${interrupted.length} interrupted run(s),
|
|
500
|
-
for (const
|
|
501
|
-
this.
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
625
|
+
console.log(`[workflow] Found ${interrupted.length} interrupted run(s), evaluating for resume`);
|
|
626
|
+
for (const row of interrupted) {
|
|
627
|
+
const definition = this.workflows.get(row.kind);
|
|
628
|
+
if (!definition) {
|
|
629
|
+
this.failInterrupted(row.id, `Server restarted during execution (workflow kind '${row.kind}' is no longer registered)`);
|
|
630
|
+
continue;
|
|
631
|
+
}
|
|
632
|
+
const stepKey = row.current_step_key;
|
|
633
|
+
const sessionId = row.session_id;
|
|
634
|
+
// Only the later steps are safely resumable: by then the session is established
|
|
635
|
+
// and the prompt has been (or is being) processed. Earlier steps are too short
|
|
636
|
+
// to bother resuming and re-running them risks duplicate side effects.
|
|
637
|
+
const RESUMABLE_STEPS = new Set(['run_prompt', 'save_report']);
|
|
638
|
+
if (!stepKey || !RESUMABLE_STEPS.has(stepKey)) {
|
|
639
|
+
this.failInterrupted(row.id, `Server restarted during '${stepKey ?? 'unknown'}' step before session was usable for resume`);
|
|
640
|
+
continue;
|
|
641
|
+
}
|
|
642
|
+
if (!sessionId) {
|
|
643
|
+
this.failInterrupted(row.id, `Server restarted during '${stepKey}' step but no session id was recorded — cannot resume`);
|
|
644
|
+
continue;
|
|
645
|
+
}
|
|
646
|
+
const liveness = this.sessionResolver?.(sessionId) ?? null;
|
|
647
|
+
if (this.sessionResolver && !liveness) {
|
|
648
|
+
const err = new SessionGoneError(row.id, stepKey, sessionId, row.last_step_at);
|
|
649
|
+
console.warn(`[workflow] resume: ${err.message}`);
|
|
650
|
+
this.failInterrupted(row.id, err.message);
|
|
651
|
+
continue;
|
|
652
|
+
}
|
|
653
|
+
console.log(`[workflow] Resuming run ${row.id} (${row.kind}) at step '${stepKey}' (session=${sessionId})`);
|
|
654
|
+
// Reconstruct the merged output of all previously succeeded steps so the resumed
|
|
655
|
+
// step receives the same `lastOutput` it would have during a normal run.
|
|
656
|
+
const stepRows = this.db.prepare(`
|
|
657
|
+
SELECT key, status, output FROM workflow_steps WHERE run_id = ? ORDER BY rowid
|
|
658
|
+
`).all(row.id);
|
|
659
|
+
let priorOutput = row.input ? jsonParse(row.input) : {};
|
|
660
|
+
for (const sr of stepRows) {
|
|
661
|
+
if (sr.key === stepKey)
|
|
662
|
+
break;
|
|
663
|
+
if (sr.status === 'succeeded' && sr.output) {
|
|
664
|
+
priorOutput = { ...priorOutput, ...jsonParse(sr.output) };
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
const run = this.getRun(row.id);
|
|
668
|
+
if (!run) {
|
|
669
|
+
this.failInterrupted(row.id, 'Run row disappeared before resume could start');
|
|
670
|
+
continue;
|
|
671
|
+
}
|
|
672
|
+
// Reset the in-flight step so executeRun can mark it running again
|
|
673
|
+
this.db.prepare(`UPDATE workflow_steps SET status = 'pending', error = NULL, completed_at = NULL WHERE run_id = ? AND key = ? AND status = 'running'`)
|
|
674
|
+
.run(row.id, stepKey);
|
|
675
|
+
// Kick off resume in the background — same fire-and-forget pattern as startRun
|
|
676
|
+
this.executeRun(run, definition, { resumeFromKey: stepKey, priorOutput }).catch(err => {
|
|
677
|
+
console.error(`[workflow] Unhandled error in resumed run ${row.id}:`, err);
|
|
678
|
+
});
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
/** Mark a run as failed during the resume scan (no AbortController, no in-memory run object). */
|
|
682
|
+
failInterrupted(runId, reason) {
|
|
683
|
+
const completedAt = new Date().toISOString();
|
|
684
|
+
this.db.prepare(`UPDATE workflow_runs SET status = 'failed', error = ?, completed_at = ? WHERE id = ?`)
|
|
685
|
+
.run(reason, completedAt, runId);
|
|
686
|
+
this.db.prepare(`UPDATE workflow_steps SET status = 'failed', error = ?, completed_at = ? WHERE run_id = ? AND status = 'running'`)
|
|
687
|
+
.run(reason, completedAt, runId);
|
|
688
|
+
this.db.prepare(`UPDATE workflow_steps SET status = 'skipped' WHERE run_id = ? AND status = 'pending'`)
|
|
689
|
+
.run(runId);
|
|
690
|
+
const row = this.db.prepare(`SELECT id, kind FROM workflow_runs WHERE id = ?`).get(runId);
|
|
691
|
+
if (row) {
|
|
692
|
+
this.emit('workflow_event', {
|
|
693
|
+
eventType: 'run_failed',
|
|
694
|
+
runId: row.id,
|
|
695
|
+
kind: row.kind,
|
|
696
|
+
status: 'failed',
|
|
697
|
+
timestamp: completedAt,
|
|
698
|
+
});
|
|
505
699
|
}
|
|
506
700
|
}
|
|
507
701
|
// -------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-engine.js","sourceRoot":"","sources":["../workflow-engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAiBrC;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAmHD,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E,SAAS,cAAc,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC7D,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE7C,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACjD,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,IAAU;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAEpC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAEtC,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAC5B,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CAAC,UAAkB,EAAE,KAAW;IACpD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;IAChC,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;QAC5C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,yBAAyB;IACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAA;AAC7C,CAAC;AAaD,oEAAoE;AACpE,SAAS,cAAc,CAAC,KAAa,EAAE,IAAmB;IACxD,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,IAAI,GAAG,GAAG,iBAAiB,KAAK,YAAY,CAAA;IAE5C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,GAAG,IAAI,QAAQ,CAAC,CAAC,MAAM,MAAM,CAAA;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,IAAI,CAAC,OAAO;QAAE,GAAG,IAAI,aAAa,IAAI,CAAC,OAAO,EAAE,CAAA;IACpD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,GAAG,IAAI,UAAU,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAAC,CAAC;IAC9D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,GAAG,IAAI,WAAW,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAAC,CAAC;IAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;AACxB,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,OAAO,cAAe,SAAQ,YAAY;IACtC,EAAE,CAAmB;IACrB,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAA;IACjD,sBAAsB,GAAG,IAAI,GAAG,EAA2B,CAAA;IAC3D,SAAS,GAA0C,IAAI,CAAA;IAE/D,YAAY,MAAe;QACzB,KAAK,EAAE,CAAA;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QACxD,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9D,IAAI,YAAY,KAAK,UAAU,IAAI,UAAU,CAAC,YAAY,CAAC;YAAE,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAC3F,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;QACpC,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAEO,YAAY;QAClB,kEAAkE;QAClE,mEAAmE;QACnE,gBAAgB;QAChB,uFAAuF;QACvF,kGAAkG;QAClG,mFAAmF;QACnF,8FAA8F;QAC9F,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsCZ,CAAC,CAAA;IACJ,CAAC;IAED,4EAA4E;IAC5E,wBAAwB;IACxB,4EAA4E;IAE5E,8FAA8F;IAC9F,gBAAgB,CAAC,UAA8B;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,mCAAmC,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAA;IACtG,CAAC;IAED,yDAAyD;IACzD,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAiC,EAAE;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAA;QAElE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACpC,MAAM,GAAG,GAAgB;YACvB,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI;YACJ,MAAM,EAAE,QAAQ;YAChB,KAAK;YACL,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI;SAClB,CAAA;QAED,cAAc;QACd,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGf,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;QAE9E,mBAAmB;QACnB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAEjC,yBAAyB;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC3C,OAAO,CAAC,KAAK,CAAC,qCAAqC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,UAAU,CAAC,GAAgB,EAAE,UAA8B;QACvE,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,CAAA;QAExD,eAAe;QACf,GAAG,CAAC,MAAM,GAAG,SAAS,CAAA;QACtB,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACxC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0EAA0E,CAAC;aACxF,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QAElC,IAAI,UAAU,GAA4B,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;QAE1D,IAAI,CAAC;YACH,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACvC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;gBACjC,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC;qBAC1F,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAA+B,CAAA;gBACzD,IAAI,CAAC,OAAO;oBAAE,SAAQ;gBAEtB,oBAAoB;gBACpB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC;qBACpG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC3D,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;gBAEhD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE;wBAC/C,KAAK,EAAE,GAAG,CAAC,EAAE;wBACb,GAAG;wBACH,WAAW,EAAE,eAAe,CAAC,MAAM;qBACpC,CAAC,CAAA;oBAEF,sBAAsB;oBACtB,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2FAA2F,CAAC;yBACzG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;oBACzD,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;oBAElD,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,EAAE,CAAA;gBAC3C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,eAAe;wBAAE,MAAM,GAAG,CAAA;oBAC7C,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC5D,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;oBAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uFAAuF,CAAC;yBACrG,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;oBACtC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC/C,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,GAAG,CAAC,MAAM,GAAG,WAAW,CAAA;YACxB,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA;YACvB,GAAG,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0FAA0F,CAAC;iBACxG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;YAC3D,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;QAEtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,GAAG,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAE1C,uEAAuE;YACvE,sEAAsE;YACtE,sCAAsC;YACtC,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAA;gBACtB,GAAG,CAAC,KAAK,GAAG,GAAG,CAAA;gBACf,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uFAAuF,CAAC;qBACrG,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC1C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oGAAoG,CAAC;qBAClH,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACd,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAA;gBACnE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAA;gBACf,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+EAA+E,CAAC;qBAC7F,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;gBACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;gBAE9E,uBAAuB;gBACvB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC;qBACpG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAChB,CAAC;QAEH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC1C,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAChC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,SAAS,CAAC,KAAa;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAA;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAE5E,wGAAwG;IACxG,MAAM,CAAC,KAAa;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAuC,CAAA;QACxH,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,MAAM,KAAK,GAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC,GAAG,CAAC,KAAK,CAA8B;aACnI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACT,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,MAAM;YACf,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,MAAM,EAAE,CAAC,CAAC,MAAoB;YAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9C,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,WAAW,EAAE,CAAC,CAAC,YAAY;SAC5B,CAAC,CAAC,CAAA;QAEL,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAmB;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YAClD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,KAAK;SACN,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,QAAQ,CAAC,IAA6E;QACpF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,eAAe,EAAE;YACtD,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;gBACxD,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;aAC/D,CAAC,MAAM,CAAC,OAAO,CAA8C;YAC9D,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,IAAI,EAAE,KAAK;YAClB,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAA;QAEF,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnF,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAmB;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YAClD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,WAAW,EAAE,GAAG,CAAC,YAAY;SAC9B,CAAC,CAAC,CAAA;IACL,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E,sFAAsF;IACtF,cAAc,CAAC,QAAuD;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAE1G,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC/F,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QAChI,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QAChI,CAAC;QAED,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IAC7D,CAAC;IAED,uEAAuE;IACvE,cAAc,CAAC,EAAU;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjF,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,sDAAsD;IACtD,aAAa;QACX,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtG,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,IAAI,EAAE,GAAG,CAAC,IAAc;YACxB,cAAc,EAAE,GAAG,CAAC,eAAyB;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAe,CAAC;YACtC,OAAO,EAAE,CAAC,CAAE,GAAG,CAAC,OAAkB;YAClC,SAAS,EAAE,GAAG,CAAC,WAA4B;YAC3C,SAAS,EAAE,GAAG,CAAC,WAA4B;SAC5C,CAAC,CAAC,CAAA;IACL,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,EAAU;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAwC,CAAA;QACvH,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,IAAI,EAAE,GAAG,CAAC,IAAc;YACxB,cAAc,EAAE,GAAG,CAAC,eAAyB;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAe,CAAC;YACtC,OAAO,EAAE,CAAC,CAAE,GAAG,CAAC,OAAkB;YAClC,SAAS,EAAE,GAAG,CAAC,WAA4B;YAC3C,SAAS,EAAE,GAAG,CAAC,WAA4B;SAC5C,CAAA;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,sDAAsD;IACtD,kBAAkB;QAChB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;QAEhD,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,CAAA;YAE5E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAU,CAAC,IAAI,GAAG,EAAE,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAA;oBAE3E,6BAA6B;oBAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;oBACzE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yEAAyE,CAAC;yBACvF,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;oBAE/C,yEAAyE;oBACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS;wBACjC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,SAAS,EAAE;wBAC3D,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAA;oBAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACjD,OAAO,CAAC,KAAK,CAAC,sCAAsC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;oBAC1E,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,oCAAoC;QACpC,IAAI,EAAE,CAAA;QACN,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5C,CAAC;IAED,+DAA+D;IAC/D,iBAAiB;QACf,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,qCAAqC;IACrC,4EAA4E;IAE5E;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,EAAsB,CAAA;QACtH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEpC,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,CAAC,MAAM,wCAAwC,CAAC,CAAA;QAC3F,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wHAAwH,CAAC;iBACtI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;YACpC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oGAAoG,CAAC;iBAClH,GAAG,CAAC,EAAE,CAAC,CAAA;QACZ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,SAAS;IACT,4EAA4E;IAEpE,SAAS,CAAC,SAAiB,EAAE,GAAgB,EAAE,OAAgB;QACrE,MAAM,KAAK,GAAkB;YAC3B,SAAS;YACT,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO;YACP,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,4EAA4E;IAC5E,WAAW;IACX,4EAA4E;IAE5E,+EAA+E;IAC/E,QAAQ;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,yBAAyB;QACzB,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAA;YACxD,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IAC5C,CAAC;CACF;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,IAAI,cAAc,GAA0B,IAAI,CAAA;AAEhD,4GAA4G;AAC5G,MAAM,UAAU,kBAAkB;IAChC,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IACzC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;IACrC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACrD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;IACzG,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,sBAAsB;IACpC,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,CAAC,QAAQ,EAAE,CAAA;QACzB,cAAc,GAAG,IAAI,CAAA;IACvB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"workflow-engine.js","sourceRoot":"","sources":["../workflow-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* 1. validate_repo — verify path exists, is a git repo, check staleness
|
|
10
10
|
* 2. create_session — create a Codekin session for the run
|
|
11
11
|
* 3. run_prompt — start Claude, send the prompt, wait for result
|
|
12
|
-
* 4. save_report — write Markdown output to outputDir, commit on
|
|
12
|
+
* 4. save_report — write Markdown output to outputDir, commit on a fresh
|
|
13
|
+
* audit/<kind>-<YYYY-MM-DD> branch, push
|
|
13
14
|
*
|
|
14
15
|
* MD file format — YAML frontmatter followed by the Claude prompt:
|
|
15
16
|
*
|
|
@@ -45,6 +46,10 @@ export interface WorkflowDef {
|
|
|
45
46
|
model?: string;
|
|
46
47
|
prompt: string;
|
|
47
48
|
}
|
|
49
|
+
/** Branch name for the per-run report commit. Kept short and stable per (kind, date). */
|
|
50
|
+
export declare function reportBranchName(kind: string, dateStr: string): string;
|
|
51
|
+
/** True when a branch name is one a workflow run produces (or used to produce). */
|
|
52
|
+
export declare function isWorkflowReportsBranch(branch: string): boolean;
|
|
48
53
|
/**
|
|
49
54
|
* Discover and register any standalone repo workflows (kinds not already
|
|
50
55
|
* registered as built-ins). Called when a repo is configured or when listing
|