Files
claude-code-conduit/client/index.mjs
mikael-lovqvists-claude-agent 62d2480cd4 Add --url flag to ccc-client and ccc-queue
Overrides CONDUIT_URL env var. Resolved through load_client_config and
threaded into create_conduit_client as base_url parameter.

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

47 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
// Conduit client — thin CLI wrapper for Claude to call the conduit server.
// Usage:
// ccc-client '{"action": "list-actions"}'
// ccc-client '{"action":' '"edit-file",' '"filename": "/workspace/foo.mjs"}'
import { sign_request } from './auth.mjs';
import { load_client_config, get_remaining } from './config.mjs';
async function call_action(payload, username, secret, url) {
const body_string = JSON.stringify(payload);
const res = await fetch(`${url}/action`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', ...sign_request(secret, username, body_string) },
body: body_string,
});
const body = await res.json();
return { status: res.status, body };
}
async function main() {
const { username, secret, url } = load_client_config(process.argv);
const remaining = get_remaining(process.argv);
if (!remaining.length) {
console.error('Usage: ccc-client <json payload>');
process.exit(1);
}
let payload;
try {
payload = JSON.parse(remaining.join(' '));
} catch (err) {
console.error(`Invalid JSON payload: ${err.message}`);
process.exit(1);
}
const { status, body } = await call_action(payload, username, secret, url);
console.log(JSON.stringify(body, null, 2));
process.exit(status >= 400 ? 1 : 0);
}
main().catch((err) => {
console.error('Conduit error:', err.message);
process.exit(1);
});