Solid-collaboration foundation: agents invoke STRUCTURED tools instead of shelling out to the CLI — so a tool can't be narrated away, hallucinated as "doesn't exist", or mistyped. Confirmed working for Claude / Codex / Kimi (all speak MCP). - src/mcp/server.ts: `agenthub mcp` starts a stdio MCP server exposing 16 tools (work, task_list/show/create/assign/claim/review/reopen/done, memory_add/search, handoff_read/create, decision_create, hello, status). Thin layer over the SAME core: proxies through the REST API (remoteClient) when a hub is configured — so board, SSE, status auto-refresh and CLI keep working unchanged — else local services. agenthub_work blocks on SSE until a task addressed to the agent is claimable, then returns it + its handoff. - `agenthub mcp` command; excluded from the update-notify (stdio purity). - Verified: initialize + tools/list (16) + tools/call (status, task_list) proxy to the live hub. Does NOT change the dormant-agent reality (agents still loop agenthub_work); it makes every interaction reliable. Bump 0.6.1 -> 0.7.0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
906 B
TypeScript
25 lines
906 B
TypeScript
import { createProgram } from './cli/index.js';
|
|
import { maybeNotifyUpdate } from './cli/commands/update.js';
|
|
|
|
const argv = process.argv.slice(2);
|
|
if (!argv.includes('update') && !argv.includes('server') && !argv.includes('mcp')) {
|
|
maybeNotifyUpdate();
|
|
}
|
|
|
|
const program = createProgram(process.cwd());
|
|
|
|
program.parseAsync().catch((err: unknown) => {
|
|
const message = err instanceof Error ? err.message : String(err);
|
|
if (message.startsWith('AgentHub not initialized')) {
|
|
console.error(
|
|
'No AgentHub project here. Run `agenthub init`, or connect to a running server ' +
|
|
'with `agenthub init --server auto` (or set AGENTHUB_SERVER=http://<host>:3377).',
|
|
);
|
|
} else if (message.startsWith('File not found')) {
|
|
console.error('Not found. Check the ID — or you may be pointed at the wrong server.');
|
|
} else {
|
|
console.error(`Error: ${message}`);
|
|
}
|
|
process.exit(1);
|
|
});
|