@action-llama/action-llama 0.13.1 → 0.13.2
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 +4 -17
- package/agent-docs/AGENTS.md +6 -2
- package/agent-docs/skills/calls.md +3 -3
- package/agent-docs/skills/resource-locks.md +3 -3
- package/dist/agents/container-entry.d.ts.map +1 -1
- package/dist/agents/container-entry.js +15 -0
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/credentials/builtins/index.d.ts.map +1 -1
- package/dist/credentials/builtins/index.js +4 -0
- package/dist/credentials/builtins/index.js.map +1 -1
- package/dist/credentials/builtins/mintlify-token.d.ts +4 -0
- package/dist/credentials/builtins/mintlify-token.d.ts.map +1 -0
- package/dist/credentials/builtins/mintlify-token.js +14 -0
- package/dist/credentials/builtins/mintlify-token.js.map +1 -0
- package/dist/credentials/builtins/mintlify-webhook-secret.d.ts +4 -0
- package/dist/credentials/builtins/mintlify-webhook-secret.d.ts.map +1 -0
- package/dist/credentials/builtins/mintlify-webhook-secret.js +12 -0
- package/dist/credentials/builtins/mintlify-webhook-secret.js.map +1 -0
- package/dist/docker/local-runtime.d.ts +0 -3
- package/dist/docker/local-runtime.d.ts.map +1 -1
- package/dist/docker/local-runtime.js +1 -34
- package/dist/docker/local-runtime.js.map +1 -1
- package/dist/docker/runtime.d.ts +0 -4
- package/dist/docker/runtime.d.ts.map +1 -1
- package/dist/gateway/index.d.ts +3 -0
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +23 -3
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/routes/calls.d.ts +2 -1
- package/dist/gateway/routes/calls.d.ts.map +1 -1
- package/dist/gateway/routes/calls.js +12 -1
- package/dist/gateway/routes/calls.js.map +1 -1
- package/dist/gateway/routes/control.d.ts +2 -0
- package/dist/gateway/routes/control.d.ts.map +1 -1
- package/dist/gateway/routes/control.js +30 -2
- package/dist/gateway/routes/control.js.map +1 -1
- package/dist/gateway/routes/locks.d.ts +2 -0
- package/dist/gateway/routes/locks.d.ts.map +1 -1
- package/dist/gateway/routes/locks.js +20 -0
- package/dist/gateway/routes/locks.js.map +1 -1
- package/dist/gateway/routes/signals.d.ts +2 -1
- package/dist/gateway/routes/signals.d.ts.map +1 -1
- package/dist/gateway/routes/signals.js +21 -1
- package/dist/gateway/routes/signals.js.map +1 -1
- package/dist/scheduler/events.d.ts +78 -0
- package/dist/scheduler/events.d.ts.map +1 -0
- package/dist/scheduler/events.js +65 -0
- package/dist/scheduler/events.js.map +1 -0
- package/dist/scheduler/execution.d.ts +15 -0
- package/dist/scheduler/execution.d.ts.map +1 -1
- package/dist/scheduler/execution.js +31 -2
- package/dist/scheduler/execution.js.map +1 -1
- package/dist/scheduler/index.d.ts +5 -0
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +25 -16
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/webhook-setup.d.ts.map +1 -1
- package/dist/scheduler/webhook-setup.js +16 -0
- package/dist/scheduler/webhook-setup.js.map +1 -1
- package/dist/webhooks/providers/mintlify.d.ts +9 -0
- package/dist/webhooks/providers/mintlify.d.ts.map +1 -0
- package/dist/webhooks/providers/mintlify.js +69 -0
- package/dist/webhooks/providers/mintlify.js.map +1 -0
- package/dist/webhooks/types.d.ts +7 -1
- package/dist/webhooks/types.d.ts.map +1 -1
- package/docker/bin/_http-exit +18 -0
- package/docker/bin/al-call +1 -1
- package/docker/bin/al-check +1 -1
- package/docker/bin/al-status +1 -1
- package/docker/bin/al-wait +1 -1
- package/docker/bin/rlock +2 -2
- package/docker/bin/rlock-heartbeat +2 -2
- package/docker/bin/runlock +2 -2
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import type { Hono } from "hono";
|
|
|
2
2
|
import type { ContainerRegistry } from "../container-registry.js";
|
|
3
3
|
import type { CallStore } from "../call-store.js";
|
|
4
4
|
import type { Logger } from "../../shared/logger.js";
|
|
5
|
+
import type { SchedulerEventBus } from "../../scheduler/events.js";
|
|
5
6
|
export type CallDispatcher = (entry: {
|
|
6
7
|
callId: string;
|
|
7
8
|
callerAgent: string;
|
|
@@ -13,5 +14,5 @@ export type CallDispatcher = (entry: {
|
|
|
13
14
|
ok: boolean;
|
|
14
15
|
reason?: string;
|
|
15
16
|
};
|
|
16
|
-
export declare function registerCallRoutes(app: Hono, containerRegistry: ContainerRegistry, callStore: CallStore, getDispatcher: () => CallDispatcher | undefined, logger: Logger): void;
|
|
17
|
+
export declare function registerCallRoutes(app: Hono, containerRegistry: ContainerRegistry, callStore: CallStore, getDispatcher: () => CallDispatcher | undefined, logger: Logger, events?: SchedulerEventBus): void;
|
|
17
18
|
//# sourceMappingURL=calls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAK;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjM,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM,cAAc,GAAG,SAAS,EAC/C,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,iBAAiB,GACzB,IAAI,CAiFN"}
|
|
@@ -1,28 +1,34 @@
|
|
|
1
|
-
export function registerCallRoutes(app, containerRegistry, callStore, getDispatcher, logger) {
|
|
1
|
+
export function registerCallRoutes(app, containerRegistry, callStore, getDispatcher, logger, events) {
|
|
2
2
|
app.post("/calls", async (c) => {
|
|
3
3
|
let body;
|
|
4
4
|
try {
|
|
5
5
|
body = await c.req.json();
|
|
6
6
|
}
|
|
7
7
|
catch {
|
|
8
|
+
logger.warn({ route: "/calls" }, "invalid JSON body");
|
|
8
9
|
return c.json({ error: "invalid JSON body" }, 400);
|
|
9
10
|
}
|
|
10
11
|
const { secret, targetAgent, context } = body;
|
|
11
12
|
if (!secret || typeof secret !== "string") {
|
|
13
|
+
logger.warn({ route: "/calls" }, "missing secret");
|
|
12
14
|
return c.json({ error: "missing secret" }, 400);
|
|
13
15
|
}
|
|
14
16
|
if (!targetAgent || typeof targetAgent !== "string") {
|
|
17
|
+
logger.warn({ route: "/calls" }, "missing targetAgent");
|
|
15
18
|
return c.json({ error: "missing targetAgent" }, 400);
|
|
16
19
|
}
|
|
17
20
|
if (context === undefined || context === null || typeof context !== "string") {
|
|
21
|
+
logger.warn({ route: "/calls" }, "missing context");
|
|
18
22
|
return c.json({ error: "missing context" }, 400);
|
|
19
23
|
}
|
|
20
24
|
const reg = containerRegistry.get(secret);
|
|
21
25
|
if (!reg) {
|
|
26
|
+
logger.warn({ route: "/calls", targetAgent }, "invalid secret");
|
|
22
27
|
return c.json({ error: "invalid secret" }, 403);
|
|
23
28
|
}
|
|
24
29
|
const dispatcher = getDispatcher();
|
|
25
30
|
if (!dispatcher) {
|
|
31
|
+
logger.warn({ route: "/calls", agent: reg.agentName, targetAgent }, "call dispatcher not ready");
|
|
26
32
|
return c.json({ ok: false, reason: "call dispatcher not ready" }, 503);
|
|
27
33
|
}
|
|
28
34
|
// Look up existing calls from this caller to determine depth
|
|
@@ -38,23 +44,28 @@ export function registerCallRoutes(app, containerRegistry, callStore, getDispatc
|
|
|
38
44
|
// Clean up the entry since it won't be dispatched
|
|
39
45
|
callStore.fail(entry.callId, result.reason || "dispatch rejected");
|
|
40
46
|
logger.warn({ caller: reg.agentName, target: targetAgent, reason: result.reason }, "call rejected");
|
|
47
|
+
events?.emit("call", { callerAgent: reg.agentName, targetAgent, ok: false, reason: result.reason });
|
|
41
48
|
return c.json({ ok: false, reason: result.reason }, 409);
|
|
42
49
|
}
|
|
43
50
|
logger.info({ caller: reg.agentName, target: targetAgent, callId: entry.callId }, "call dispatched");
|
|
51
|
+
events?.emit("call", { callerAgent: reg.agentName, targetAgent, ok: true, callId: entry.callId });
|
|
44
52
|
return c.json({ ok: true, callId: entry.callId });
|
|
45
53
|
});
|
|
46
54
|
app.get("/calls/:callId", (c) => {
|
|
47
55
|
const secret = c.req.query("secret");
|
|
48
56
|
if (!secret) {
|
|
57
|
+
logger.warn({ route: "/calls/:callId" }, "missing secret");
|
|
49
58
|
return c.json({ error: "missing secret" }, 400);
|
|
50
59
|
}
|
|
51
60
|
const reg = containerRegistry.get(secret);
|
|
52
61
|
if (!reg) {
|
|
62
|
+
logger.warn({ route: "/calls/:callId" }, "invalid secret");
|
|
53
63
|
return c.json({ error: "invalid secret" }, 403);
|
|
54
64
|
}
|
|
55
65
|
const callId = c.req.param("callId");
|
|
56
66
|
const result = callStore.check(callId, reg.instanceId);
|
|
57
67
|
if (!result) {
|
|
68
|
+
logger.debug({ agent: reg.agentName, callId }, "call not found");
|
|
58
69
|
return c.json({ error: "call not found" }, 404);
|
|
59
70
|
}
|
|
60
71
|
return c.json(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/gateway/routes/calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Hono } from "hono";
|
|
2
2
|
import type { StatusTracker } from "../../tui/status-tracker.js";
|
|
3
|
+
import type { Logger } from "../../shared/logger.js";
|
|
3
4
|
export interface ControlRoutesDeps {
|
|
4
5
|
statusTracker?: StatusTracker;
|
|
5
6
|
killInstance: (instanceId: string) => Promise<boolean>;
|
|
@@ -12,6 +13,7 @@ export interface ControlRoutesDeps {
|
|
|
12
13
|
enableAgent?: (name: string) => Promise<boolean>;
|
|
13
14
|
disableAgent?: (name: string) => Promise<boolean>;
|
|
14
15
|
stopScheduler?: () => Promise<void>;
|
|
16
|
+
logger?: Logger;
|
|
15
17
|
}
|
|
16
18
|
export declare function registerControlRoutes(app: Hono, deps: ControlRoutesDeps): void;
|
|
17
19
|
//# sourceMappingURL=control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAChE,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,QAyNvE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function registerControlRoutes(app, deps) {
|
|
2
|
-
const { statusTracker, killInstance, pauseScheduler, resumeScheduler } = deps;
|
|
2
|
+
const { statusTracker, killInstance, pauseScheduler, resumeScheduler, logger } = deps;
|
|
3
3
|
// GET /control/instances - List running instances
|
|
4
4
|
app.get("/control/instances", async (c) => {
|
|
5
5
|
if (!statusTracker) {
|
|
@@ -11,39 +11,47 @@ export function registerControlRoutes(app, deps) {
|
|
|
11
11
|
// POST /control/kill/:instanceId - Kill a specific instance
|
|
12
12
|
app.post("/control/kill/:instanceId", async (c) => {
|
|
13
13
|
const instanceId = c.req.param("instanceId");
|
|
14
|
+
logger?.info({ instanceId }, "control: kill instance requested");
|
|
14
15
|
try {
|
|
15
16
|
const success = await killInstance(instanceId);
|
|
16
17
|
if (success) {
|
|
18
|
+
logger?.info({ instanceId }, "control: instance killed");
|
|
17
19
|
return c.json({ success: true, message: `Instance ${instanceId} killed` });
|
|
18
20
|
}
|
|
19
21
|
else {
|
|
22
|
+
logger?.warn({ instanceId }, "control: instance not found");
|
|
20
23
|
return c.json({ error: `Instance ${instanceId} not found` }, 404);
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
26
|
catch (error) {
|
|
24
27
|
const message = error instanceof Error ? error.message : String(error);
|
|
28
|
+
logger?.error({ instanceId, err: message }, "control: kill instance failed");
|
|
25
29
|
return c.json({ error: `Failed to kill instance: ${message}` }, 500);
|
|
26
30
|
}
|
|
27
31
|
});
|
|
28
32
|
// POST /control/pause - Pause the scheduler
|
|
29
33
|
app.post("/control/pause", async (c) => {
|
|
34
|
+
logger?.info("control: pause requested");
|
|
30
35
|
try {
|
|
31
36
|
await pauseScheduler();
|
|
32
37
|
return c.json({ success: true, message: "Scheduler paused" });
|
|
33
38
|
}
|
|
34
39
|
catch (error) {
|
|
35
40
|
const message = error instanceof Error ? error.message : String(error);
|
|
41
|
+
logger?.error({ err: message }, "control: pause failed");
|
|
36
42
|
return c.json({ error: `Failed to pause scheduler: ${message}` }, 500);
|
|
37
43
|
}
|
|
38
44
|
});
|
|
39
|
-
// POST /control/resume - Resume the scheduler
|
|
45
|
+
// POST /control/resume - Resume the scheduler
|
|
40
46
|
app.post("/control/resume", async (c) => {
|
|
47
|
+
logger?.info("control: resume requested");
|
|
41
48
|
try {
|
|
42
49
|
await resumeScheduler();
|
|
43
50
|
return c.json({ success: true, message: "Scheduler resumed" });
|
|
44
51
|
}
|
|
45
52
|
catch (error) {
|
|
46
53
|
const message = error instanceof Error ? error.message : String(error);
|
|
54
|
+
logger?.error({ err: message }, "control: resume failed");
|
|
47
55
|
return c.json({ error: `Failed to resume scheduler: ${message}` }, 500);
|
|
48
56
|
}
|
|
49
57
|
});
|
|
@@ -52,6 +60,7 @@ export function registerControlRoutes(app, deps) {
|
|
|
52
60
|
if (!deps.stopScheduler) {
|
|
53
61
|
return c.json({ error: "Stop not available" }, 503);
|
|
54
62
|
}
|
|
63
|
+
logger?.info("control: stop requested");
|
|
55
64
|
// Respond before shutting down so the client gets a response
|
|
56
65
|
setTimeout(() => { deps.stopScheduler().catch(() => { }); }, 100);
|
|
57
66
|
return c.json({ success: true, message: "Scheduler stopping" });
|
|
@@ -59,6 +68,7 @@ export function registerControlRoutes(app, deps) {
|
|
|
59
68
|
// POST /control/trigger/:name - Trigger an agent run
|
|
60
69
|
app.post("/control/trigger/:name", async (c) => {
|
|
61
70
|
const name = c.req.param("name");
|
|
71
|
+
logger?.info({ agent: name }, "control: trigger requested");
|
|
62
72
|
if (!deps.triggerAgent) {
|
|
63
73
|
return c.json({ error: "Trigger not available" }, 503);
|
|
64
74
|
}
|
|
@@ -68,17 +78,20 @@ export function registerControlRoutes(app, deps) {
|
|
|
68
78
|
return c.json({ success: true, message: `Agent ${name} triggered` });
|
|
69
79
|
}
|
|
70
80
|
else {
|
|
81
|
+
logger?.warn({ agent: name }, "control: agent not found or runners busy");
|
|
71
82
|
return c.json({ error: `Agent ${name} not found or all runners busy` }, 404);
|
|
72
83
|
}
|
|
73
84
|
}
|
|
74
85
|
catch (error) {
|
|
75
86
|
const message = error instanceof Error ? error.message : String(error);
|
|
87
|
+
logger?.error({ agent: name, err: message }, "control: trigger failed");
|
|
76
88
|
return c.json({ error: `Failed to trigger agent: ${message}` }, 500);
|
|
77
89
|
}
|
|
78
90
|
});
|
|
79
91
|
// POST /control/agents/:name/enable - Enable an agent
|
|
80
92
|
app.post("/control/agents/:name/enable", async (c) => {
|
|
81
93
|
const name = c.req.param("name");
|
|
94
|
+
logger?.info({ agent: name }, "control: enable requested");
|
|
82
95
|
if (!deps.enableAgent) {
|
|
83
96
|
return c.json({ error: "Enable not available" }, 503);
|
|
84
97
|
}
|
|
@@ -88,17 +101,20 @@ export function registerControlRoutes(app, deps) {
|
|
|
88
101
|
return c.json({ success: true, message: `Agent ${name} enabled` });
|
|
89
102
|
}
|
|
90
103
|
else {
|
|
104
|
+
logger?.warn({ agent: name }, "control: agent not found");
|
|
91
105
|
return c.json({ error: `Agent ${name} not found` }, 404);
|
|
92
106
|
}
|
|
93
107
|
}
|
|
94
108
|
catch (error) {
|
|
95
109
|
const message = error instanceof Error ? error.message : String(error);
|
|
110
|
+
logger?.error({ agent: name, err: message }, "control: enable failed");
|
|
96
111
|
return c.json({ error: `Failed to enable agent: ${message}` }, 500);
|
|
97
112
|
}
|
|
98
113
|
});
|
|
99
114
|
// POST /control/agents/:name/disable - Disable an agent
|
|
100
115
|
app.post("/control/agents/:name/disable", async (c) => {
|
|
101
116
|
const name = c.req.param("name");
|
|
117
|
+
logger?.info({ agent: name }, "control: disable requested");
|
|
102
118
|
if (!deps.disableAgent) {
|
|
103
119
|
return c.json({ error: "Disable not available" }, 503);
|
|
104
120
|
}
|
|
@@ -108,17 +124,20 @@ export function registerControlRoutes(app, deps) {
|
|
|
108
124
|
return c.json({ success: true, message: `Agent ${name} disabled` });
|
|
109
125
|
}
|
|
110
126
|
else {
|
|
127
|
+
logger?.warn({ agent: name }, "control: agent not found");
|
|
111
128
|
return c.json({ error: `Agent ${name} not found` }, 404);
|
|
112
129
|
}
|
|
113
130
|
}
|
|
114
131
|
catch (error) {
|
|
115
132
|
const message = error instanceof Error ? error.message : String(error);
|
|
133
|
+
logger?.error({ agent: name, err: message }, "control: disable failed");
|
|
116
134
|
return c.json({ error: `Failed to disable agent: ${message}` }, 500);
|
|
117
135
|
}
|
|
118
136
|
});
|
|
119
137
|
// POST /control/agents/:name/pause - Pause an agent (alias for disable)
|
|
120
138
|
app.post("/control/agents/:name/pause", async (c) => {
|
|
121
139
|
const name = c.req.param("name");
|
|
140
|
+
logger?.info({ agent: name }, "control: pause agent requested");
|
|
122
141
|
if (!deps.disableAgent) {
|
|
123
142
|
return c.json({ error: "Pause not available" }, 503);
|
|
124
143
|
}
|
|
@@ -128,17 +147,20 @@ export function registerControlRoutes(app, deps) {
|
|
|
128
147
|
return c.json({ success: true, message: `Agent ${name} paused` });
|
|
129
148
|
}
|
|
130
149
|
else {
|
|
150
|
+
logger?.warn({ agent: name }, "control: agent not found");
|
|
131
151
|
return c.json({ error: `Agent ${name} not found` }, 404);
|
|
132
152
|
}
|
|
133
153
|
}
|
|
134
154
|
catch (error) {
|
|
135
155
|
const message = error instanceof Error ? error.message : String(error);
|
|
156
|
+
logger?.error({ agent: name, err: message }, "control: pause agent failed");
|
|
136
157
|
return c.json({ error: `Failed to pause agent: ${message}` }, 500);
|
|
137
158
|
}
|
|
138
159
|
});
|
|
139
160
|
// POST /control/agents/:name/resume - Resume an agent (alias for enable)
|
|
140
161
|
app.post("/control/agents/:name/resume", async (c) => {
|
|
141
162
|
const name = c.req.param("name");
|
|
163
|
+
logger?.info({ agent: name }, "control: resume agent requested");
|
|
142
164
|
if (!deps.enableAgent) {
|
|
143
165
|
return c.json({ error: "Resume not available" }, 503);
|
|
144
166
|
}
|
|
@@ -148,26 +170,32 @@ export function registerControlRoutes(app, deps) {
|
|
|
148
170
|
return c.json({ success: true, message: `Agent ${name} resumed` });
|
|
149
171
|
}
|
|
150
172
|
else {
|
|
173
|
+
logger?.warn({ agent: name }, "control: agent not found");
|
|
151
174
|
return c.json({ error: `Agent ${name} not found` }, 404);
|
|
152
175
|
}
|
|
153
176
|
}
|
|
154
177
|
catch (error) {
|
|
155
178
|
const message = error instanceof Error ? error.message : String(error);
|
|
179
|
+
logger?.error({ agent: name, err: message }, "control: resume agent failed");
|
|
156
180
|
return c.json({ error: `Failed to resume agent: ${message}` }, 500);
|
|
157
181
|
}
|
|
158
182
|
});
|
|
159
183
|
// POST /control/agents/:name/kill - Kill all running instances of an agent
|
|
160
184
|
app.post("/control/agents/:name/kill", async (c) => {
|
|
161
185
|
const name = c.req.param("name");
|
|
186
|
+
logger?.info({ agent: name }, "control: kill agent requested");
|
|
162
187
|
try {
|
|
163
188
|
const result = await deps.killAgent(name);
|
|
164
189
|
if (result === null) {
|
|
190
|
+
logger?.warn({ agent: name }, "control: agent not found");
|
|
165
191
|
return c.json({ error: `Agent ${name} not found` }, 404);
|
|
166
192
|
}
|
|
193
|
+
logger?.info({ agent: name, killed: result.killed }, "control: agent instances killed");
|
|
167
194
|
return c.json({ success: true, message: `Killed ${result.killed} instance(s) of ${name}`, killed: result.killed });
|
|
168
195
|
}
|
|
169
196
|
catch (error) {
|
|
170
197
|
const message = error instanceof Error ? error.message : String(error);
|
|
198
|
+
logger?.error({ agent: name, err: message }, "control: kill agent failed");
|
|
171
199
|
return c.json({ error: `Failed to kill agent: ${message}` }, 500);
|
|
172
200
|
}
|
|
173
201
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/gateway/routes/control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../src/gateway/routes/control.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@ import type { Hono } from "hono";
|
|
|
2
2
|
import type { ContainerRegistry } from "../container-registry.js";
|
|
3
3
|
import type { LockStore } from "../lock-store.js";
|
|
4
4
|
import type { Logger } from "../../shared/logger.js";
|
|
5
|
+
import type { SchedulerEventBus } from "../../scheduler/events.js";
|
|
5
6
|
export declare function registerLockRoutes(app: Hono, containerRegistry: ContainerRegistry, lockStore: LockStore, logger: Logger, opts?: {
|
|
6
7
|
skipStatusEndpoint?: boolean;
|
|
8
|
+
events?: SchedulerEventBus;
|
|
7
9
|
}): void;
|
|
8
10
|
//# sourceMappingURL=locks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/locks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/locks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,EACT,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAClE,IAAI,CAgKN"}
|
|
@@ -1,34 +1,42 @@
|
|
|
1
1
|
export function registerLockRoutes(app, containerRegistry, lockStore, logger, opts) {
|
|
2
|
+
const events = opts?.events;
|
|
2
3
|
app.post("/locks/acquire", async (c) => {
|
|
3
4
|
let body;
|
|
4
5
|
try {
|
|
5
6
|
body = await c.req.json();
|
|
6
7
|
}
|
|
7
8
|
catch {
|
|
9
|
+
logger.warn({ route: "/locks/acquire" }, "invalid JSON body");
|
|
8
10
|
return c.json({ error: "invalid JSON body" }, 400);
|
|
9
11
|
}
|
|
10
12
|
const { secret, resourceKey, ttl } = body;
|
|
11
13
|
if (!secret || typeof secret !== "string") {
|
|
14
|
+
logger.warn({ route: "/locks/acquire" }, "missing secret");
|
|
12
15
|
return c.json({ error: "missing secret" }, 400);
|
|
13
16
|
}
|
|
14
17
|
if (!resourceKey || typeof resourceKey !== "string") {
|
|
18
|
+
logger.warn({ route: "/locks/acquire" }, "missing resourceKey");
|
|
15
19
|
return c.json({ error: "missing resourceKey" }, 400);
|
|
16
20
|
}
|
|
17
21
|
const reg = containerRegistry.get(secret);
|
|
18
22
|
if (!reg) {
|
|
23
|
+
logger.warn({ route: "/locks/acquire", resourceKey }, "invalid secret");
|
|
19
24
|
return c.json({ error: "invalid secret" }, 403);
|
|
20
25
|
}
|
|
21
26
|
const result = lockStore.acquire(resourceKey, reg.instanceId, ttl);
|
|
22
27
|
if (result.ok) {
|
|
23
28
|
logger.debug({ agent: reg.agentName, resourceKey }, "lock acquired");
|
|
29
|
+
events?.emit("lock", { agentName: reg.agentName, instanceId: reg.instanceId, resourceKey, action: "acquire", ok: true, status: 200 });
|
|
24
30
|
return c.json({ ok: true, resourceKey });
|
|
25
31
|
}
|
|
26
32
|
// Distinguish "already holding another lock" from "someone else holds this lock"
|
|
27
33
|
if (result.reason) {
|
|
28
34
|
logger.debug({ agent: reg.agentName, resourceKey }, "lock rejected: " + result.reason);
|
|
35
|
+
events?.emit("lock", { agentName: reg.agentName, instanceId: reg.instanceId, resourceKey, action: "acquire", ok: false, status: 409, reason: result.reason });
|
|
29
36
|
return c.json({ ok: false, reason: result.reason }, 409);
|
|
30
37
|
}
|
|
31
38
|
logger.debug({ agent: reg.agentName, resourceKey, holder: result.holder }, "lock conflict");
|
|
39
|
+
events?.emit("lock", { agentName: reg.agentName, instanceId: reg.instanceId, resourceKey, action: "acquire", ok: false, status: 409, reason: `held by ${result.holder}` });
|
|
32
40
|
return c.json({ ok: false, holder: result.holder, heldSince: result.heldSince }, 409);
|
|
33
41
|
});
|
|
34
42
|
app.post("/locks/release", async (c) => {
|
|
@@ -37,25 +45,31 @@ export function registerLockRoutes(app, containerRegistry, lockStore, logger, op
|
|
|
37
45
|
body = await c.req.json();
|
|
38
46
|
}
|
|
39
47
|
catch {
|
|
48
|
+
logger.warn({ route: "/locks/release" }, "invalid JSON body");
|
|
40
49
|
return c.json({ error: "invalid JSON body" }, 400);
|
|
41
50
|
}
|
|
42
51
|
const { secret, resourceKey } = body;
|
|
43
52
|
if (!secret || typeof secret !== "string") {
|
|
53
|
+
logger.warn({ route: "/locks/release" }, "missing secret");
|
|
44
54
|
return c.json({ error: "missing secret" }, 400);
|
|
45
55
|
}
|
|
46
56
|
if (!resourceKey || typeof resourceKey !== "string") {
|
|
57
|
+
logger.warn({ route: "/locks/release" }, "missing resourceKey");
|
|
47
58
|
return c.json({ error: "missing resourceKey" }, 400);
|
|
48
59
|
}
|
|
49
60
|
const reg = containerRegistry.get(secret);
|
|
50
61
|
if (!reg) {
|
|
62
|
+
logger.warn({ route: "/locks/release", resourceKey }, "invalid secret");
|
|
51
63
|
return c.json({ error: "invalid secret" }, 403);
|
|
52
64
|
}
|
|
53
65
|
const result = lockStore.release(resourceKey, reg.instanceId);
|
|
54
66
|
if (result.ok) {
|
|
55
67
|
logger.debug({ agent: reg.agentName, resourceKey }, "lock released");
|
|
68
|
+
events?.emit("lock", { agentName: reg.agentName, instanceId: reg.instanceId, resourceKey, action: "release", ok: true, status: 200 });
|
|
56
69
|
return c.json({ ok: true });
|
|
57
70
|
}
|
|
58
71
|
const status = result.reason === "lock not found" ? 404 : 409;
|
|
72
|
+
events?.emit("lock", { agentName: reg.agentName, instanceId: reg.instanceId, resourceKey, action: "release", ok: false, status, reason: result.reason });
|
|
59
73
|
return c.json({ ok: false, reason: result.reason }, status);
|
|
60
74
|
});
|
|
61
75
|
app.post("/locks/heartbeat", async (c) => {
|
|
@@ -64,25 +78,31 @@ export function registerLockRoutes(app, containerRegistry, lockStore, logger, op
|
|
|
64
78
|
body = await c.req.json();
|
|
65
79
|
}
|
|
66
80
|
catch {
|
|
81
|
+
logger.warn({ route: "/locks/heartbeat" }, "invalid JSON body");
|
|
67
82
|
return c.json({ error: "invalid JSON body" }, 400);
|
|
68
83
|
}
|
|
69
84
|
const { secret, resourceKey, ttl } = body;
|
|
70
85
|
if (!secret || typeof secret !== "string") {
|
|
86
|
+
logger.warn({ route: "/locks/heartbeat" }, "missing secret");
|
|
71
87
|
return c.json({ error: "missing secret" }, 400);
|
|
72
88
|
}
|
|
73
89
|
if (!resourceKey || typeof resourceKey !== "string") {
|
|
90
|
+
logger.warn({ route: "/locks/heartbeat" }, "missing resourceKey");
|
|
74
91
|
return c.json({ error: "missing resourceKey" }, 400);
|
|
75
92
|
}
|
|
76
93
|
const reg = containerRegistry.get(secret);
|
|
77
94
|
if (!reg) {
|
|
95
|
+
logger.warn({ route: "/locks/heartbeat", resourceKey }, "invalid secret");
|
|
78
96
|
return c.json({ error: "invalid secret" }, 403);
|
|
79
97
|
}
|
|
80
98
|
const result = lockStore.heartbeat(resourceKey, reg.instanceId, ttl);
|
|
81
99
|
if (result.ok) {
|
|
82
100
|
logger.debug({ agent: reg.agentName, resourceKey }, "lock heartbeat");
|
|
101
|
+
events?.emit("lock", { agentName: reg.agentName, instanceId: reg.instanceId, resourceKey, action: "heartbeat", ok: true, status: 200 });
|
|
83
102
|
return c.json({ ok: true, expiresAt: result.expiresAt });
|
|
84
103
|
}
|
|
85
104
|
const status = result.reason === "lock not found" ? 404 : 409;
|
|
105
|
+
events?.emit("lock", { agentName: reg.agentName, instanceId: reg.instanceId, resourceKey, action: "heartbeat", ok: false, status, reason: result.reason });
|
|
86
106
|
return c.json({ ok: false, reason: result.reason }, status);
|
|
87
107
|
});
|
|
88
108
|
app.get("/locks/list", (c) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../src/gateway/routes/locks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../src/gateway/routes/locks.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,11 @@ import type { Hono } from "hono";
|
|
|
2
2
|
import type { ContainerRegistry } from "../container-registry.js";
|
|
3
3
|
import type { Logger } from "../../shared/logger.js";
|
|
4
4
|
import type { StatusTracker } from "../../tui/status-tracker.js";
|
|
5
|
+
import type { SchedulerEventBus } from "../../scheduler/events.js";
|
|
5
6
|
export interface SignalContext {
|
|
6
7
|
schedulerRerun: (agentName: string) => void;
|
|
7
8
|
schedulerTrigger: (targetAgent: string, sourceAgent: string, context: string) => void;
|
|
8
9
|
schedulerReturn?: (agentName: string, value: string) => void;
|
|
9
10
|
}
|
|
10
|
-
export declare function registerSignalRoutes(app: Hono, containerRegistry: ContainerRegistry, logger: Logger, statusTracker?: StatusTracker, signalContext?: SignalContext): void;
|
|
11
|
+
export declare function registerSignalRoutes(app: Hono, containerRegistry: ContainerRegistry, logger: Logger, statusTracker?: StatusTracker, signalContext?: SignalContext, events?: SchedulerEventBus): void;
|
|
11
12
|
//# sourceMappingURL=signals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../src/gateway/routes/signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,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,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtF,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9D;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,EACT,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,aAAa,EAC7B,aAAa,CAAC,EAAE,aAAa,EAC7B,MAAM,CAAC,EAAE,iBAAiB,GACzB,IAAI,CA4IN"}
|