Files
claude-code-conduit/server/queue.js
mikael-lovqvists-claude-agent 5a557a642a Initial commit
Supervised action bridge between Claude Code and the host system.
Server accepts structured action requests, applies per-action policies
(auto-accept/auto-deny/queue), and executes approved actions via typed
handlers. Client provides CLI and module interfaces for calling the API.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 20:01:54 +00:00

42 lines
986 B
JavaScript

// Pending queue — holds actions awaiting user approval.
import { randomUUID } from "crypto";
const pending = new Map();
export function enqueue(action, params) {
const id = randomUUID();
const entry = {
id,
action,
params,
status: "pending",
createdAt: new Date().toISOString(),
};
pending.set(id, entry);
console.log(`\n[QUEUE] New request #${id.slice(0, 8)}`);
console.log(` Action: ${action}`);
console.log(` Params: ${JSON.stringify(params)}`);
console.log(` Approve: POST /queue/${id}/approve`);
console.log(` Deny: POST /queue/${id}/deny\n`);
return id;
}
export function getEntry(id) {
return pending.get(id) ?? null;
}
export function listPending() {
return [...pending.values()].filter((e) => e.status === "pending");
}
export function resolve(id, decision) {
const entry = pending.get(id);
if (!entry) {
return null;
}
entry.status = decision; // "approved" | "denied"
entry.resolvedAt = new Date().toISOString();
return entry;
}