团子 25c0451489 feat: cfg skill with topic-based docs (general/contract/onboarding/admin)
cfg skill              — general usage (default), lists other topics
cfg skill contract     — API endpoints, KV layout, auth flow
cfg skill onboarding   — step-by-step new agent setup
cfg skill admin        — admin operations & user management
2026-05-09 03:55:06 +00:00

115 lines
2.2 KiB
TypeScript

import {
cmdSync,
cmdEnv,
cmdGet,
cmdSet,
cmdUnset,
cmdFlags,
cmdList,
cmdToken,
cmdAdminAddUser,
cmdAdminRemoveUser,
cmdAdminListAgents,
cmdAdminRefreshToken,
cmdAdminInspect,
cmdProfiles,
cmdProfile,
cmdProfileSet,
cmdProfileUnset,
showSkill,
showHelp,
} from "./commands.js";
const [cmd, ...args] = process.argv.slice(2);
switch (cmd) {
case "sync":
await cmdSync();
break;
case "env":
await cmdEnv();
break;
case "get": {
const remote = args.includes("--remote");
const filtered = args.filter((a) => a !== "--remote");
if (!filtered[0]) {
console.error("Usage: cfg get [--remote] <KEY>");
process.exit(1);
}
await cmdGet(filtered[0], remote);
break;
}
case "set":
await cmdSet(args);
break;
case "unset":
await cmdUnset(args);
break;
case "flags":
await cmdFlags(args);
break;
case "list":
await cmdList();
break;
case "token":
if (!args[0]) {
console.error("Usage: cfg token <TOKEN>");
process.exit(1);
}
cmdToken(args[0]);
break;
case "profiles":
await cmdProfiles();
break;
case "profile": {
const [sub, ...subArgs] = args;
if (sub === "set") {
await cmdProfileSet(subArgs);
} else if (sub === "unset") {
await cmdProfileUnset(subArgs);
} else {
// sub is either an agent_id or undefined (show own)
await cmdProfile(sub);
}
break;
}
case "admin": {
const [sub, ...subArgs] = args;
switch (sub) {
case "agents":
await cmdAdminListAgents();
break;
case "add":
await cmdAdminAddUser(subArgs);
break;
case "remove":
await cmdAdminRemoveUser(subArgs);
break;
case "refresh":
await cmdAdminRefreshToken(subArgs);
break;
case "inspect":
await cmdAdminInspect(subArgs);
break;
default:
console.error(`Unknown admin command: ${sub}`);
showHelp();
process.exit(1);
}
break;
}
case "help":
case "--help":
case "-h":
case undefined:
showHelp();
break;
case "skill":
showSkill(args[0]);
break;
default:
console.error(`Unknown command: ${cmd}`);
showHelp();
process.exit(1);
}