claudemesh-cli 1.0.3 → 1.1.0
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/dist/entrypoints/cli.js
CHANGED
|
@@ -88,7 +88,7 @@ __export(exports_urls, {
|
|
|
88
88
|
VERSION: () => VERSION,
|
|
89
89
|
URLS: () => URLS
|
|
90
90
|
});
|
|
91
|
-
var URLS, VERSION = "1.0
|
|
91
|
+
var URLS, VERSION = "1.1.0", env;
|
|
92
92
|
var init_urls = __esm(() => {
|
|
93
93
|
URLS = {
|
|
94
94
|
BROKER: process.env.CLAUDEMESH_BROKER_URL ?? "wss://ic.claudemesh.com/ws",
|
|
@@ -6715,6 +6715,263 @@ var init_recall = __esm(() => {
|
|
|
6715
6715
|
init_exit_codes();
|
|
6716
6716
|
});
|
|
6717
6717
|
|
|
6718
|
+
// src/commands/broker-actions.ts
|
|
6719
|
+
var exports_broker_actions = {};
|
|
6720
|
+
__export(exports_broker_actions, {
|
|
6721
|
+
runVisible: () => runVisible,
|
|
6722
|
+
runTaskComplete: () => runTaskComplete,
|
|
6723
|
+
runTaskClaim: () => runTaskClaim,
|
|
6724
|
+
runSummary: () => runSummary,
|
|
6725
|
+
runStatusSet: () => runStatusSet,
|
|
6726
|
+
runStats: () => runStats,
|
|
6727
|
+
runPing: () => runPing,
|
|
6728
|
+
runMsgStatus: () => runMsgStatus,
|
|
6729
|
+
runGroupLeave: () => runGroupLeave,
|
|
6730
|
+
runGroupJoin: () => runGroupJoin,
|
|
6731
|
+
runForget: () => runForget,
|
|
6732
|
+
runClock: () => runClock
|
|
6733
|
+
});
|
|
6734
|
+
async function runStatusSet(state, opts) {
|
|
6735
|
+
const valid = ["idle", "working", "dnd"];
|
|
6736
|
+
if (!valid.includes(state)) {
|
|
6737
|
+
render.err(`Invalid status: ${state}`, `must be one of: ${valid.join(", ")}`);
|
|
6738
|
+
return EXIT.INVALID_ARGS;
|
|
6739
|
+
}
|
|
6740
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6741
|
+
await client.setStatus(state);
|
|
6742
|
+
});
|
|
6743
|
+
if (opts.json) {
|
|
6744
|
+
console.log(JSON.stringify({ status: state }));
|
|
6745
|
+
return EXIT.SUCCESS;
|
|
6746
|
+
}
|
|
6747
|
+
render.ok(`status set to ${bold(state)}`);
|
|
6748
|
+
return EXIT.SUCCESS;
|
|
6749
|
+
}
|
|
6750
|
+
async function runSummary(text, opts) {
|
|
6751
|
+
if (!text) {
|
|
6752
|
+
render.err("Usage: claudemesh summary <text>");
|
|
6753
|
+
return EXIT.INVALID_ARGS;
|
|
6754
|
+
}
|
|
6755
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6756
|
+
await client.setSummary(text);
|
|
6757
|
+
});
|
|
6758
|
+
if (opts.json) {
|
|
6759
|
+
console.log(JSON.stringify({ summary: text }));
|
|
6760
|
+
return EXIT.SUCCESS;
|
|
6761
|
+
}
|
|
6762
|
+
render.ok("summary set", dim(text));
|
|
6763
|
+
return EXIT.SUCCESS;
|
|
6764
|
+
}
|
|
6765
|
+
async function runVisible(value, opts) {
|
|
6766
|
+
let visible;
|
|
6767
|
+
if (value === "true" || value === "1" || value === "yes")
|
|
6768
|
+
visible = true;
|
|
6769
|
+
else if (value === "false" || value === "0" || value === "no")
|
|
6770
|
+
visible = false;
|
|
6771
|
+
else {
|
|
6772
|
+
render.err("Usage: claudemesh visible <true|false>");
|
|
6773
|
+
return EXIT.INVALID_ARGS;
|
|
6774
|
+
}
|
|
6775
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6776
|
+
await client.setVisible(visible);
|
|
6777
|
+
});
|
|
6778
|
+
if (opts.json) {
|
|
6779
|
+
console.log(JSON.stringify({ visible }));
|
|
6780
|
+
return EXIT.SUCCESS;
|
|
6781
|
+
}
|
|
6782
|
+
render.ok(visible ? "you are now visible to peers" : "you are now hidden", visible ? undefined : "direct messages still reach you");
|
|
6783
|
+
return EXIT.SUCCESS;
|
|
6784
|
+
}
|
|
6785
|
+
async function runGroupJoin(name, opts) {
|
|
6786
|
+
if (!name) {
|
|
6787
|
+
render.err("Usage: claudemesh group join @<name> [--role X]");
|
|
6788
|
+
return EXIT.INVALID_ARGS;
|
|
6789
|
+
}
|
|
6790
|
+
const cleanName = name.startsWith("@") ? name.slice(1) : name;
|
|
6791
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6792
|
+
await client.joinGroup(cleanName, opts.role);
|
|
6793
|
+
});
|
|
6794
|
+
if (opts.json) {
|
|
6795
|
+
console.log(JSON.stringify({ group: cleanName, role: opts.role ?? null }));
|
|
6796
|
+
return EXIT.SUCCESS;
|
|
6797
|
+
}
|
|
6798
|
+
render.ok(`joined ${clay("@" + cleanName)}`, opts.role ? `as ${opts.role}` : undefined);
|
|
6799
|
+
return EXIT.SUCCESS;
|
|
6800
|
+
}
|
|
6801
|
+
async function runGroupLeave(name, opts) {
|
|
6802
|
+
if (!name) {
|
|
6803
|
+
render.err("Usage: claudemesh group leave @<name>");
|
|
6804
|
+
return EXIT.INVALID_ARGS;
|
|
6805
|
+
}
|
|
6806
|
+
const cleanName = name.startsWith("@") ? name.slice(1) : name;
|
|
6807
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6808
|
+
await client.leaveGroup(cleanName);
|
|
6809
|
+
});
|
|
6810
|
+
if (opts.json) {
|
|
6811
|
+
console.log(JSON.stringify({ group: cleanName, left: true }));
|
|
6812
|
+
return EXIT.SUCCESS;
|
|
6813
|
+
}
|
|
6814
|
+
render.ok(`left ${clay("@" + cleanName)}`);
|
|
6815
|
+
return EXIT.SUCCESS;
|
|
6816
|
+
}
|
|
6817
|
+
async function runForget(id, opts) {
|
|
6818
|
+
if (!id) {
|
|
6819
|
+
render.err("Usage: claudemesh forget <memory-id>");
|
|
6820
|
+
return EXIT.INVALID_ARGS;
|
|
6821
|
+
}
|
|
6822
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6823
|
+
await client.forget(id);
|
|
6824
|
+
});
|
|
6825
|
+
if (opts.json) {
|
|
6826
|
+
console.log(JSON.stringify({ id, forgotten: true }));
|
|
6827
|
+
return EXIT.SUCCESS;
|
|
6828
|
+
}
|
|
6829
|
+
render.ok(`forgot ${dim(id.slice(0, 8))}`);
|
|
6830
|
+
return EXIT.SUCCESS;
|
|
6831
|
+
}
|
|
6832
|
+
async function runMsgStatus(id, opts) {
|
|
6833
|
+
if (!id) {
|
|
6834
|
+
render.err("Usage: claudemesh msg-status <message-id>");
|
|
6835
|
+
return EXIT.INVALID_ARGS;
|
|
6836
|
+
}
|
|
6837
|
+
return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6838
|
+
const result = await client.messageStatus(id);
|
|
6839
|
+
if (!result) {
|
|
6840
|
+
if (opts.json)
|
|
6841
|
+
console.log(JSON.stringify({ id, found: false }));
|
|
6842
|
+
else
|
|
6843
|
+
render.err(`Message ${id} not found or timed out.`);
|
|
6844
|
+
return EXIT.NOT_FOUND;
|
|
6845
|
+
}
|
|
6846
|
+
if (opts.json) {
|
|
6847
|
+
console.log(JSON.stringify(result, null, 2));
|
|
6848
|
+
return EXIT.SUCCESS;
|
|
6849
|
+
}
|
|
6850
|
+
render.section(`message ${id.slice(0, 12)}…`);
|
|
6851
|
+
render.kv([
|
|
6852
|
+
["target", result.targetSpec],
|
|
6853
|
+
["delivered", result.delivered ? "yes" : "no"],
|
|
6854
|
+
["delivered_at", result.deliveredAt ?? dim("—")]
|
|
6855
|
+
]);
|
|
6856
|
+
if (result.recipients.length > 0) {
|
|
6857
|
+
render.blank();
|
|
6858
|
+
render.heading("recipients");
|
|
6859
|
+
for (const r of result.recipients) {
|
|
6860
|
+
process.stdout.write(` ${bold(r.name)} ${dim(r.pubkey.slice(0, 12) + "…")} ${dim("·")} ${r.status}
|
|
6861
|
+
`);
|
|
6862
|
+
}
|
|
6863
|
+
}
|
|
6864
|
+
return EXIT.SUCCESS;
|
|
6865
|
+
});
|
|
6866
|
+
}
|
|
6867
|
+
async function runClock(opts) {
|
|
6868
|
+
return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6869
|
+
const result = await client.getClock();
|
|
6870
|
+
if (!result) {
|
|
6871
|
+
if (opts.json)
|
|
6872
|
+
console.log(JSON.stringify({ error: "timed out" }));
|
|
6873
|
+
else
|
|
6874
|
+
render.err("Clock query timed out");
|
|
6875
|
+
return EXIT.INTERNAL_ERROR;
|
|
6876
|
+
}
|
|
6877
|
+
if (opts.json) {
|
|
6878
|
+
console.log(JSON.stringify(result, null, 2));
|
|
6879
|
+
return EXIT.SUCCESS;
|
|
6880
|
+
}
|
|
6881
|
+
const statusLabel = result.speed === 0 ? "not started" : result.paused ? "paused" : "running";
|
|
6882
|
+
render.section(`mesh clock — ${statusLabel}`);
|
|
6883
|
+
render.kv([
|
|
6884
|
+
["speed", `x${result.speed}`],
|
|
6885
|
+
["tick", String(result.tick)],
|
|
6886
|
+
["sim_time", result.simTime],
|
|
6887
|
+
["started_at", result.startedAt]
|
|
6888
|
+
]);
|
|
6889
|
+
return EXIT.SUCCESS;
|
|
6890
|
+
});
|
|
6891
|
+
}
|
|
6892
|
+
async function runStats(opts) {
|
|
6893
|
+
return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6894
|
+
const peers = await client.listPeers();
|
|
6895
|
+
if (opts.json) {
|
|
6896
|
+
console.log(JSON.stringify({
|
|
6897
|
+
mesh: client.meshSlug,
|
|
6898
|
+
peers: peers.map((p) => ({ name: p.displayName, pubkey: p.pubkey, stats: p.stats ?? null }))
|
|
6899
|
+
}, null, 2));
|
|
6900
|
+
return EXIT.SUCCESS;
|
|
6901
|
+
}
|
|
6902
|
+
render.section(client.meshSlug);
|
|
6903
|
+
for (const p of peers) {
|
|
6904
|
+
const s = p.stats;
|
|
6905
|
+
if (!s) {
|
|
6906
|
+
process.stdout.write(` ${bold(p.displayName)} ${dim("(no stats)")}
|
|
6907
|
+
`);
|
|
6908
|
+
continue;
|
|
6909
|
+
}
|
|
6910
|
+
const up = s.uptime != null ? `${Math.floor(s.uptime / 60)}m` : "—";
|
|
6911
|
+
process.stdout.write(` ${bold(p.displayName)} ${dim(`in:${s.messagesIn ?? 0} out:${s.messagesOut ?? 0} tools:${s.toolCalls ?? 0} up:${up} err:${s.errors ?? 0}`)}
|
|
6912
|
+
`);
|
|
6913
|
+
}
|
|
6914
|
+
return EXIT.SUCCESS;
|
|
6915
|
+
});
|
|
6916
|
+
}
|
|
6917
|
+
async function runPing(opts) {
|
|
6918
|
+
return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6919
|
+
const peers = await client.listPeers();
|
|
6920
|
+
if (opts.json) {
|
|
6921
|
+
console.log(JSON.stringify({
|
|
6922
|
+
mesh: client.meshSlug,
|
|
6923
|
+
ws_status: client.status,
|
|
6924
|
+
peers_online: peers.length,
|
|
6925
|
+
push_buffer: client.pushHistory.length
|
|
6926
|
+
}, null, 2));
|
|
6927
|
+
return EXIT.SUCCESS;
|
|
6928
|
+
}
|
|
6929
|
+
render.section(`ping ${client.meshSlug}`);
|
|
6930
|
+
render.kv([
|
|
6931
|
+
["ws_status", client.status],
|
|
6932
|
+
["peers_online", String(peers.length)],
|
|
6933
|
+
["push_buffer", String(client.pushHistory.length)]
|
|
6934
|
+
]);
|
|
6935
|
+
return EXIT.SUCCESS;
|
|
6936
|
+
});
|
|
6937
|
+
}
|
|
6938
|
+
async function runTaskClaim(id, opts) {
|
|
6939
|
+
if (!id) {
|
|
6940
|
+
render.err("Usage: claudemesh task claim <id>");
|
|
6941
|
+
return EXIT.INVALID_ARGS;
|
|
6942
|
+
}
|
|
6943
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6944
|
+
await client.claimTask(id);
|
|
6945
|
+
});
|
|
6946
|
+
if (opts.json) {
|
|
6947
|
+
console.log(JSON.stringify({ id, claimed: true }));
|
|
6948
|
+
return EXIT.SUCCESS;
|
|
6949
|
+
}
|
|
6950
|
+
render.ok(`claimed ${dim(id.slice(0, 8))}`);
|
|
6951
|
+
return EXIT.SUCCESS;
|
|
6952
|
+
}
|
|
6953
|
+
async function runTaskComplete(id, result, opts) {
|
|
6954
|
+
if (!id) {
|
|
6955
|
+
render.err("Usage: claudemesh task complete <id> [result]");
|
|
6956
|
+
return EXIT.INVALID_ARGS;
|
|
6957
|
+
}
|
|
6958
|
+
await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6959
|
+
await client.completeTask(id, result);
|
|
6960
|
+
});
|
|
6961
|
+
if (opts.json) {
|
|
6962
|
+
console.log(JSON.stringify({ id, completed: true, result: result ?? null }));
|
|
6963
|
+
return EXIT.SUCCESS;
|
|
6964
|
+
}
|
|
6965
|
+
render.ok(`completed ${dim(id.slice(0, 8))}`, result);
|
|
6966
|
+
return EXIT.SUCCESS;
|
|
6967
|
+
}
|
|
6968
|
+
var init_broker_actions = __esm(() => {
|
|
6969
|
+
init_connect();
|
|
6970
|
+
init_render();
|
|
6971
|
+
init_styles();
|
|
6972
|
+
init_exit_codes();
|
|
6973
|
+
});
|
|
6974
|
+
|
|
6718
6975
|
// src/commands/remind.ts
|
|
6719
6976
|
var exports_remind = {};
|
|
6720
6977
|
__export(exports_remind, {
|
|
@@ -10163,6 +10420,16 @@ function formatPush(p, meshSlug) {
|
|
|
10163
10420
|
return `[${meshSlug}]${tag} from ${p.senderPubkey.slice(0, 12)}… (${p.priority}, ${p.createdAt}):
|
|
10164
10421
|
${body}`;
|
|
10165
10422
|
}
|
|
10423
|
+
function maybeWarnDeprecated(toolName) {
|
|
10424
|
+
const hint = DEPRECATED_TOOL_HINTS[toolName];
|
|
10425
|
+
if (!hint)
|
|
10426
|
+
return;
|
|
10427
|
+
if (warnedTools.has(toolName))
|
|
10428
|
+
return;
|
|
10429
|
+
warnedTools.add(toolName);
|
|
10430
|
+
process.stderr.write(`[claudemesh] mcp tool "${toolName}" is soft-deprecated in 1.1.0 ` + `and will be removed in 2.0.0. Use \`${hint}\` instead.
|
|
10431
|
+
`);
|
|
10432
|
+
}
|
|
10166
10433
|
async function startMcpServer() {
|
|
10167
10434
|
const serviceIdx = process.argv.indexOf("--service");
|
|
10168
10435
|
if (serviceIdx !== -1 && process.argv[serviceIdx + 1]) {
|
|
@@ -10458,6 +10725,7 @@ ${manifest.allowed_tools.map((t) => ` - ${t}`).join(`
|
|
|
10458
10725
|
if (config.meshes.length === 0) {
|
|
10459
10726
|
return text("No meshes joined. Run `claudemesh join https://claudemesh.com/join/<token>` first.", true);
|
|
10460
10727
|
}
|
|
10728
|
+
maybeWarnDeprecated(name);
|
|
10461
10729
|
switch (name) {
|
|
10462
10730
|
case "send_message": {
|
|
10463
10731
|
const { to, message, priority } = args ?? {};
|
|
@@ -12221,12 +12489,40 @@ async function startServiceProxy(serviceName) {
|
|
|
12221
12489
|
process.on("SIGTERM", shutdown);
|
|
12222
12490
|
process.on("SIGINT", shutdown);
|
|
12223
12491
|
}
|
|
12224
|
-
var peerNameCache, peerNameCacheAge = 0, CACHE_TTL_MS = 30000;
|
|
12492
|
+
var peerNameCache, peerNameCacheAge = 0, CACHE_TTL_MS = 30000, DEPRECATED_TOOL_HINTS, warnedTools;
|
|
12225
12493
|
var init_server = __esm(() => {
|
|
12226
12494
|
init_definitions();
|
|
12227
12495
|
init_facade();
|
|
12228
12496
|
init_facade8();
|
|
12229
12497
|
peerNameCache = new Map;
|
|
12498
|
+
DEPRECATED_TOOL_HINTS = {
|
|
12499
|
+
send_message: "claudemesh send <to> <msg> [--mesh X] [--priority Y]",
|
|
12500
|
+
list_peers: "claudemesh peers --json",
|
|
12501
|
+
check_messages: "claudemesh inbox --json",
|
|
12502
|
+
message_status: "claudemesh msg-status <id>",
|
|
12503
|
+
set_profile: "claudemesh profile --avatar X --bio Y",
|
|
12504
|
+
set_status: "claudemesh status set <state>",
|
|
12505
|
+
set_summary: "claudemesh summary <text>",
|
|
12506
|
+
set_visible: "claudemesh visible <true|false>",
|
|
12507
|
+
join_group: "claudemesh group join @<name> [--role X]",
|
|
12508
|
+
leave_group: "claudemesh group leave @<name>",
|
|
12509
|
+
get_state: "claudemesh state get <key> --json",
|
|
12510
|
+
set_state: "claudemesh state set <key> <value>",
|
|
12511
|
+
list_state: "claudemesh state list --json",
|
|
12512
|
+
remember: "claudemesh remember <text>",
|
|
12513
|
+
recall: "claudemesh recall <query> --json",
|
|
12514
|
+
forget: "claudemesh forget <id>",
|
|
12515
|
+
schedule_reminder: "claudemesh remind <msg> --in/--at/--cron",
|
|
12516
|
+
list_scheduled: "claudemesh remind list --json",
|
|
12517
|
+
cancel_scheduled: "claudemesh remind cancel <id>",
|
|
12518
|
+
mesh_info: "claudemesh info --json",
|
|
12519
|
+
mesh_stats: "claudemesh stats --json",
|
|
12520
|
+
mesh_clock: "claudemesh clock --json",
|
|
12521
|
+
ping_mesh: "claudemesh ping",
|
|
12522
|
+
claim_task: "claudemesh task claim <id>",
|
|
12523
|
+
complete_task: "claudemesh task complete <id>"
|
|
12524
|
+
};
|
|
12525
|
+
warnedTools = new Set;
|
|
12230
12526
|
});
|
|
12231
12527
|
|
|
12232
12528
|
// src/commands/mcp.ts
|
|
@@ -12521,12 +12817,28 @@ Messaging
|
|
|
12521
12817
|
claudemesh peers see who's online
|
|
12522
12818
|
claudemesh send <to> <msg> send a message
|
|
12523
12819
|
claudemesh inbox drain pending messages
|
|
12820
|
+
claudemesh msg-status <id> check delivery status
|
|
12524
12821
|
claudemesh state get|set|list shared state
|
|
12525
12822
|
claudemesh remember <text> store a memory
|
|
12526
12823
|
claudemesh recall <query> search memories
|
|
12824
|
+
claudemesh forget <id> remove a memory
|
|
12527
12825
|
claudemesh remind ... schedule a reminder
|
|
12528
12826
|
claudemesh profile view or edit your profile
|
|
12529
12827
|
claudemesh info mesh overview
|
|
12828
|
+
claudemesh stats per-peer activity counters
|
|
12829
|
+
claudemesh clock mesh logical clock state
|
|
12830
|
+
claudemesh ping diagnostic round-trip
|
|
12831
|
+
|
|
12832
|
+
Identity / presence
|
|
12833
|
+
claudemesh status set <state> set peer status (idle | working | dnd)
|
|
12834
|
+
claudemesh summary <text> broadcast 1-2 sentence work summary
|
|
12835
|
+
claudemesh visible <true|false> toggle peer visibility
|
|
12836
|
+
claudemesh group join @<name> join a group (--role X optional)
|
|
12837
|
+
claudemesh group leave @<name> leave a group
|
|
12838
|
+
|
|
12839
|
+
Tasks
|
|
12840
|
+
claudemesh task claim <id> claim an unclaimed task
|
|
12841
|
+
claudemesh task complete <id> mark task done [result]
|
|
12530
12842
|
|
|
12531
12843
|
Auth
|
|
12532
12844
|
claudemesh login sign in (browser or paste token)
|
|
@@ -12723,6 +13035,11 @@ async function main() {
|
|
|
12723
13035
|
process.exit(await recall2(positionals.join(" "), { json: !!flags.json }));
|
|
12724
13036
|
break;
|
|
12725
13037
|
}
|
|
13038
|
+
case "forget": {
|
|
13039
|
+
const { runForget: runForget2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13040
|
+
process.exit(await runForget2(positionals[0], { mesh: flags.mesh, json: !!flags.json }));
|
|
13041
|
+
break;
|
|
13042
|
+
}
|
|
12726
13043
|
case "remind": {
|
|
12727
13044
|
const { runRemind: runRemind2 } = await Promise.resolve().then(() => (init_remind(), exports_remind));
|
|
12728
13045
|
await runRemind2({ mesh: flags.mesh }, positionals);
|
|
@@ -12733,6 +13050,64 @@ async function main() {
|
|
|
12733
13050
|
await runProfile2(flags);
|
|
12734
13051
|
break;
|
|
12735
13052
|
}
|
|
13053
|
+
case "summary": {
|
|
13054
|
+
const { runSummary: runSummary2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13055
|
+
process.exit(await runSummary2(positionals.join(" "), { mesh: flags.mesh, json: !!flags.json }));
|
|
13056
|
+
break;
|
|
13057
|
+
}
|
|
13058
|
+
case "visible": {
|
|
13059
|
+
const { runVisible: runVisible2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13060
|
+
process.exit(await runVisible2(positionals[0], { mesh: flags.mesh, json: !!flags.json }));
|
|
13061
|
+
break;
|
|
13062
|
+
}
|
|
13063
|
+
case "group": {
|
|
13064
|
+
const sub = positionals[0];
|
|
13065
|
+
if (sub === "join") {
|
|
13066
|
+
const { runGroupJoin: runGroupJoin2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13067
|
+
process.exit(await runGroupJoin2(positionals[1], { mesh: flags.mesh, role: flags.role, json: !!flags.json }));
|
|
13068
|
+
} else if (sub === "leave") {
|
|
13069
|
+
const { runGroupLeave: runGroupLeave2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13070
|
+
process.exit(await runGroupLeave2(positionals[1], { mesh: flags.mesh, json: !!flags.json }));
|
|
13071
|
+
} else {
|
|
13072
|
+
console.error("Usage: claudemesh group <join|leave> @<name> [--role X]");
|
|
13073
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
13074
|
+
}
|
|
13075
|
+
break;
|
|
13076
|
+
}
|
|
13077
|
+
case "msg-status": {
|
|
13078
|
+
const { runMsgStatus: runMsgStatus2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13079
|
+
process.exit(await runMsgStatus2(positionals[0], { mesh: flags.mesh, json: !!flags.json }));
|
|
13080
|
+
break;
|
|
13081
|
+
}
|
|
13082
|
+
case "clock": {
|
|
13083
|
+
const { runClock: runClock2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13084
|
+
process.exit(await runClock2({ mesh: flags.mesh, json: !!flags.json }));
|
|
13085
|
+
break;
|
|
13086
|
+
}
|
|
13087
|
+
case "stats": {
|
|
13088
|
+
const { runStats: runStats2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13089
|
+
process.exit(await runStats2({ mesh: flags.mesh, json: !!flags.json }));
|
|
13090
|
+
break;
|
|
13091
|
+
}
|
|
13092
|
+
case "ping": {
|
|
13093
|
+
const { runPing: runPing2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13094
|
+
process.exit(await runPing2({ mesh: flags.mesh, json: !!flags.json }));
|
|
13095
|
+
break;
|
|
13096
|
+
}
|
|
13097
|
+
case "task": {
|
|
13098
|
+
const sub = positionals[0];
|
|
13099
|
+
if (sub === "claim") {
|
|
13100
|
+
const { runTaskClaim: runTaskClaim2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13101
|
+
process.exit(await runTaskClaim2(positionals[1], { mesh: flags.mesh, json: !!flags.json }));
|
|
13102
|
+
} else if (sub === "complete") {
|
|
13103
|
+
const { runTaskComplete: runTaskComplete2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13104
|
+
process.exit(await runTaskComplete2(positionals[1], positionals.slice(2).join(" ") || undefined, { mesh: flags.mesh, json: !!flags.json }));
|
|
13105
|
+
} else {
|
|
13106
|
+
console.error("Usage: claudemesh task <claim|complete> <id> [result]");
|
|
13107
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
13108
|
+
}
|
|
13109
|
+
break;
|
|
13110
|
+
}
|
|
12736
13111
|
case "login": {
|
|
12737
13112
|
const { login: login2 } = await Promise.resolve().then(() => (init_login(), exports_login));
|
|
12738
13113
|
process.exit(await login2());
|
|
@@ -12769,8 +13144,13 @@ async function main() {
|
|
|
12769
13144
|
break;
|
|
12770
13145
|
}
|
|
12771
13146
|
case "status": {
|
|
12772
|
-
|
|
12773
|
-
|
|
13147
|
+
if (positionals[0] === "set") {
|
|
13148
|
+
const { runStatusSet: runStatusSet2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
13149
|
+
process.exit(await runStatusSet2(positionals[1] ?? "", { mesh: flags.mesh, json: !!flags.json }));
|
|
13150
|
+
} else {
|
|
13151
|
+
const { runStatus: runStatus2 } = await Promise.resolve().then(() => (init_status(), exports_status));
|
|
13152
|
+
await runStatus2();
|
|
13153
|
+
}
|
|
12774
13154
|
break;
|
|
12775
13155
|
}
|
|
12776
13156
|
case "sync": {
|
|
@@ -12866,4 +13246,4 @@ main().catch((err) => {
|
|
|
12866
13246
|
process.exit(EXIT.INTERNAL_ERROR);
|
|
12867
13247
|
});
|
|
12868
13248
|
|
|
12869
|
-
//# debugId=
|
|
13249
|
+
//# debugId=0A4A6F72C9E014B864756E2164756E21
|