@action-llama/action-llama 0.18.11 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/container-entry.d.ts.map +1 -1
- package/dist/agents/container-entry.js +16 -158
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/container-runner.d.ts +10 -1
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/container-runner.js +125 -121
- package/dist/agents/container-runner.js.map +1 -1
- package/dist/agents/session-loop.d.ts +22 -0
- package/dist/agents/session-loop.d.ts.map +1 -0
- package/dist/agents/session-loop.js +159 -0
- package/dist/agents/session-loop.js.map +1 -0
- package/dist/agents/types.d.ts +17 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/build-info.json +1 -1
- package/dist/cli/commands/run-agent.d.ts.map +1 -1
- package/dist/cli/commands/run-agent.js +16 -117
- package/dist/cli/commands/run-agent.js.map +1 -1
- package/dist/control/routes/dashboard-api.d.ts.map +1 -1
- package/dist/control/routes/dashboard-api.js +43 -0
- package/dist/control/routes/dashboard-api.js.map +1 -1
- package/dist/control/routes/stats.d.ts.map +1 -1
- package/dist/control/routes/stats.js +54 -0
- package/dist/control/routes/stats.js.map +1 -1
- package/dist/db/connection.d.ts +20 -0
- package/dist/db/connection.d.ts.map +1 -0
- package/dist/db/connection.js +34 -0
- package/dist/db/connection.js.map +1 -0
- package/dist/db/index.d.ts +8 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +7 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate.d.ts +27 -0
- package/dist/db/migrate.d.ts.map +1 -0
- package/dist/db/migrate.js +180 -0
- package/dist/db/migrate.js.map +1 -0
- package/dist/db/schema.d.ts +1383 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +158 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/docker/local-runtime.js +1 -1
- package/dist/docker/local-runtime.js.map +1 -1
- package/dist/docker/ssh-docker-runtime.js +1 -1
- package/dist/docker/ssh-docker-runtime.js.map +1 -1
- package/dist/events/event-queue-sqlite.d.ts +8 -3
- package/dist/events/event-queue-sqlite.d.ts.map +1 -1
- package/dist/events/event-queue-sqlite.js +42 -41
- package/dist/events/event-queue-sqlite.js.map +1 -1
- package/dist/execution/execution.d.ts +1 -0
- package/dist/execution/execution.d.ts.map +1 -1
- package/dist/execution/execution.js +8 -3
- package/dist/execution/execution.js.map +1 -1
- package/dist/frontend/assets/index-BO_q8PRQ.css +2 -0
- package/dist/frontend/assets/index-DKQX_6iM.js +13 -0
- package/dist/frontend/index.html +2 -2
- package/dist/gateway/frontend.d.ts +20 -0
- package/dist/gateway/frontend.d.ts.map +1 -0
- package/dist/gateway/frontend.js +80 -0
- package/dist/gateway/frontend.js.map +1 -0
- package/dist/gateway/index.d.ts +3 -70
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +109 -214
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/middleware/auth.d.ts +12 -0
- package/dist/gateway/middleware/auth.d.ts.map +1 -0
- package/dist/gateway/middleware/auth.js +25 -0
- package/dist/gateway/middleware/auth.js.map +1 -0
- package/dist/gateway/middleware/request-logging.d.ts +9 -0
- package/dist/gateway/middleware/request-logging.d.ts.map +1 -0
- package/dist/gateway/middleware/request-logging.js +26 -0
- package/dist/gateway/middleware/request-logging.js.map +1 -0
- package/dist/gateway/middleware/telemetry.d.ts +7 -0
- package/dist/gateway/middleware/telemetry.d.ts.map +1 -0
- package/dist/gateway/middleware/telemetry.js +28 -0
- package/dist/gateway/middleware/telemetry.js.map +1 -0
- package/dist/gateway/routes/chat.d.ts +32 -0
- package/dist/gateway/routes/chat.d.ts.map +1 -0
- package/dist/gateway/routes/chat.js +24 -0
- package/dist/gateway/routes/chat.js.map +1 -0
- package/dist/gateway/routes/dashboard.d.ts +19 -0
- package/dist/gateway/routes/dashboard.d.ts.map +1 -0
- package/dist/gateway/routes/dashboard.js +26 -0
- package/dist/gateway/routes/dashboard.js.map +1 -0
- package/dist/gateway/routes/execution.d.ts +24 -0
- package/dist/gateway/routes/execution.d.ts.map +1 -0
- package/dist/gateway/routes/execution.js +13 -0
- package/dist/gateway/routes/execution.js.map +1 -0
- package/dist/gateway/routes/system.d.ts +14 -0
- package/dist/gateway/routes/system.d.ts.map +1 -0
- package/dist/gateway/routes/system.js +18 -0
- package/dist/gateway/routes/system.js.map +1 -0
- package/dist/gateway/routes/webhooks.d.ts +20 -0
- package/dist/gateway/routes/webhooks.d.ts.map +1 -0
- package/dist/gateway/routes/webhooks.js +11 -0
- package/dist/gateway/routes/webhooks.js.map +1 -0
- package/dist/gateway/stores.d.ts +21 -0
- package/dist/gateway/stores.d.ts.map +1 -0
- package/dist/gateway/stores.js +24 -0
- package/dist/gateway/stores.js.map +1 -0
- package/dist/gateway/types.d.ts +65 -0
- package/dist/gateway/types.d.ts.map +1 -0
- package/dist/gateway/types.js +2 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/scheduler/dependencies.d.ts +11 -0
- package/dist/scheduler/dependencies.d.ts.map +1 -0
- package/dist/scheduler/dependencies.js +34 -0
- package/dist/scheduler/dependencies.js.map +1 -0
- package/dist/scheduler/gateway-setup.d.ts.map +1 -1
- package/dist/scheduler/gateway-setup.js +8 -2
- package/dist/scheduler/gateway-setup.js.map +1 -1
- package/dist/scheduler/index.d.ts +1 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +20 -176
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/orphan-recovery.d.ts +25 -0
- package/dist/scheduler/orphan-recovery.d.ts.map +1 -0
- package/dist/scheduler/orphan-recovery.js +130 -0
- package/dist/scheduler/orphan-recovery.js.map +1 -0
- package/dist/scheduler/persistence.d.ts +18 -0
- package/dist/scheduler/persistence.d.ts.map +1 -0
- package/dist/scheduler/persistence.js +42 -0
- package/dist/scheduler/persistence.js.map +1 -0
- package/dist/scheduler/shutdown.d.ts +2 -0
- package/dist/scheduler/shutdown.d.ts.map +1 -1
- package/dist/scheduler/shutdown.js +8 -1
- package/dist/scheduler/shutdown.js.map +1 -1
- package/dist/shared/config/index.d.ts +5 -0
- package/dist/shared/config/index.d.ts.map +1 -0
- package/dist/shared/config/index.js +5 -0
- package/dist/shared/config/index.js.map +1 -0
- package/dist/shared/config/load-agent.d.ts +27 -0
- package/dist/shared/config/load-agent.d.ts.map +1 -0
- package/dist/shared/config/load-agent.js +169 -0
- package/dist/shared/config/load-agent.js.map +1 -0
- package/dist/shared/config/load-project.d.ts +22 -0
- package/dist/shared/config/load-project.d.ts.map +1 -0
- package/dist/shared/config/load-project.js +84 -0
- package/dist/shared/config/load-project.js.map +1 -0
- package/dist/shared/config/types.d.ts +115 -0
- package/dist/shared/config/types.d.ts.map +1 -0
- package/dist/shared/config/types.js +2 -0
- package/dist/shared/config/types.js.map +1 -0
- package/dist/shared/config/validate.d.ts +4 -0
- package/dist/shared/config/validate.d.ts.map +1 -0
- package/dist/shared/config/validate.js +23 -0
- package/dist/shared/config/validate.js.map +1 -0
- package/dist/shared/config.d.ts +4 -161
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +5 -269
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/constants.d.ts +2 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +2 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/errors.js +1 -1
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/paths.d.ts +6 -0
- package/dist/shared/paths.d.ts.map +1 -1
- package/dist/shared/paths.js +12 -0
- package/dist/shared/paths.js.map +1 -1
- package/dist/shared/persistence/backends/sqlite.d.ts +9 -5
- package/dist/shared/persistence/backends/sqlite.d.ts.map +1 -1
- package/dist/shared/persistence/backends/sqlite.js +107 -135
- package/dist/shared/persistence/backends/sqlite.js.map +1 -1
- package/dist/shared/queue-sqlite.d.ts +9 -4
- package/dist/shared/queue-sqlite.d.ts.map +1 -1
- package/dist/shared/queue-sqlite.js +41 -36
- package/dist/shared/queue-sqlite.js.map +1 -1
- package/dist/shared/state-store-sqlite.d.ts +8 -3
- package/dist/shared/state-store-sqlite.d.ts.map +1 -1
- package/dist/shared/state-store-sqlite.js +55 -37
- package/dist/shared/state-store-sqlite.js.map +1 -1
- package/dist/stats/store.d.ts +11 -2
- package/dist/stats/store.d.ts.map +1 -1
- package/dist/stats/store.js +200 -291
- package/dist/stats/store.js.map +1 -1
- package/package.json +4 -1
- package/dist/agents/execution-engine.d.ts +0 -19
- package/dist/agents/execution-engine.d.ts.map +0 -1
- package/dist/agents/execution-engine.js +0 -179
- package/dist/agents/execution-engine.js.map +0 -1
- package/dist/agents/runner.d.ts +0 -38
- package/dist/agents/runner.d.ts.map +0 -1
- package/dist/agents/runner.js +0 -375
- package/dist/agents/runner.js.map +0 -1
- package/dist/frontend/assets/index-CSIS2n0j.css +0 -2
- package/dist/frontend/assets/index-W_Sfmu8j.js +0 -13
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { authMiddleware } from "../../control/auth.js";
|
|
2
|
+
import { registerAuthApiRoutes } from "../../control/routes/dashboard-api.js";
|
|
3
|
+
/**
|
|
4
|
+
* Apply authentication middleware to all protected routes and register
|
|
5
|
+
* the auth API endpoints (login/logout/check).
|
|
6
|
+
*
|
|
7
|
+
* The SessionStore is passed in (created once in stores.ts) and shared
|
|
8
|
+
* between the auth middleware, chat auth, and chat WebSocket handler.
|
|
9
|
+
*/
|
|
10
|
+
export function applyAuthMiddleware(app, apiKey, sessionStore, hostname) {
|
|
11
|
+
const auth = authMiddleware(apiKey, sessionStore);
|
|
12
|
+
// Protected route patterns — includes chat auth, unified here to avoid duplication
|
|
13
|
+
app.use("/control/*", auth);
|
|
14
|
+
app.use("/dashboard/api/*", auth);
|
|
15
|
+
app.use("/locks/status", auth);
|
|
16
|
+
app.use("/api/logs/*", auth);
|
|
17
|
+
app.use("/api/stats/*", auth);
|
|
18
|
+
app.use("/api/dashboard/*", auth);
|
|
19
|
+
app.use("/api/auth/check", auth);
|
|
20
|
+
app.use("/api/webhooks/*", auth);
|
|
21
|
+
app.use("/api/chat/*", auth);
|
|
22
|
+
// JSON auth endpoints for the SPA (login is unprotected, check is protected)
|
|
23
|
+
registerAuthApiRoutes(app, apiKey, sessionStore, hostname);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/gateway/middleware/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAG9E;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAS,EACT,MAAoB,EACpB,YAAsC,EACtC,QAAiB;IAEjB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAElD,mFAAmF;IACnF,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAE7B,6EAA6E;IAC7E,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import type { Logger } from "../../shared/logger.js";
|
|
3
|
+
/**
|
|
4
|
+
* Apply request/response logging middleware to the Hono app.
|
|
5
|
+
* Skips /health to avoid noise; logs method, path, status, and duration.
|
|
6
|
+
* Uses warn for 4xx+ responses, debug otherwise.
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyRequestLoggingMiddleware(app: Hono, logger: Logger): void;
|
|
9
|
+
//# sourceMappingURL=request-logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-logging.d.ts","sourceRoot":"","sources":["../../../src/gateway/middleware/request-logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAkB7E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply request/response logging middleware to the Hono app.
|
|
3
|
+
* Skips /health to avoid noise; logs method, path, status, and duration.
|
|
4
|
+
* Uses warn for 4xx+ responses, debug otherwise.
|
|
5
|
+
*/
|
|
6
|
+
export function applyRequestLoggingMiddleware(app, logger) {
|
|
7
|
+
app.use("*", async (c, next) => {
|
|
8
|
+
if (c.req.path === "/health") {
|
|
9
|
+
await next();
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const start = Date.now();
|
|
13
|
+
logger.debug({ method: c.req.method, path: c.req.path }, "request received");
|
|
14
|
+
await next();
|
|
15
|
+
const duration = Date.now() - start;
|
|
16
|
+
const status = c.res.status;
|
|
17
|
+
const logData = { method: c.req.method, path: c.req.path, status, duration };
|
|
18
|
+
if (status >= 400) {
|
|
19
|
+
logger.warn(logData, "request completed with error");
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
logger.debug(logData, "request completed");
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=request-logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-logging.js","sourceRoot":"","sources":["../../../src/gateway/middleware/request-logging.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAS,EAAE,MAAc;IACrE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAC7E,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5B,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC7E,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
/**
|
|
3
|
+
* Apply OpenTelemetry HTTP span middleware to the Hono app.
|
|
4
|
+
* Wraps each request in a span with HTTP metadata.
|
|
5
|
+
*/
|
|
6
|
+
export declare function applyTelemetryMiddleware(app: Hono): void;
|
|
7
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/gateway/middleware/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CA4BxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { withSpan, getTelemetry } from "../../telemetry/index.js";
|
|
2
|
+
import { SpanKind } from "@opentelemetry/api";
|
|
3
|
+
/**
|
|
4
|
+
* Apply OpenTelemetry HTTP span middleware to the Hono app.
|
|
5
|
+
* Wraps each request in a span with HTTP metadata.
|
|
6
|
+
*/
|
|
7
|
+
export function applyTelemetryMiddleware(app) {
|
|
8
|
+
const telemetry = getTelemetry();
|
|
9
|
+
if (!telemetry)
|
|
10
|
+
return;
|
|
11
|
+
app.use("*", async (c, next) => {
|
|
12
|
+
const spanName = `gateway.${c.req.method.toLowerCase()}_${c.req.path.replace(/\/+/g, "_").replace(/^_|_$/g, "") || "root"}`;
|
|
13
|
+
await withSpan(spanName, async (span) => {
|
|
14
|
+
span.setAttributes({
|
|
15
|
+
"http.method": c.req.method,
|
|
16
|
+
"http.url": c.req.url,
|
|
17
|
+
"http.path": c.req.path,
|
|
18
|
+
"http.user_agent": c.req.header("user-agent") || "",
|
|
19
|
+
"gateway.component": "http_server",
|
|
20
|
+
});
|
|
21
|
+
await next();
|
|
22
|
+
span.setAttributes({
|
|
23
|
+
"http.status_code": c.res.status,
|
|
24
|
+
});
|
|
25
|
+
}, {}, SpanKind.SERVER);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/gateway/middleware/telemetry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAS;IAChD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QAE5H,MAAM,QAAQ,CACZ,QAAQ,EACR,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,aAAa,CAAC;gBACjB,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;gBAC3B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG;gBACrB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI;gBACvB,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE;gBACnD,mBAAmB,EAAE,aAAa;aACnC,CAAC,CAAC;YAEH,MAAM,IAAI,EAAE,CAAC;YAEb,IAAI,CAAC,aAAa,CAAC;gBACjB,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;aACjC,CAAC,CAAC;QACL,CAAC,EACD,EAAE,EACF,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Server } from "http";
|
|
2
|
+
import type { Hono } from "hono";
|
|
3
|
+
import { ChatSessionManager } from "../../chat/session-manager.js";
|
|
4
|
+
import { type LaunchChatCallback, type StopChatCallback } from "../../chat/routes.js";
|
|
5
|
+
import { type ChatWebSocketState } from "../../chat/ws-handler.js";
|
|
6
|
+
import type { ApiKeySource } from "../../control/auth.js";
|
|
7
|
+
import type { SessionStore } from "../../control/session-store.js";
|
|
8
|
+
import type { Logger } from "../../shared/logger.js";
|
|
9
|
+
export interface ChatSetup {
|
|
10
|
+
chatSessionManager: ChatSessionManager;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create the chat session manager and register chat API routes.
|
|
14
|
+
* Returns the session manager so it can be passed to `attachChatWebSocketToServer`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerChatRoutes(app: Hono, opts: {
|
|
17
|
+
maxChatSessions?: number;
|
|
18
|
+
launchChatContainer?: LaunchChatCallback;
|
|
19
|
+
stopChatContainer?: StopChatCallback;
|
|
20
|
+
logger: Logger;
|
|
21
|
+
}): ChatSetup;
|
|
22
|
+
/**
|
|
23
|
+
* Attach the chat WebSocket handler to the raw HTTP server.
|
|
24
|
+
* Must be called after the server is listening.
|
|
25
|
+
*/
|
|
26
|
+
export declare function attachChatWebSocketToServer(server: Server, opts: {
|
|
27
|
+
chatSessionManager: ChatSessionManager;
|
|
28
|
+
apiKey: ApiKeySource;
|
|
29
|
+
sessionStore?: SessionStore;
|
|
30
|
+
logger: Logger;
|
|
31
|
+
}): ChatWebSocketState;
|
|
32
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,SAAS,CAiBX;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IACJ,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,kBAAkB,CAGpB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChatSessionManager } from "../../chat/session-manager.js";
|
|
2
|
+
import { registerChatApiRoutes, } from "../../chat/routes.js";
|
|
3
|
+
import { attachChatWebSocket } from "../../chat/ws-handler.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create the chat session manager and register chat API routes.
|
|
6
|
+
* Returns the session manager so it can be passed to `attachChatWebSocketToServer`.
|
|
7
|
+
*/
|
|
8
|
+
export function registerChatRoutes(app, opts) {
|
|
9
|
+
const { maxChatSessions, launchChatContainer, stopChatContainer, logger } = opts;
|
|
10
|
+
const chatSessionManager = new ChatSessionManager(maxChatSessions);
|
|
11
|
+
const noopLaunch = async () => { };
|
|
12
|
+
const noopStop = async () => { };
|
|
13
|
+
registerChatApiRoutes(app, chatSessionManager, launchChatContainer || noopLaunch, stopChatContainer || noopStop, logger);
|
|
14
|
+
return { chatSessionManager };
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Attach the chat WebSocket handler to the raw HTTP server.
|
|
18
|
+
* Must be called after the server is listening.
|
|
19
|
+
*/
|
|
20
|
+
export function attachChatWebSocketToServer(server, opts) {
|
|
21
|
+
const { chatSessionManager, apiKey, sessionStore, logger } = opts;
|
|
22
|
+
return attachChatWebSocket(server, chatSessionManager, apiKey, sessionStore, logger);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/gateway/routes/chat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAA2B,MAAM,0BAA0B,CAAC;AASxF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAS,EACT,IAKC;IAED,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEjF,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAuB,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAqB,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IAElD,qBAAqB,CACnB,GAAG,EACH,kBAAkB,EAClB,mBAAmB,IAAI,UAAU,EACjC,iBAAiB,IAAI,QAAQ,EAC7B,MAAM,CACP,CAAC;IAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAc,EACd,IAKC;IAED,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClE,OAAO,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import type { StatusTracker } from "../../tui/status-tracker.js";
|
|
3
|
+
import type { ApiKeySource } from "../../control/auth.js";
|
|
4
|
+
import type { StatsStore } from "../../stats/store.js";
|
|
5
|
+
import type { Logger } from "../../shared/logger.js";
|
|
6
|
+
/**
|
|
7
|
+
* Register all dashboard-related routes: SSE data stream, JSON API,
|
|
8
|
+
* log API, stats API, and the root redirect.
|
|
9
|
+
*
|
|
10
|
+
* Requires webUI + statusTracker + apiKey to be active (enforced by caller).
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerDashboardRoutes(app: Hono, opts: {
|
|
13
|
+
statusTracker: StatusTracker;
|
|
14
|
+
projectPath?: string;
|
|
15
|
+
apiKey: ApiKeySource;
|
|
16
|
+
statsStore?: StatsStore;
|
|
17
|
+
logger: Logger;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { registerDashboardDataRoutes } from "../../control/routes/dashboard.js";
|
|
2
|
+
import { registerDashboardApiRoutes } from "../../control/routes/dashboard-api.js";
|
|
3
|
+
import { registerLogRoutes } from "../../control/routes/logs.js";
|
|
4
|
+
import { registerStatsRoutes } from "../../control/routes/stats.js";
|
|
5
|
+
/**
|
|
6
|
+
* Register all dashboard-related routes: SSE data stream, JSON API,
|
|
7
|
+
* log API, stats API, and the root redirect.
|
|
8
|
+
*
|
|
9
|
+
* Requires webUI + statusTracker + apiKey to be active (enforced by caller).
|
|
10
|
+
*/
|
|
11
|
+
export async function registerDashboardRoutes(app, opts) {
|
|
12
|
+
const { statusTracker, projectPath, statsStore } = opts;
|
|
13
|
+
// SSE stream and locks API
|
|
14
|
+
registerDashboardDataRoutes(app, statusTracker);
|
|
15
|
+
// JSON API routes for the React SPA
|
|
16
|
+
registerDashboardApiRoutes(app, statusTracker, projectPath, statsStore);
|
|
17
|
+
// Log API routes (only if projectPath is provided)
|
|
18
|
+
if (projectPath) {
|
|
19
|
+
registerLogRoutes(app, projectPath);
|
|
20
|
+
}
|
|
21
|
+
// Stats API routes
|
|
22
|
+
registerStatsRoutes(app, statsStore, statusTracker);
|
|
23
|
+
// Root redirect to dashboard
|
|
24
|
+
app.get("/", (c) => c.redirect("/dashboard"));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/gateway/routes/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAMpE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAS,EACT,IAMC;IAED,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAExD,2BAA2B;IAC3B,2BAA2B,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAEhD,oCAAoC;IACpC,0BAA0B,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAExE,mDAAmD;IACnD,IAAI,WAAW,EAAE,CAAC;QAChB,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,mBAAmB;IACnB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAEpD,6BAA6B;IAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import { type CallDispatcher } from "../../execution/routes/calls.js";
|
|
3
|
+
import { type SignalContext } from "../../execution/routes/signals.js";
|
|
4
|
+
import type { ContainerRegistry } from "../../execution/container-registry.js";
|
|
5
|
+
import type { LockStore } from "../../execution/lock-store.js";
|
|
6
|
+
import type { CallStore } from "../../execution/call-store.js";
|
|
7
|
+
import type { Logger } from "../../shared/logger.js";
|
|
8
|
+
import type { StatusTracker } from "../../tui/status-tracker.js";
|
|
9
|
+
import type { SchedulerEventBus } from "../../scheduler/events.js";
|
|
10
|
+
/**
|
|
11
|
+
* Register execution-plane routes: locks, calls, and signals.
|
|
12
|
+
*/
|
|
13
|
+
export declare function registerExecutionRoutes(app: Hono, opts: {
|
|
14
|
+
containerRegistry: ContainerRegistry;
|
|
15
|
+
lockStore: LockStore;
|
|
16
|
+
callStore: CallStore;
|
|
17
|
+
callDispatcherProvider: () => CallDispatcher | undefined;
|
|
18
|
+
logger: Logger;
|
|
19
|
+
statusTracker?: StatusTracker;
|
|
20
|
+
signalContext?: SignalContext;
|
|
21
|
+
skipStatusEndpoint?: boolean;
|
|
22
|
+
events?: SchedulerEventBus;
|
|
23
|
+
}): void;
|
|
24
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B,GACA,IAAI,CAgBN"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { registerLockRoutes } from "../../execution/routes/locks.js";
|
|
2
|
+
import { registerCallRoutes } from "../../execution/routes/calls.js";
|
|
3
|
+
import { registerSignalRoutes } from "../../execution/routes/signals.js";
|
|
4
|
+
/**
|
|
5
|
+
* Register execution-plane routes: locks, calls, and signals.
|
|
6
|
+
*/
|
|
7
|
+
export function registerExecutionRoutes(app, opts) {
|
|
8
|
+
const { containerRegistry, lockStore, callStore, callDispatcherProvider, logger, statusTracker, signalContext, skipStatusEndpoint, events, } = opts;
|
|
9
|
+
registerLockRoutes(app, containerRegistry, lockStore, logger, { skipStatusEndpoint, events });
|
|
10
|
+
registerCallRoutes(app, containerRegistry, callStore, callDispatcherProvider, logger, events);
|
|
11
|
+
registerSignalRoutes(app, containerRegistry, logger, statusTracker, signalContext, events);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/gateway/routes/execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAsB,MAAM,mCAAmC,CAAC;AAQ7F;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAS,EACT,IAUC;IAED,MAAM,EACJ,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,MAAM,EACN,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,MAAM,GACP,GAAG,IAAI,CAAC;IAET,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9F,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9F,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import { type ControlRoutesDeps } from "../../control/routes/control.js";
|
|
3
|
+
import type { ContainerRegistry } from "../../execution/container-registry.js";
|
|
4
|
+
import type { Logger } from "../../shared/logger.js";
|
|
5
|
+
/**
|
|
6
|
+
* Register system-level routes: health check, shutdown, and control routes.
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerSystemRoutes(app: Hono, opts: {
|
|
9
|
+
containerRegistry: ContainerRegistry;
|
|
10
|
+
killContainer?: (name: string) => Promise<void>;
|
|
11
|
+
logger: Logger;
|
|
12
|
+
controlDeps?: ControlRoutesDeps;
|
|
13
|
+
}): void;
|
|
14
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC,GACA,IAAI,CAcN"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { registerShutdownRoute } from "../../execution/routes/shutdown.js";
|
|
2
|
+
import { registerControlRoutes } from "../../control/routes/control.js";
|
|
3
|
+
/**
|
|
4
|
+
* Register system-level routes: health check, shutdown, and control routes.
|
|
5
|
+
*/
|
|
6
|
+
export function registerSystemRoutes(app, opts) {
|
|
7
|
+
const { containerRegistry, killContainer, logger, controlDeps } = opts;
|
|
8
|
+
// Health check
|
|
9
|
+
app.get("/health", (c) => c.json({ status: "ok" }));
|
|
10
|
+
// Container shutdown route
|
|
11
|
+
const killFn = killContainer || (async () => { });
|
|
12
|
+
registerShutdownRoute(app, containerRegistry, killFn, logger);
|
|
13
|
+
// Control routes (for kill, pause, resume, trigger commands)
|
|
14
|
+
if (controlDeps) {
|
|
15
|
+
registerControlRoutes(app, controlDeps);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/gateway/routes/system.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAA0B,MAAM,iCAAiC,CAAC;AAIhG;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAS,EACT,IAKC;IAED,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAEvE,eAAe;IACf,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpD,2BAA2B;IAC3B,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;IACjD,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9D,6DAA6D;IAC7D,IAAI,WAAW,EAAE,CAAC;QAChB,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Hono } from "hono";
|
|
2
|
+
import type { WebhookRegistry } from "../../webhooks/registry.js";
|
|
3
|
+
import type { WebhookSourceConfig } from "../../shared/config.js";
|
|
4
|
+
import type { Logger } from "../../shared/logger.js";
|
|
5
|
+
import type { StatusTracker } from "../../tui/status-tracker.js";
|
|
6
|
+
import type { StatsStore } from "../../stats/store.js";
|
|
7
|
+
/**
|
|
8
|
+
* Register gateway webhook routes, delegating to the events-plane webhook handler.
|
|
9
|
+
* Named `registerGatewayWebhookRoutes` to avoid ambiguity with the plane-level
|
|
10
|
+
* `registerWebhookRoutes` from `events/routes/webhooks.ts` that it wraps.
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerGatewayWebhookRoutes(app: Hono, opts: {
|
|
13
|
+
webhookRegistry: WebhookRegistry;
|
|
14
|
+
webhookSecrets: Record<string, Record<string, string>>;
|
|
15
|
+
webhookConfigs: Record<string, WebhookSourceConfig>;
|
|
16
|
+
logger: Logger;
|
|
17
|
+
statusTracker?: StatusTracker;
|
|
18
|
+
statsStore?: StatsStore;
|
|
19
|
+
}): void;
|
|
20
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,IAAI,EACT,IAAI,EAAE;IACJ,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,GACA,IAAI,CAGN"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { registerWebhookRoutes } from "../../events/routes/webhooks.js";
|
|
2
|
+
/**
|
|
3
|
+
* Register gateway webhook routes, delegating to the events-plane webhook handler.
|
|
4
|
+
* Named `registerGatewayWebhookRoutes` to avoid ambiguity with the plane-level
|
|
5
|
+
* `registerWebhookRoutes` from `events/routes/webhooks.ts` that it wraps.
|
|
6
|
+
*/
|
|
7
|
+
export function registerGatewayWebhookRoutes(app, opts) {
|
|
8
|
+
const { webhookRegistry, webhookSecrets, webhookConfigs, logger, statusTracker, statsStore } = opts;
|
|
9
|
+
registerWebhookRoutes(app, webhookRegistry, webhookSecrets, webhookConfigs, logger, statusTracker, statsStore);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/gateway/routes/webhooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAOxE;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,GAAS,EACT,IAOC;IAED,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACpG,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AACjH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ContainerRegistry } from "../execution/container-registry.js";
|
|
2
|
+
import { LockStore } from "../execution/lock-store.js";
|
|
3
|
+
import { CallStore } from "../execution/call-store.js";
|
|
4
|
+
import { SessionStore } from "../control/session-store.js";
|
|
5
|
+
import type { StateStore } from "../shared/state-store.js";
|
|
6
|
+
export interface GatewayStores {
|
|
7
|
+
containerRegistry: ContainerRegistry;
|
|
8
|
+
lockStore: LockStore;
|
|
9
|
+
callStore: CallStore;
|
|
10
|
+
sessionStore: SessionStore | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create and hydrate all stores needed by the gateway.
|
|
14
|
+
* SessionStore is created once here and shared between auth middleware and
|
|
15
|
+
* the chat WebSocket handler, eliminating the previous duplication.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createGatewayStores(opts: {
|
|
18
|
+
lockTimeout?: number;
|
|
19
|
+
stateStore?: StateStore;
|
|
20
|
+
}): Promise<GatewayStores>;
|
|
21
|
+
//# sourceMappingURL=stores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/gateway/stores.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBzB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ContainerRegistry } from "../execution/container-registry.js";
|
|
2
|
+
import { LockStore } from "../execution/lock-store.js";
|
|
3
|
+
import { CallStore } from "../execution/call-store.js";
|
|
4
|
+
import { SessionStore } from "../control/session-store.js";
|
|
5
|
+
/**
|
|
6
|
+
* Create and hydrate all stores needed by the gateway.
|
|
7
|
+
* SessionStore is created once here and shared between auth middleware and
|
|
8
|
+
* the chat WebSocket handler, eliminating the previous duplication.
|
|
9
|
+
*/
|
|
10
|
+
export async function createGatewayStores(opts) {
|
|
11
|
+
const { lockTimeout, stateStore } = opts;
|
|
12
|
+
const containerRegistry = new ContainerRegistry(stateStore);
|
|
13
|
+
const lockStore = new LockStore(lockTimeout, undefined, stateStore, {
|
|
14
|
+
isHolderAlive: (holder) => containerRegistry.hasInstance(holder),
|
|
15
|
+
});
|
|
16
|
+
const callStore = new CallStore(undefined, stateStore);
|
|
17
|
+
const sessionStore = stateStore ? new SessionStore(stateStore) : undefined;
|
|
18
|
+
// Hydrate in-memory caches from the persistent store.
|
|
19
|
+
await containerRegistry.init();
|
|
20
|
+
await lockStore.init();
|
|
21
|
+
await callStore.init();
|
|
22
|
+
return { containerRegistry, lockStore, callStore, sessionStore };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=stores.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../src/gateway/stores.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAU3D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAGzC;IACC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAEzC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE;QAClE,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC;KACjE,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3E,sDAAsD;IACtD,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAEvB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Server } from "http";
|
|
2
|
+
import type { CallDispatcher } from "../execution/routes/calls.js";
|
|
3
|
+
import type { SignalContext } from "../execution/routes/signals.js";
|
|
4
|
+
import type { ContainerRegistry } from "../execution/container-registry.js";
|
|
5
|
+
import type { LockStore } from "../execution/lock-store.js";
|
|
6
|
+
import type { CallStore } from "../execution/call-store.js";
|
|
7
|
+
import type { ContainerRegistration } from "../execution/types.js";
|
|
8
|
+
import type { StateStore } from "../shared/state-store.js";
|
|
9
|
+
import type { WebhookRegistry } from "../webhooks/registry.js";
|
|
10
|
+
import type { Logger } from "../shared/logger.js";
|
|
11
|
+
import type { StatusTracker } from "../tui/status-tracker.js";
|
|
12
|
+
import type { WebhookSourceConfig } from "../shared/config.js";
|
|
13
|
+
import type { ControlRoutesDeps } from "../control/routes/control.js";
|
|
14
|
+
import type { ApiKeySource } from "../control/auth.js";
|
|
15
|
+
import type { SchedulerEventBus } from "../scheduler/events.js";
|
|
16
|
+
import type { StatsStore } from "../stats/store.js";
|
|
17
|
+
import type { ChatSessionManager } from "../chat/session-manager.js";
|
|
18
|
+
import type { ChatWebSocketState } from "../chat/ws-handler.js";
|
|
19
|
+
import type { LaunchChatCallback, StopChatCallback } from "../chat/routes.js";
|
|
20
|
+
export type { ContainerRegistration } from "../execution/types.js";
|
|
21
|
+
export type { SignalContext, CallDispatcher };
|
|
22
|
+
export interface GatewayOptions {
|
|
23
|
+
port: number;
|
|
24
|
+
hostname?: string;
|
|
25
|
+
logger: Logger;
|
|
26
|
+
killContainer?: (name: string) => Promise<void>;
|
|
27
|
+
webhookRegistry?: WebhookRegistry;
|
|
28
|
+
webhookSecrets?: Record<string, Record<string, string>>;
|
|
29
|
+
webhookConfigs?: Record<string, WebhookSourceConfig>;
|
|
30
|
+
statusTracker?: StatusTracker;
|
|
31
|
+
projectPath?: string;
|
|
32
|
+
webUI?: boolean;
|
|
33
|
+
lockTimeout?: number;
|
|
34
|
+
signalContext?: SignalContext;
|
|
35
|
+
controlDeps?: ControlRoutesDeps;
|
|
36
|
+
/** Static API key string or an async provider that re-reads the key from disk on every auth check, enabling hot-reload of rotated credentials. */
|
|
37
|
+
apiKey?: ApiKeySource;
|
|
38
|
+
stateStore?: StateStore;
|
|
39
|
+
skipStatusEndpoint?: boolean;
|
|
40
|
+
/** Optional path to the pre-built frontend dist directory (overrides resolveFrontendDist; useful for testing). */
|
|
41
|
+
frontendDistPath?: string;
|
|
42
|
+
/** Optional event bus for lifecycle instrumentation. */
|
|
43
|
+
events?: SchedulerEventBus;
|
|
44
|
+
/** Optional stats store for dashboard aggregate stats. */
|
|
45
|
+
statsStore?: StatsStore;
|
|
46
|
+
/** Max concurrent chat sessions (default: 5). */
|
|
47
|
+
maxChatSessions?: number;
|
|
48
|
+
/** Callback to launch a chat container for a session. */
|
|
49
|
+
launchChatContainer?: LaunchChatCallback;
|
|
50
|
+
/** Callback to stop a chat container for a session. */
|
|
51
|
+
stopChatContainer?: StopChatCallback;
|
|
52
|
+
}
|
|
53
|
+
export interface GatewayServer {
|
|
54
|
+
server: Server;
|
|
55
|
+
containerRegistry: ContainerRegistry;
|
|
56
|
+
registerContainer: (secret: string, reg: ContainerRegistration) => Promise<void>;
|
|
57
|
+
unregisterContainer: (secret: string) => Promise<void>;
|
|
58
|
+
lockStore: LockStore;
|
|
59
|
+
callStore: CallStore;
|
|
60
|
+
setCallDispatcher: (dispatcher: CallDispatcher) => void;
|
|
61
|
+
close: () => Promise<void>;
|
|
62
|
+
chatSessionManager?: ChatSessionManager;
|
|
63
|
+
chatWebSocketState?: ChatWebSocketState;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/gateway/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { GlobalConfig } from "../shared/config.js";
|
|
2
|
+
import type { Logger } from "../shared/logger.js";
|
|
3
|
+
export interface DependencyResult {
|
|
4
|
+
telemetry: any | undefined;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Load external dependencies: model-provider extensions and telemetry.
|
|
8
|
+
* Both are non-fatal — failures log warnings and continue.
|
|
9
|
+
*/
|
|
10
|
+
export declare function loadDependencies(globalConfig: GlobalConfig, logger: Logger): Promise<DependencyResult>;
|
|
11
|
+
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/scheduler/dependencies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CA0B3B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// packages/action-llama/src/scheduler/dependencies.ts
|
|
2
|
+
import { loadBuiltinExtensions } from "../extensions/loader.js";
|
|
3
|
+
import { initTelemetry } from "../telemetry/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Load external dependencies: model-provider extensions and telemetry.
|
|
6
|
+
* Both are non-fatal — failures log warnings and continue.
|
|
7
|
+
*/
|
|
8
|
+
export async function loadDependencies(globalConfig, logger) {
|
|
9
|
+
// Only load model extensions for providers actually referenced in config
|
|
10
|
+
const usedProviders = globalConfig.models
|
|
11
|
+
? new Set(Object.values(globalConfig.models).map(m => m.provider))
|
|
12
|
+
: undefined;
|
|
13
|
+
try {
|
|
14
|
+
await loadBuiltinExtensions(undefined, usedProviders);
|
|
15
|
+
logger.info("Extensions loaded successfully");
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
logger.warn({ error: error.message }, "Failed to load extensions");
|
|
19
|
+
}
|
|
20
|
+
// Initialize telemetry if enabled
|
|
21
|
+
let telemetry;
|
|
22
|
+
if (globalConfig.telemetry?.enabled) {
|
|
23
|
+
try {
|
|
24
|
+
telemetry = initTelemetry(globalConfig.telemetry);
|
|
25
|
+
await telemetry.init();
|
|
26
|
+
logger.info("Telemetry initialized successfully");
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
logger.warn({ error: error.message }, "Failed to initialize telemetry");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return { telemetry };
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/scheduler/dependencies.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAItD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMtD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAA0B,EAC1B,MAAc;IAEd,yEAAyE;IACzE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM;QACvC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,CAAC;QACH,MAAM,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,2BAA2B,CAAC,CAAC;IACrE,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAc,CAAC;IACnB,IAAI,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,gCAAgC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-setup.d.ts","sourceRoot":"","sources":["../../src/scheduler/gateway-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,gFAAgF;IAChF,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACjF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,OAAO,YAAY,GAAG,OAAO,oBAAoB,CAAC;IAC5D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"gateway-setup.d.ts","sourceRoot":"","sources":["../../src/scheduler/gateway-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,gFAAgF;IAChF,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACjF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,OAAO,YAAY,GAAG,OAAO,oBAAoB,CAAC;IAC5D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqM9B"}
|
|
@@ -108,8 +108,14 @@ export async function setupGateway(opts) {
|
|
|
108
108
|
return { instanceId };
|
|
109
109
|
}
|
|
110
110
|
const runner = pool.getAvailableRunner();
|
|
111
|
-
if (!runner)
|
|
112
|
-
|
|
111
|
+
if (!runner) {
|
|
112
|
+
const { dropped } = state.workQueue.enqueue(name, { type: 'manual', prompt });
|
|
113
|
+
if (dropped)
|
|
114
|
+
logger.warn({ agent: name }, "queue full, oldest event dropped");
|
|
115
|
+
const instanceId = `${name}-${randomBytes(4).toString("hex")}`;
|
|
116
|
+
logger.info({ agent: name, hasPrompt: !!prompt, instanceId, queued: true }, "manual trigger queued (all runners busy)");
|
|
117
|
+
return { instanceId };
|
|
118
|
+
}
|
|
113
119
|
const instanceId = `${name}-${randomBytes(4).toString("hex")}`;
|
|
114
120
|
logger.info({ agent: name, hasPrompt: !!prompt, instanceId }, "manual trigger via control API");
|
|
115
121
|
runWithReruns(runner, config, 0, state.schedulerCtx, prompt, instanceId).catch((err) => {
|