@codeforbreakfast/commy-mcp 0.24.2 → 0.25.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/package.json +1 -1
- package/server.js +77 -47
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -50429,7 +50429,7 @@ var runMain2 = runMain;
|
|
|
50429
50429
|
|
|
50430
50430
|
// node_modules/.bun/@effect+platform-node@0.108.2+7b41a6254ced90d9/node_modules/@effect/platform-node/dist/esm/NodeRuntime.js
|
|
50431
50431
|
var runMain3 = runMain2;
|
|
50432
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
50432
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
50433
50433
|
import process3 from "node:process";
|
|
50434
50434
|
|
|
50435
50435
|
// node_modules/.bun/zod@4.4.3/node_modules/zod/v4/core/core.js
|
|
@@ -55548,7 +55548,7 @@ function preprocess(fn2, schema) {
|
|
|
55548
55548
|
// node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
55549
55549
|
config2(en_default());
|
|
55550
55550
|
|
|
55551
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
55551
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
|
|
55552
55552
|
var LATEST_PROTOCOL_VERSION = "2025-11-25";
|
|
55553
55553
|
var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
|
|
55554
55554
|
var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
|
|
@@ -56383,7 +56383,7 @@ class UrlElicitationRequiredError extends McpError {
|
|
|
56383
56383
|
}
|
|
56384
56384
|
}
|
|
56385
56385
|
|
|
56386
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
56386
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
|
|
56387
56387
|
var STDIO_DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024;
|
|
56388
56388
|
|
|
56389
56389
|
class ReadBuffer {
|
|
@@ -56423,7 +56423,7 @@ function serializeMessage(message) {
|
|
|
56423
56423
|
`;
|
|
56424
56424
|
}
|
|
56425
56425
|
|
|
56426
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
56426
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
56427
56427
|
class StdioServerTransport {
|
|
56428
56428
|
constructor(_stdin = process3.stdin, _stdout = process3.stdout, options5) {
|
|
56429
56429
|
this._stdin = _stdin;
|
|
@@ -56685,9 +56685,15 @@ var toMention = (directory) => MentionSpan.$match({
|
|
|
56685
56685
|
UserSpan: ({ userId }) => exports_Effect.succeed(exports_Option.map(exports_Option.fromNullable(directory.byUserId(userId)), (identity6) => Mention.UserMention({ identity: identity6 })))
|
|
56686
56686
|
});
|
|
56687
56687
|
var renderedMentions = (rendered, directory) => exports_Effect.forEach(mentionSpans(rendered), toMention(directory)).pipe(exports_Effect.map(exports_Array.getSomes), exports_Effect.map(exports_Array.dedupeWith((a, b) => exports_Equal.equals(identityOf(a), identityOf(b)))));
|
|
56688
|
-
var
|
|
56688
|
+
var mentionedUserIds = (rendered) => exports_Array.filterMap(mentionSpans(rendered), MentionSpan.$match({
|
|
56689
|
+
UserSpan: ({ userId }) => exports_Option.some(userId),
|
|
56690
|
+
GroupSpan: () => exports_Option.none(),
|
|
56691
|
+
ChannelWildcardSpan: () => exports_Option.none(),
|
|
56692
|
+
TopicWildcardSpan: () => exports_Option.none()
|
|
56693
|
+
}));
|
|
56694
|
+
var mentionsOfMessage = (renderedFor, message, directoryFor) => mayMention(message.content) ? renderedFor(message.id).pipe(exports_Effect.flatMap(exports_Option.match({
|
|
56689
56695
|
onNone: () => exports_Effect.succeed([]),
|
|
56690
|
-
onSome: (rendered) => renderedMentions(rendered, directory)
|
|
56696
|
+
onSome: (rendered) => directoryFor(mentionedUserIds(rendered)).pipe(exports_Effect.flatMap((directory) => renderedMentions(rendered, directory)))
|
|
56691
56697
|
}))) : exports_Effect.succeed([]);
|
|
56692
56698
|
|
|
56693
56699
|
// packages/zulip/resolved-topic.ts
|
|
@@ -56701,6 +56707,10 @@ var splitTopic = (rawTopic) => {
|
|
|
56701
56707
|
var applyResolvedPrefix = (name, resolved) => resolved ? isResolvedTopic(name) ? name : RESOLVED_TOPIC_PREFIX + name : stripResolvedPrefix(name);
|
|
56702
56708
|
|
|
56703
56709
|
// packages/zulip/events.ts
|
|
56710
|
+
var mentionDirectoryOf = (directory) => ({
|
|
56711
|
+
byName: directory.byName,
|
|
56712
|
+
byUserId: (userId) => directory.byId.get(userId)
|
|
56713
|
+
});
|
|
56704
56714
|
var createMessageRefCache = (maxSize = 1e4) => {
|
|
56705
56715
|
const map32 = new Map;
|
|
56706
56716
|
return {
|
|
@@ -56799,7 +56809,8 @@ var decodeSenderIdentity = (message, directory) => {
|
|
|
56799
56809
|
});
|
|
56800
56810
|
};
|
|
56801
56811
|
var messageToInboundEvents = (message, directory, boundIdentity, base, renderedFor) => exports_Effect.gen(function* () {
|
|
56802
|
-
const
|
|
56812
|
+
const covered = yield* directory.cover([message.sender_id]);
|
|
56813
|
+
const sender = yield* decodeSenderIdentity(message, covered);
|
|
56803
56814
|
const ref = yield* decodeMessageRef(message, base);
|
|
56804
56815
|
const body = yield* decodeMessageBody(message.content);
|
|
56805
56816
|
const ts = yield* decodeTimestamp(message.timestamp);
|
|
@@ -56808,10 +56819,7 @@ var messageToInboundEvents = (message, directory, boundIdentity, base, renderedF
|
|
|
56808
56819
|
sender,
|
|
56809
56820
|
body,
|
|
56810
56821
|
ts,
|
|
56811
|
-
mentions: yield* mentionsOfMessage(renderedFor, message,
|
|
56812
|
-
byName: directory.byName,
|
|
56813
|
-
byUserId: (userId) => directory.byId.get(userId)
|
|
56814
|
-
}),
|
|
56822
|
+
mentions: yield* mentionsOfMessage(renderedFor, message, (userIds) => covered.cover(userIds).pipe(exports_Effect.map(mentionDirectoryOf))),
|
|
56815
56823
|
reactions: []
|
|
56816
56824
|
};
|
|
56817
56825
|
const out = [{ kind: "message-posted", message: portMessage }];
|
|
@@ -56845,7 +56853,7 @@ var decodeReactionIdentity = (reaction, directory) => {
|
|
|
56845
56853
|
});
|
|
56846
56854
|
};
|
|
56847
56855
|
var reactionToInboundEvent = (reaction, directory, target) => exports_Effect.gen(function* () {
|
|
56848
|
-
const by = yield* decodeReactionIdentity(reaction, directory);
|
|
56856
|
+
const by = yield* decodeReactionIdentity(reaction, yield* directory.cover([reaction.user_id]));
|
|
56849
56857
|
const emoji2 = yield* decodeEmoji(reaction.emoji_name);
|
|
56850
56858
|
return {
|
|
56851
56859
|
kind: reactionKind(reaction.op),
|
|
@@ -57297,6 +57305,10 @@ var sentMessageSchema = exports_Schema.Struct({
|
|
|
57297
57305
|
id: exports_Schema.Int
|
|
57298
57306
|
});
|
|
57299
57307
|
var successSchema2 = exports_Schema.Struct({ result: exports_Schema.Literal("success") });
|
|
57308
|
+
var renderedSchema = exports_Schema.Struct({
|
|
57309
|
+
result: exports_Schema.Literal("success"),
|
|
57310
|
+
rendered: exports_Schema.String
|
|
57311
|
+
});
|
|
57300
57312
|
var classifyEditFailure = (cause3) => {
|
|
57301
57313
|
if (cause3 instanceof ZulipApiError) {
|
|
57302
57314
|
const text3 = cause3.message.toLowerCase();
|
|
@@ -57394,7 +57406,9 @@ var toIdentity = (u) => exports_Effect.all({
|
|
|
57394
57406
|
kind: u.is_bot ? "agent" : "human"
|
|
57395
57407
|
})));
|
|
57396
57408
|
var isActiveOfKind = (kind) => (u) => u.is_active && (kind === "agent" ? u.is_bot : !u.is_bot);
|
|
57397
|
-
var
|
|
57409
|
+
var heldNarrowOf = (target) => exports_Predicate.isString(target) ? exports_Data.struct({ channel: target, thread: exports_Option.none() }) : exports_Data.struct({ channel: target.channel, thread: exports_Option.some(target.thread) });
|
|
57410
|
+
var holdsChannel = (state, channelName) => exports_HashSet.some(state.heldNarrows, (narrow) => narrow.channel === channelName);
|
|
57411
|
+
var streamIsListening = (state, channelName) => holdsChannel(state, channelName) || exports_HashSet.has(state.newTopicsChannels, channelName);
|
|
57398
57412
|
var observeNewTopic = (state, channelName, threadName3) => {
|
|
57399
57413
|
const seen = exports_HashMap.get(state.seenTopicsByChannel, channelName).pipe(exports_Option.getOrElse(() => exports_HashSet.empty()));
|
|
57400
57414
|
if (exports_HashSet.has(seen, threadName3))
|
|
@@ -57431,7 +57445,8 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57431
57445
|
})));
|
|
57432
57446
|
const boundHttp = () => bindOnDemand.pipe(exports_Effect.zipRight(requireBound()), exports_Effect.map((b) => b.http));
|
|
57433
57447
|
const fetchMembers = () => minterHttp.get("/users", usersSchema).pipe(exports_Effect.map((res) => res.members));
|
|
57434
|
-
const
|
|
57448
|
+
const fetchMembersById = (userIds) => minterHttp.get("/users", usersSchema, { user_ids: JSON.stringify(userIds) }).pipe(exports_Effect.map((res) => res.members));
|
|
57449
|
+
const directoryOf = (members) => exports_Effect.gen(function* () {
|
|
57435
57450
|
const byId = new Map;
|
|
57436
57451
|
const byName = new Map;
|
|
57437
57452
|
const byIdentityId = new Map;
|
|
@@ -57444,11 +57459,23 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57444
57459
|
if (u.is_active)
|
|
57445
57460
|
active2.add(ident.id);
|
|
57446
57461
|
}
|
|
57447
|
-
|
|
57448
|
-
|
|
57462
|
+
const lookup = {
|
|
57463
|
+
byId,
|
|
57464
|
+
byName,
|
|
57465
|
+
byIdentityId,
|
|
57466
|
+
active: active2,
|
|
57467
|
+
cover: (userIds) => {
|
|
57468
|
+
const missing = exports_Array.dedupe(userIds.filter((id3) => !byId.has(ZulipUserRef(id3))));
|
|
57469
|
+
return exports_Array.isEmptyReadonlyArray(missing) ? exports_Effect.succeed(lookup) : fetchMembersById(missing).pipe(exports_Effect.flatMap((found) => directoryOf([...members, ...found])));
|
|
57470
|
+
}
|
|
57471
|
+
};
|
|
57472
|
+
return lookup;
|
|
57473
|
+
});
|
|
57474
|
+
const buildDirectoryLookup = () => fetchMembers().pipe(exports_Effect.flatMap(directoryOf));
|
|
57449
57475
|
const recipientDirectory = () => buildDirectoryLookup().pipe(exports_Effect.map((lookup) => ({
|
|
57450
57476
|
byId: new Map([...lookup.byId.entries()].map(([id3, ident]) => [id3, { kind: ident.kind }]))
|
|
57451
57477
|
})));
|
|
57478
|
+
const renderedMentionIds = (content) => minterHttp.post("/messages/render", renderedSchema, { content }).pipe(exports_Effect.map((res) => mentionedUserIds(res.rendered)));
|
|
57452
57479
|
const mentionDirectory = (directory2) => ({
|
|
57453
57480
|
byName: directory2.byName,
|
|
57454
57481
|
byUserId: (userId) => directory2.byId.get(ZulipUserRef(userId))
|
|
@@ -57465,8 +57492,8 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57465
57492
|
};
|
|
57466
57493
|
const validateOutboundMentions = (operation, body) => !mentionTokens(body).some(MentionToken.$is("UserToken")) ? exports_Effect.void : buildDirectoryLookup().pipe(exports_Effect.flatMap((directory2) => {
|
|
57467
57494
|
const dead = unresolvedMentions(body, notifiableMentionDirectory(directory2));
|
|
57468
|
-
return dead
|
|
57469
|
-
}));
|
|
57495
|
+
return exports_Array.isEmptyReadonlyArray(dead) ? exports_Effect.succeed(dead) : renderedMentionIds(body).pipe(exports_Effect.flatMap(directory2.cover), exports_Effect.map((covered) => unresolvedMentions(body, notifiableMentionDirectory(covered))));
|
|
57496
|
+
}), exports_Effect.flatMap((dead) => exports_Array.isEmptyReadonlyArray(dead) ? exports_Effect.void : exports_Effect.fail(new UnresolvedMention({ operation, tokens: dead, substrate: "zulip" }))));
|
|
57470
57497
|
const mapHistoricalReactions = (raw3, directory2) => exports_Effect.gen(function* () {
|
|
57471
57498
|
const byEmoji = new Map;
|
|
57472
57499
|
for (const r of raw3) {
|
|
@@ -57500,7 +57527,7 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57500
57527
|
sender,
|
|
57501
57528
|
body,
|
|
57502
57529
|
ts: m.ts,
|
|
57503
|
-
mentions: yield* mentionsOfMessage(renderedFor, { id: Number(m.id), content: m.content },
|
|
57530
|
+
mentions: yield* mentionsOfMessage(renderedFor, { id: Number(m.id), content: m.content }, (userIds) => directory2.cover(userIds).pipe(exports_Effect.map(mentionDirectory))),
|
|
57504
57531
|
reactions
|
|
57505
57532
|
};
|
|
57506
57533
|
});
|
|
@@ -57518,7 +57545,7 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57518
57545
|
onPage: (query, rows) => exports_Effect.gen(function* () {
|
|
57519
57546
|
const renderedFor = yield* renderedContentForBatch(minterHttp, query, rows);
|
|
57520
57547
|
const historical = yield* exports_Effect.forEach(rows, toHistoricalMessage);
|
|
57521
|
-
const directory2 = yield* exports_Fiber.join(directoryFiber);
|
|
57548
|
+
const directory2 = yield* exports_Fiber.join(directoryFiber).pipe(exports_Effect.flatMap((d) => d.cover(historical.flatMap((m) => [m.senderId, ...m.reactions.map((r) => r.userId)]))));
|
|
57522
57549
|
return yield* exports_Effect.forEach(historical, (m) => mapHistoricalMessage(m, directory2, renderedFor));
|
|
57523
57550
|
})
|
|
57524
57551
|
});
|
|
@@ -57625,10 +57652,16 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57625
57652
|
onNone: () => exports_Effect.succeed([undefined, current2]),
|
|
57626
57653
|
onSome: (existing) => (opts?.persistent === true ? exports_Effect.void : minterHttp.delete(`/bots/${existing.userId}`, successSchema2).pipe(exports_Effect.asVoid, exports_Effect.catchAll(() => exports_Effect.void))).pipe(exports_Effect.as([undefined, exports_Option.none()]))
|
|
57627
57654
|
})).pipe(exports_Effect.asVoid),
|
|
57628
|
-
resolve: (name) =>
|
|
57629
|
-
|
|
57630
|
-
|
|
57631
|
-
|
|
57655
|
+
resolve: (name) => {
|
|
57656
|
+
const activeNamed = (members) => exports_Array.findFirst(members, (u) => u.is_active && u.full_name === name);
|
|
57657
|
+
return fetchMembers().pipe(exports_Effect.flatMap((members) => exports_Option.match(activeNamed(members), {
|
|
57658
|
+
onSome: (match23) => exports_Effect.succeedSome(match23),
|
|
57659
|
+
onNone: () => renderedMentionIds(`@**${name}**`).pipe(exports_Effect.flatMap((userIds) => exports_Array.isEmptyReadonlyArray(userIds) ? exports_Effect.succeed([]) : fetchMembersById(userIds)), exports_Effect.map(activeNamed))
|
|
57660
|
+
})), exports_Effect.flatMap(exports_Option.match({
|
|
57661
|
+
onNone: () => exports_Effect.succeed(exports_Option.none()),
|
|
57662
|
+
onSome: (match23) => toIdentity(match23).pipe(exports_Effect.asSome)
|
|
57663
|
+
})), exports_Effect.mapError((cause3) => new IdentityError({ operation: "resolve", cause: cause3 })));
|
|
57664
|
+
}
|
|
57632
57665
|
};
|
|
57633
57666
|
const directory = {
|
|
57634
57667
|
listAgents: () => fetchMembers().pipe(exports_Effect.flatMap((members) => exports_Effect.forEach(members.filter(isActiveOfKind("agent")), toIdentity)), exports_Effect.mapError((cause3) => new DirectoryError({ operation: "listAgents", cause: cause3 }))),
|
|
@@ -57775,7 +57808,7 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57775
57808
|
setChannelDescription
|
|
57776
57809
|
};
|
|
57777
57810
|
const inboxRef = yield* exports_SynchronizedRef.make({
|
|
57778
|
-
|
|
57811
|
+
heldNarrows: exports_HashSet.empty(),
|
|
57779
57812
|
newTopicsChannels: exports_HashSet.empty(),
|
|
57780
57813
|
seenTopicsByChannel: exports_HashMap.empty(),
|
|
57781
57814
|
registration: exports_Option.none()
|
|
@@ -57798,7 +57831,7 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57798
57831
|
onNone: () => [false, state],
|
|
57799
57832
|
onSome: (t) => observeNewTopic(state, cname, t.name)
|
|
57800
57833
|
});
|
|
57801
|
-
if (
|
|
57834
|
+
if (holdsChannel(state, cname))
|
|
57802
57835
|
return [true, ticked];
|
|
57803
57836
|
if (me !== undefined && mentionsIdentity(message.mentions, me.id)) {
|
|
57804
57837
|
return [true, ticked];
|
|
@@ -57823,7 +57856,7 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57823
57856
|
newTopicsChannels: exports_HashSet.add(state.newTopicsChannels, channel)
|
|
57824
57857
|
} : {
|
|
57825
57858
|
...state,
|
|
57826
|
-
|
|
57859
|
+
heldNarrows: exports_HashSet.add(state.heldNarrows, heldNarrowOf(target))
|
|
57827
57860
|
};
|
|
57828
57861
|
return [wasListening, next4];
|
|
57829
57862
|
}).pipe(exports_Effect.flatMap((wasListening) => {
|
|
@@ -57843,7 +57876,7 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57843
57876
|
seenTopicsByChannel: exports_HashMap.remove(state.seenTopicsByChannel, channel)
|
|
57844
57877
|
} : {
|
|
57845
57878
|
...state,
|
|
57846
|
-
|
|
57879
|
+
heldNarrows: exports_HashSet.remove(state.heldNarrows, heldNarrowOf(target))
|
|
57847
57880
|
};
|
|
57848
57881
|
return [streamIsListening(next4, channel), next4];
|
|
57849
57882
|
}).pipe(exports_Effect.flatMap((stillListening) => stillListening ? exports_Effect.void : http.delete("/users/me/subscriptions", subscriptionsResponseSchema, {
|
|
@@ -57898,7 +57931,7 @@ var zulipAdapter = (config3) => exports_Effect.gen(function* () {
|
|
|
57898
57931
|
fetchPage: (query) => minterHttp.get("/messages", replayResponseSchema, query).pipe(exports_Effect.map((res) => res.messages)),
|
|
57899
57932
|
onPage: (query, rows) => exports_Effect.gen(function* () {
|
|
57900
57933
|
const renderedFor = yield* renderedContentForBatch(minterHttp, query, rows);
|
|
57901
|
-
const directory2 = yield* exports_Fiber.join(directoryFiber);
|
|
57934
|
+
const directory2 = yield* exports_Fiber.join(directoryFiber).pipe(exports_Effect.flatMap((d) => d.cover(rows.map((row) => row.sender_id))));
|
|
57902
57935
|
return yield* exports_Effect.forEach(rows, (raw3) => {
|
|
57903
57936
|
const { flags: _flags, ...message } = raw3;
|
|
57904
57937
|
return messageToInboundEvents(message, directory2, exports_Option.getOrUndefined(current2)?.identity, base, renderedFor);
|
|
@@ -58273,20 +58306,17 @@ var sanitiseProjectSlug = (raw3) => {
|
|
|
58273
58306
|
const filtered = dashed.replace(/[^a-z0-9-]/g, "-");
|
|
58274
58307
|
const collapsed = filtered.replace(/-+/g, "-");
|
|
58275
58308
|
const trimmed2 = collapsed.replace(/^-+|-+$/g, "");
|
|
58276
|
-
if (
|
|
58277
|
-
return exports_Option.none();
|
|
58278
|
-
const truncated = trimmed2.slice(0, 12).replace(/-+$/, "");
|
|
58279
|
-
if (exports_String.isEmpty(truncated))
|
|
58280
|
-
return exports_Option.none();
|
|
58281
|
-
if (!/^[a-z]/.test(truncated))
|
|
58309
|
+
if (!/^[a-z]/.test(trimmed2))
|
|
58282
58310
|
return exports_Option.none();
|
|
58283
|
-
return exports_Option.some(
|
|
58311
|
+
return exports_Option.some(trimmed2);
|
|
58284
58312
|
};
|
|
58313
|
+
var BOT_NAME_PROJECT_MAX = 12;
|
|
58285
58314
|
var composeBotName = (args2) => {
|
|
58286
58315
|
const suffix = args2.sessionId.slice(0, 8);
|
|
58287
58316
|
if (args2.project === undefined)
|
|
58288
58317
|
return decodeBotNameSync(`cc-${suffix}`);
|
|
58289
|
-
|
|
58318
|
+
const project3 = args2.project.slice(0, BOT_NAME_PROJECT_MAX).replace(/-+$/, "");
|
|
58319
|
+
return decodeBotNameSync(`cc-${project3}-${suffix}`);
|
|
58290
58320
|
};
|
|
58291
58321
|
var { InRepo, NotInRepo, $match: matchGitContext } = exports_Data.taggedEnum();
|
|
58292
58322
|
var basename2 = (path) => {
|
|
@@ -58694,7 +58724,7 @@ var createEphemeralIdentityCache = (deps) => exports_Effect.map(exports_Synchron
|
|
|
58694
58724
|
releaseAllBound: () => releaseBoundSlot
|
|
58695
58725
|
};
|
|
58696
58726
|
});
|
|
58697
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
58727
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
|
|
58698
58728
|
function isZ4Schema(s) {
|
|
58699
58729
|
const schema = s;
|
|
58700
58730
|
return !!schema._zod;
|
|
@@ -58757,7 +58787,7 @@ function getLiteralValue(schema) {
|
|
|
58757
58787
|
return;
|
|
58758
58788
|
}
|
|
58759
58789
|
|
|
58760
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
58790
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
|
|
58761
58791
|
function isTerminal(status3) {
|
|
58762
58792
|
return status3 === "completed" || status3 === "failed" || status3 === "cancelled";
|
|
58763
58793
|
}
|
|
@@ -58766,7 +58796,7 @@ function isTerminal(status3) {
|
|
|
58766
58796
|
var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
|
|
58767
58797
|
// node_modules/.bun/zod-to-json-schema@3.25.2+68a1e3a0c4588df3/node_modules/zod-to-json-schema/dist/esm/parsers/string.js
|
|
58768
58798
|
var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
|
|
58769
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
58799
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
|
|
58770
58800
|
function getMethodLiteral(schema) {
|
|
58771
58801
|
const shape = getObjectShape(schema);
|
|
58772
58802
|
const methodSchema = shape?.method;
|
|
@@ -58787,7 +58817,7 @@ function parseWithCompat(schema, data) {
|
|
|
58787
58817
|
return result.data;
|
|
58788
58818
|
}
|
|
58789
58819
|
|
|
58790
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
58820
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
|
|
58791
58821
|
var DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;
|
|
58792
58822
|
|
|
58793
58823
|
class Protocol {
|
|
@@ -59628,7 +59658,7 @@ function mergeCapabilities(base, additional) {
|
|
|
59628
59658
|
return result;
|
|
59629
59659
|
}
|
|
59630
59660
|
|
|
59631
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
59661
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
|
|
59632
59662
|
var import_ajv = __toESM(require_ajv(), 1);
|
|
59633
59663
|
var import_ajv_formats = __toESM(require_dist(), 1);
|
|
59634
59664
|
function createDefaultAjvInstance() {
|
|
@@ -59668,7 +59698,7 @@ class AjvJsonSchemaValidator {
|
|
|
59668
59698
|
}
|
|
59669
59699
|
}
|
|
59670
59700
|
|
|
59671
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
59701
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
59672
59702
|
class ExperimentalServerTasks {
|
|
59673
59703
|
constructor(_server) {
|
|
59674
59704
|
this._server = _server;
|
|
@@ -59746,7 +59776,7 @@ class ExperimentalServerTasks {
|
|
|
59746
59776
|
}
|
|
59747
59777
|
}
|
|
59748
59778
|
|
|
59749
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
59779
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
|
|
59750
59780
|
function assertToolsCallTaskCapability(requests, method, entityName) {
|
|
59751
59781
|
if (!requests) {
|
|
59752
59782
|
throw new Error(`${entityName} does not support task creation (required for ${method})`);
|
|
@@ -59781,7 +59811,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
|
|
|
59781
59811
|
}
|
|
59782
59812
|
}
|
|
59783
59813
|
|
|
59784
|
-
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.
|
|
59814
|
+
// node_modules/.bun/@modelcontextprotocol+sdk@1.30.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
|
|
59785
59815
|
class Server extends Protocol {
|
|
59786
59816
|
constructor(_serverInfo, options5) {
|
|
59787
59817
|
super(options5);
|
|
@@ -60106,10 +60136,10 @@ class Server extends Protocol {
|
|
|
60106
60136
|
}
|
|
60107
60137
|
|
|
60108
60138
|
// packages/mcp/mcp-server.ts
|
|
60109
|
-
var PLUGIN_VERSION = "0.
|
|
60139
|
+
var PLUGIN_VERSION = "0.25.0";
|
|
60110
60140
|
var COMMY_INSTRUCTIONS = `**Substrate.** commy is the inter-agent channel: agents and humans coordinate here. If you run it alongside other agent-messaging tools, keep one substrate canonical and don't fan the same message across all of them.
|
|
60111
60141
|
|
|
60112
|
-
**Channels.** Each project has one channel: \`#<project-slug>\` where the slug is resolved per session as \`COMMY_PROJECT\` env > git remote \`origin\` basename > git root basename. Sessions launched outside a git repo (e.g. \`/tmp\`, \`$HOME\`) have no project channel and should post to \`#general\` instead. Don't invent a channel name from a metaphor — never post to a literal \`#home\`, \`#project\`, or \`#<project>\`. Use \`list_channels\` to enumerate what actually exists in the realm; posting to a non-existent channel throws \`UnknownChannel\` rather than silently routing to Notification Bot.
|
|
60142
|
+
**Channels.** Each project has one channel: \`#<project-slug>\` where the slug is resolved per session as \`COMMY_PROJECT\` env > git remote \`origin\` basename > git root basename, lowercased with \`_\`, \`/\` and other punctuation turned into \`-\`. The slug is the whole name and is never shortened; your bot name may carry a shortened form of it, so don't read your channel off your bot name. Sessions launched outside a git repo (e.g. \`/tmp\`, \`$HOME\`) have no project channel and should post to \`#general\` instead. Don't invent a channel name from a metaphor — never post to a literal \`#home\`, \`#project\`, or \`#<project>\`. Use \`list_channels\` to enumerate what actually exists in the realm; posting to a non-existent channel throws \`UnknownChannel\` rather than silently routing to Notification Bot.
|
|
60113
60143
|
|
|
60114
60144
|
**Topics.** A topic is a logical thread of conversation within a channel; the \`post\` tool's \`thread\` argument names it (Zulip calls these "topics"). Open a new topic when the work shifts — a fresh task, a new question, a different incident — and reply into an existing one when you're continuing the same line of work. Name topics by the work, not the speaker: \`payments-migration\`, \`auth-token-refresh\`, \`events-queue-expiry\` — not \`bot-debugging\` or \`alice-asked\`. Top-level channel chatter (omit \`thread\`) is for terse status pings only; anything substantive deserves a topic.
|
|
60115
60145
|
|