beercan 0.1.0 → 0.2.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/README.md +96 -2
- package/dist/api/handlers/bloops.d.ts +4 -0
- package/dist/api/handlers/bloops.d.ts.map +1 -0
- package/dist/api/handlers/bloops.js +96 -0
- package/dist/api/handlers/bloops.js.map +1 -0
- package/dist/api/handlers/jobs.d.ts +4 -0
- package/dist/api/handlers/jobs.d.ts.map +1 -0
- package/dist/api/handlers/jobs.js +34 -0
- package/dist/api/handlers/jobs.js.map +1 -0
- package/dist/api/handlers/projects.d.ts +4 -0
- package/dist/api/handlers/projects.d.ts.map +1 -0
- package/dist/api/handlers/projects.js +75 -0
- package/dist/api/handlers/projects.js.map +1 -0
- package/dist/api/handlers/schedules.d.ts +4 -0
- package/dist/api/handlers/schedules.d.ts.map +1 -0
- package/dist/api/handlers/schedules.js +19 -0
- package/dist/api/handlers/schedules.js.map +1 -0
- package/dist/api/handlers/status.d.ts +4 -0
- package/dist/api/handlers/status.d.ts.map +1 -0
- package/dist/api/handlers/status.js +21 -0
- package/dist/api/handlers/status.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +17 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/utils.d.ts +5 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/api/utils.js +24 -0
- package/dist/api/utils.js.map +1 -0
- package/dist/chat/formatter.d.ts +43 -0
- package/dist/chat/formatter.d.ts.map +1 -0
- package/dist/chat/formatter.js +144 -0
- package/dist/chat/formatter.js.map +1 -0
- package/dist/chat/index.d.ts +33 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +253 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/intent.d.ts +12 -0
- package/dist/chat/intent.d.ts.map +1 -0
- package/dist/chat/intent.js +256 -0
- package/dist/chat/intent.js.map +1 -0
- package/dist/chat/providers/slack.d.ts +17 -0
- package/dist/chat/providers/slack.d.ts.map +1 -0
- package/dist/chat/providers/slack.js +90 -0
- package/dist/chat/providers/slack.js.map +1 -0
- package/dist/chat/providers/telegram.d.ts +15 -0
- package/dist/chat/providers/telegram.d.ts.map +1 -0
- package/dist/chat/providers/telegram.js +76 -0
- package/dist/chat/providers/telegram.js.map +1 -0
- package/dist/chat/providers/terminal.d.ts +14 -0
- package/dist/chat/providers/terminal.d.ts.map +1 -0
- package/dist/chat/providers/terminal.js +77 -0
- package/dist/chat/providers/terminal.js.map +1 -0
- package/dist/chat/providers/websocket.d.ts +16 -0
- package/dist/chat/providers/websocket.d.ts.map +1 -0
- package/dist/chat/providers/websocket.js +125 -0
- package/dist/chat/providers/websocket.js.map +1 -0
- package/dist/chat/skippy.d.ts +3 -0
- package/dist/chat/skippy.d.ts.map +1 -0
- package/dist/chat/skippy.js +47 -0
- package/dist/chat/skippy.js.map +1 -0
- package/dist/chat/types.d.ts +50 -0
- package/dist/chat/types.d.ts.map +1 -0
- package/dist/chat/types.js +2 -0
- package/dist/chat/types.js.map +1 -0
- package/dist/cli.js +112 -7
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/core/job-queue.d.ts +9 -1
- package/dist/core/job-queue.d.ts.map +1 -1
- package/dist/core/job-queue.js +33 -0
- package/dist/core/job-queue.js.map +1 -1
- package/dist/core/runner.d.ts +2 -0
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +37 -7
- package/dist/core/runner.js.map +1 -1
- package/dist/events/daemon.d.ts +1 -1
- package/dist/events/daemon.d.ts.map +1 -1
- package/dist/events/daemon.js +35 -1
- package/dist/events/daemon.js.map +1 -1
- package/dist/events/sources/webhook-source.d.ts +2 -1
- package/dist/events/sources/webhook-source.d.ts.map +1 -1
- package/dist/events/sources/webhook-source.js +77 -5
- package/dist/events/sources/webhook-source.js.map +1 -1
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -2
- package/dist/index.js.map +1 -1
- package/dist/storage/database.d.ts +20 -0
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +46 -0
- package/dist/storage/database.js.map +1 -1
- package/package.json +14 -4
- package/src/dashboard/index.html +1092 -0
package/dist/core/job-queue.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export interface Job {
|
|
|
14
14
|
goal: string;
|
|
15
15
|
team: string;
|
|
16
16
|
priority: number;
|
|
17
|
-
status: "pending" | "running" | "completed" | "failed" | "timeout";
|
|
17
|
+
status: "pending" | "running" | "completed" | "failed" | "timeout" | "cancelled";
|
|
18
18
|
source: string;
|
|
19
19
|
sourceId: string | null;
|
|
20
20
|
extraContext: string | null;
|
|
@@ -32,6 +32,7 @@ export interface JobStats {
|
|
|
32
32
|
}
|
|
33
33
|
export declare class JobQueue {
|
|
34
34
|
private running;
|
|
35
|
+
private abortControllers;
|
|
35
36
|
private maxConcurrent;
|
|
36
37
|
private db;
|
|
37
38
|
private executor;
|
|
@@ -42,6 +43,7 @@ export declare class JobQueue {
|
|
|
42
43
|
goal: string;
|
|
43
44
|
team: string;
|
|
44
45
|
extraContext?: string;
|
|
46
|
+
signal?: AbortSignal;
|
|
45
47
|
}) => Promise<{
|
|
46
48
|
id: string;
|
|
47
49
|
status: string;
|
|
@@ -51,6 +53,12 @@ export declare class JobQueue {
|
|
|
51
53
|
/** Process the next pending job if under concurrency limit. */
|
|
52
54
|
processNext(): void;
|
|
53
55
|
private executeJob;
|
|
56
|
+
/** Cancel a pending or running job. */
|
|
57
|
+
cancelJob(jobId: string): {
|
|
58
|
+
cancelled: boolean;
|
|
59
|
+
status?: string;
|
|
60
|
+
reason?: string;
|
|
61
|
+
};
|
|
54
62
|
/** Get queue statistics. */
|
|
55
63
|
getStats(): JobStats;
|
|
56
64
|
/** List jobs, optionally filtered by status. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-queue.d.ts","sourceRoot":"","sources":["../../src/core/job-queue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"job-queue.d.ts","sourceRoot":"","sources":["../../src/core/job-queue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,QAAQ,CAAsK;gBAE1K,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM;IAKhD,wEAAwE;IACxE,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAI1K,yCAAyC;IACzC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAgCrC,+DAA+D;IAC/D,WAAW,IAAI,IAAI;YAyBL,UAAU;IAoCxB,uCAAuC;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA+BlF,4BAA4B;IAC5B,QAAQ,IAAI,QAAQ;IAIpB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,GAAG,EAAE;IAI5C,yDAAyD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB7B"}
|
package/dist/core/job-queue.js
CHANGED
|
@@ -2,6 +2,7 @@ import { v4 as uuid } from "uuid";
|
|
|
2
2
|
import { getLogger } from "./logger.js";
|
|
3
3
|
export class JobQueue {
|
|
4
4
|
running = new Map();
|
|
5
|
+
abortControllers = new Map();
|
|
5
6
|
maxConcurrent;
|
|
6
7
|
db;
|
|
7
8
|
executor = null;
|
|
@@ -66,12 +67,15 @@ export class JobQueue {
|
|
|
66
67
|
}
|
|
67
68
|
async executeJob(job) {
|
|
68
69
|
const log = getLogger();
|
|
70
|
+
const controller = new AbortController();
|
|
71
|
+
this.abortControllers.set(job.id, controller);
|
|
69
72
|
try {
|
|
70
73
|
const result = await this.executor({
|
|
71
74
|
projectSlug: job.projectSlug,
|
|
72
75
|
goal: job.goal,
|
|
73
76
|
team: job.team,
|
|
74
77
|
extraContext: job.extraContext ?? undefined,
|
|
78
|
+
signal: controller.signal,
|
|
75
79
|
});
|
|
76
80
|
this.db.updateJob(job.id, {
|
|
77
81
|
status: "completed",
|
|
@@ -90,6 +94,35 @@ export class JobQueue {
|
|
|
90
94
|
});
|
|
91
95
|
log.error("queue", `Job failed: ${err.message}`, { jobId: job.id });
|
|
92
96
|
}
|
|
97
|
+
finally {
|
|
98
|
+
this.abortControllers.delete(job.id);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/** Cancel a pending or running job. */
|
|
102
|
+
cancelJob(jobId) {
|
|
103
|
+
const log = getLogger();
|
|
104
|
+
const job = this.db.getJob(jobId);
|
|
105
|
+
if (!job) {
|
|
106
|
+
return { cancelled: false, reason: "Job not found" };
|
|
107
|
+
}
|
|
108
|
+
if (job.status === "completed" || job.status === "failed" || job.status === "timeout" || job.status === "cancelled") {
|
|
109
|
+
return { cancelled: false, status: job.status, reason: `Job already ${job.status}` };
|
|
110
|
+
}
|
|
111
|
+
if (job.status === "pending") {
|
|
112
|
+
this.db.updateJob(jobId, { status: "cancelled", error: "Cancelled by user", completedAt: new Date().toISOString() });
|
|
113
|
+
log.info("queue", `Job cancelled (pending): ${jobId}`);
|
|
114
|
+
return { cancelled: true, status: "cancelled" };
|
|
115
|
+
}
|
|
116
|
+
if (job.status === "running") {
|
|
117
|
+
const controller = this.abortControllers.get(jobId);
|
|
118
|
+
if (controller) {
|
|
119
|
+
controller.abort(new Error("Cancelled by user"));
|
|
120
|
+
}
|
|
121
|
+
this.db.updateJob(jobId, { status: "cancelled", error: "Cancelled by user", completedAt: new Date().toISOString() });
|
|
122
|
+
log.info("queue", `Job cancelled (running): ${jobId}`);
|
|
123
|
+
return { cancelled: true, status: "cancelled" };
|
|
124
|
+
}
|
|
125
|
+
return { cancelled: false, reason: `Unexpected job status: ${job.status}` };
|
|
93
126
|
}
|
|
94
127
|
/** Get queue statistics. */
|
|
95
128
|
getStats() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-queue.js","sourceRoot":"","sources":["../../src/core/job-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAyCxC,MAAM,OAAO,QAAQ;IACX,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC3C,aAAa,CAAS;IACtB,EAAE,CAAY;IACd,QAAQ,
|
|
1
|
+
{"version":3,"file":"job-queue.js","sourceRoot":"","sources":["../../src/core/job-queue.ts"],"names":[],"mappings":"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"}
|
package/dist/core/runner.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export interface RunBloopOptions {
|
|
|
13
13
|
extraContext?: string;
|
|
14
14
|
/** Callback for real-time output */
|
|
15
15
|
onEvent?: (event: BloopEvent) => void;
|
|
16
|
+
/** AbortSignal for cancellation/timeout support */
|
|
17
|
+
signal?: AbortSignal;
|
|
16
18
|
}
|
|
17
19
|
export type BloopEvent = {
|
|
18
20
|
type: "phase_start";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAI1C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAgC,OAAO,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAI1C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAgC,OAAO,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,mDAAmD;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAIrC,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,eAAe,CAA4E;gBAEvF,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa;IAUxF,uEAAuE;IACvE,sBAAsB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI5F,6BAA6B;IAC7B,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAInC,qEAAqE;IACrE,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAMvC,uEAAuE;IACvE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC,gDAAgD;IAC1C,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC;YAmGrC,eAAe;YAwFf,YAAY;IA6I1B,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;CAaxB"}
|
package/dist/core/runner.js
CHANGED
|
@@ -74,8 +74,25 @@ export class BloopRunner {
|
|
|
74
74
|
extraContext: (options.extraContext ?? "") + memoryContext,
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
+
// Set up timeout + abort
|
|
78
|
+
const timeoutMs = config.bloopTimeoutMs;
|
|
79
|
+
const abortController = new AbortController();
|
|
80
|
+
const externalSignal = options.signal;
|
|
81
|
+
// Link external signal (e.g., from job queue cancellation)
|
|
82
|
+
if (externalSignal) {
|
|
83
|
+
if (externalSignal.aborted) {
|
|
84
|
+
abortController.abort(externalSignal.reason);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
externalSignal.addEventListener("abort", () => abortController.abort(externalSignal.reason), { once: true });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const timeoutId = setTimeout(() => {
|
|
91
|
+
abortController.abort(new Error(`Bloop timed out after ${timeoutMs}ms`));
|
|
92
|
+
}, timeoutMs);
|
|
77
93
|
try {
|
|
78
|
-
const result = await this.executePipeline(bloop, project, team, options);
|
|
94
|
+
const result = await this.executePipeline(bloop, project, team, options, abortController.signal);
|
|
95
|
+
clearTimeout(timeoutId);
|
|
79
96
|
bloop.status = "completed";
|
|
80
97
|
bloop.result = result;
|
|
81
98
|
bloop.completedAt = new Date().toISOString();
|
|
@@ -87,25 +104,36 @@ export class BloopRunner {
|
|
|
87
104
|
return bloop;
|
|
88
105
|
}
|
|
89
106
|
catch (err) {
|
|
90
|
-
|
|
91
|
-
|
|
107
|
+
clearTimeout(timeoutId);
|
|
108
|
+
if (abortController.signal.aborted) {
|
|
109
|
+
bloop.status = "timeout";
|
|
110
|
+
bloop.result = { error: err.message || "Bloop timed out or was cancelled" };
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
bloop.status = "failed";
|
|
114
|
+
bloop.result = { error: err.message };
|
|
115
|
+
}
|
|
116
|
+
bloop.completedAt = new Date().toISOString();
|
|
92
117
|
bloop.updatedAt = new Date().toISOString();
|
|
93
118
|
this.db.updateBloop(bloop);
|
|
94
119
|
onEvent?.({ type: "error", error: err.message });
|
|
95
120
|
return bloop;
|
|
96
121
|
}
|
|
97
122
|
finally {
|
|
123
|
+
clearTimeout(timeoutId);
|
|
98
124
|
// Clean up working memory and bloop context
|
|
99
125
|
this.memory.getWorkingMemory().cleanup(bloop.id);
|
|
100
126
|
this.currentBloopCtx = null;
|
|
101
127
|
}
|
|
102
128
|
}
|
|
103
129
|
// ── Pipeline Execution ───────────────────────────────────
|
|
104
|
-
async executePipeline(bloop, project, team, options) {
|
|
130
|
+
async executePipeline(bloop, project, team, options, signal) {
|
|
105
131
|
const { onEvent } = options;
|
|
106
132
|
let pipelineContext = ""; // accumulated output passed between phases
|
|
107
133
|
let cycle = 0;
|
|
108
134
|
while (cycle < team.maxCycles) {
|
|
135
|
+
if (signal?.aborted)
|
|
136
|
+
throw new Error(String(signal.reason?.message ?? "Bloop aborted"));
|
|
109
137
|
cycle++;
|
|
110
138
|
onEvent?.({ type: "cycle", cycle, maxCycles: team.maxCycles });
|
|
111
139
|
let shouldRestart = false;
|
|
@@ -115,7 +143,7 @@ export class BloopRunner {
|
|
|
115
143
|
throw new Error(`Unknown role: ${stage.roleId}. Register it first.`);
|
|
116
144
|
}
|
|
117
145
|
onEvent?.({ type: "phase_start", phase: stage.phase, roleId: stage.roleId });
|
|
118
|
-
const phaseResult = await this.executeAgent(bloop, project, role, pipelineContext, options);
|
|
146
|
+
const phaseResult = await this.executeAgent(bloop, project, role, pipelineContext, options, signal);
|
|
119
147
|
pipelineContext += `\n\n--- ${role.name} (${stage.phase}) ---\n${phaseResult.content}`;
|
|
120
148
|
// Check for decisions from review/validate phases
|
|
121
149
|
const decision = this.extractDecision(phaseResult.content);
|
|
@@ -158,7 +186,7 @@ export class BloopRunner {
|
|
|
158
186
|
};
|
|
159
187
|
}
|
|
160
188
|
// ── Single Agent Execution ───────────────────────────────
|
|
161
|
-
async executeAgent(bloop, project, role, pipelineContext, options) {
|
|
189
|
+
async executeAgent(bloop, project, role, pipelineContext, options, signal) {
|
|
162
190
|
const config = getConfig();
|
|
163
191
|
const model = role.model ?? config.defaultModel;
|
|
164
192
|
// Build system prompt
|
|
@@ -178,6 +206,8 @@ export class BloopRunner {
|
|
|
178
206
|
let iterations = 0;
|
|
179
207
|
let finalContent = "";
|
|
180
208
|
while (iterations < role.maxIterations) {
|
|
209
|
+
if (signal?.aborted)
|
|
210
|
+
throw new Error(String(signal.reason?.message ?? "Bloop aborted"));
|
|
181
211
|
iterations++;
|
|
182
212
|
bloop.iterations++;
|
|
183
213
|
const response = await this.client.messages.create({
|
|
@@ -186,7 +216,7 @@ export class BloopRunner {
|
|
|
186
216
|
system: systemPrompt,
|
|
187
217
|
tools: anthropicTools.length > 0 ? anthropicTools : undefined,
|
|
188
218
|
messages,
|
|
189
|
-
});
|
|
219
|
+
}, { signal });
|
|
190
220
|
// Track token usage
|
|
191
221
|
bloop.tokensUsed += (response.usage?.input_tokens ?? 0) + (response.usage?.output_tokens ?? 0);
|
|
192
222
|
// Process response blocks
|
package/dist/core/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyBzD,iEAAiE;AAEjE,MAAM,OAAO,WAAW;IACd,MAAM,CAAY;IAClB,EAAE,CAAY;IACd,KAAK,CAAe;IACpB,MAAM,CAAgB;IACtB,KAAK,CAAyB;IAC9B,eAAe,GAAuE,IAAI,CAAC;IAEnG,YAAY,EAAa,EAAE,KAAmB,EAAE,MAAiB,EAAE,MAAqB;QACtF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,sBAAsB;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,uEAAuE;IACvE,sBAAsB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,6BAA6B;IAC7B,YAAY,CAAC,IAAe;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,qEAAqE;IACrE,aAAa,CAAC,KAAkB;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,cAAc,CAAC,MAAc;QAC3B,IAAI,aAAa,CAAC,MAAM,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,GAAG,CAAC,OAAwB;QAChC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;QAC/C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,0BAA0B;QAC1B,MAAM,KAAK,GAAU;YACnB,EAAE,EAAE,IAAI,EAAE;YACV,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,aAAa,EAAE,aAAa,IAAI,IAAI;YACpC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;YAC9C,MAAM,EAAE,SAAS;YACjB,IAAI;YACJ,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,MAAM,CAAC,kBAAkB;YACxC,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,IAAI;SAClB,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE3B,qCAAqC;QACrC,IAAI,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/F,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAErD,oDAAoD;QACpD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,GAAG;gBACR,GAAG,OAAO;gBACV,YAAY,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,aAAa;aAC3D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACzE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;YAC3B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACtB,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAE3B,qDAAqD;YACrD,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAExD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;YACxB,KAAK,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;YACtC,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAE3B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,4CAA4C;YAC5C,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,4DAA4D;IAEpD,KAAK,CAAC,eAAe,CAC3B,KAAY,EACZ,OAAgB,EAChB,IAAe,EACf,OAAwB;QAExB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,IAAI,eAAe,GAAG,EAAE,CAAC,CAAC,2CAA2C;QACrE,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAE/D,IAAI,aAAa,GAAG,KAAK,CAAC;YAE1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,MAAM,sBAAsB,CAAC,CAAC;gBACvE,CAAC;gBAED,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAE7E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CACzC,KAAK,EACL,OAAO,EACP,IAAI,EACJ,eAAe,EACf,OAAO,CACR,CAAC;gBAEF,eAAe,IAAI,WAAW,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,UAAU,WAAW,CAAC,OAAO,EAAE,CAAC;gBAEvF,kDAAkD;gBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,QAAQ,CAAC,OAAO;wBAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM;qBACxB,CAAC,CAAC;oBAEH,IACE,QAAQ,CAAC,OAAO,KAAK,QAAQ;wBAC7B,KAAK,CAAC,SAAS;wBACf,KAAK,CAAC,QAAQ,EACd,CAAC;wBACD,8DAA8D;wBAC9D,eAAe,GAAG,eAAe,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC;wBACjG,aAAa,GAAG,IAAI,CAAC;wBACrB,MAAM;oBACR,CAAC;oBAED,IACE,QAAQ,CAAC,OAAO,KAAK,QAAQ;wBAC7B,KAAK,CAAC,SAAS;wBACf,KAAK,CAAC,QAAQ,EACd,CAAC;wBACD,eAAe,IAAI,6BAA6B,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAChF,aAAa,GAAG,IAAI,CAAC;wBACrB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,uCAAuC;gBACvC,OAAO;oBACL,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,KAAK;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO;YACL,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,6BAA6B;SACvC,CAAC;IACJ,CAAC;IAED,4DAA4D;IAEpD,KAAK,CAAC,YAAY,CACxB,KAAY,EACZ,OAAgB,EAChB,IAAe,EACf,eAAuB,EACvB,OAAwB;QAExB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC;QAEhD,sBAAsB;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CACzC,IAAI,EACJ,OAAO,EACP,KAAK,CAAC,IAAI,EACV,eAAe,EACf,OAAO,CAAC,YAAY,CACrB,CAAC;QAEF,0DAA0D;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE9D,qDAAqD;QACrD,MAAM,QAAQ,GAA6B;YACzC;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,eAAe;oBACtB,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,sCAAsC,eAAe,EAAE;oBAC5E,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE;aAC1B;SACF,CAAC;QAEF,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,OAAO,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,UAAU,EAAE,CAAC;YACb,KAAK,CAAC,UAAU,EAAE,CAAC;YAEnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjD,KAAK;gBACL,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;gBAC7D,QAAQ;aACT,CAAC,CAAC;YAEH,oBAAoB;YACpB,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;YAE/F,0BAA0B;YAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,MAAM,gBAAgB,GAA6B,QAAQ,CAAC,OAAO,CAAC;YACpE,MAAM,WAAW,GAAqC,EAAE,CAAC;YAEzD,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;oBAC1B,OAAO,CAAC,OAAO,EAAE,CAAC;wBAChB,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,EAAE;wBACb,OAAO,EAAE,KAAK,CAAC,IAAI;qBACpB,CAAC,CAAC;oBAEH,yBAAyB;oBACzB,MAAM,GAAG,GAAiB;wBACxB,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;wBACvC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC;oBACF,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9B,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,OAAO,EAAE,CAAC;wBAChB,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CACrC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAgC,CACvC,CAAC;oBACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;oBAEtC,MAAM,UAAU,GAAmB;wBACjC,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,UAAU;wBACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC;oBACF,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAEjC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7D,OAAO,CAAC,OAAO,EAAE,CAAC;wBAChB,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,MAAM,EACJ,UAAU,CAAC,MAAM,GAAG,GAAG;4BACrB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;4BAClC,CAAC,CAAC,UAAU;qBACjB,CAAC,CAAC;oBAEH,WAAW,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,KAAK,CAAC,EAAE;wBACrB,OAAO,EAAE,UAAU;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,8CAA8C;YAC9C,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAuB,EAAE,CAAC,CAAC;gBACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACtD,gBAAgB;gBAChB,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC3C,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,gDAAgD;YAChD,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,4DAA4D;IAEpD,iBAAiB,CACvB,IAAe,EACf,OAAgB,EAChB,IAAY,EACZ,eAAuB,EACvB,YAAqB;QAErB,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5C,yBAAyB;QACzB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CACR,0BAA0B,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC3F,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,YAAY,OAAO,CAAC,IAAI,EAAE;YAC1B,cAAc,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,GAAG;YACtC,SAAS,IAAI,EAAE;SAChB,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,6DAA6D,OAAO,CAAC,OAAO,yCAAyC,CAAC,CAAC;QACvI,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,YAAY,CAClB,SAAmB,EACnB,YAAsB;QAEtB,qDAAqD;QACrD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,YAAY,CAAC;QACjD,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACjD,eAAe;QACf,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,eAAe,CACrB,OAAe;QAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,gFAAgF;QAChF,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,aAAa,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAEvE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/events/daemon.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { BeerCanEngine } from "../index.js";
|
|
|
2
2
|
import type { Scheduler } from "../scheduler/scheduler.js";
|
|
3
3
|
import type { EventManager } from "./index.js";
|
|
4
4
|
/**
|
|
5
|
-
* Start the BeerCan daemon: runs scheduler + event system.
|
|
5
|
+
* Start the BeerCan daemon: runs scheduler + event system + chat providers.
|
|
6
6
|
* Handles graceful shutdown on SIGTERM/SIGINT.
|
|
7
7
|
*/
|
|
8
8
|
export declare function startDaemon(engine: BeerCanEngine, scheduler: Scheduler, eventManager: EventManager): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/events/daemon.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/events/daemon.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
package/dist/events/daemon.js
CHANGED
|
@@ -1,19 +1,53 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import { registerStatusApi } from "../api/index.js";
|
|
3
|
+
import { createAnthropicClient } from "../client.js";
|
|
2
4
|
/**
|
|
3
|
-
* Start the BeerCan daemon: runs scheduler + event system.
|
|
5
|
+
* Start the BeerCan daemon: runs scheduler + event system + chat providers.
|
|
4
6
|
* Handles graceful shutdown on SIGTERM/SIGINT.
|
|
5
7
|
*/
|
|
6
8
|
export async function startDaemon(engine, scheduler, eventManager) {
|
|
9
|
+
// Register Status API routes
|
|
10
|
+
const webhookSource = eventManager.getWebhookSource();
|
|
11
|
+
registerStatusApi(webhookSource, engine);
|
|
7
12
|
// Start scheduler
|
|
8
13
|
scheduler.init();
|
|
9
14
|
scheduler.start();
|
|
10
15
|
// Start event system
|
|
11
16
|
await eventManager.start();
|
|
17
|
+
// Start chat providers (if configured)
|
|
18
|
+
let chatBridge = null;
|
|
19
|
+
const chatProviders = [];
|
|
20
|
+
if (process.env.BEERCAN_TELEGRAM_TOKEN || process.env.BEERCAN_SLACK_TOKEN) {
|
|
21
|
+
try {
|
|
22
|
+
const { ChatBridge } = await import("../chat/index.js");
|
|
23
|
+
const client = await createAnthropicClient();
|
|
24
|
+
chatBridge = new ChatBridge(engine, client);
|
|
25
|
+
if (process.env.BEERCAN_TELEGRAM_TOKEN) {
|
|
26
|
+
const { TelegramProvider } = await import("../chat/providers/telegram.js");
|
|
27
|
+
chatBridge.addProvider(new TelegramProvider(process.env.BEERCAN_TELEGRAM_TOKEN));
|
|
28
|
+
chatProviders.push("telegram");
|
|
29
|
+
}
|
|
30
|
+
if (process.env.BEERCAN_SLACK_TOKEN && process.env.BEERCAN_SLACK_SIGNING_SECRET) {
|
|
31
|
+
const { SlackProvider } = await import("../chat/providers/slack.js");
|
|
32
|
+
chatBridge.addProvider(new SlackProvider(process.env.BEERCAN_SLACK_TOKEN, process.env.BEERCAN_SLACK_SIGNING_SECRET, process.env.BEERCAN_SLACK_APP_TOKEN));
|
|
33
|
+
chatProviders.push("slack");
|
|
34
|
+
}
|
|
35
|
+
await chatBridge.start();
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
console.error(chalk.yellow(`[chat] Failed to start chat providers: ${err.message}`));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
12
41
|
console.log(chalk.bold.blue("\n🍺 BeerCan daemon running"));
|
|
42
|
+
if (chatProviders.length > 0) {
|
|
43
|
+
console.log(chalk.dim(` Chat providers: ${chatProviders.join(", ")}`));
|
|
44
|
+
}
|
|
13
45
|
console.log(chalk.dim(" Press Ctrl+C to stop\n"));
|
|
14
46
|
// Graceful shutdown
|
|
15
47
|
const shutdown = async () => {
|
|
16
48
|
console.log(chalk.dim("\nShutting down..."));
|
|
49
|
+
if (chatBridge)
|
|
50
|
+
await chatBridge.stop();
|
|
17
51
|
scheduler.stop();
|
|
18
52
|
await eventManager.stop();
|
|
19
53
|
engine.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/events/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/events/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,11 @@ export declare class WebhookSource {
|
|
|
7
7
|
private server;
|
|
8
8
|
private bus;
|
|
9
9
|
private port;
|
|
10
|
+
private rateLimiter;
|
|
10
11
|
private apiHandlers;
|
|
11
12
|
constructor(bus: EventBus, config?: WebhookSourceConfig);
|
|
12
13
|
/** Register a handler for REST API routes */
|
|
13
|
-
registerApiHandler(method: string, path: string, handler: (req: http.IncomingMessage, res: http.ServerResponse, params: Record<string, string>) => void): void;
|
|
14
|
+
registerApiHandler(method: string, path: string, handler: (req: http.IncomingMessage, res: http.ServerResponse, params: Record<string, string>) => void | Promise<void>): void;
|
|
14
15
|
start(): Promise<void>;
|
|
15
16
|
stop(): Promise<void>;
|
|
16
17
|
private handleRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-source.d.ts","sourceRoot":"","sources":["../../../src/events/sources/webhook-source.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"webhook-source.d.ts","sourceRoot":"","sources":["../../../src/events/sources/webhook-source.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAKxB,OAAO,EAAE,QAAQ,EAAqB,MAAM,iBAAiB,CAAC;AAiC9D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAyI;gBAEhJ,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,mBAAoC;IAMvE,6CAA6C;IAC7C,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrH,IAAI;IAID,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAUb,aAAa;YAoFb,WAAW;IA2BzB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,IAAI;IAKZ,oEAAoE;IACpE,OAAO,CAAC,UAAU;CAgBnB"}
|
|
@@ -1,12 +1,40 @@
|
|
|
1
1
|
import http from "http";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import { getConfig } from "../../config.js";
|
|
6
|
+
// ── Rate Limiter ──────────────────────────────────────────
|
|
7
|
+
class RateLimiter {
|
|
8
|
+
requests = new Map();
|
|
9
|
+
maxRequests;
|
|
10
|
+
windowMs = 60_000;
|
|
11
|
+
constructor(maxRequests) {
|
|
12
|
+
this.maxRequests = maxRequests;
|
|
13
|
+
}
|
|
14
|
+
check(ip) {
|
|
15
|
+
const now = Date.now();
|
|
16
|
+
const timestamps = this.requests.get(ip) ?? [];
|
|
17
|
+
const windowStart = now - this.windowMs;
|
|
18
|
+
const recent = timestamps.filter((t) => t > windowStart);
|
|
19
|
+
if (recent.length >= this.maxRequests) {
|
|
20
|
+
const retryAfterMs = recent[0] + this.windowMs - now;
|
|
21
|
+
return { allowed: false, retryAfterMs };
|
|
22
|
+
}
|
|
23
|
+
recent.push(now);
|
|
24
|
+
this.requests.set(ip, recent);
|
|
25
|
+
return { allowed: true };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
2
28
|
export class WebhookSource {
|
|
3
29
|
server = null;
|
|
4
30
|
bus;
|
|
5
31
|
port;
|
|
32
|
+
rateLimiter;
|
|
6
33
|
apiHandlers = new Map();
|
|
7
34
|
constructor(bus, config = { port: 3939 }) {
|
|
8
35
|
this.bus = bus;
|
|
9
36
|
this.port = config.port;
|
|
37
|
+
this.rateLimiter = new RateLimiter(getConfig().webhookRateLimit);
|
|
10
38
|
}
|
|
11
39
|
/** Register a handler for REST API routes */
|
|
12
40
|
registerApiHandler(method, path, handler) {
|
|
@@ -42,13 +70,31 @@ export class WebhookSource {
|
|
|
42
70
|
const method = req.method?.toUpperCase() ?? "GET";
|
|
43
71
|
// CORS headers
|
|
44
72
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
45
|
-
res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
|
|
46
|
-
res.setHeader("Access-Control-Allow-Headers", "Content-Type");
|
|
73
|
+
res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
|
|
74
|
+
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
|
|
47
75
|
if (method === "OPTIONS") {
|
|
48
76
|
res.writeHead(204);
|
|
49
77
|
res.end();
|
|
50
78
|
return;
|
|
51
79
|
}
|
|
80
|
+
// Rate limiting
|
|
81
|
+
const clientIp = req.socket.remoteAddress ?? "unknown";
|
|
82
|
+
const rateCheck = this.rateLimiter.check(clientIp);
|
|
83
|
+
if (!rateCheck.allowed) {
|
|
84
|
+
res.setHeader("Retry-After", String(Math.ceil((rateCheck.retryAfterMs ?? 60000) / 1000)));
|
|
85
|
+
this.json(res, 429, { error: "Too many requests" });
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// API key auth (if configured)
|
|
89
|
+
const config = getConfig();
|
|
90
|
+
if (config.apiKey && url.pathname !== "/api/health") {
|
|
91
|
+
const authHeader = req.headers.authorization;
|
|
92
|
+
const token = authHeader?.startsWith("Bearer ") ? authHeader.slice(7) : null;
|
|
93
|
+
if (token !== config.apiKey) {
|
|
94
|
+
this.json(res, 401, { error: "Unauthorized — provide Bearer token in Authorization header" });
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
52
98
|
try {
|
|
53
99
|
// Event endpoint: POST /events/:projectSlug
|
|
54
100
|
const eventMatch = url.pathname.match(/^\/events\/([a-z0-9-]+)$/);
|
|
@@ -63,15 +109,31 @@ export class WebhookSource {
|
|
|
63
109
|
}
|
|
64
110
|
// Try registered API handlers
|
|
65
111
|
for (const [key, handler] of this.apiHandlers) {
|
|
66
|
-
const
|
|
112
|
+
const colonIdx = key.indexOf(":");
|
|
113
|
+
const handlerMethod = key.substring(0, colonIdx);
|
|
114
|
+
const pattern = key.substring(colonIdx + 1);
|
|
67
115
|
if (method !== handlerMethod)
|
|
68
116
|
continue;
|
|
69
117
|
const params = this.matchRoute(url.pathname, pattern);
|
|
70
118
|
if (params) {
|
|
71
|
-
handler(req, res, params);
|
|
119
|
+
await handler(req, res, params);
|
|
72
120
|
return;
|
|
73
121
|
}
|
|
74
122
|
}
|
|
123
|
+
// Dashboard — serve at / or /dashboard
|
|
124
|
+
if ((url.pathname === "/" || url.pathname === "/dashboard") && method === "GET") {
|
|
125
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
126
|
+
const dashboardPath = path.resolve(__dirname, "../../dashboard/index.html");
|
|
127
|
+
// Try src/ first (dev), then fall back to installed location
|
|
128
|
+
const candidates = [dashboardPath, path.resolve(__dirname, "../../../src/dashboard/index.html")];
|
|
129
|
+
for (const p of candidates) {
|
|
130
|
+
if (fs.existsSync(p)) {
|
|
131
|
+
res.writeHead(200, { "Content-Type": "text/html" });
|
|
132
|
+
res.end(fs.readFileSync(p, "utf-8"));
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
75
137
|
// 404
|
|
76
138
|
this.json(res, 404, { error: "Not found" });
|
|
77
139
|
}
|
|
@@ -100,9 +162,19 @@ export class WebhookSource {
|
|
|
100
162
|
this.json(res, 202, { accepted: true, eventType: event.type });
|
|
101
163
|
}
|
|
102
164
|
readBody(req) {
|
|
165
|
+
const maxSize = getConfig().webhookMaxBodySize;
|
|
103
166
|
return new Promise((resolve, reject) => {
|
|
104
167
|
let body = "";
|
|
105
|
-
|
|
168
|
+
let size = 0;
|
|
169
|
+
req.on("data", (chunk) => {
|
|
170
|
+
size += Buffer.byteLength(chunk);
|
|
171
|
+
if (size > maxSize) {
|
|
172
|
+
req.destroy();
|
|
173
|
+
reject(new Error(`Request body exceeds ${maxSize} bytes`));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
body += chunk;
|
|
177
|
+
});
|
|
106
178
|
req.on("end", () => resolve(body));
|
|
107
179
|
req.on("error", reject);
|
|
108
180
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-source.js","sourceRoot":"","sources":["../../../src/events/sources/webhook-source.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"webhook-source.js","sourceRoot":"","sources":["../../../src/events/sources/webhook-source.ts"],"names":[],"mappings":"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"}
|