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.
Files changed (57) hide show
  1. package/dist/channel.js +26 -4
  2. package/dist/channel.js.map +1 -1
  3. package/dist/client.d.ts +37 -2
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +18 -0
  6. package/dist/client.js.map +1 -1
  7. package/dist/commands/setup-shell.js +11 -11
  8. package/dist/daemon.js +42 -1
  9. package/dist/daemon.js.map +1 -1
  10. package/dist/daemonPolicy.d.ts +23 -0
  11. package/dist/daemonPolicy.d.ts.map +1 -1
  12. package/dist/daemonPolicy.js +22 -0
  13. package/dist/daemonPolicy.js.map +1 -1
  14. package/dist/daemonPolicy.test.js +54 -1
  15. package/dist/daemonPolicy.test.js.map +1 -1
  16. package/dist/inboxHookCli.d.ts +1 -1
  17. package/dist/inboxHookCli.d.ts.map +1 -1
  18. package/dist/inboxHookCli.js +16 -3
  19. package/dist/inboxHookCli.js.map +1 -1
  20. package/dist/inboxHookCli.test.js +23 -0
  21. package/dist/inboxHookCli.test.js.map +1 -1
  22. package/dist/lib/brainstormInvites.d.ts +68 -0
  23. package/dist/lib/brainstormInvites.d.ts.map +1 -0
  24. package/dist/lib/brainstormInvites.js +143 -0
  25. package/dist/lib/brainstormInvites.js.map +1 -0
  26. package/dist/lib/brainstormInvites.test.d.ts +8 -0
  27. package/dist/lib/brainstormInvites.test.d.ts.map +1 -0
  28. package/dist/lib/brainstormInvites.test.js +102 -0
  29. package/dist/lib/brainstormInvites.test.js.map +1 -0
  30. package/dist/lib/pending-items.d.ts +7 -0
  31. package/dist/lib/pending-items.d.ts.map +1 -1
  32. package/dist/lib/pending-items.js +3 -2
  33. package/dist/lib/pending-items.js.map +1 -1
  34. package/dist/skillPackInstaller.d.ts +1 -1
  35. package/dist/skillPackInstaller.d.ts.map +1 -1
  36. package/dist/skillPackInstaller.js +56 -2
  37. package/dist/skillPackInstaller.js.map +1 -1
  38. package/dist/skillPackInstaller.test.js +113 -0
  39. package/dist/skillPackInstaller.test.js.map +1 -1
  40. package/dist/tools/brainLessons.test.d.ts +6 -0
  41. package/dist/tools/brainLessons.test.d.ts.map +1 -0
  42. package/dist/tools/brainLessons.test.js +61 -0
  43. package/dist/tools/brainLessons.test.js.map +1 -0
  44. package/dist/tools/brainstormInvites.test.d.ts +7 -0
  45. package/dist/tools/brainstormInvites.test.d.ts.map +1 -0
  46. package/dist/tools/brainstormInvites.test.js +139 -0
  47. package/dist/tools/brainstormInvites.test.js.map +1 -0
  48. package/dist/tools/index.d.ts.map +1 -1
  49. package/dist/tools/index.js +224 -12
  50. package/dist/tools/index.js.map +1 -1
  51. package/dist/tools/tools.test.js +122 -2
  52. package/dist/tools/tools.test.js.map +1 -1
  53. package/package.json +79 -79
  54. package/skills/catalog.json +6 -4
  55. package/skills/manifest.json +4 -2
  56. package/skills/skills/inbox/SKILL.md +25 -3
  57. package/skills/skills/multiagent-brainstorm/SKILL.md +26 -6
@@ -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
- Answer what you can establish yourself — from the repo, the org brain, your
89
- tools. Escalate to your human only for secrets, decisions that are genuinely
90
- theirs, or a request to take an action with side effects.
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 received a `[[BRAINSTORM INVITE]]` message (via your
26
- auto-inbox at session start, or mid-session). Call `brainstorm_accept` and
27
- mirror the initiator.
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 got a brainstorm invite in your inbox, run the **responder** flow below.
30
- Otherwise, if the user asked you to brainstorm with someone, run **initiator**.
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