claudemesh-cli 1.3.0 → 1.4.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 +270 -159
- package/dist/entrypoints/cli.js.map +7 -7
- package/dist/entrypoints/mcp.js +2 -2
- package/dist/entrypoints/mcp.js.map +1 -1
- package/package.json +1 -1
- package/skills/claudemesh/SKILL.md +50 -39
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.
|
|
91
|
+
var URLS, VERSION = "1.4.0", env;
|
|
92
92
|
var init_urls = __esm(() => {
|
|
93
93
|
URLS = {
|
|
94
94
|
BROKER: process.env.CLAUDEMESH_BROKER_URL ?? "wss://ic.claudemesh.com/ws",
|
|
@@ -6817,26 +6817,27 @@ __export(exports_remember, {
|
|
|
6817
6817
|
remember: () => remember
|
|
6818
6818
|
});
|
|
6819
6819
|
async function remember(content, opts = {}) {
|
|
6820
|
-
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
return EXIT.NETWORK_ERROR;
|
|
6820
|
+
if (!content) {
|
|
6821
|
+
render.err("Usage: claudemesh remember <text>");
|
|
6822
|
+
return EXIT.INVALID_ARGS;
|
|
6824
6823
|
}
|
|
6825
6824
|
const tags = opts.tags?.split(",").map((t) => t.trim()).filter(Boolean);
|
|
6826
|
-
|
|
6827
|
-
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6831
|
-
|
|
6832
|
-
|
|
6833
|
-
|
|
6834
|
-
|
|
6835
|
-
|
|
6836
|
-
|
|
6825
|
+
return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6826
|
+
const id = await client.remember(content, tags);
|
|
6827
|
+
if (opts.json) {
|
|
6828
|
+
console.log(JSON.stringify({ id, content, tags }));
|
|
6829
|
+
return EXIT.SUCCESS;
|
|
6830
|
+
}
|
|
6831
|
+
if (id) {
|
|
6832
|
+
render.ok("remembered", dim(id.slice(0, 8)));
|
|
6833
|
+
return EXIT.SUCCESS;
|
|
6834
|
+
}
|
|
6835
|
+
render.err("failed to store memory");
|
|
6836
|
+
return EXIT.INTERNAL_ERROR;
|
|
6837
|
+
});
|
|
6837
6838
|
}
|
|
6838
6839
|
var init_remember = __esm(() => {
|
|
6839
|
-
|
|
6840
|
+
init_connect();
|
|
6840
6841
|
init_render();
|
|
6841
6842
|
init_styles();
|
|
6842
6843
|
init_exit_codes();
|
|
@@ -6848,35 +6849,36 @@ __export(exports_recall, {
|
|
|
6848
6849
|
recall: () => recall
|
|
6849
6850
|
});
|
|
6850
6851
|
async function recall(query, opts = {}) {
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
return EXIT.NETWORK_ERROR;
|
|
6855
|
-
}
|
|
6856
|
-
const memories = await client.recall(query);
|
|
6857
|
-
if (opts.json) {
|
|
6858
|
-
console.log(JSON.stringify(memories, null, 2));
|
|
6859
|
-
return EXIT.SUCCESS;
|
|
6860
|
-
}
|
|
6861
|
-
if (memories.length === 0) {
|
|
6862
|
-
render.info(dim("no memories found."));
|
|
6863
|
-
return EXIT.SUCCESS;
|
|
6852
|
+
if (!query) {
|
|
6853
|
+
render.err("Usage: claudemesh recall <query>");
|
|
6854
|
+
return EXIT.INVALID_ARGS;
|
|
6864
6855
|
}
|
|
6865
|
-
|
|
6866
|
-
|
|
6867
|
-
|
|
6868
|
-
|
|
6856
|
+
return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {
|
|
6857
|
+
const memories = await client.recall(query);
|
|
6858
|
+
if (opts.json) {
|
|
6859
|
+
console.log(JSON.stringify(memories, null, 2));
|
|
6860
|
+
return EXIT.SUCCESS;
|
|
6861
|
+
}
|
|
6862
|
+
if (memories.length === 0) {
|
|
6863
|
+
render.info(dim("no memories found."));
|
|
6864
|
+
return EXIT.SUCCESS;
|
|
6865
|
+
}
|
|
6866
|
+
render.section(`memories (${memories.length})`);
|
|
6867
|
+
for (const m of memories) {
|
|
6868
|
+
const tags = m.tags.length ? dim(` [${m.tags.map((t) => clay(t)).join(dim(", "))}]`) : "";
|
|
6869
|
+
process.stdout.write(` ${bold(m.id.slice(0, 8))}${tags}
|
|
6869
6870
|
`);
|
|
6870
|
-
|
|
6871
|
+
process.stdout.write(` ${m.content}
|
|
6871
6872
|
`);
|
|
6872
|
-
|
|
6873
|
+
process.stdout.write(` ${dim(m.rememberedBy + " · " + new Date(m.rememberedAt).toLocaleString())}
|
|
6873
6874
|
|
|
6874
6875
|
`);
|
|
6875
|
-
|
|
6876
|
-
|
|
6876
|
+
}
|
|
6877
|
+
return EXIT.SUCCESS;
|
|
6878
|
+
});
|
|
6877
6879
|
}
|
|
6878
6880
|
var init_recall = __esm(() => {
|
|
6879
|
-
|
|
6881
|
+
init_connect();
|
|
6880
6882
|
init_render();
|
|
6881
6883
|
init_styles();
|
|
6882
6884
|
init_exit_codes();
|
|
@@ -7330,92 +7332,6 @@ var init_remind = __esm(() => {
|
|
|
7330
7332
|
init_styles();
|
|
7331
7333
|
});
|
|
7332
7334
|
|
|
7333
|
-
// src/commands/profile.ts
|
|
7334
|
-
var exports_profile = {};
|
|
7335
|
-
__export(exports_profile, {
|
|
7336
|
-
runProfile: () => runProfile
|
|
7337
|
-
});
|
|
7338
|
-
async function runProfile(flags) {
|
|
7339
|
-
const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
|
|
7340
|
-
const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
|
|
7341
|
-
const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
|
|
7342
|
-
const config = readConfig();
|
|
7343
|
-
if (config.meshes.length === 0) {
|
|
7344
|
-
console.error("No meshes joined. Run `claudemesh join <url>` first.");
|
|
7345
|
-
process.exit(1);
|
|
7346
|
-
}
|
|
7347
|
-
const mesh = flags.mesh ? config.meshes.find((m) => m.slug === flags.mesh) : config.meshes[0];
|
|
7348
|
-
if (!mesh) {
|
|
7349
|
-
console.error(`Mesh "${flags.mesh}" not found. Joined: ${config.meshes.map((m) => m.slug).join(", ")}`);
|
|
7350
|
-
process.exit(1);
|
|
7351
|
-
}
|
|
7352
|
-
const brokerUrl = mesh.brokerUrl.replace("wss://", "https://").replace("ws://", "http://").replace(/\/ws\/?$/, "");
|
|
7353
|
-
const hasEdits = flags["role-tag"] !== undefined || flags.groups !== undefined || flags["message-mode"] !== undefined || flags.name !== undefined;
|
|
7354
|
-
if (hasEdits) {
|
|
7355
|
-
const targetMemberId = flags.member ?? mesh.memberId;
|
|
7356
|
-
const body = {};
|
|
7357
|
-
if (flags.name !== undefined)
|
|
7358
|
-
body.displayName = flags.name;
|
|
7359
|
-
if (flags["role-tag"] !== undefined)
|
|
7360
|
-
body.roleTag = flags["role-tag"];
|
|
7361
|
-
if (flags.groups !== undefined) {
|
|
7362
|
-
body.groups = flags.groups.split(",").map((s) => {
|
|
7363
|
-
const [name, role] = s.trim().split(":");
|
|
7364
|
-
return role ? { name, role } : { name };
|
|
7365
|
-
});
|
|
7366
|
-
}
|
|
7367
|
-
if (flags["message-mode"] !== undefined)
|
|
7368
|
-
body.messageMode = flags["message-mode"];
|
|
7369
|
-
const res = await fetch(`${brokerUrl}/mesh/${mesh.meshId}/member/${targetMemberId}`, {
|
|
7370
|
-
method: "PATCH",
|
|
7371
|
-
headers: {
|
|
7372
|
-
"Content-Type": "application/json",
|
|
7373
|
-
"X-Member-Id": mesh.memberId
|
|
7374
|
-
},
|
|
7375
|
-
body: JSON.stringify(body)
|
|
7376
|
-
});
|
|
7377
|
-
const result = await res.json();
|
|
7378
|
-
if (flags.json) {
|
|
7379
|
-
console.log(JSON.stringify(result, null, 2));
|
|
7380
|
-
} else if (result.ok) {
|
|
7381
|
-
console.log(green3("✓ Profile updated"));
|
|
7382
|
-
const member = result.member;
|
|
7383
|
-
printProfile(member, dim2);
|
|
7384
|
-
} else {
|
|
7385
|
-
console.error(`Error: ${result.error}`);
|
|
7386
|
-
process.exit(1);
|
|
7387
|
-
}
|
|
7388
|
-
} else {
|
|
7389
|
-
const res = await fetch(`${brokerUrl}/mesh/${mesh.meshId}/members`);
|
|
7390
|
-
const result = await res.json();
|
|
7391
|
-
if (!result.ok) {
|
|
7392
|
-
console.error(`Error: ${result.error}`);
|
|
7393
|
-
process.exit(1);
|
|
7394
|
-
}
|
|
7395
|
-
const me = result.members?.find((m) => m.id === mesh.memberId);
|
|
7396
|
-
if (flags.json) {
|
|
7397
|
-
console.log(JSON.stringify(me ?? {}, null, 2));
|
|
7398
|
-
} else if (me) {
|
|
7399
|
-
printProfile(me, dim2);
|
|
7400
|
-
} else {
|
|
7401
|
-
console.log("Member not found in mesh.");
|
|
7402
|
-
}
|
|
7403
|
-
}
|
|
7404
|
-
}
|
|
7405
|
-
function printProfile(member, dim2) {
|
|
7406
|
-
const groups = member.groups;
|
|
7407
|
-
const groupStr = groups?.length ? groups.map((g) => g.role ? `${g.name} (${g.role})` : g.name).join(", ") : dim2("(none)");
|
|
7408
|
-
console.log(` Name: ${member.displayName ?? dim2("(not set)")}`);
|
|
7409
|
-
console.log(` Role: ${member.roleTag ?? dim2("(not set)")}`);
|
|
7410
|
-
console.log(` Groups: ${groupStr}`);
|
|
7411
|
-
console.log(` Messages: ${member.messageMode ?? "push"}`);
|
|
7412
|
-
console.log(` Access: ${member.permission ?? "member"}`);
|
|
7413
|
-
console.log(` Mesh: ${dim2(String(member.id ?? ""))}`);
|
|
7414
|
-
}
|
|
7415
|
-
var init_profile = __esm(() => {
|
|
7416
|
-
init_facade();
|
|
7417
|
-
});
|
|
7418
|
-
|
|
7419
7335
|
// src/commands/register.ts
|
|
7420
7336
|
var exports_register = {};
|
|
7421
7337
|
__export(exports_register, {
|
|
@@ -9638,6 +9554,92 @@ var init_grants = __esm(() => {
|
|
|
9638
9554
|
GRANT_FILE = join11(homedir10(), ".claudemesh", "grants.json");
|
|
9639
9555
|
});
|
|
9640
9556
|
|
|
9557
|
+
// src/commands/profile.ts
|
|
9558
|
+
var exports_profile = {};
|
|
9559
|
+
__export(exports_profile, {
|
|
9560
|
+
runProfile: () => runProfile
|
|
9561
|
+
});
|
|
9562
|
+
async function runProfile(flags) {
|
|
9563
|
+
const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
|
|
9564
|
+
const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
|
|
9565
|
+
const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
|
|
9566
|
+
const config = readConfig();
|
|
9567
|
+
if (config.meshes.length === 0) {
|
|
9568
|
+
console.error("No meshes joined. Run `claudemesh join <url>` first.");
|
|
9569
|
+
process.exit(1);
|
|
9570
|
+
}
|
|
9571
|
+
const mesh = flags.mesh ? config.meshes.find((m) => m.slug === flags.mesh) : config.meshes[0];
|
|
9572
|
+
if (!mesh) {
|
|
9573
|
+
console.error(`Mesh "${flags.mesh}" not found. Joined: ${config.meshes.map((m) => m.slug).join(", ")}`);
|
|
9574
|
+
process.exit(1);
|
|
9575
|
+
}
|
|
9576
|
+
const brokerUrl = mesh.brokerUrl.replace("wss://", "https://").replace("ws://", "http://").replace(/\/ws\/?$/, "");
|
|
9577
|
+
const hasEdits = flags["role-tag"] !== undefined || flags.groups !== undefined || flags["message-mode"] !== undefined || flags.name !== undefined;
|
|
9578
|
+
if (hasEdits) {
|
|
9579
|
+
const targetMemberId = flags.member ?? mesh.memberId;
|
|
9580
|
+
const body = {};
|
|
9581
|
+
if (flags.name !== undefined)
|
|
9582
|
+
body.displayName = flags.name;
|
|
9583
|
+
if (flags["role-tag"] !== undefined)
|
|
9584
|
+
body.roleTag = flags["role-tag"];
|
|
9585
|
+
if (flags.groups !== undefined) {
|
|
9586
|
+
body.groups = flags.groups.split(",").map((s) => {
|
|
9587
|
+
const [name, role] = s.trim().split(":");
|
|
9588
|
+
return role ? { name, role } : { name };
|
|
9589
|
+
});
|
|
9590
|
+
}
|
|
9591
|
+
if (flags["message-mode"] !== undefined)
|
|
9592
|
+
body.messageMode = flags["message-mode"];
|
|
9593
|
+
const res = await fetch(`${brokerUrl}/mesh/${mesh.meshId}/member/${targetMemberId}`, {
|
|
9594
|
+
method: "PATCH",
|
|
9595
|
+
headers: {
|
|
9596
|
+
"Content-Type": "application/json",
|
|
9597
|
+
"X-Member-Id": mesh.memberId
|
|
9598
|
+
},
|
|
9599
|
+
body: JSON.stringify(body)
|
|
9600
|
+
});
|
|
9601
|
+
const result = await res.json();
|
|
9602
|
+
if (flags.json) {
|
|
9603
|
+
console.log(JSON.stringify(result, null, 2));
|
|
9604
|
+
} else if (result.ok) {
|
|
9605
|
+
console.log(green3("✓ Profile updated"));
|
|
9606
|
+
const member = result.member;
|
|
9607
|
+
printProfile(member, dim2);
|
|
9608
|
+
} else {
|
|
9609
|
+
console.error(`Error: ${result.error}`);
|
|
9610
|
+
process.exit(1);
|
|
9611
|
+
}
|
|
9612
|
+
} else {
|
|
9613
|
+
const res = await fetch(`${brokerUrl}/mesh/${mesh.meshId}/members`);
|
|
9614
|
+
const result = await res.json();
|
|
9615
|
+
if (!result.ok) {
|
|
9616
|
+
console.error(`Error: ${result.error}`);
|
|
9617
|
+
process.exit(1);
|
|
9618
|
+
}
|
|
9619
|
+
const me = result.members?.find((m) => m.id === mesh.memberId);
|
|
9620
|
+
if (flags.json) {
|
|
9621
|
+
console.log(JSON.stringify(me ?? {}, null, 2));
|
|
9622
|
+
} else if (me) {
|
|
9623
|
+
printProfile(me, dim2);
|
|
9624
|
+
} else {
|
|
9625
|
+
console.log("Member not found in mesh.");
|
|
9626
|
+
}
|
|
9627
|
+
}
|
|
9628
|
+
}
|
|
9629
|
+
function printProfile(member, dim2) {
|
|
9630
|
+
const groups = member.groups;
|
|
9631
|
+
const groupStr = groups?.length ? groups.map((g) => g.role ? `${g.name} (${g.role})` : g.name).join(", ") : dim2("(none)");
|
|
9632
|
+
console.log(` Name: ${member.displayName ?? dim2("(not set)")}`);
|
|
9633
|
+
console.log(` Role: ${member.roleTag ?? dim2("(not set)")}`);
|
|
9634
|
+
console.log(` Groups: ${groupStr}`);
|
|
9635
|
+
console.log(` Messages: ${member.messageMode ?? "push"}`);
|
|
9636
|
+
console.log(` Access: ${member.permission ?? "member"}`);
|
|
9637
|
+
console.log(` Mesh: ${dim2(String(member.id ?? ""))}`);
|
|
9638
|
+
}
|
|
9639
|
+
var init_profile = __esm(() => {
|
|
9640
|
+
init_facade();
|
|
9641
|
+
});
|
|
9642
|
+
|
|
9641
9643
|
// src/commands/platform-actions.ts
|
|
9642
9644
|
var exports_platform_actions = {};
|
|
9643
9645
|
__export(exports_platform_actions, {
|
|
@@ -14059,37 +14061,45 @@ Mesh
|
|
|
14059
14061
|
claudemesh delete [slug] delete a mesh (alias: rm)
|
|
14060
14062
|
claudemesh rename <slug> <name> rename a mesh
|
|
14061
14063
|
claudemesh share [email] share mesh (invite link / send email)
|
|
14062
|
-
|
|
14063
|
-
|
|
14064
|
-
claudemesh
|
|
14065
|
-
claudemesh
|
|
14066
|
-
claudemesh
|
|
14067
|
-
claudemesh
|
|
14068
|
-
claudemesh
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
|
|
14073
|
-
claudemesh
|
|
14074
|
-
claudemesh
|
|
14064
|
+
|
|
14065
|
+
Peer (resource form, recommended)
|
|
14066
|
+
claudemesh peer list see who's online (alias: peers)
|
|
14067
|
+
claudemesh peer kick <p> end session (alias: kick)
|
|
14068
|
+
claudemesh peer disconnect <p> soft disconnect (alias: disconnect)
|
|
14069
|
+
claudemesh peer ban <p> ban + revoke (alias: ban)
|
|
14070
|
+
claudemesh peer unban <p> lift a ban (alias: unban)
|
|
14071
|
+
claudemesh peer bans list banned members (alias: bans)
|
|
14072
|
+
claudemesh peer verify [p] safety numbers (alias: verify)
|
|
14073
|
+
|
|
14074
|
+
Message (resource form)
|
|
14075
|
+
claudemesh message send <to> <m> send a message (alias: send)
|
|
14076
|
+
claudemesh message inbox drain pending (alias: inbox)
|
|
14077
|
+
claudemesh message status <id> delivery status (alias: msg-status)
|
|
14078
|
+
|
|
14079
|
+
Memory (resource form)
|
|
14080
|
+
claudemesh memory remember <txt> store a memory (alias: remember)
|
|
14081
|
+
claudemesh memory recall <q> search memories (alias: recall)
|
|
14082
|
+
claudemesh memory forget <id> remove a memory (alias: forget)
|
|
14083
|
+
|
|
14084
|
+
Profile / presence (resource form)
|
|
14085
|
+
claudemesh profile view or edit profile
|
|
14086
|
+
claudemesh profile summary <txt> broadcast summary (alias: summary)
|
|
14087
|
+
claudemesh profile visible y|n toggle visibility (alias: visible)
|
|
14088
|
+
claudemesh profile status set X set status idle/working/dnd (alias: status set)
|
|
14089
|
+
claudemesh group join @<name> join a group (--role X)
|
|
14090
|
+
claudemesh group leave @<name> leave a group
|
|
14091
|
+
|
|
14092
|
+
Schedule (resource form)
|
|
14093
|
+
claudemesh schedule msg <m> one-shot or recurring (alias: remind)
|
|
14094
|
+
claudemesh schedule list list pending
|
|
14095
|
+
claudemesh schedule cancel <id> remove a scheduled item
|
|
14096
|
+
|
|
14097
|
+
State / mesh introspection
|
|
14075
14098
|
claudemesh state get|set|list shared state
|
|
14076
|
-
claudemesh remember <text> store a memory
|
|
14077
|
-
claudemesh recall <query> search memories
|
|
14078
|
-
claudemesh forget <id> remove a memory
|
|
14079
|
-
claudemesh remind ... schedule a reminder
|
|
14080
|
-
claudemesh profile view or edit your profile
|
|
14081
14099
|
claudemesh info mesh overview
|
|
14082
14100
|
claudemesh stats per-peer activity counters
|
|
14083
|
-
claudemesh clock mesh logical clock state
|
|
14084
14101
|
claudemesh ping diagnostic round-trip
|
|
14085
14102
|
|
|
14086
|
-
Identity / presence
|
|
14087
|
-
claudemesh status set <state> set peer status (idle | working | dnd)
|
|
14088
|
-
claudemesh summary <text> broadcast 1-2 sentence work summary
|
|
14089
|
-
claudemesh visible <true|false> toggle peer visibility
|
|
14090
|
-
claudemesh group join @<name> join a group (--role X optional)
|
|
14091
|
-
claudemesh group leave @<name> leave a group
|
|
14092
|
-
|
|
14093
14103
|
Tasks
|
|
14094
14104
|
claudemesh task create <title> create a new task [--assignee --priority --tags]
|
|
14095
14105
|
claudemesh task list list tasks [--status --assignee]
|
|
@@ -14297,12 +14307,12 @@ async function main() {
|
|
|
14297
14307
|
}
|
|
14298
14308
|
case "remember": {
|
|
14299
14309
|
const { remember: remember2 } = await Promise.resolve().then(() => (init_remember(), exports_remember));
|
|
14300
|
-
process.exit(await remember2(positionals.join(" "), { tags: flags.tags, json: !!flags.json }));
|
|
14310
|
+
process.exit(await remember2(positionals.join(" "), { mesh: flags.mesh, tags: flags.tags, json: !!flags.json }));
|
|
14301
14311
|
break;
|
|
14302
14312
|
}
|
|
14303
14313
|
case "recall": {
|
|
14304
14314
|
const { recall: recall2 } = await Promise.resolve().then(() => (init_recall(), exports_recall));
|
|
14305
|
-
process.exit(await recall2(positionals.join(" "), { json: !!flags.json }));
|
|
14315
|
+
process.exit(await recall2(positionals.join(" "), { mesh: flags.mesh, json: !!flags.json }));
|
|
14306
14316
|
break;
|
|
14307
14317
|
}
|
|
14308
14318
|
case "forget": {
|
|
@@ -14315,11 +14325,6 @@ async function main() {
|
|
|
14315
14325
|
await runRemind2({ mesh: flags.mesh }, positionals);
|
|
14316
14326
|
break;
|
|
14317
14327
|
}
|
|
14318
|
-
case "profile": {
|
|
14319
|
-
const { runProfile: runProfile2 } = await Promise.resolve().then(() => (init_profile(), exports_profile));
|
|
14320
|
-
await runProfile2(flags);
|
|
14321
|
-
break;
|
|
14322
|
-
}
|
|
14323
14328
|
case "summary": {
|
|
14324
14329
|
const { runSummary: runSummary2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
14325
14330
|
process.exit(await runSummary2(positionals.join(" "), { mesh: flags.mesh, json: !!flags.json }));
|
|
@@ -14470,6 +14475,112 @@ async function main() {
|
|
|
14470
14475
|
process.exit(await runGrants2({ mesh: flags.mesh, json: !!flags.json }));
|
|
14471
14476
|
break;
|
|
14472
14477
|
}
|
|
14478
|
+
case "peer": {
|
|
14479
|
+
const sub = positionals[0];
|
|
14480
|
+
const f = { mesh: flags.mesh, json: flags.json };
|
|
14481
|
+
const id = positionals[1] ?? "";
|
|
14482
|
+
if (sub === "list") {
|
|
14483
|
+
const { runPeers: runPeers2 } = await Promise.resolve().then(() => (init_peers(), exports_peers));
|
|
14484
|
+
await runPeers2(f);
|
|
14485
|
+
} else if (sub === "kick") {
|
|
14486
|
+
const { runKick: runKick2 } = await Promise.resolve().then(() => (init_kick(), exports_kick));
|
|
14487
|
+
process.exit(await runKick2(id, { mesh: flags.mesh, stale: flags.stale, all: !!flags.all }));
|
|
14488
|
+
} else if (sub === "disconnect") {
|
|
14489
|
+
const { runDisconnect: runDisconnect2 } = await Promise.resolve().then(() => (init_kick(), exports_kick));
|
|
14490
|
+
process.exit(await runDisconnect2(id, { mesh: flags.mesh, stale: flags.stale, all: !!flags.all }));
|
|
14491
|
+
} else if (sub === "ban") {
|
|
14492
|
+
const { runBan: runBan2 } = await Promise.resolve().then(() => (init_ban(), exports_ban));
|
|
14493
|
+
process.exit(await runBan2(id, { mesh: flags.mesh }));
|
|
14494
|
+
} else if (sub === "unban") {
|
|
14495
|
+
const { runUnban: runUnban2 } = await Promise.resolve().then(() => (init_ban(), exports_ban));
|
|
14496
|
+
process.exit(await runUnban2(id, { mesh: flags.mesh }));
|
|
14497
|
+
} else if (sub === "bans") {
|
|
14498
|
+
const { runBans: runBans2 } = await Promise.resolve().then(() => (init_ban(), exports_ban));
|
|
14499
|
+
process.exit(await runBans2({ mesh: flags.mesh, json: !!flags.json }));
|
|
14500
|
+
} else if (sub === "verify") {
|
|
14501
|
+
const { runVerify: runVerify2 } = await Promise.resolve().then(() => (init_verify(), exports_verify));
|
|
14502
|
+
process.exit(await runVerify2(id || undefined, { mesh: flags.mesh, json: !!flags.json }));
|
|
14503
|
+
} else {
|
|
14504
|
+
console.error("Usage: claudemesh peer <list|kick|disconnect|ban|unban|bans|verify>");
|
|
14505
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
14506
|
+
}
|
|
14507
|
+
break;
|
|
14508
|
+
}
|
|
14509
|
+
case "message": {
|
|
14510
|
+
const sub = positionals[0];
|
|
14511
|
+
if (sub === "send") {
|
|
14512
|
+
const { runSend: runSend2 } = await Promise.resolve().then(() => (init_send(), exports_send));
|
|
14513
|
+
await runSend2({ mesh: flags.mesh, priority: flags.priority, json: !!flags.json }, positionals[1] ?? "", positionals.slice(2).join(" "));
|
|
14514
|
+
} else if (sub === "inbox") {
|
|
14515
|
+
const { runInbox: runInbox2 } = await Promise.resolve().then(() => (init_inbox(), exports_inbox));
|
|
14516
|
+
await runInbox2({ json: !!flags.json });
|
|
14517
|
+
} else if (sub === "status") {
|
|
14518
|
+
const { runMsgStatus: runMsgStatus2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
14519
|
+
process.exit(await runMsgStatus2(positionals[1], { mesh: flags.mesh, json: !!flags.json }));
|
|
14520
|
+
} else {
|
|
14521
|
+
console.error("Usage: claudemesh message <send|inbox|status>");
|
|
14522
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
14523
|
+
}
|
|
14524
|
+
break;
|
|
14525
|
+
}
|
|
14526
|
+
case "memory": {
|
|
14527
|
+
const sub = positionals[0];
|
|
14528
|
+
const f = { mesh: flags.mesh, json: !!flags.json };
|
|
14529
|
+
if (sub === "remember") {
|
|
14530
|
+
const { remember: remember2 } = await Promise.resolve().then(() => (init_remember(), exports_remember));
|
|
14531
|
+
process.exit(await remember2(positionals.slice(1).join(" "), { ...f, tags: flags.tags }));
|
|
14532
|
+
} else if (sub === "recall") {
|
|
14533
|
+
const { recall: recall2 } = await Promise.resolve().then(() => (init_recall(), exports_recall));
|
|
14534
|
+
process.exit(await recall2(positionals.slice(1).join(" "), f));
|
|
14535
|
+
} else if (sub === "forget") {
|
|
14536
|
+
const { runForget: runForget2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
14537
|
+
process.exit(await runForget2(positionals[1], f));
|
|
14538
|
+
} else {
|
|
14539
|
+
console.error("Usage: claudemesh memory <remember|recall|forget>");
|
|
14540
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
14541
|
+
}
|
|
14542
|
+
break;
|
|
14543
|
+
}
|
|
14544
|
+
case "profile": {
|
|
14545
|
+
const sub = positionals[0];
|
|
14546
|
+
if (!sub) {
|
|
14547
|
+
const { runProfile: runProfile2 } = await Promise.resolve().then(() => (init_profile(), exports_profile));
|
|
14548
|
+
await runProfile2(flags);
|
|
14549
|
+
} else if (sub === "summary") {
|
|
14550
|
+
const { runSummary: runSummary2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
14551
|
+
process.exit(await runSummary2(positionals.slice(1).join(" "), { mesh: flags.mesh, json: !!flags.json }));
|
|
14552
|
+
} else if (sub === "visible") {
|
|
14553
|
+
const { runVisible: runVisible2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
14554
|
+
process.exit(await runVisible2(positionals[1], { mesh: flags.mesh, json: !!flags.json }));
|
|
14555
|
+
} else if (sub === "status") {
|
|
14556
|
+
if (positionals[1] === "set") {
|
|
14557
|
+
const { runStatusSet: runStatusSet2 } = await Promise.resolve().then(() => (init_broker_actions(), exports_broker_actions));
|
|
14558
|
+
process.exit(await runStatusSet2(positionals[2] ?? "", { mesh: flags.mesh, json: !!flags.json }));
|
|
14559
|
+
} else {
|
|
14560
|
+
const { runStatus: runStatus2 } = await Promise.resolve().then(() => (init_status(), exports_status));
|
|
14561
|
+
await runStatus2();
|
|
14562
|
+
}
|
|
14563
|
+
} else {
|
|
14564
|
+
console.error("Usage: claudemesh profile [summary|visible|status]");
|
|
14565
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
14566
|
+
}
|
|
14567
|
+
break;
|
|
14568
|
+
}
|
|
14569
|
+
case "schedule": {
|
|
14570
|
+
const sub = positionals[0];
|
|
14571
|
+
if (sub === "msg" || sub === "remind" || sub === undefined || sub === "list" || sub === "cancel") {
|
|
14572
|
+
const { runRemind: runRemind2 } = await Promise.resolve().then(() => (init_remind(), exports_remind));
|
|
14573
|
+
const remindPositionals = sub === "msg" ? positionals.slice(1) : sub === "remind" ? positionals.slice(1) : positionals;
|
|
14574
|
+
await runRemind2({ mesh: flags.mesh, in: flags.in, at: flags.at, cron: flags.cron, to: flags.to, json: !!flags.json }, remindPositionals);
|
|
14575
|
+
} else if (sub === "webhook" || sub === "tool") {
|
|
14576
|
+
console.error(` schedule ${sub} arrives in a later release — broker primitive not yet shipped`);
|
|
14577
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
14578
|
+
} else {
|
|
14579
|
+
console.error("Usage: claudemesh schedule <msg|list|cancel>");
|
|
14580
|
+
process.exit(EXIT.INVALID_ARGS);
|
|
14581
|
+
}
|
|
14582
|
+
break;
|
|
14583
|
+
}
|
|
14473
14584
|
case "vector": {
|
|
14474
14585
|
const sub = positionals[0];
|
|
14475
14586
|
const f = { mesh: flags.mesh, json: !!flags.json };
|
|
@@ -14725,4 +14836,4 @@ main().catch((err) => {
|
|
|
14725
14836
|
process.exit(EXIT.INTERNAL_ERROR);
|
|
14726
14837
|
});
|
|
14727
14838
|
|
|
14728
|
-
//# debugId=
|
|
14839
|
+
//# debugId=4E4265490A3D56F164756E2164756E21
|