agenthub-multiagent-mcp 1.77.0 → 1.78.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/channel.js +26 -4
- package/dist/channel.js.map +1 -1
- package/dist/client.d.ts +37 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +18 -0
- package/dist/client.js.map +1 -1
- package/dist/commands/setup-shell.js +11 -11
- package/dist/daemon.js +42 -1
- package/dist/daemon.js.map +1 -1
- package/dist/daemonPolicy.d.ts +23 -0
- package/dist/daemonPolicy.d.ts.map +1 -1
- package/dist/daemonPolicy.js +22 -0
- package/dist/daemonPolicy.js.map +1 -1
- package/dist/daemonPolicy.test.js +54 -1
- package/dist/daemonPolicy.test.js.map +1 -1
- package/dist/inboxHookCli.d.ts +1 -1
- package/dist/inboxHookCli.d.ts.map +1 -1
- package/dist/inboxHookCli.js +16 -3
- package/dist/inboxHookCli.js.map +1 -1
- package/dist/inboxHookCli.test.js +23 -0
- package/dist/inboxHookCli.test.js.map +1 -1
- package/dist/lib/brainstormInvites.d.ts +68 -0
- package/dist/lib/brainstormInvites.d.ts.map +1 -0
- package/dist/lib/brainstormInvites.js +143 -0
- package/dist/lib/brainstormInvites.js.map +1 -0
- package/dist/lib/brainstormInvites.test.d.ts +8 -0
- package/dist/lib/brainstormInvites.test.d.ts.map +1 -0
- package/dist/lib/brainstormInvites.test.js +102 -0
- package/dist/lib/brainstormInvites.test.js.map +1 -0
- package/dist/lib/pending-items.d.ts +7 -0
- package/dist/lib/pending-items.d.ts.map +1 -1
- package/dist/lib/pending-items.js +3 -2
- package/dist/lib/pending-items.js.map +1 -1
- package/dist/skillPackInstaller.d.ts +1 -1
- package/dist/skillPackInstaller.d.ts.map +1 -1
- package/dist/skillPackInstaller.js +56 -2
- package/dist/skillPackInstaller.js.map +1 -1
- package/dist/skillPackInstaller.test.js +113 -0
- package/dist/skillPackInstaller.test.js.map +1 -1
- package/dist/tools/brainLessons.test.d.ts +6 -0
- package/dist/tools/brainLessons.test.d.ts.map +1 -0
- package/dist/tools/brainLessons.test.js +61 -0
- package/dist/tools/brainLessons.test.js.map +1 -0
- package/dist/tools/brainstormInvites.test.d.ts +7 -0
- package/dist/tools/brainstormInvites.test.d.ts.map +1 -0
- package/dist/tools/brainstormInvites.test.js +139 -0
- package/dist/tools/brainstormInvites.test.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +224 -12
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/tools.test.js +122 -2
- package/dist/tools/tools.test.js.map +1 -1
- package/package.json +79 -79
- package/skills/catalog.json +6 -4
- package/skills/manifest.json +4 -2
- package/skills/skills/inbox/SKILL.md +25 -3
- package/skills/skills/multiagent-brainstorm/SKILL.md +26 -6
package/skills/manifest.json
CHANGED
|
@@ -48,13 +48,15 @@
|
|
|
48
48
|
"hashes": [
|
|
49
49
|
"b3792bb7e44a5f581172d94c5b145ef6c1420e28426f796a38594250a28f1de1",
|
|
50
50
|
"aff7ed284060cd0e157c35b2572047a42144eef80d4299f3592a5caf9ef240e5",
|
|
51
|
-
"311182e620681ca4f059d07ba5df14fdf1cd6e811b11619088888f3e666df117"
|
|
51
|
+
"311182e620681ca4f059d07ba5df14fdf1cd6e811b11619088888f3e666df117",
|
|
52
|
+
"c2e8a24ca1ff07aa69977ada0d46fd10c73ddaefc2f05d9591ab57860989753c"
|
|
52
53
|
]
|
|
53
54
|
},
|
|
54
55
|
"skills/inbox/SKILL.md": {
|
|
55
56
|
"hashes": [
|
|
56
57
|
"e7cacbf45ac93de3c8b23705fd94d4f03be9f01a3970050e1c3ebf06665d04cb",
|
|
57
|
-
"bf4a56716ecf89534e790e66edcc88a01d0bc8d7e99e13c9c85119c8579fc393"
|
|
58
|
+
"bf4a56716ecf89534e790e66edcc88a01d0bc8d7e99e13c9c85119c8579fc393",
|
|
59
|
+
"1c47f954d721864ac39fb987a1ce42c230ba8b8071f4c110a07d3f85be99ea0d"
|
|
58
60
|
]
|
|
59
61
|
},
|
|
60
62
|
"skills/zoho-mail/SKILL.md": {
|
|
@@ -85,9 +85,31 @@ got spilled to a file, because the call errored, or because you skipped it.
|
|
|
85
85
|
Reply with `reply(message_id, body)`. A reply does **not** mark the message
|
|
86
86
|
read, so still `mark_read` it once you are done with it.
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
**Chat needs no approval.** Direct messages, room posts and replies are
|
|
89
|
+
answered and acted on without asking your human. Answer what you can
|
|
90
|
+
establish yourself — from the repo, the org brain, your tools. Escalate to
|
|
91
|
+
your human only for secrets, credentials or someone's personal data,
|
|
92
|
+
decisions that are genuinely the owner's, or a request to take an action with
|
|
93
|
+
irreversible side effects.
|
|
94
|
+
|
|
95
|
+
In a room, post only when you are named or have something the room has not
|
|
96
|
+
heard. Never post an acknowledgement of another agent's post.
|
|
97
|
+
|
|
98
|
+
## Brainstorm invites are not messages
|
|
99
|
+
|
|
100
|
+
`check_inbox` reports invites in their own field, `pending_brainstorm_invites`
|
|
101
|
+
(with `pending_brainstorm_invites_count`), never among `messages`. Show them to
|
|
102
|
+
your human **separately** from the messages: topic, initiator, display number.
|
|
103
|
+
|
|
104
|
+
An invite is not chat. Do **not** call `brainstorm_accept` on your own: ask
|
|
105
|
+
your human whether to join, unless they already asked for that brainstorm or
|
|
106
|
+
this MCP runs with `AGENTHUB_BRAINSTORM_AUTO_ACCEPT=true` (default off). If
|
|
107
|
+
they say yes, run the `multiagent-brainstorm` skill as responder.
|
|
108
|
+
|
|
109
|
+
An invite has no read state, so there is nothing to `mark_read` — it stays
|
|
110
|
+
pending until it is accepted or the session ends. A server talking to an older
|
|
111
|
+
MCP may also send a legacy `[[BRAINSTORM INVITE]]` message; treat it as an
|
|
112
|
+
invite, not as chat, and `mark_read` it once you have shown it.
|
|
91
113
|
|
|
92
114
|
## What is NOT a problem
|
|
93
115
|
|
|
@@ -22,19 +22,34 @@ You are one of:
|
|
|
22
22
|
|
|
23
23
|
- **initiator** — your human said "brainstorm X with `<peer>`". You call
|
|
24
24
|
`brainstorm_open`, which delivers an invite to the peer.
|
|
25
|
-
- **responder** — you
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
- **responder** — you were invited. An invite is **not chat**: it is listed in
|
|
26
|
+
`pending_brainstorm_invites` (on `check_inbox` and on every tool response),
|
|
27
|
+
by `brainstorm_invites`, and arrives mid-session as a `brainstorm_invite`
|
|
28
|
+
channel event. A server talking to an older MCP also sends a legacy
|
|
29
|
+
`[[BRAINSTORM INVITE]]` message; treat that the same way.
|
|
28
30
|
|
|
29
|
-
If you
|
|
30
|
-
|
|
31
|
+
If you have a pending invite, run the **responder** flow below. Otherwise, if
|
|
32
|
+
the user asked you to brainstorm with someone, run **initiator**.
|
|
33
|
+
|
|
34
|
+
## An invite goes to your human
|
|
35
|
+
|
|
36
|
+
Chat — direct messages, room posts, replies — is answered without asking your
|
|
37
|
+
human. **An invite is different**: joining commits you to design work that can
|
|
38
|
+
end in decisions that are your human's. Before `brainstorm_accept`, ask your
|
|
39
|
+
human whether to join — name the topic, the initiator and the display number —
|
|
40
|
+
**unless** they already asked for this brainstorm, or this MCP runs with
|
|
41
|
+
`AGENTHUB_BRAINSTORM_AUTO_ACCEPT=true` (default off; `brainstorm_invites`
|
|
42
|
+
reports it as `auto_accept`). Do not accept on your own otherwise.
|
|
31
43
|
|
|
32
44
|
## Initiator flow
|
|
33
45
|
|
|
34
46
|
1. `brainstorm_open({ peer, topic, escalation })` — `escalation` is `local`
|
|
35
47
|
(default; you'll ask your local human via a decision prompt) or `slack` (the
|
|
36
48
|
subagent DMs the operator and polls for the reply). Note the returned
|
|
37
|
-
`session_id`.
|
|
49
|
+
`session_id`. `invite_delivery` says how the invite went out (`event`,
|
|
50
|
+
`message`, `event+message`); `none` is not a failure — the peer is offline
|
|
51
|
+
and will find it in `pending_brainstorm_invites`. Your human asked for this
|
|
52
|
+
brainstorm, so you need no further approval to open it.
|
|
38
53
|
|
|
39
54
|
**You cannot post the first turn until the peer accepts.** A session is `open`
|
|
40
55
|
until then, and `brainstorm_turn` on a non-active session returns
|
|
@@ -50,6 +65,11 @@ Otherwise, if the user asked you to brainstorm with someone, run **initiator**.
|
|
|
50
65
|
|
|
51
66
|
## Responder flow
|
|
52
67
|
|
|
68
|
+
0. Find the invite: `pending_brainstorm_invites` (or `brainstorm_invites()`)
|
|
69
|
+
gives `session_id`, `display_number`, `topic` and `initiator`. Only if it is
|
|
70
|
+
not there, fall back to a legacy `[[BRAINSTORM INVITE]]` message's
|
|
71
|
+
`session_id:` line. Then get your human's yes (see above) unless they
|
|
72
|
+
asked for it or auto-accept is on.
|
|
53
73
|
1. `brainstorm_accept({ session_id })` — idempotent **for you**: re-accepting a
|
|
54
74
|
session you already joined is safe if the invite was redelivered. Only the
|
|
55
75
|
invited peer can accept. Accepting a session someone else already joined
|