@spoons-and-mirrors/iam 0.1.2 → 0.1.3

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/README.md CHANGED
@@ -5,17 +5,42 @@ Lets parallel subagents talk to each other. No configuration needed — just ins
5
5
  ## What It Does
6
6
 
7
7
  When you spawn multiple agents with the `task` tool, they can:
8
- - **Announce** what they're working on
9
- - **Discover** other agents and see what they're doing
10
- - **Message** each other to coordinate work
8
+ - **Announce** what they're working on (and see all parallel agents)
9
+ - **Broadcast** messages to one, some, or all agents
11
10
  - Get **notified** when new messages arrive
12
11
 
13
12
  ## How It Works
14
13
 
15
- Agents get friendly names (agentA, agentB, ...) and automatically discover each other. When an agent has unread messages, they get an urgent notification.
14
+ Agents get friendly names (agentA, agentB, ...) and automatically discover each other.
16
15
 
17
- The system lives in memoryfast, no file clutter, resets on restart.
16
+ When an agent announces, the response shows all other parallel agents whether they've announced yet or not. This gives agents instant awareness of who's working alongside them. Agents can re-announce to update their status.
17
+
18
+ Agents who haven't announced are told they MUST announce before continuing.
19
+
20
+ When an agent completes their task, they're encouraged to broadcast a completion message so others know.
21
+
22
+ ## Actions
23
+
24
+ | Action | Description |
25
+ |--------|-------------|
26
+ | `announce` | Declare what you're working on. Shows all parallel agents. Can re-announce to update. |
27
+ | `read` | Read your inbox (marks messages as read). |
28
+ | `broadcast` | Send a message. Use `to` for specific agent(s), or omit for all. |
29
+
30
+ ## Examples
31
+
32
+ ```
33
+ # Announce what you're doing (also shows parallel agents)
34
+ action="announce", message="Refactoring the auth module"
35
+
36
+ # Message everyone
37
+ action="broadcast", message="Found a bug in config.ts, heads up"
38
+
39
+ # Message specific agent(s)
40
+ action="broadcast", to="agentA", message="Can you check auth.ts?"
41
+ action="broadcast", to="agentA,agentC", message="Sync up on API changes"
42
+ ```
18
43
 
19
44
  ## Debug Logs
20
45
 
21
- For troubleshooting, check `.logs/iam.log` (clears on restart). Shows all tool calls, messages, and notifications.
46
+ For troubleshooting, check `.logs/iam.log` (clears on restart).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAkJjD,QAAA,MAAM,MAAM,EAAE,MAyKb,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAwJjD,QAAA,MAAM,MAAM,EAAE,MAoKb,CAAA;AAED,eAAe,MAAM,CAAA"}
package/dist/index.js CHANGED
@@ -5,86 +5,83 @@ import { tool } from "@opencode-ai/plugin";
5
5
  var TOOL_DESCRIPTION = `Inter-agent messaging. Use this to communicate with other parallel agents (task tools).
6
6
 
7
7
  Actions:
8
- - "sessions": Show agents you can message (e.g., agentA, agentB)
9
- - "read": Read all your messages (marks them as read)
10
- - "write": Send a message (requires 'to' and 'message' parameters)
11
- - "announce": Announce what you're working on (requires 'message' parameter)`;
8
+ - "announce": Announce what you're working on (do this first!). Shows all parallel agents. You can re-announce to update your status.
9
+ - "read": Read your messages (marks them as read)
10
+ - "broadcast": Send a message (requires 'message', optional 'to')`;
12
11
  var ARG_DESCRIPTIONS = {
13
12
  action: "Action to perform",
14
- to: "Recipient agent name, e.g. 'agentA' (required for 'write')",
15
- message: "Message content (required for 'write'), or self-description (required for 'announce')"
13
+ to: "Recipient(s): 'agentA', 'agentA,agentC', or 'all' (default: all)",
14
+ message: "Your announcement or message content"
16
15
  };
17
- var SESSIONS_EMPTY = `No other agents available yet.
18
-
19
- Agents will appear here when:
20
- - Parallel tasks are spawned by the same parent
21
- - Another agent sends you a message`;
22
- function sessionsResult(agents) {
23
- const lines = [`Agents you can message:
24
- `];
16
+ function formatAgentList(agents) {
17
+ const lines = [];
25
18
  for (const agent of agents) {
26
19
  if (agent.description) {
27
- lines.push(`- ${agent.alias}: ${agent.description}`);
20
+ lines.push(`• ${agent.alias} is working on: ${agent.description}`);
28
21
  } else {
29
- lines.push(`- ${agent.alias}`);
22
+ lines.push(`• ${agent.alias} is running (hasn't announced yet)`);
30
23
  }
31
24
  }
32
- lines.push(``);
33
- lines.push(`To send: use action="write" with to="<agent>" and message="..."`);
34
- return lines.join(`
35
- `);
25
+ return lines;
36
26
  }
37
- var READ_EMPTY = `No messages in your IAM inbox.`;
38
- function readResult(messages, unreadCount) {
39
- const lines = [`Your IAM inbox (${unreadCount} were unread):
40
- `, `---`];
41
- for (const msg of messages) {
42
- const time = new Date(msg.timestamp).toISOString();
43
- const status = msg.read ? "" : " [NEW]";
44
- lines.push(`[${time}] From: ${msg.from}${status}`);
45
- lines.push(msg.body);
46
- lines.push(`---`);
27
+ function readResult(alias, messages, unreadCount, hasAnnounced) {
28
+ const lines = [`You are: ${alias}`, ``];
29
+ if (messages.length === 0) {
30
+ lines.push(`No messages in your inbox.`);
31
+ } else {
32
+ lines.push(`Your inbox (${unreadCount} were unread):`, `---`);
33
+ for (const msg of messages) {
34
+ const time = new Date(msg.timestamp).toISOString();
35
+ const status = msg.read ? "" : " [NEW]";
36
+ lines.push(`[${time}] From: ${msg.from}${status}`);
37
+ lines.push(msg.body);
38
+ lines.push(`---`);
39
+ }
40
+ lines.push(``);
41
+ lines.push(`To reply: use action="broadcast" with to="<sender>" and message="..."`);
42
+ }
43
+ if (!hasAnnounced) {
44
+ lines.push(``);
45
+ lines.push(`IMPORTANT: You MUST use action="announce" to declare what you're working on before continuing.`);
47
46
  }
48
- lines.push(``);
49
- lines.push(`To reply: use action="write" with to="<sender>" and message="..."`);
50
47
  return lines.join(`
51
48
  `);
52
49
  }
53
- var WRITE_MISSING_TO = `Error: 'to' parameter is required for action="write".`;
54
- var WRITE_MISSING_MESSAGE = `Error: 'message' parameter is required for action="write".`;
55
- var ANNOUNCE_MISSING_MESSAGE = `Error: 'message' parameter is required for action="announce". Describe what you're working on.`;
56
50
  function announceResult(alias, parallelAgents) {
57
- const lines = [`Announced! Other agents will see your description when they list sessions.`, ``, `You are: ${alias}`];
51
+ const lines = [
52
+ `Announced! Other agents will see your description when they call announce.`,
53
+ ``,
54
+ `You are: ${alias}`
55
+ ];
58
56
  if (parallelAgents.length > 0) {
59
57
  lines.push(``);
60
58
  lines.push(`--- Parallel Agents ---`);
61
- for (const agent of parallelAgents) {
62
- if (agent.description) {
63
- lines.push(`• ${agent.alias} is working on: ${agent.description}`);
64
- } else {
65
- lines.push(`• ${agent.alias} is running (hasn't announced yet)`);
66
- }
67
- }
59
+ lines.push(...formatAgentList(parallelAgents));
68
60
  lines.push(``);
69
- lines.push(`Use action="write" to coordinate with them if needed.`);
61
+ lines.push(`Use action="broadcast" to coordinate with them.`);
62
+ } else {
63
+ lines.push(``);
64
+ lines.push(`No other agents running yet.`);
70
65
  }
71
66
  return lines.join(`
72
67
  `);
73
68
  }
74
- function writeUnknownRecipient(to, known) {
69
+ var BROADCAST_MISSING_MESSAGE = `Error: 'message' parameter is required for action="broadcast".`;
70
+ function broadcastUnknownRecipient(to, known) {
75
71
  const list = known.length > 0 ? `Known agents: ${known.join(", ")}` : "No agents available yet.";
76
72
  return `Error: Unknown recipient "${to}". ${list}`;
77
73
  }
78
- function writeResult(to, messageId) {
74
+ function broadcastResult(recipients, messageId) {
75
+ const recipientStr = recipients.length === 1 ? recipients[0] : recipients.join(", ");
79
76
  return `Message sent!
80
77
 
81
- To: ${to}
78
+ To: ${recipientStr}
82
79
  Message ID: ${messageId}
83
80
 
84
- The recipient will be notified.`;
81
+ Recipients will be notified.`;
85
82
  }
86
83
  function unknownAction(action) {
87
- return `Unknown action: ${action}`;
84
+ return `Unknown action: ${action}. Valid actions: announce, read, broadcast`;
88
85
  }
89
86
  var SYSTEM_PROMPT = `
90
87
  <instructions tool="iam">
@@ -94,12 +91,15 @@ You have access to an \`iam\` tool for communicating with other parallel agents.
94
91
 
95
92
  Usage:
96
93
  - action="announce", message="..." - Announce what you're working on (do this first!)
97
- - action="sessions" - See other agents and what they're working on
98
94
  - action="read" - Read your messages
99
- - action="write", to="agentA", message="..." - Send a message
95
+ - action="broadcast", message="..." - Message all agents
96
+ - action="broadcast", to="agentA", message="..." - Message specific agent(s)
100
97
 
101
98
  At the start of your task, use announce to let other agents know what you're doing.
99
+ You can re-announce to update your status as your task evolves.
102
100
  Check your inbox when notified about new messages.
101
+
102
+ When you complete your task, broadcast to all: "Done. Here's what I found/did: ..."
103
103
  </instructions>
104
104
  `;
105
105
  function urgentNotification(unreadCount) {
@@ -170,6 +170,10 @@ function setDescription(sessionId, description) {
170
170
  function getDescription(alias) {
171
171
  return agentDescriptions.get(alias);
172
172
  }
173
+ function hasAnnounced(sessionId) {
174
+ const alias = getAlias(sessionId);
175
+ return agentDescriptions.has(alias);
176
+ }
173
177
  function resolveAlias(aliasOrSessionId) {
174
178
  return aliasToSession.get(aliasOrSessionId) || (activeSessions.has(aliasOrSessionId) ? aliasOrSessionId : undefined);
175
179
  }
@@ -218,6 +222,12 @@ function getKnownAgents(sessionId) {
218
222
  }
219
223
  return agents;
220
224
  }
225
+ function getParallelAgents(sessionId) {
226
+ return getKnownAgents(sessionId).map((alias) => ({
227
+ alias,
228
+ description: getDescription(alias)
229
+ }));
230
+ }
221
231
  function registerSession(sessionId) {
222
232
  if (!activeSessions.has(sessionId)) {
223
233
  activeSessions.add(sessionId);
@@ -234,66 +244,62 @@ var plugin = async () => {
234
244
  iam: tool({
235
245
  description: TOOL_DESCRIPTION,
236
246
  args: {
237
- action: tool.schema.enum(["sessions", "read", "write", "announce"]).describe(ARG_DESCRIPTIONS.action),
247
+ action: tool.schema.enum(["read", "broadcast", "announce"]).describe(ARG_DESCRIPTIONS.action),
238
248
  to: tool.schema.string().optional().describe(ARG_DESCRIPTIONS.to),
239
249
  message: tool.schema.string().optional().describe(ARG_DESCRIPTIONS.message)
240
250
  },
241
251
  async execute(args, context) {
242
252
  const sessionId = context.sessionID;
243
253
  registerSession(sessionId);
244
- log.debug(LOG.TOOL, `iam action: ${args.action}`, { sessionId, args });
254
+ const alias = getAlias(sessionId);
255
+ const announced = hasAnnounced(sessionId);
256
+ log.debug(LOG.TOOL, `iam action: ${args.action}`, { sessionId, alias, args });
245
257
  switch (args.action) {
246
- case "sessions": {
247
- const agents = getKnownAgents(sessionId);
248
- log.debug(LOG.TOOL, `sessions result`, { sessionId, agentCount: agents.length, agents });
249
- if (agents.length === 0) {
250
- return SESSIONS_EMPTY;
251
- }
252
- const agentsWithDesc = agents.map((alias) => ({
253
- alias,
254
- description: getDescription(alias)
255
- }));
256
- return sessionsResult(agentsWithDesc);
257
- }
258
258
  case "read": {
259
259
  const messages = getAllMessages(sessionId);
260
260
  const unreadCount = messages.filter((m) => !m.read).length;
261
- log.debug(LOG.TOOL, `read iam`, { sessionId, total: messages.length, unread: unreadCount });
261
+ log.debug(LOG.TOOL, `read inbox`, { alias, total: messages.length, unread: unreadCount });
262
262
  markAllRead(sessionId);
263
- if (messages.length === 0) {
264
- return READ_EMPTY;
265
- }
266
- return readResult(messages, unreadCount);
263
+ return readResult(alias, messages, unreadCount, announced);
267
264
  }
268
- case "write": {
269
- if (!args.to) {
270
- log.warn(LOG.TOOL, `write missing 'to'`, { sessionId });
271
- return WRITE_MISSING_TO;
272
- }
265
+ case "broadcast": {
273
266
  if (!args.message) {
274
- log.warn(LOG.TOOL, `write missing 'message'`, { sessionId });
275
- return WRITE_MISSING_MESSAGE;
267
+ log.warn(LOG.TOOL, `broadcast missing 'message'`, { alias });
268
+ return BROADCAST_MISSING_MESSAGE;
269
+ }
270
+ const knownAgents = getKnownAgents(sessionId);
271
+ let targetAliases;
272
+ if (!args.to || args.to.toLowerCase() === "all") {
273
+ targetAliases = knownAgents;
274
+ } else {
275
+ targetAliases = args.to.split(",").map((s) => s.trim()).filter(Boolean);
276
+ }
277
+ if (targetAliases.length === 0) {
278
+ return `No agents to broadcast to. Use action="announce" to see parallel agents.`;
279
+ }
280
+ const recipientSessions = [];
281
+ for (const targetAlias of targetAliases) {
282
+ const recipientSessionId = resolveAlias(targetAlias);
283
+ if (!recipientSessionId) {
284
+ log.warn(LOG.TOOL, `broadcast unknown recipient`, { alias, to: targetAlias });
285
+ return broadcastUnknownRecipient(targetAlias, knownAgents);
286
+ }
287
+ recipientSessions.push(recipientSessionId);
276
288
  }
277
- const recipientSessionId = resolveAlias(args.to);
278
- if (!recipientSessionId) {
279
- log.warn(LOG.TOOL, `write unknown recipient`, { sessionId, to: args.to });
280
- return writeUnknownRecipient(args.to, getKnownAgents(sessionId));
289
+ let messageId = "";
290
+ for (const recipientSessionId of recipientSessions) {
291
+ const msg = sendMessage(alias, recipientSessionId, args.message);
292
+ messageId = msg.id;
281
293
  }
282
- const senderAlias = getAlias(sessionId);
283
- const msg = sendMessage(senderAlias, recipientSessionId, args.message);
284
- return writeResult(args.to, msg.id);
294
+ return broadcastResult(targetAliases, messageId);
285
295
  }
286
296
  case "announce": {
287
297
  if (!args.message) {
288
- log.warn(LOG.TOOL, `announce missing 'message'`, { sessionId });
289
- return ANNOUNCE_MISSING_MESSAGE;
298
+ log.warn(LOG.TOOL, `announce missing 'message'`, { alias });
299
+ return `Error: 'message' parameter is required for action="announce". Describe what you're working on.`;
290
300
  }
291
301
  setDescription(sessionId, args.message);
292
- const alias = getAlias(sessionId);
293
- const parallelAgents = getKnownAgents(sessionId).map((agentAlias) => ({
294
- alias: agentAlias,
295
- description: getDescription(agentAlias)
296
- }));
302
+ const parallelAgents = getParallelAgents(sessionId);
297
303
  return announceResult(alias, parallelAgents);
298
304
  }
299
305
  default:
package/dist/prompt.d.ts CHANGED
@@ -1,32 +1,25 @@
1
- export declare const TOOL_DESCRIPTION = "Inter-agent messaging. Use this to communicate with other parallel agents (task tools).\n\nActions:\n- \"sessions\": Show agents you can message (e.g., agentA, agentB)\n- \"read\": Read all your messages (marks them as read)\n- \"write\": Send a message (requires 'to' and 'message' parameters)\n- \"announce\": Announce what you're working on (requires 'message' parameter)";
1
+ export declare const TOOL_DESCRIPTION = "Inter-agent messaging. Use this to communicate with other parallel agents (task tools).\n\nActions:\n- \"announce\": Announce what you're working on (do this first!). Shows all parallel agents. You can re-announce to update your status.\n- \"read\": Read your messages (marks them as read)\n- \"broadcast\": Send a message (requires 'message', optional 'to')";
2
2
  export declare const ARG_DESCRIPTIONS: {
3
3
  readonly action: "Action to perform";
4
- readonly to: "Recipient agent name, e.g. 'agentA' (required for 'write')";
5
- readonly message: "Message content (required for 'write'), or self-description (required for 'announce')";
4
+ readonly to: "Recipient(s): 'agentA', 'agentA,agentC', or 'all' (default: all)";
5
+ readonly message: "Your announcement or message content";
6
6
  };
7
- export declare const SESSIONS_EMPTY = "No other agents available yet.\n\nAgents will appear here when:\n- Parallel tasks are spawned by the same parent\n- Another agent sends you a message";
8
- export declare function sessionsResult(agents: {
7
+ export interface ParallelAgent {
9
8
  alias: string;
10
9
  description?: string;
11
- }[]): string;
12
- export declare const READ_EMPTY = "No messages in your IAM inbox.";
13
- export declare function readResult(messages: {
10
+ }
11
+ export declare function formatAgentList(agents: ParallelAgent[]): string[];
12
+ export declare function readResult(alias: string, messages: {
14
13
  from: string;
15
14
  body: string;
16
15
  timestamp: number;
17
16
  read: boolean;
18
- }[], unreadCount: number): string;
19
- export declare const WRITE_MISSING_TO = "Error: 'to' parameter is required for action=\"write\".";
20
- export declare const WRITE_MISSING_MESSAGE = "Error: 'message' parameter is required for action=\"write\".";
21
- export declare const ANNOUNCE_MISSING_MESSAGE = "Error: 'message' parameter is required for action=\"announce\". Describe what you're working on.";
22
- export interface ParallelAgent {
23
- alias: string;
24
- description?: string;
25
- }
17
+ }[], unreadCount: number, hasAnnounced: boolean): string;
26
18
  export declare function announceResult(alias: string, parallelAgents: ParallelAgent[]): string;
27
- export declare function writeUnknownRecipient(to: string, known: string[]): string;
28
- export declare function writeResult(to: string, messageId: string): string;
19
+ export declare const BROADCAST_MISSING_MESSAGE = "Error: 'message' parameter is required for action=\"broadcast\".";
20
+ export declare function broadcastUnknownRecipient(to: string, known: string[]): string;
21
+ export declare function broadcastResult(recipients: string[], messageId: string): string;
29
22
  export declare function unknownAction(action: string): string;
30
- export declare const SYSTEM_PROMPT = "\n<instructions tool=\"iam\">\n# Inter-Agent Messaging\n\nYou have access to an `iam` tool for communicating with other parallel agents.\n\nUsage:\n- action=\"announce\", message=\"...\" - Announce what you're working on (do this first!)\n- action=\"sessions\" - See other agents and what they're working on\n- action=\"read\" - Read your messages\n- action=\"write\", to=\"agentA\", message=\"...\" - Send a message\n\nAt the start of your task, use announce to let other agents know what you're doing.\nCheck your inbox when notified about new messages.\n</instructions>\n";
23
+ export declare const SYSTEM_PROMPT = "\n<instructions tool=\"iam\">\n# Inter-Agent Messaging\n\nYou have access to an `iam` tool for communicating with other parallel agents.\n\nUsage:\n- action=\"announce\", message=\"...\" - Announce what you're working on (do this first!)\n- action=\"read\" - Read your messages\n- action=\"broadcast\", message=\"...\" - Message all agents\n- action=\"broadcast\", to=\"agentA\", message=\"...\" - Message specific agent(s)\n\nAt the start of your task, use announce to let other agents know what you're doing.\nYou can re-announce to update your status as your task evolves.\nCheck your inbox when notified about new messages.\n\nWhen you complete your task, broadcast to all: \"Done. Here's what I found/did: ...\"\n</instructions>\n";
31
24
  export declare function urgentNotification(unreadCount: number): string;
32
25
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../prompt.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,2XAMgD,CAAC;AAE9E,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAMX,eAAO,MAAM,cAAc,0JAIS,CAAC;AAErC,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAC,EAAE,GAAG,MAAM,CAYtF;AAED,eAAO,MAAM,UAAU,mCAAmC,CAAC;AAE3D,wBAAgB,UAAU,CACxB,QAAQ,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,EAAE,EAC1E,WAAW,EAAE,MAAM,GAClB,MAAM,CAiBR;AAED,eAAO,MAAM,gBAAgB,4DAA0D,CAAC;AACxF,eAAO,MAAM,qBAAqB,iEAA+D,CAAC;AAClG,eAAO,MAAM,wBAAwB,qGAAmG,CAAC;AAEzI,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,CAkBrF;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAMzE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD,eAAO,MAAM,aAAa,mkBAezB,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK9D"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../prompt.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,2WAKqC,CAAC;AAEnE,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAMX,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAUjE;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAAE,EAC5E,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,OAAO,GACpB,MAAM,CA0BR;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,CAmBrF;AAED,eAAO,MAAM,yBAAyB,qEAAmE,CAAC;AAE1G,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAG7E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG/E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD,eAAO,MAAM,aAAa,ouBAkBzB,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK9D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spoons-and-mirrors/iam",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Inter-agent messaging for OpenCode parallel subagents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",