agentmesh-ai 0.2.1 → 0.3.1

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 (80) hide show
  1. package/GUIDE.md +155 -286
  2. package/README.md +127 -144
  3. package/dist/cli/commands/init.d.ts.map +1 -1
  4. package/dist/cli/commands/init.js +41 -22
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/commands/join.d.ts +1 -5
  7. package/dist/cli/commands/join.d.ts.map +1 -1
  8. package/dist/cli/commands/join.js +99 -76
  9. package/dist/cli/commands/join.js.map +1 -1
  10. package/dist/cli/commands/serve.d.ts.map +1 -1
  11. package/dist/cli/commands/serve.js +8 -1
  12. package/dist/cli/commands/serve.js.map +1 -1
  13. package/dist/cli/commands/setup.d.ts.map +1 -1
  14. package/dist/cli/commands/setup.js +31 -10
  15. package/dist/cli/commands/setup.js.map +1 -1
  16. package/dist/cli/commands/status.d.ts.map +1 -1
  17. package/dist/cli/commands/status.js +15 -0
  18. package/dist/cli/commands/status.js.map +1 -1
  19. package/dist/cli/index.js +3 -4
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cloud/cloud-conversation.d.ts +83 -0
  22. package/dist/cloud/cloud-conversation.d.ts.map +1 -0
  23. package/dist/cloud/cloud-conversation.js +357 -0
  24. package/dist/cloud/cloud-conversation.js.map +1 -0
  25. package/dist/cloud/index.d.ts +4 -0
  26. package/dist/cloud/index.d.ts.map +1 -0
  27. package/dist/cloud/index.js +3 -0
  28. package/dist/cloud/index.js.map +1 -0
  29. package/dist/cloud/supabase-client.d.ts +29 -0
  30. package/dist/cloud/supabase-client.d.ts.map +1 -0
  31. package/dist/cloud/supabase-client.js +135 -0
  32. package/dist/cloud/supabase-client.js.map +1 -0
  33. package/dist/conversation/server.d.ts.map +1 -1
  34. package/dist/conversation/server.js +6 -0
  35. package/dist/conversation/server.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/mcp/conversation-tools.d.ts +5 -1
  41. package/dist/mcp/conversation-tools.d.ts.map +1 -1
  42. package/dist/mcp/conversation-tools.js +202 -149
  43. package/dist/mcp/conversation-tools.js.map +1 -1
  44. package/dist/mcp/index.js +94 -36
  45. package/dist/mcp/index.js.map +1 -1
  46. package/dist/mcp/memory-tools.d.ts +20 -2
  47. package/dist/mcp/memory-tools.d.ts.map +1 -1
  48. package/dist/mcp/memory-tools.js +88 -44
  49. package/dist/mcp/memory-tools.js.map +1 -1
  50. package/dist/memory/index.d.ts +1 -0
  51. package/dist/memory/index.d.ts.map +1 -1
  52. package/dist/memory/index.js +1 -0
  53. package/dist/memory/index.js.map +1 -1
  54. package/dist/memory/merge-view.d.ts.map +1 -1
  55. package/dist/memory/merge-view.js +5 -4
  56. package/dist/memory/merge-view.js.map +1 -1
  57. package/dist/memory/reader.js +2 -2
  58. package/dist/memory/reader.js.map +1 -1
  59. package/dist/memory/schema.d.ts +3 -0
  60. package/dist/memory/schema.d.ts.map +1 -1
  61. package/dist/memory/schema.js +1 -0
  62. package/dist/memory/schema.js.map +1 -1
  63. package/dist/memory/types.d.ts +1 -0
  64. package/dist/memory/types.d.ts.map +1 -1
  65. package/dist/memory/write-utils.d.ts +30 -0
  66. package/dist/memory/write-utils.d.ts.map +1 -0
  67. package/dist/memory/write-utils.js +98 -0
  68. package/dist/memory/write-utils.js.map +1 -0
  69. package/dist/memory/writer.d.ts.map +1 -1
  70. package/dist/memory/writer.js +21 -84
  71. package/dist/memory/writer.js.map +1 -1
  72. package/dist/utils/id.d.ts +2 -0
  73. package/dist/utils/id.d.ts.map +1 -1
  74. package/dist/utils/id.js +4 -0
  75. package/dist/utils/id.js.map +1 -1
  76. package/dist/utils/notify.d.ts +2 -0
  77. package/dist/utils/notify.d.ts.map +1 -0
  78. package/dist/utils/notify.js +50 -0
  79. package/dist/utils/notify.js.map +1 -0
  80. package/package.json +5 -4
@@ -1,3 +1,4 @@
1
+ import { getEffectiveStatus } from './write-utils.js';
1
2
  /** Merge all agent memories into a single sorted list, with optional filtering. */
2
3
  export function mergeMemories(memories, options) {
3
4
  let entries = [];
@@ -38,11 +39,11 @@ export function mergeMemories(memories, options) {
38
39
  function entryScore(entry, now, recentWindow) {
39
40
  let score = 0;
40
41
  // Status weight: protected > proposal > auto
41
- const status = entry.status ?? (entry.protected ? 'protected' : 'auto');
42
+ const status = getEffectiveStatus(entry);
42
43
  if (status === 'protected')
43
- score += 100;
44
+ score += 30;
44
45
  else if (status === 'proposal')
45
- score += 50;
46
+ score += 15;
46
47
  // Recency weight: entries within last 7 days get a boost
47
48
  const entryTime = new Date(entry.date).getTime();
48
49
  if (now - entryTime < recentWindow) {
@@ -60,7 +61,7 @@ export function formatMergedMemories(entries, totalBeforeLimit) {
60
61
  const lines = [];
61
62
  lines.push(`# Shared Memory (${entries.length} entries)\n`);
62
63
  for (const entry of entries) {
63
- const effectiveStatus = entry.status ?? (entry.protected ? 'protected' : 'auto');
64
+ const effectiveStatus = getEffectiveStatus(entry);
64
65
  const badge = effectiveStatus === 'protected' ? ' 🔒' : effectiveStatus === 'proposal' ? ' 📋' : '';
65
66
  lines.push(`## ${entry.topic}${badge}`);
66
67
  lines.push(`Agent: ${entry.agent} (${entry.agent_role})`);
@@ -1 +1 @@
1
- {"version":3,"file":"merge-view.js","sourceRoot":"","sources":["../../src/memory/merge-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-view.js","sourceRoot":"","sources":["../../src/memory/merge-view.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export async function readHubConfig(agentHubDir) {
12
12
  return null;
13
13
  const result = hubConfigSchema.safeParse(raw);
14
14
  if (!result.success) {
15
- console.error('Warning: hub.yaml has invalid format, using defaults');
15
+ process.stderr.write('[agentmesh] hub.yaml has invalid format, using defaults\n');
16
16
  return null;
17
17
  }
18
18
  return result.data;
@@ -25,7 +25,7 @@ export async function readAgentMemory(filePath) {
25
25
  const result = agentMemoryFileSchema.safeParse(raw);
26
26
  if (!result.success) {
27
27
  // Tolerate parse errors - skip this file rather than crash
28
- console.error(`Warning: ${filePath} has invalid format, skipping`);
28
+ process.stderr.write(`[agentmesh] ${filePath} has invalid format, skipping\n`);
29
29
  return null;
30
30
  }
31
31
  return result.data;
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/memory/reader.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGrE,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAU,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAU,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,2DAA2D;QAC3D,OAAO,CAAC,KAAK,CAAC,YAAY,QAAQ,+BAA+B,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE9C,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/memory/reader.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGrE,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAU,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAU,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,2DAA2D;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,QAAQ,iCAAiC,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE9C,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -114,6 +114,7 @@ export declare const hubConfigSchema: z.ZodObject<{
114
114
  project: z.ZodString;
115
115
  created: z.ZodString;
116
116
  version: z.ZodDefault<z.ZodString>;
117
+ team_id: z.ZodOptional<z.ZodString>;
117
118
  agents: z.ZodDefault<z.ZodArray<z.ZodObject<{
118
119
  id: z.ZodString;
119
120
  display_name: z.ZodString;
@@ -140,10 +141,12 @@ export declare const hubConfigSchema: z.ZodObject<{
140
141
  id: string;
141
142
  display_name: string;
142
143
  }[];
144
+ team_id?: string | undefined;
143
145
  }, {
144
146
  project: string;
145
147
  created: string;
146
148
  version?: string | undefined;
149
+ team_id?: string | undefined;
147
150
  agents?: {
148
151
  role: string;
149
152
  tool: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK1B,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAC"}
@@ -29,6 +29,7 @@ export const hubConfigSchema = z.object({
29
29
  project: z.string().min(1),
30
30
  created: z.string(),
31
31
  version: z.string().default('1.0'),
32
+ team_id: z.string().optional(),
32
33
  agents: z.array(agentInfoSchema).default([]),
33
34
  });
34
35
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,kBAAkB;IACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/memory/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,kBAAkB;IACrD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAC"}
@@ -34,6 +34,7 @@ export interface HubConfig {
34
34
  project: string;
35
35
  created: string;
36
36
  version: string;
37
+ team_id?: string;
37
38
  agents: AgentInfo[];
38
39
  }
39
40
  /** A memory entry with its source agent attached (used in merged views) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAE7D,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,sCAAsC;AACtC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oCAAoC;AACpC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CAEpB;AAED,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iCAAiC;AACjC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAE7D,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,sCAAsC;AACtC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oCAAoC;AACpC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CAEpB;AAED,iCAAiC;AACjC,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iCAAiC;AACjC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,mCAAmC;AACnC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,30 @@
1
+ import type { AgentMemoryFile, MemoryEntry, MemoryStatus, WriteMemoryOptions, WriteResult } from './types.js';
2
+ /** Resolve the effective status of a memory entry (handles backward compat). */
3
+ export declare function getEffectiveStatus(entry: {
4
+ status?: MemoryStatus;
5
+ protected?: boolean;
6
+ }): MemoryStatus;
7
+ /**
8
+ * Check if writing to this topic is blocked by protection rules.
9
+ * Returns a blocked WriteResult if the topic is protected by another agent,
10
+ * and an optional proposal warning if someone has a pending proposal.
11
+ */
12
+ export declare function checkProtection(allMemories: AgentMemoryFile[], agentId: string, topic: string): {
13
+ blocked?: WriteResult;
14
+ proposalWarning?: string;
15
+ };
16
+ /**
17
+ * Validate content for secrets. Returns a blocked WriteResult if secrets are found.
18
+ */
19
+ export declare function validateContent(content: string): {
20
+ blocked?: WriteResult;
21
+ warnings: string[];
22
+ };
23
+ /** Build a new MemoryEntry from write options. */
24
+ export declare function buildMemoryEntry(options: WriteMemoryOptions, now: string): MemoryEntry;
25
+ /**
26
+ * Upsert a new entry into an entries array (update by topic or append).
27
+ * Preserves status/owner from old entries when not explicitly set.
28
+ */
29
+ export declare function upsertEntry(entries: MemoryEntry[], newEntry: MemoryEntry, options: WriteMemoryOptions): void;
30
+ //# sourceMappingURL=write-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-utils.d.ts","sourceRoot":"","sources":["../../src/memory/write-utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9G,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,YAAY,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAEtG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,eAAe,EAAE,EAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ;IAAE,OAAO,CAAC,EAAE,WAAW,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CA8BrD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAa9F;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAatF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EAAE,EACtB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAiBN"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Shared write utilities for memory operations.
3
+ *
4
+ * Used by both local writer (writer.ts) and cloud writer (supabase-client.ts)
5
+ * to eliminate duplicated protection checks, entry construction, and status logic.
6
+ */
7
+ import { scanForSecrets } from './secret-scanner.js';
8
+ /** Resolve the effective status of a memory entry (handles backward compat). */
9
+ export function getEffectiveStatus(entry) {
10
+ return entry.status ?? (entry.protected ? 'protected' : 'auto');
11
+ }
12
+ /**
13
+ * Check if writing to this topic is blocked by protection rules.
14
+ * Returns a blocked WriteResult if the topic is protected by another agent,
15
+ * and an optional proposal warning if someone has a pending proposal.
16
+ */
17
+ export function checkProtection(allMemories, agentId, topic) {
18
+ for (const memory of allMemories) {
19
+ if (memory.agent === agentId)
20
+ continue;
21
+ const matchingEntry = memory.entries.find(e => e.topic.toLowerCase() === topic.toLowerCase());
22
+ if (!matchingEntry)
23
+ continue;
24
+ const effectiveStatus = getEffectiveStatus(matchingEntry);
25
+ if (effectiveStatus === 'protected') {
26
+ const owner = matchingEntry.owner ?? memory.agent;
27
+ if (owner !== agentId) {
28
+ return {
29
+ blocked: {
30
+ success: false,
31
+ blocked: true,
32
+ reason: `Topic "${topic}" is protected (locked after a team decision) by ${memory.agent}${matchingEntry.owner ? ` (owner: ${matchingEntry.owner})` : ''}. Protected topics cannot be overwritten by other agents.\n\nTo propose changes, use the discuss tool to start a conversation about revising this decision. Or record your thoughts under a different topic, e.g. "${topic} — ${agentId} notes".`,
33
+ },
34
+ };
35
+ }
36
+ }
37
+ else if (effectiveStatus === 'proposal') {
38
+ return {
39
+ proposalWarning: `Note: ${memory.agent} has a proposal on "${matchingEntry.topic}". Your entry will coexist, but consider discussing before overriding.`,
40
+ };
41
+ }
42
+ }
43
+ return {};
44
+ }
45
+ /**
46
+ * Validate content for secrets. Returns a blocked WriteResult if secrets are found.
47
+ */
48
+ export function validateContent(content) {
49
+ const scanResult = scanForSecrets(content);
50
+ if (scanResult.blocked) {
51
+ return {
52
+ blocked: {
53
+ success: false,
54
+ blocked: true,
55
+ reason: `Content contains sensitive information that must not be shared:\n${scanResult.warnings.join('\n')}\n\nRemove the sensitive data and try again.`,
56
+ },
57
+ warnings: scanResult.warnings,
58
+ };
59
+ }
60
+ return { warnings: scanResult.warnings };
61
+ }
62
+ /** Build a new MemoryEntry from write options. */
63
+ export function buildMemoryEntry(options, now) {
64
+ const resolvedStatus = getEffectiveStatus({ status: options.status, protected: options.protected });
65
+ return {
66
+ topic: options.topic,
67
+ tags: options.tags,
68
+ content: options.content,
69
+ date: now,
70
+ status: resolvedStatus,
71
+ ...(options.decided_with ? { decided_with: options.decided_with } : {}),
72
+ ...(resolvedStatus === 'protected' ? { protected: true } : {}),
73
+ ...(options.owner ? { owner: options.owner } : {}),
74
+ };
75
+ }
76
+ /**
77
+ * Upsert a new entry into an entries array (update by topic or append).
78
+ * Preserves status/owner from old entries when not explicitly set.
79
+ */
80
+ export function upsertEntry(entries, newEntry, options) {
81
+ const existingIndex = entries.findIndex(e => e.topic.toLowerCase() === newEntry.topic.toLowerCase());
82
+ if (existingIndex >= 0) {
83
+ const oldEntry = entries[existingIndex];
84
+ const oldStatus = getEffectiveStatus(oldEntry);
85
+ if (!options.status && !options.protected && (oldStatus === 'protected' || oldStatus === 'proposal')) {
86
+ newEntry.status = oldStatus;
87
+ if (oldStatus === 'protected')
88
+ newEntry.protected = true;
89
+ if (oldEntry.owner)
90
+ newEntry.owner = oldEntry.owner;
91
+ }
92
+ entries[existingIndex] = newEntry;
93
+ }
94
+ else {
95
+ entries.push(newEntry);
96
+ }
97
+ }
98
+ //# sourceMappingURL=write-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-utils.js","sourceRoot":"","sources":["../../src/memory/write-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/memory/writer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnF,4DAA4D;AAC5D,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAmHtB"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/memory/writer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnF,4DAA4D;AAC5D,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CA2CtB"}
@@ -5,105 +5,42 @@ import { join } from 'node:path';
5
5
  import { readYaml, writeYaml } from '../utils/yaml.js';
6
6
  import { agentMemoryFileSchema } from './schema.js';
7
7
  import { readAllAgentMemories } from './reader.js';
8
- import { scanForSecrets } from './secret-scanner.js';
8
+ import { checkProtection, validateContent, buildMemoryEntry, upsertEntry } from './write-utils.js';
9
9
  /** Write a new memory entry to the current agent's file. */
10
10
  export async function writeMemoryEntry(agentHubDir, agentId, agentRole, agentTool, options) {
11
- // Check if this topic is protected or proposed by another agent
11
+ // Check protection rules
12
12
  const allMemories = await readAllAgentMemories(agentHubDir);
13
- let proposalWarning;
14
- for (const memory of allMemories) {
15
- if (memory.agent === agentId)
16
- continue;
17
- const matchingEntry = memory.entries.find(e => e.topic.toLowerCase() === options.topic.toLowerCase());
18
- if (!matchingEntry)
19
- continue;
20
- // Determine effective status (backward compat: protected=true → status 'protected')
21
- const effectiveStatus = matchingEntry.status ?? (matchingEntry.protected ? 'protected' : 'auto');
22
- if (effectiveStatus === 'protected') {
23
- const owner = matchingEntry.owner ?? memory.agent;
24
- if (owner !== agentId) {
25
- return {
26
- success: false,
27
- blocked: true,
28
- reason: `This topic is protected by ${memory.agent}${matchingEntry.owner ? ` (owner: ${matchingEntry.owner})` : ''}. Record your thoughts under a different topic name, e.g. "${options.topic} — ${agentId} notes".`,
29
- };
30
- }
31
- }
32
- else if (effectiveStatus === 'proposal') {
33
- proposalWarning = `Note: ${memory.agent} has a proposal on "${matchingEntry.topic}". Your entry will coexist, but consider discussing before overriding.`;
34
- }
35
- }
36
- // Scan for sensitive information before writing
37
- const scanResult = scanForSecrets(options.content);
38
- if (scanResult.blocked) {
39
- return {
40
- success: false,
41
- blocked: true,
42
- reason: `Content contains sensitive information that must not be shared:\n${scanResult.warnings.join('\n')}\n\nRemove the sensitive data and try again.`,
43
- };
44
- }
13
+ const { blocked, proposalWarning } = checkProtection(allMemories, agentId, options.topic);
14
+ if (blocked)
15
+ return blocked;
16
+ // Scan for secrets
17
+ const { blocked: secretBlocked, warnings } = validateContent(options.content);
18
+ if (secretBlocked)
19
+ return secretBlocked;
20
+ // Read or create agent's memory file
45
21
  const filePath = join(agentHubDir, 'memory', `${agentId}.yaml`);
46
- // Read existing file or create new one
47
- let memoryFile;
48
22
  const existing = await readYaml(filePath);
23
+ let memoryFile;
49
24
  if (existing) {
50
25
  const parsed = agentMemoryFileSchema.safeParse(existing);
51
- if (parsed.success) {
52
- memoryFile = parsed.data;
53
- }
54
- else {
55
- memoryFile = {
56
- agent: agentId,
57
- role: agentRole,
58
- tool: agentTool,
59
- last_active: new Date().toISOString(),
60
- entries: [],
61
- };
62
- }
26
+ memoryFile = parsed.success ? parsed.data : {
27
+ agent: agentId, role: agentRole, tool: agentTool,
28
+ last_active: new Date().toISOString(), entries: [],
29
+ };
63
30
  }
64
31
  else {
65
32
  memoryFile = {
66
- agent: agentId,
67
- role: agentRole,
68
- tool: agentTool,
69
- last_active: new Date().toISOString(),
70
- entries: [],
33
+ agent: agentId, role: agentRole, tool: agentTool,
34
+ last_active: new Date().toISOString(), entries: [],
71
35
  };
72
36
  }
37
+ // Build and upsert entry
73
38
  const now = new Date().toISOString();
74
- // Check if there's an existing entry with the same topic - update it
75
- const existingIndex = memoryFile.entries.findIndex(e => e.topic.toLowerCase() === options.topic.toLowerCase());
76
- // Resolve status: explicit status > legacy protected flag > default 'auto'
77
- const resolvedStatus = options.status ?? (options.protected ? 'protected' : 'auto');
78
- const newEntry = {
79
- topic: options.topic,
80
- tags: options.tags,
81
- content: options.content,
82
- date: now,
83
- status: resolvedStatus,
84
- ...(options.decided_with ? { decided_with: options.decided_with } : {}),
85
- ...(resolvedStatus === 'protected' ? { protected: true } : {}), // backward compat
86
- ...(options.owner ? { owner: options.owner } : {}),
87
- };
88
- if (existingIndex >= 0) {
89
- // Preserve status/protected/owner from old entry if not explicitly set
90
- const oldEntry = memoryFile.entries[existingIndex];
91
- const oldStatus = oldEntry.status ?? (oldEntry.protected ? 'protected' : 'auto');
92
- if (!options.status && !options.protected && (oldStatus === 'protected' || oldStatus === 'proposal')) {
93
- newEntry.status = oldStatus;
94
- if (oldStatus === 'protected')
95
- newEntry.protected = true;
96
- if (oldEntry.owner)
97
- newEntry.owner = oldEntry.owner;
98
- }
99
- memoryFile.entries[existingIndex] = newEntry;
100
- }
101
- else {
102
- memoryFile.entries.push(newEntry);
103
- }
39
+ const newEntry = buildMemoryEntry(options, now);
40
+ upsertEntry(memoryFile.entries, newEntry, options);
104
41
  memoryFile.last_active = now;
105
42
  await writeYaml(filePath, memoryFile);
106
- const allWarnings = [...scanResult.warnings];
43
+ const allWarnings = [...warnings];
107
44
  if (proposalWarning)
108
45
  allWarnings.push(proposalWarning);
109
46
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/memory/writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/memory/writer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGnG,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,OAAe,EACf,SAAiB,EACjB,SAAiB,EACjB,OAA2B;IAE3B,yBAAyB;IACzB,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1F,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,mBAAmB;IACnB,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,qCAAqC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAU,QAAQ,CAAC,CAAC;IACnD,IAAI,UAA2B,CAAC;IAEhC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzD,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;YAChD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE;SACnD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,UAAU,GAAG;YACX,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;YAChD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChD,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC;IAE7B,MAAM,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEtC,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAClC,IAAI,eAAe;QAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEvD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC"}
@@ -1,3 +1,5 @@
1
+ /** Generate a unique team ID (short, human-friendly). */
2
+ export declare function generateTeamId(): string;
1
3
  /** Generate a slug-style agent ID from display name and tool. */
2
4
  export declare function generateAgentId(displayName: string, tool: string): string;
3
5
  //# sourceMappingURL=id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAKA,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASzE"}
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAKA,yDAAyD;AACzD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CASzE"}
package/dist/utils/id.js CHANGED
@@ -2,6 +2,10 @@
2
2
  * Agent ID generation utilities.
3
3
  */
4
4
  import { randomBytes } from 'node:crypto';
5
+ /** Generate a unique team ID (short, human-friendly). */
6
+ export function generateTeamId() {
7
+ return `team-${randomBytes(4).toString('hex')}`;
8
+ }
5
9
  /** Generate a slug-style agent ID from display name and tool. */
6
10
  export function generateAgentId(displayName, tool) {
7
11
  const namePart = slugify(displayName);
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAY;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,qFAAqF;IACrF,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAEtE,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,mFAAmF;AACnF,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG;SACP,WAAW,EAAE;SACb,IAAI,EAAE;QACP,2DAA2D;SAC1D,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAG,0CAA0C;SACpE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAO,4BAA4B;SACtD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAI,gCAAgC;AAC/D,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,yDAAyD;AACzD,MAAM,UAAU,cAAc;IAC5B,OAAO,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAY;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,qFAAqF;IACrF,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAEtE,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,mFAAmF;AACnF,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG;SACP,WAAW,EAAE;SACb,IAAI,EAAE;QACP,2DAA2D;SAC1D,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAG,0CAA0C;SACpE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAO,4BAA4B;SACtD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAI,gCAAgC;AAC/D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function showDesktopNotification(title: string, body: string): void;
2
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/utils/notify.ts"],"names":[],"mappings":"AAWA,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA+BzE"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Desktop notification utility.
3
+ *
4
+ * Shows a native OS notification without any extra dependencies.
5
+ * Windows: PowerShell toast notification
6
+ * macOS: osascript
7
+ * Linux: notify-send
8
+ */
9
+ import { exec } from 'node:child_process';
10
+ import { platform } from 'node:os';
11
+ export function showDesktopNotification(title, body) {
12
+ if (process.env.AGENTHUB_NOTIFY === 'false')
13
+ return;
14
+ const os = platform();
15
+ try {
16
+ if (os === 'win32') {
17
+ // Windows: use PowerShell to show a balloon tip notification
18
+ const ps = `
19
+ Add-Type -AssemblyName System.Windows.Forms;
20
+ $n = New-Object System.Windows.Forms.NotifyIcon;
21
+ $n.Icon = [System.Drawing.SystemIcons]::Information;
22
+ $n.BalloonTipTitle = '${escapePS(title)}';
23
+ $n.BalloonTipText = '${escapePS(body)}';
24
+ $n.Visible = $true;
25
+ $n.ShowBalloonTip(8000);
26
+ Start-Sleep -Seconds 9;
27
+ $n.Dispose();
28
+ `.replace(/\n\s*/g, ' ');
29
+ exec(`powershell -NoProfile -Command "${ps}"`, { windowsHide: true });
30
+ }
31
+ else if (os === 'darwin') {
32
+ // macOS: osascript
33
+ exec(`osascript -e 'display notification "${escapeShell(body)}" with title "${escapeShell(title)}"'`);
34
+ }
35
+ else {
36
+ // Linux: notify-send
37
+ exec(`notify-send "${escapeShell(title)}" "${escapeShell(body)}"`);
38
+ }
39
+ }
40
+ catch {
41
+ // Notification is best-effort, never crash
42
+ }
43
+ }
44
+ function escapePS(str) {
45
+ return str.replace(/'/g, "''").replace(/`/g, '``').replace(/\$/g, '`$');
46
+ }
47
+ function escapeShell(str) {
48
+ return str.replace(/"/g, '\\"').replace(/`/g, '\\`');
49
+ }
50
+ //# sourceMappingURL=notify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/utils/notify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,IAAY;IACjE,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO;QAAE,OAAO;IAEpD,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YACnB,6DAA6D;YAC7D,MAAM,EAAE,GAAG;;;;gCAIe,QAAQ,CAAC,KAAK,CAAC;+BAChB,QAAQ,CAAC,IAAI,CAAC;;;;;OAKtC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAEzB,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,mBAAmB;YACnB,IAAI,CAAC,uCAAuC,WAAW,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,IAAI,CAAC,gBAAgB,WAAW,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentmesh-ai",
3
- "version": "0.2.1",
4
- "description": "Shared memory & conversation protocol for AI coding agents",
3
+ "version": "0.3.1",
4
+ "description": "Let your AI agents share knowledge and talk to each other",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -43,12 +43,13 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@modelcontextprotocol/sdk": "^1.12.0",
46
+ "@supabase/supabase-js": "^2.101.1",
47
+ "chalk": "^5.4.0",
46
48
  "commander": "^13.0.0",
47
49
  "inquirer": "^12.0.0",
48
50
  "ws": "^8.18.0",
49
51
  "yaml": "^2.7.0",
50
- "zod": "^3.25.0",
51
- "chalk": "^5.4.0"
52
+ "zod": "^3.25.0"
52
53
  },
53
54
  "devDependencies": {
54
55
  "@types/node": "^22.0.0",