@spoons-and-mirrors/iam 0.1.1 → 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
@@ -1,43 +1,46 @@
1
1
  # IAM Plugin for OpenCode
2
2
 
3
- Inter-agent messaging for parallel subagents.
3
+ Lets parallel subagents talk to each other. No configuration needed — just install and it works.
4
4
 
5
- ## The `iam` Tool
5
+ ## What It Does
6
6
 
7
- | Action | Parameters | Description |
8
- |--------|------------|-------------|
9
- | `announce` | `message` | Announce what you're working on |
10
- | `sessions` | - | List agents and what they're working on |
11
- | `read` | - | Read your messages (marks as read) |
12
- | `write` | `to`, `message` | Send a message |
7
+ When you spawn multiple agents with the `task` tool, they can:
8
+ - **Announce** what they're working on (and see all parallel agents)
9
+ - **Broadcast** messages to one, some, or all agents
10
+ - Get **notified** when new messages arrive
13
11
 
14
- ## Examples
12
+ ## How It Works
15
13
 
16
- ```
17
- iam(action="announce", message="Implementing user authentication")
18
- iam(action="sessions")
19
- iam(action="read")
20
- iam(action="write", to="agentA", message="What approach are you using?")
21
- ```
14
+ Agents get friendly names (agentA, agentB, ...) and automatically discover each other.
22
15
 
23
- ## How It Works
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.
24
19
 
25
- - **In-memory** - fast, no file clutter, resets on restart
26
- - **Auto-discovery** - agents register on first iam use, see each other immediately
27
- - **Simple aliases** - agents get friendly names (agentA, agentB, ...) instead of session IDs
28
- - **Urgent alerts** - recipients get `<system-reminder>` when they have unread mail
20
+ When an agent completes their task, they're encouraged to broadcast a completion message so others know.
29
21
 
30
- ## Files
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
31
 
32
32
  ```
33
- iam/
34
- ├── index.ts # Plugin + tool + hooks
35
- ├── prompt.ts # LLM-facing prompts
36
- ├── logger.ts # Logs to .logs/iam.log
37
- ├── PROGRESS.md # Development history
38
- └── README.md
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"
39
42
  ```
40
43
 
41
- ## Logs
44
+ ## Debug Logs
42
45
 
43
- Debug logs written to `.logs/iam.log` (clears on restart). Shows all tool calls, messages sent, sessions registered, and notifications injected.
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;AAiJjD,QAAA,MAAM,MAAM,EAAE,MAmKb,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,73 +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="..."`);
25
+ return lines;
26
+ }
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.`);
46
+ }
34
47
  return lines.join(`
35
48
  `);
36
49
  }
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(`---`);
50
+ function announceResult(alias, parallelAgents) {
51
+ const lines = [
52
+ `Announced! Other agents will see your description when they call announce.`,
53
+ ``,
54
+ `You are: ${alias}`
55
+ ];
56
+ if (parallelAgents.length > 0) {
57
+ lines.push(``);
58
+ lines.push(`--- Parallel Agents ---`);
59
+ lines.push(...formatAgentList(parallelAgents));
60
+ lines.push(``);
61
+ lines.push(`Use action="broadcast" to coordinate with them.`);
62
+ } else {
63
+ lines.push(``);
64
+ lines.push(`No other agents running yet.`);
47
65
  }
48
- lines.push(``);
49
- lines.push(`To reply: use action="write" with to="<sender>" and message="..."`);
50
66
  return lines.join(`
51
67
  `);
52
68
  }
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
- function announceResult(alias) {
57
- return `Announced! Other agents will see your description when they list sessions.
58
-
59
- You are: ${alias}`;
60
- }
61
- function writeUnknownRecipient(to, known) {
69
+ var BROADCAST_MISSING_MESSAGE = `Error: 'message' parameter is required for action="broadcast".`;
70
+ function broadcastUnknownRecipient(to, known) {
62
71
  const list = known.length > 0 ? `Known agents: ${known.join(", ")}` : "No agents available yet.";
63
72
  return `Error: Unknown recipient "${to}". ${list}`;
64
73
  }
65
- function writeResult(to, messageId) {
74
+ function broadcastResult(recipients, messageId) {
75
+ const recipientStr = recipients.length === 1 ? recipients[0] : recipients.join(", ");
66
76
  return `Message sent!
67
77
 
68
- To: ${to}
78
+ To: ${recipientStr}
69
79
  Message ID: ${messageId}
70
80
 
71
- The recipient will be notified.`;
81
+ Recipients will be notified.`;
72
82
  }
73
83
  function unknownAction(action) {
74
- return `Unknown action: ${action}`;
84
+ return `Unknown action: ${action}. Valid actions: announce, read, broadcast`;
75
85
  }
76
86
  var SYSTEM_PROMPT = `
77
87
  <instructions tool="iam">
@@ -81,12 +91,15 @@ You have access to an \`iam\` tool for communicating with other parallel agents.
81
91
 
82
92
  Usage:
83
93
  - action="announce", message="..." - Announce what you're working on (do this first!)
84
- - action="sessions" - See other agents and what they're working on
85
94
  - action="read" - Read your messages
86
- - 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)
87
97
 
88
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.
89
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: ..."
90
103
  </instructions>
91
104
  `;
92
105
  function urgentNotification(unreadCount) {
@@ -157,6 +170,10 @@ function setDescription(sessionId, description) {
157
170
  function getDescription(alias) {
158
171
  return agentDescriptions.get(alias);
159
172
  }
173
+ function hasAnnounced(sessionId) {
174
+ const alias = getAlias(sessionId);
175
+ return agentDescriptions.has(alias);
176
+ }
160
177
  function resolveAlias(aliasOrSessionId) {
161
178
  return aliasToSession.get(aliasOrSessionId) || (activeSessions.has(aliasOrSessionId) ? aliasOrSessionId : undefined);
162
179
  }
@@ -205,6 +222,12 @@ function getKnownAgents(sessionId) {
205
222
  }
206
223
  return agents;
207
224
  }
225
+ function getParallelAgents(sessionId) {
226
+ return getKnownAgents(sessionId).map((alias) => ({
227
+ alias,
228
+ description: getDescription(alias)
229
+ }));
230
+ }
208
231
  function registerSession(sessionId) {
209
232
  if (!activeSessions.has(sessionId)) {
210
233
  activeSessions.add(sessionId);
@@ -221,63 +244,63 @@ var plugin = async () => {
221
244
  iam: tool({
222
245
  description: TOOL_DESCRIPTION,
223
246
  args: {
224
- action: tool.schema.enum(["sessions", "read", "write", "announce"]).describe(ARG_DESCRIPTIONS.action),
247
+ action: tool.schema.enum(["read", "broadcast", "announce"]).describe(ARG_DESCRIPTIONS.action),
225
248
  to: tool.schema.string().optional().describe(ARG_DESCRIPTIONS.to),
226
249
  message: tool.schema.string().optional().describe(ARG_DESCRIPTIONS.message)
227
250
  },
228
251
  async execute(args, context) {
229
252
  const sessionId = context.sessionID;
230
253
  registerSession(sessionId);
231
- 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 });
232
257
  switch (args.action) {
233
- case "sessions": {
234
- const agents = getKnownAgents(sessionId);
235
- log.debug(LOG.TOOL, `sessions result`, { sessionId, agentCount: agents.length, agents });
236
- if (agents.length === 0) {
237
- return SESSIONS_EMPTY;
238
- }
239
- const agentsWithDesc = agents.map((alias) => ({
240
- alias,
241
- description: getDescription(alias)
242
- }));
243
- return sessionsResult(agentsWithDesc);
244
- }
245
258
  case "read": {
246
259
  const messages = getAllMessages(sessionId);
247
260
  const unreadCount = messages.filter((m) => !m.read).length;
248
- 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 });
249
262
  markAllRead(sessionId);
250
- if (messages.length === 0) {
251
- return READ_EMPTY;
252
- }
253
- return readResult(messages, unreadCount);
263
+ return readResult(alias, messages, unreadCount, announced);
254
264
  }
255
- case "write": {
256
- if (!args.to) {
257
- log.warn(LOG.TOOL, `write missing 'to'`, { sessionId });
258
- return WRITE_MISSING_TO;
259
- }
265
+ case "broadcast": {
260
266
  if (!args.message) {
261
- log.warn(LOG.TOOL, `write missing 'message'`, { sessionId });
262
- 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);
263
288
  }
264
- const recipientSessionId = resolveAlias(args.to);
265
- if (!recipientSessionId) {
266
- log.warn(LOG.TOOL, `write unknown recipient`, { sessionId, to: args.to });
267
- 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;
268
293
  }
269
- const senderAlias = getAlias(sessionId);
270
- const msg = sendMessage(senderAlias, recipientSessionId, args.message);
271
- return writeResult(args.to, msg.id);
294
+ return broadcastResult(targetAliases, messageId);
272
295
  }
273
296
  case "announce": {
274
297
  if (!args.message) {
275
- log.warn(LOG.TOOL, `announce missing 'message'`, { sessionId });
276
- 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.`;
277
300
  }
278
301
  setDescription(sessionId, args.message);
279
- const alias = getAlias(sessionId);
280
- return announceResult(alias);
302
+ const parallelAgents = getParallelAgents(sessionId);
303
+ return announceResult(alias, parallelAgents);
281
304
  }
282
305
  default:
283
306
  return unknownAction(args.action);
@@ -334,7 +357,7 @@ var plugin = async () => {
334
357
  }
335
358
  };
336
359
  };
337
- var inbox_default = plugin;
360
+ var iam_default = plugin;
338
361
  export {
339
- inbox_default as default
362
+ iam_default as default
340
363
  };
package/dist/prompt.d.ts CHANGED
@@ -1,28 +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 declare function announceResult(alias: string): string;
23
- export declare function writeUnknownRecipient(to: string, known: string[]): string;
24
- export declare function writeResult(to: string, messageId: string): string;
17
+ }[], unreadCount: number, hasAnnounced: boolean): string;
18
+ export declare function announceResult(alias: string, parallelAgents: ParallelAgent[]): 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;
25
22
  export declare function unknownAction(action: string): string;
26
- 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";
27
24
  export declare function urgentNotification(unreadCount: number): string;
28
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,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;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.1",
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",