codekin 0.6.3 → 0.6.4
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 +3 -2
- package/dist/assets/index-BRB_Ksyk.js +182 -0
- package/dist/assets/index-Q2WSVlHo.css +1 -0
- package/dist/index.html +2 -2
- package/package.json +3 -3
- package/server/dist/auth-routes.js +6 -0
- package/server/dist/auth-routes.js.map +1 -1
- package/server/dist/claude-process.js +3 -2
- package/server/dist/claude-process.js.map +1 -1
- package/server/dist/commit-event-handler.d.ts +2 -1
- package/server/dist/commit-event-handler.js +4 -3
- 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 +7 -0
- package/server/dist/config.js +19 -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-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 +14 -0
- package/server/dist/orchestrator-monitor.js.map +1 -1
- 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 +312 -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.js +14 -36
- package/server/dist/session-lifecycle.js.map +1 -1
- package/server/dist/session-manager.d.ts +4 -0
- package/server/dist/session-manager.js +56 -73
- 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 +56 -11
- 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 +48 -11
- 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 +80 -7
- package/server/dist/workflow-engine.js +209 -28
- package/server/dist/workflow-engine.js.map +1 -1
- package/server/dist/workflow-loader.d.ts +6 -1
- package/server/dist/workflow-loader.js +97 -27
- package/server/dist/workflow-loader.js.map +1 -1
- package/server/dist/workflow-routes.d.ts +13 -0
- package/server/dist/workflow-routes.js +106 -4
- package/server/dist/workflow-routes.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 +41 -22
- 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
|
@@ -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
|
*
|
|
@@ -33,6 +34,7 @@ import { execFileSync } from 'child_process';
|
|
|
33
34
|
import { dirname, join, sep } from 'path';
|
|
34
35
|
import { REPOS_ROOT } from './config.js';
|
|
35
36
|
import { fileURLToPath } from 'url';
|
|
37
|
+
import { SessionGoneError } from './workflow-engine.js';
|
|
36
38
|
// ---------------------------------------------------------------------------
|
|
37
39
|
// MD parser
|
|
38
40
|
// ---------------------------------------------------------------------------
|
|
@@ -115,14 +117,17 @@ function loadRepoOverride(repoPath, kind) {
|
|
|
115
117
|
// Shared polling helper
|
|
116
118
|
// ---------------------------------------------------------------------------
|
|
117
119
|
async function waitForSessionResult(sessions, sessionId, opts = {}) {
|
|
118
|
-
const { timeoutMs = 600_000, pollMs = 2000, abortSignal } = opts;
|
|
120
|
+
const { timeoutMs = 600_000, pollMs = 2000, abortSignal, runId, stepKey } = opts;
|
|
119
121
|
const deadline = Date.now() + timeoutMs;
|
|
122
|
+
let lastSeen = null;
|
|
120
123
|
while (Date.now() < deadline) {
|
|
121
124
|
if (abortSignal?.aborted)
|
|
122
125
|
throw new Error('Aborted');
|
|
123
126
|
const session = sessions.get(sessionId);
|
|
124
|
-
if (!session)
|
|
125
|
-
throw new
|
|
127
|
+
if (!session) {
|
|
128
|
+
throw new SessionGoneError(runId ?? 'unknown', stepKey ?? 'run_prompt', sessionId, lastSeen);
|
|
129
|
+
}
|
|
130
|
+
lastSeen = new Date().toISOString();
|
|
126
131
|
const resultMsg = session.outputHistory.find(m => m.type === 'result');
|
|
127
132
|
if (resultMsg) {
|
|
128
133
|
const assistantText = session.outputHistory
|
|
@@ -147,6 +152,34 @@ async function waitForSessionResult(sessions, sessionId, opts = {}) {
|
|
|
147
152
|
throw new Error(`Timed out waiting for session result after ${timeoutMs}ms`);
|
|
148
153
|
}
|
|
149
154
|
// ---------------------------------------------------------------------------
|
|
155
|
+
// Prompt guard
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
/**
|
|
158
|
+
* Prepended to every workflow prompt so Claude does not duplicate the report.
|
|
159
|
+
* The save_report step writes Claude's response text to the configured outputDir;
|
|
160
|
+
* if Claude also uses the Write tool (per CLAUDE.md guidance), two files appear
|
|
161
|
+
* — one substantive file under whatever category Claude chose, and one stub
|
|
162
|
+
* (the conversational reply) under the configured outputDir.
|
|
163
|
+
*/
|
|
164
|
+
const WORKFLOW_PROMPT_GUARD = [
|
|
165
|
+
'IMPORTANT: You are running as part of an automated Codekin workflow.',
|
|
166
|
+
'The workflow runner will save your entire response as the report file.',
|
|
167
|
+
'Do NOT use the Write or Edit tools to create the report yourself — that produces a duplicate file.',
|
|
168
|
+
'Respond with the report Markdown directly, with no preamble.',
|
|
169
|
+
'Disregard any conflicting guidance in CLAUDE.md about writing audit reports to disk; the workflow handles saving and committing.',
|
|
170
|
+
].join(' ');
|
|
171
|
+
/** Branch name for the per-run report commit. Kept short and stable per (kind, date). */
|
|
172
|
+
export function reportBranchName(kind, dateStr) {
|
|
173
|
+
return `audit/${kind}-${dateStr}`;
|
|
174
|
+
}
|
|
175
|
+
/** True when a branch name is one a workflow run produces (or used to produce). */
|
|
176
|
+
export function isWorkflowReportsBranch(branch) {
|
|
177
|
+
// Accept the legacy long-lived branch and the new per-run audit/<kind>-<date> form.
|
|
178
|
+
if (branch === 'codekin/reports')
|
|
179
|
+
return true;
|
|
180
|
+
return /^audit\/[^/]+-\d{4}-\d{2}-\d{2}$/.test(branch);
|
|
181
|
+
}
|
|
182
|
+
// ---------------------------------------------------------------------------
|
|
150
183
|
// Workflow registration
|
|
151
184
|
// ---------------------------------------------------------------------------
|
|
152
185
|
function registerWorkflow(engine, sessions, def) {
|
|
@@ -202,6 +235,9 @@ function registerWorkflow(engine, sessions, def) {
|
|
|
202
235
|
provider,
|
|
203
236
|
allowedTools: ['Bash(gh pr:*)'],
|
|
204
237
|
});
|
|
238
|
+
// Persist the session id on the run BEFORE returning so a server crash
|
|
239
|
+
// between this step and `run_prompt` can still locate the session.
|
|
240
|
+
ctx.recordSessionId?.(session.id);
|
|
205
241
|
console.log(`[workflow:${def.kind}] Created session ${session.id} for ${repoName} (run ${ctx.runId})`);
|
|
206
242
|
return { sessionId: session.id, repoPath, repoName, branch: input.branch, lastCommit: input.lastCommit };
|
|
207
243
|
},
|
|
@@ -214,22 +250,40 @@ function registerWorkflow(engine, sessions, def) {
|
|
|
214
250
|
const repoName = input.repoName;
|
|
215
251
|
const repoPath = input.repoPath;
|
|
216
252
|
const customPrompt = input.customPrompt;
|
|
253
|
+
// If the session is already gone, fail with a typed error before doing any work —
|
|
254
|
+
// gives a much clearer signal than a downstream "Session X not found" stack trace.
|
|
255
|
+
if (!sessions.get(sessionId)) {
|
|
256
|
+
throw new SessionGoneError(ctx.runId, 'run_prompt', sessionId, ctx.run.lastStepAt ?? null);
|
|
257
|
+
}
|
|
217
258
|
sessions.startClaude(sessionId);
|
|
218
259
|
await sessions.waitForReady(sessionId);
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
260
|
+
if (ctx.resumed) {
|
|
261
|
+
// The prompt was already sent in the original run before the server crashed.
|
|
262
|
+
// Just wait for the result Claude is (still) producing — sending again would
|
|
263
|
+
// duplicate the prompt and fork the conversation.
|
|
264
|
+
console.log(`[workflow:${def.kind}] Resuming run ${ctx.runId}: re-attaching to session ${sessionId} (no re-send)`);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
// Per-repo override: check {repoPath}/.codekin/workflows/{kind}.md
|
|
268
|
+
const repoOverride = loadRepoOverride(repoPath, ctx.run.kind);
|
|
269
|
+
const basePrompt = repoOverride ? repoOverride.prompt : def.prompt;
|
|
270
|
+
const userPrompt = customPrompt
|
|
271
|
+
? `${basePrompt}\n\nAdditional focus areas:\n${customPrompt}`
|
|
272
|
+
: basePrompt;
|
|
273
|
+
// Prepend the guard to suppress Claude's CLAUDE.md-driven file-write
|
|
274
|
+
// behavior, which otherwise creates a duplicate report file.
|
|
275
|
+
const prompt = `${WORKFLOW_PROMPT_GUARD}\n\n${userPrompt}`;
|
|
276
|
+
if (repoOverride) {
|
|
277
|
+
console.log(`[workflow:${def.kind}] Using per-repo prompt override from ${repoPath}`);
|
|
278
|
+
}
|
|
279
|
+
sessions.sendInput(sessionId, prompt);
|
|
280
|
+
console.log(`[workflow:${def.kind}] Sent prompt to session ${sessionId} for ${repoName}`);
|
|
227
281
|
}
|
|
228
|
-
sessions.sendInput(sessionId, prompt);
|
|
229
|
-
console.log(`[workflow:${def.kind}] Sent prompt to session ${sessionId} for ${repoName}`);
|
|
230
282
|
const result = await waitForSessionResult(sessions, sessionId, {
|
|
231
283
|
timeoutMs: 600_000,
|
|
232
284
|
abortSignal: ctx.abortSignal,
|
|
285
|
+
runId: ctx.runId,
|
|
286
|
+
stepKey: 'run_prompt',
|
|
233
287
|
});
|
|
234
288
|
console.log(`[workflow:${def.kind}] Completed for ${repoName} (${result.text.length} chars)`);
|
|
235
289
|
return {
|
|
@@ -274,25 +328,28 @@ function registerWorkflow(engine, sessions, def) {
|
|
|
274
328
|
const filePath = join(reportsDir, filename);
|
|
275
329
|
writeFileSync(filePath, markdown, 'utf-8');
|
|
276
330
|
console.log(`[workflow:${def.kind}] Saved report to ${filePath}`);
|
|
277
|
-
// Commit on a
|
|
278
|
-
//
|
|
279
|
-
//
|
|
280
|
-
|
|
331
|
+
// Commit on a fresh per-run branch (audit/<kind>-<YYYY-MM-DD>) so each
|
|
332
|
+
// audit gets its own PR and we never append to a stale, long-lived
|
|
333
|
+
// reports branch. Use a temporary git worktree to avoid stash/checkout
|
|
334
|
+
// races when multiple workflow runs target the same repo concurrently.
|
|
335
|
+
const reportsBranch = reportBranchName(def.kind, dateStr);
|
|
281
336
|
try {
|
|
282
337
|
const relativePath = `${def.outputDir}/${filename}`;
|
|
283
|
-
// Ensure the reports branch exists (create if needed)
|
|
338
|
+
// Ensure the reports branch exists (create if needed). For same-day
|
|
339
|
+
// reruns of the same kind we reuse the existing daily branch and
|
|
340
|
+
// append a new commit.
|
|
284
341
|
try {
|
|
285
|
-
execFileSync('git', ['rev-parse', '--verify',
|
|
342
|
+
execFileSync('git', ['rev-parse', '--verify', reportsBranch], { cwd: repoPath, timeout: 5_000, stdio: 'pipe' });
|
|
286
343
|
}
|
|
287
344
|
catch {
|
|
288
345
|
// Branch doesn't exist yet — create it from the current branch
|
|
289
|
-
execFileSync('git', ['branch',
|
|
290
|
-
console.log(`[workflow:${def.kind}] Created branch ${
|
|
346
|
+
execFileSync('git', ['branch', reportsBranch], { cwd: repoPath, timeout: 5_000 });
|
|
347
|
+
console.log(`[workflow:${def.kind}] Created branch ${reportsBranch}`);
|
|
291
348
|
}
|
|
292
349
|
// Create a temporary worktree on the reports branch
|
|
293
350
|
const wtDir = join(repoPath, '..', `.codekin-wt-report-${ctx.runId}`);
|
|
294
351
|
try {
|
|
295
|
-
execFileSync('git', ['worktree', 'add', wtDir,
|
|
352
|
+
execFileSync('git', ['worktree', 'add', wtDir, reportsBranch], { cwd: repoPath, timeout: 10_000 });
|
|
296
353
|
// Write the report file in the worktree
|
|
297
354
|
const reportsDirInWt = join(wtDir, def.outputDir);
|
|
298
355
|
if (!existsSync(reportsDirInWt)) {
|
|
@@ -301,14 +358,14 @@ function registerWorkflow(engine, sessions, def) {
|
|
|
301
358
|
writeFileSync(join(reportsDirInWt, filename), markdown, 'utf-8');
|
|
302
359
|
execFileSync('git', ['add', relativePath], { cwd: wtDir, timeout: 10_000 });
|
|
303
360
|
execFileSync('git', ['commit', '-m', `${def.commitMessage} ${dateStr}`], { cwd: wtDir, timeout: 15_000 });
|
|
304
|
-
console.log(`[workflow:${def.kind}] Committed ${relativePath} on ${
|
|
361
|
+
console.log(`[workflow:${def.kind}] Committed ${relativePath} on ${reportsBranch}`);
|
|
305
362
|
// Push to remote
|
|
306
363
|
try {
|
|
307
|
-
execFileSync('git', ['push', 'origin',
|
|
308
|
-
console.log(`[workflow:${def.kind}] Pushed ${
|
|
364
|
+
execFileSync('git', ['push', 'origin', reportsBranch], { cwd: wtDir, timeout: 30_000, stdio: 'pipe' });
|
|
365
|
+
console.log(`[workflow:${def.kind}] Pushed ${reportsBranch} to origin`);
|
|
309
366
|
}
|
|
310
367
|
catch (pushErr) {
|
|
311
|
-
console.warn(`[workflow:${def.kind}] Could not push ${
|
|
368
|
+
console.warn(`[workflow:${def.kind}] Could not push ${reportsBranch}: ${pushErr}`);
|
|
312
369
|
}
|
|
313
370
|
}
|
|
314
371
|
finally {
|
|
@@ -429,6 +486,19 @@ export function loadMdWorkflows(engine, sessions) {
|
|
|
429
486
|
for (const def of defs) {
|
|
430
487
|
registerWorkflow(engine, sessions, def);
|
|
431
488
|
}
|
|
489
|
+
// Let the engine consult the session manager when deciding whether an interrupted
|
|
490
|
+
// run is still resumable. Returning null tells the engine the session has gone and
|
|
491
|
+
// the run should fail with a clear, typed reason instead of being skipped silently.
|
|
492
|
+
// (Defensive optional-call so older test doubles without setSessionResolver still pass.)
|
|
493
|
+
engine.setSessionResolver?.((sessionId) => {
|
|
494
|
+
const session = sessions.get(sessionId);
|
|
495
|
+
if (!session)
|
|
496
|
+
return null;
|
|
497
|
+
const lastActivityAt = session._lastActivityAt
|
|
498
|
+
? new Date(session._lastActivityAt).toISOString()
|
|
499
|
+
: null;
|
|
500
|
+
return { lastActivityAt };
|
|
501
|
+
});
|
|
432
502
|
console.log(`[workflow-loader] Loaded ${defs.length} workflow(s) from MD definitions`);
|
|
433
503
|
}
|
|
434
504
|
//# sourceMappingURL=workflow-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-loader.js","sourceRoot":"","sources":["../workflow-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-loader.js","sourceRoot":"","sources":["../workflow-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,21 @@ import { Router } from 'express';
|
|
|
8
8
|
import type { Request } from 'express';
|
|
9
9
|
import type { CommitEventHandler } from './commit-event-handler.js';
|
|
10
10
|
import type { SessionManager } from './session-manager.js';
|
|
11
|
+
/**
|
|
12
|
+
* Parse a GitHub `owner/repo` slug from a git remote URL.
|
|
13
|
+
* Supports SSH (git@github.com:owner/repo.git) and HTTPS (https://github.com/owner/repo.git).
|
|
14
|
+
* Returns null for non-GitHub remotes.
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseGitHubSlug(remoteUrl: string): string | null;
|
|
17
|
+
export interface WebhookSetupResult {
|
|
18
|
+
status: 'created' | 'updated' | 'already_configured' | 'failed';
|
|
19
|
+
message: string;
|
|
20
|
+
repo?: string;
|
|
21
|
+
}
|
|
11
22
|
type VerifyFn = (token: string | undefined) => boolean;
|
|
12
23
|
type ExtractFn = (req: Request) => string | undefined;
|
|
24
|
+
/** Validate a 5-field cron expression. Returns true if the format is valid. */
|
|
25
|
+
export declare function isValidCron(expr: string): boolean;
|
|
13
26
|
/**
|
|
14
27
|
* Sync cron schedules with the current workflow config.
|
|
15
28
|
* When `sessions` is provided, also registers any standalone repo workflows.
|
|
@@ -5,13 +5,82 @@
|
|
|
5
5
|
* runs, schedules, and repo config. All routes require auth.
|
|
6
6
|
*/
|
|
7
7
|
import { Router } from 'express';
|
|
8
|
+
import { execFile } from 'child_process';
|
|
9
|
+
import { promisify } from 'util';
|
|
8
10
|
import { getWorkflowEngine } from './workflow-engine.js';
|
|
9
11
|
import { loadWorkflowConfig, addReviewRepo, removeReviewRepo, updateReviewRepo, } from './workflow-config.js';
|
|
10
12
|
import { listAvailableKinds, ensureRepoWorkflowsRegistered } from './workflow-loader.js';
|
|
11
13
|
import { syncCommitHooks } from './commit-event-hooks.js';
|
|
14
|
+
import { resolveRepoPathInRoot } from './config.js';
|
|
12
15
|
import { VALID_PROVIDERS } from './types.js';
|
|
16
|
+
import { previewWebhookSetup, createRepoWebhook, updateRepoWebhook, } from './webhook-github-setup.js';
|
|
17
|
+
import { loadWebhookConfig, generateWebhookSecret, saveWebhookConfig } from './webhook-config.js';
|
|
18
|
+
const execFileAsync = promisify(execFile);
|
|
19
|
+
/**
|
|
20
|
+
* Parse a GitHub `owner/repo` slug from a git remote URL.
|
|
21
|
+
* Supports SSH (git@github.com:owner/repo.git) and HTTPS (https://github.com/owner/repo.git).
|
|
22
|
+
* Returns null for non-GitHub remotes.
|
|
23
|
+
*/
|
|
24
|
+
export function parseGitHubSlug(remoteUrl) {
|
|
25
|
+
const match = remoteUrl.trim().match(/github\.com[:/]([^/]+\/[^/]+?)(?:\.git)?$/);
|
|
26
|
+
return match?.[1] ?? null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Derive the GitHub `owner/repo` slug from a local repo path
|
|
30
|
+
* by parsing the git remote origin URL.
|
|
31
|
+
*/
|
|
32
|
+
async function getGitHubSlug(repoPath) {
|
|
33
|
+
try {
|
|
34
|
+
const { stdout } = await execFileAsync('git', ['-C', repoPath, 'remote', 'get-url', 'origin'], { timeout: 5000 });
|
|
35
|
+
return parseGitHubSlug(stdout);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Auto-setup the GitHub webhook for a PR review workflow.
|
|
43
|
+
* Ensures the webhook config has a secret and is enabled, then
|
|
44
|
+
* creates/updates the webhook on the GitHub repo.
|
|
45
|
+
*/
|
|
46
|
+
async function autoSetupPrWebhook(repoPath, webhookUrl) {
|
|
47
|
+
const slug = await getGitHubSlug(repoPath);
|
|
48
|
+
if (!slug) {
|
|
49
|
+
return {
|
|
50
|
+
status: 'failed',
|
|
51
|
+
message: `Could not determine GitHub repository from ${repoPath}. Please set up the webhook manually in Settings.`,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const preview = await previewWebhookSetup(slug, webhookUrl);
|
|
55
|
+
if (preview.action === 'none') {
|
|
56
|
+
return { status: 'already_configured', message: 'GitHub webhook is already configured.', repo: slug };
|
|
57
|
+
}
|
|
58
|
+
// Ensure server webhook config has a secret and is enabled
|
|
59
|
+
let config = loadWebhookConfig();
|
|
60
|
+
const configUpdates = {};
|
|
61
|
+
if (!config.secret)
|
|
62
|
+
configUpdates.secret = generateWebhookSecret();
|
|
63
|
+
if (!config.enabled)
|
|
64
|
+
configUpdates.enabled = true;
|
|
65
|
+
if (Object.keys(configUpdates).length > 0) {
|
|
66
|
+
saveWebhookConfig(configUpdates);
|
|
67
|
+
config = loadWebhookConfig();
|
|
68
|
+
}
|
|
69
|
+
if (preview.action === 'create') {
|
|
70
|
+
await createRepoWebhook(slug, webhookUrl, config.secret, preview.proposed.events);
|
|
71
|
+
return { status: 'created', message: `GitHub webhook created on ${slug}.`, repo: slug };
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
await updateRepoWebhook(slug, preview.existing.id, {
|
|
75
|
+
events: preview.proposed.events,
|
|
76
|
+
active: true,
|
|
77
|
+
secret: config.secret,
|
|
78
|
+
});
|
|
79
|
+
return { status: 'updated', message: `GitHub webhook updated on ${slug}.`, repo: slug };
|
|
80
|
+
}
|
|
81
|
+
}
|
|
13
82
|
/** Validate a 5-field cron expression. Returns true if the format is valid. */
|
|
14
|
-
function isValidCron(expr) {
|
|
83
|
+
export function isValidCron(expr) {
|
|
15
84
|
const parts = expr.trim().split(/\s+/);
|
|
16
85
|
if (parts.length !== 5)
|
|
17
86
|
return false;
|
|
@@ -26,6 +95,11 @@ function isValidCron(expr) {
|
|
|
26
95
|
const [min, max] = ranges[i];
|
|
27
96
|
return part.split(',').every(segment => {
|
|
28
97
|
const stepMatch = segment.match(/^(.+)\/(\d+)$/);
|
|
98
|
+
if (stepMatch) {
|
|
99
|
+
const step = parseInt(stepMatch[2], 10);
|
|
100
|
+
if (isNaN(step) || step < 1)
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
29
103
|
const range = stepMatch ? stepMatch[1] : segment;
|
|
30
104
|
if (range === '*')
|
|
31
105
|
return true;
|
|
@@ -220,6 +294,9 @@ export function createWorkflowRouter(verifyToken, extractToken, sessions, commit
|
|
|
220
294
|
const existing = engine.getSchedule(req.params.id);
|
|
221
295
|
if (!existing)
|
|
222
296
|
return res.status(404).json({ error: 'Schedule not found' });
|
|
297
|
+
if (req.body.cronExpression !== undefined && !isValidCron(req.body.cronExpression)) {
|
|
298
|
+
return res.status(400).json({ error: 'Invalid cron expression' });
|
|
299
|
+
}
|
|
223
300
|
const schedule = engine.upsertSchedule({
|
|
224
301
|
id: existing.id,
|
|
225
302
|
kind: existing.kind,
|
|
@@ -256,14 +333,17 @@ export function createWorkflowRouter(verifyToken, extractToken, sessions, commit
|
|
|
256
333
|
router.get('/config', (_req, res) => {
|
|
257
334
|
res.json({ config: loadWorkflowConfig() });
|
|
258
335
|
});
|
|
259
|
-
router.post('/config/repos', (req, res) => {
|
|
260
|
-
const { id, name, repoPath, cronExpression, enabled, customPrompt, kind, model, provider } = req.body;
|
|
336
|
+
router.post('/config/repos', async (req, res) => {
|
|
337
|
+
const { id, name, repoPath, cronExpression, enabled, customPrompt, kind, model, provider, webhookUrl } = req.body;
|
|
261
338
|
if (!id || !name || !repoPath || !cronExpression) {
|
|
262
339
|
return res.status(400).json({ error: 'Missing required fields: id, name, repoPath, cronExpression' });
|
|
263
340
|
}
|
|
264
341
|
if (provider && !VALID_PROVIDERS.has(provider)) {
|
|
265
342
|
return res.status(400).json({ error: `Invalid provider: ${provider}` });
|
|
266
343
|
}
|
|
344
|
+
if (!resolveRepoPathInRoot(repoPath)) {
|
|
345
|
+
return res.status(400).json({ error: 'Invalid repoPath: must be an existing directory under the configured repos root' });
|
|
346
|
+
}
|
|
267
347
|
// Register any standalone repo workflows before saving config
|
|
268
348
|
if (sessions) {
|
|
269
349
|
try {
|
|
@@ -290,9 +370,31 @@ export function createWorkflowRouter(verifyToken, extractToken, sessions, commit
|
|
|
290
370
|
catch {
|
|
291
371
|
// Engine might not be ready yet
|
|
292
372
|
}
|
|
293
|
-
|
|
373
|
+
// Auto-setup GitHub webhook for pr-review workflows
|
|
374
|
+
let webhookSetup;
|
|
375
|
+
if (kind === 'pr-review' && webhookUrl) {
|
|
376
|
+
try {
|
|
377
|
+
webhookSetup = await autoSetupPrWebhook(repoPath, webhookUrl);
|
|
378
|
+
}
|
|
379
|
+
catch (err) {
|
|
380
|
+
webhookSetup = {
|
|
381
|
+
status: 'failed',
|
|
382
|
+
message: err instanceof Error ? err.message : 'Webhook setup failed. Please configure it manually in Settings.',
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
else if (kind === 'pr-review' && !webhookUrl) {
|
|
387
|
+
webhookSetup = {
|
|
388
|
+
status: 'failed',
|
|
389
|
+
message: 'Webhook URL not provided. Please configure the GitHub webhook manually in Settings.',
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
res.json({ config, webhookSetup });
|
|
294
393
|
});
|
|
295
394
|
router.patch('/config/repos/:id', (req, res) => {
|
|
395
|
+
if (req.body.repoPath !== undefined && !resolveRepoPathInRoot(req.body.repoPath)) {
|
|
396
|
+
return res.status(400).json({ error: 'Invalid repoPath: must be an existing directory under the configured repos root' });
|
|
397
|
+
}
|
|
296
398
|
try {
|
|
297
399
|
const config = updateReviewRepo(req.params.id, req.body);
|
|
298
400
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-routes.js","sourceRoot":"","sources":["../workflow-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-routes.js","sourceRoot":"","sources":["../workflow-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Origin-header validation for incoming WebSocket connections.
|
|
3
|
+
*
|
|
4
|
+
* Browsers always send an Origin header on WebSocket handshakes, so a
|
|
5
|
+
* missing Origin in production indicates a non-browser client (curl,
|
|
6
|
+
* proxies, or attackers attempting to bypass the cross-site WebSocket
|
|
7
|
+
* hijacking check). In production we reject those.
|
|
8
|
+
*
|
|
9
|
+
* Dev mode stays relaxed so CLI tools and local scripts continue to work.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isWsOriginAllowed(origin: string | undefined, corsOrigin: string, isProduction: boolean): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Origin-header validation for incoming WebSocket connections.
|
|
3
|
+
*
|
|
4
|
+
* Browsers always send an Origin header on WebSocket handshakes, so a
|
|
5
|
+
* missing Origin in production indicates a non-browser client (curl,
|
|
6
|
+
* proxies, or attackers attempting to bypass the cross-site WebSocket
|
|
7
|
+
* hijacking check). In production we reject those.
|
|
8
|
+
*
|
|
9
|
+
* Dev mode stays relaxed so CLI tools and local scripts continue to work.
|
|
10
|
+
*/
|
|
11
|
+
export function isWsOriginAllowed(origin, corsOrigin, isProduction) {
|
|
12
|
+
if (isProduction) {
|
|
13
|
+
return typeof origin === 'string' && origin === corsOrigin;
|
|
14
|
+
}
|
|
15
|
+
// Dev: accept missing Origin (CLI tools); reject only mismatched non-empty Origin.
|
|
16
|
+
if (!origin)
|
|
17
|
+
return true;
|
|
18
|
+
return origin === corsOrigin;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ws-origin-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-origin-check.js","sourceRoot":"","sources":["../ws-origin-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA0B,EAC1B,UAAkB,EAClB,YAAqB;IAErB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,UAAU,CAAA;IAC5D,CAAC;IACD,mFAAmF;IACnF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,MAAM,KAAK,UAAU,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-connection message rate limiter for the WebSocket server.
|
|
3
|
+
*
|
|
4
|
+
* The counter is incremented for *every* observed frame, before any
|
|
5
|
+
* JSON parsing. This prevents a flood of malformed (unparseable) frames
|
|
6
|
+
* from bypassing the limit.
|
|
7
|
+
*/
|
|
8
|
+
export interface RateLimitDecision {
|
|
9
|
+
/** True if the frame is within the limit and may be processed. */
|
|
10
|
+
allowed: boolean;
|
|
11
|
+
/** True only on the first frame that exceeds the limit (used to send a single warning). */
|
|
12
|
+
firstOverflow: boolean;
|
|
13
|
+
/** True once the client is sustaining traffic well beyond the limit and should be disconnected. */
|
|
14
|
+
shouldDisconnect: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface MessageRateLimiter {
|
|
17
|
+
observe(): RateLimitDecision;
|
|
18
|
+
}
|
|
19
|
+
export declare function createMessageRateLimiter(limit?: number, windowMs?: number, now?: () => number): MessageRateLimiter;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-connection message rate limiter for the WebSocket server.
|
|
3
|
+
*
|
|
4
|
+
* The counter is incremented for *every* observed frame, before any
|
|
5
|
+
* JSON parsing. This prevents a flood of malformed (unparseable) frames
|
|
6
|
+
* from bypassing the limit.
|
|
7
|
+
*/
|
|
8
|
+
export function createMessageRateLimiter(limit = 60, windowMs = 1000, now = () => Date.now()) {
|
|
9
|
+
let count = 0;
|
|
10
|
+
let windowStart = now();
|
|
11
|
+
return {
|
|
12
|
+
observe() {
|
|
13
|
+
const t = now();
|
|
14
|
+
if (t - windowStart >= windowMs) {
|
|
15
|
+
count = 0;
|
|
16
|
+
windowStart = t;
|
|
17
|
+
}
|
|
18
|
+
count++;
|
|
19
|
+
if (count > limit) {
|
|
20
|
+
return {
|
|
21
|
+
allowed: false,
|
|
22
|
+
firstOverflow: count === limit + 1,
|
|
23
|
+
shouldDisconnect: count > limit * 2,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return { allowed: true, firstOverflow: false, shouldDisconnect: false };
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=ws-rate-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-rate-limit.js","sourceRoot":"","sources":["../ws-rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,MAAM,UAAU,wBAAwB,CACtC,KAAK,GAAG,EAAE,EACV,QAAQ,GAAG,IAAI,EACf,MAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAEpC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,WAAW,GAAG,GAAG,EAAE,CAAA;IACvB,OAAO;QACL,OAAO;YACL,MAAM,CAAC,GAAG,GAAG,EAAE,CAAA;YACf,IAAI,CAAC,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;gBAChC,KAAK,GAAG,CAAC,CAAA;gBACT,WAAW,GAAG,CAAC,CAAA;YACjB,CAAC;YACD,KAAK,EAAE,CAAA;YACP,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC;oBAClC,gBAAgB,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC;iBACpC,CAAA;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAA;QACzE,CAAC;KACF,CAAA;AACH,CAAC"}
|