@pcircle/memesh 4.8.1 → 4.8.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.
Files changed (149) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/mcp.json +7 -0
  4. package/.codex-plugin/plugin.json +6 -0
  5. package/AGENTS.md +13 -2
  6. package/README.de.md +11 -10
  7. package/README.md +23 -11
  8. package/README.zh-TW.md +23 -11
  9. package/dashboard/dist/index.html +9 -9
  10. package/dist/core/agent-message-inbox.d.ts +9 -0
  11. package/dist/core/agent-message-inbox.d.ts.map +1 -0
  12. package/dist/core/agent-message-inbox.js +31 -0
  13. package/dist/core/agent-message-inbox.js.map +1 -0
  14. package/dist/core/agent-messaging.d.ts +7 -0
  15. package/dist/core/agent-messaging.d.ts.map +1 -1
  16. package/dist/core/agent-messaging.js +28 -9
  17. package/dist/core/agent-messaging.js.map +1 -1
  18. package/dist/core/agent-router.d.ts +27 -20
  19. package/dist/core/agent-router.d.ts.map +1 -1
  20. package/dist/core/agent-router.js +114 -43
  21. package/dist/core/agent-router.js.map +1 -1
  22. package/dist/core/briefing.d.ts +1 -1
  23. package/dist/core/briefing.d.ts.map +1 -1
  24. package/dist/core/briefing.js +22 -6
  25. package/dist/core/briefing.js.map +1 -1
  26. package/dist/core/citation-rule.d.ts.map +1 -1
  27. package/dist/core/citation-rule.js +5 -2
  28. package/dist/core/citation-rule.js.map +1 -1
  29. package/dist/core/config.d.ts +4 -1
  30. package/dist/core/config.d.ts.map +1 -1
  31. package/dist/core/config.js +12 -3
  32. package/dist/core/config.js.map +1 -1
  33. package/dist/core/doctor.d.ts +8 -0
  34. package/dist/core/doctor.d.ts.map +1 -1
  35. package/dist/core/doctor.js +314 -12
  36. package/dist/core/doctor.js.map +1 -1
  37. package/dist/core/dreamer.d.ts +2 -0
  38. package/dist/core/dreamer.d.ts.map +1 -1
  39. package/dist/core/dreamer.js +7 -1
  40. package/dist/core/dreamer.js.map +1 -1
  41. package/dist/core/install-channel.d.ts +3 -0
  42. package/dist/core/install-channel.d.ts.map +1 -1
  43. package/dist/core/install-channel.js +79 -2
  44. package/dist/core/install-channel.js.map +1 -1
  45. package/dist/core/install-hooks.d.ts.map +1 -1
  46. package/dist/core/install-hooks.js +10 -6
  47. package/dist/core/install-hooks.js.map +1 -1
  48. package/dist/core/lesson-engine.d.ts +2 -1
  49. package/dist/core/lesson-engine.d.ts.map +1 -1
  50. package/dist/core/lesson-engine.js +5 -2
  51. package/dist/core/lesson-engine.js.map +1 -1
  52. package/dist/core/lesson-slug.d.ts +2 -0
  53. package/dist/core/lesson-slug.d.ts.map +1 -0
  54. package/dist/core/lesson-slug.js +14 -0
  55. package/dist/core/lesson-slug.js.map +1 -0
  56. package/dist/core/llm-client.d.ts.map +1 -1
  57. package/dist/core/llm-client.js +4 -1
  58. package/dist/core/llm-client.js.map +1 -1
  59. package/dist/core/llm-validator.d.ts +4 -1
  60. package/dist/core/llm-validator.d.ts.map +1 -1
  61. package/dist/core/llm-validator.js +62 -42
  62. package/dist/core/llm-validator.js.map +1 -1
  63. package/dist/core/ollama-host.d.ts +6 -0
  64. package/dist/core/ollama-host.d.ts.map +1 -0
  65. package/dist/core/ollama-host.js +30 -0
  66. package/dist/core/ollama-host.js.map +1 -0
  67. package/dist/core/operations.d.ts +9 -3
  68. package/dist/core/operations.d.ts.map +1 -1
  69. package/dist/core/operations.js +18 -14
  70. package/dist/core/operations.js.map +1 -1
  71. package/dist/core/paths.d.ts.map +1 -1
  72. package/dist/core/paths.js +2 -3
  73. package/dist/core/paths.js.map +1 -1
  74. package/dist/core/schema-export.d.ts.map +1 -1
  75. package/dist/core/schema-export.js +9 -7
  76. package/dist/core/schema-export.js.map +1 -1
  77. package/dist/core/transcript-extractor.d.ts.map +1 -1
  78. package/dist/core/transcript-extractor.js +2 -2
  79. package/dist/core/transcript-extractor.js.map +1 -1
  80. package/dist/core/work-topology.d.ts +3 -0
  81. package/dist/core/work-topology.d.ts.map +1 -1
  82. package/dist/core/work-topology.js +24 -2
  83. package/dist/core/work-topology.js.map +1 -1
  84. package/dist/db.d.ts.map +1 -1
  85. package/dist/db.js +12 -0
  86. package/dist/db.js.map +1 -1
  87. package/dist/host-adapters/claude-channel.d.ts +0 -58
  88. package/dist/host-adapters/claude-channel.d.ts.map +1 -1
  89. package/dist/host-adapters/claude-channel.js +0 -242
  90. package/dist/host-adapters/claude-channel.js.map +1 -1
  91. package/dist/host-adapters/codex-cli-queue.d.ts.map +1 -1
  92. package/dist/host-adapters/codex-cli-queue.js +15 -12
  93. package/dist/host-adapters/codex-cli-queue.js.map +1 -1
  94. package/dist/host-runtime/acp.d.ts +2 -0
  95. package/dist/host-runtime/acp.d.ts.map +1 -1
  96. package/dist/host-runtime/acp.js +4 -0
  97. package/dist/host-runtime/acp.js.map +1 -1
  98. package/dist/host-runtime/claude.d.ts +2 -0
  99. package/dist/host-runtime/claude.d.ts.map +1 -1
  100. package/dist/host-runtime/claude.js +6 -5
  101. package/dist/host-runtime/claude.js.map +1 -1
  102. package/dist/host-runtime/codex-session.d.ts +3 -1
  103. package/dist/host-runtime/codex-session.d.ts.map +1 -1
  104. package/dist/host-runtime/codex-session.js +7 -5
  105. package/dist/host-runtime/codex-session.js.map +1 -1
  106. package/dist/host-runtime/codex.d.ts +2 -0
  107. package/dist/host-runtime/codex.d.ts.map +1 -1
  108. package/dist/host-runtime/codex.js +4 -0
  109. package/dist/host-runtime/codex.js.map +1 -1
  110. package/dist/host-runtime/router-client.d.ts +2 -0
  111. package/dist/host-runtime/router-client.d.ts.map +1 -1
  112. package/dist/host-runtime/router-client.js.map +1 -1
  113. package/dist/skills-manifest.json +30 -15
  114. package/dist/storage/graph-repairs.d.ts +12 -0
  115. package/dist/storage/graph-repairs.d.ts.map +1 -0
  116. package/dist/storage/graph-repairs.js +242 -0
  117. package/dist/storage/graph-repairs.js.map +1 -0
  118. package/dist/transports/agent-messaging.d.ts +10 -1
  119. package/dist/transports/agent-messaging.d.ts.map +1 -1
  120. package/dist/transports/agent-messaging.js +92 -9
  121. package/dist/transports/agent-messaging.js.map +1 -1
  122. package/dist/transports/cli/cli.d.ts +4 -0
  123. package/dist/transports/cli/cli.d.ts.map +1 -1
  124. package/dist/transports/cli/cli.js +65 -26
  125. package/dist/transports/cli/cli.js.map +1 -1
  126. package/dist/transports/http/server.d.ts.map +1 -1
  127. package/dist/transports/http/server.js +117 -7
  128. package/dist/transports/http/server.js.map +1 -1
  129. package/dist/transports/mcp/handlers.d.ts +10 -6
  130. package/dist/transports/mcp/handlers.d.ts.map +1 -1
  131. package/dist/transports/mcp/handlers.js +21 -9
  132. package/dist/transports/mcp/handlers.js.map +1 -1
  133. package/dist/transports/schemas.d.ts +5 -0
  134. package/dist/transports/schemas.d.ts.map +1 -1
  135. package/dist/transports/schemas.js +8 -1
  136. package/dist/transports/schemas.js.map +1 -1
  137. package/docs/platforms/README.md +1 -1
  138. package/docs/platforms/agent-messaging.md +89 -36
  139. package/llms-install.md +29 -6
  140. package/package.json +17 -3
  141. package/scripts/hooks/_generated/agent-message-inbox.js +38 -0
  142. package/scripts/hooks/_generated/citation-rule.js +5 -2
  143. package/scripts/hooks/_generated/core-paths.js +2 -3
  144. package/scripts/hooks/_generated/work-topology.js +24 -2
  145. package/scripts/hooks/_shared.js +1 -1
  146. package/scripts/hooks/session-start.js +59 -18
  147. package/scripts/hooks/session-summary.js +40 -1
  148. package/scripts/upgrade-plugin.sh +531 -81
  149. package/skills/memesh/SKILL.md +36 -5
@@ -1,9 +1,17 @@
1
- import { AgentMessageAccessError, AgentMessagingError, fetchAgentMessage, pollAgentEvents, readAgentMessageReceipts, recordAgentReceipt, sendAgentMessage, waitForAgentEvents, } from '../core/agent-messaging.js';
1
+ import { randomUUID } from 'node:crypto';
2
+ import path from 'node:path';
3
+ import { AgentMessageAccessError, AgentMessagingError, AgentNativeMessageTooLargeError, fetchAgentMessage, pollAgentEvents, readAgentMessageReceipts, recordAgentReceipt, sendAgentMessage, waitForAgentEvents, } from '../core/agent-messaging.js';
2
4
  import { MessageSchema } from './schemas.js';
3
- import { createAgentRouterNotifier } from '../core/agent-router.js';
5
+ import { createAgentRouterNotifier, sendAgentRouterRequest, } from '../core/agent-router.js';
4
6
  import { getMemeshDirFromDbPath } from '../core/paths.js';
5
- import path from 'node:path';
7
+ export class AgentRecipientUnavailableError extends AgentMessagingError {
8
+ code = 'recipient_unavailable';
9
+ constructor() {
10
+ super('recipient_unavailable: the exact active session did not accept the native message.');
11
+ }
12
+ }
6
13
  const AGENT_MESSAGE_STORAGE_QUOTA_ENV = 'MEMESH_AGENT_MESSAGE_STORAGE_QUOTA_BYTES';
14
+ const EXACT_SESSION_NATIVE_TIMEOUT_MS = 12_000;
7
15
  const PUBLIC_DISPOSITIONS = new Set(['accepted', 'rejected', 'completed', 'cancelled', 'deferred']);
8
16
  function configuredAgentMessageStorageQuotaBytes() {
9
17
  const raw = process.env[AGENT_MESSAGE_STORAGE_QUOTA_ENV];
@@ -18,15 +26,72 @@ function configuredAgentMessageStorageQuotaBytes() {
18
26
  }
19
27
  return parsed;
20
28
  }
29
+ function routerSocketPath() {
30
+ return process.env.MEMESH_ROUTER_SOCKET
31
+ ?? path.join(getMemeshDirFromDbPath(), 'agent-router.sock');
32
+ }
21
33
  function optionalRouterNotifier() {
22
34
  try {
23
- return createAgentRouterNotifier(process.env.MEMESH_ROUTER_SOCKET
24
- ?? path.join(getMemeshDirFromDbPath(), 'agent-router.sock'));
35
+ return createAgentRouterNotifier(routerSocketPath());
25
36
  }
26
37
  catch {
27
38
  return undefined;
28
39
  }
29
40
  }
41
+ function nativeAcceptance(row) {
42
+ return {
43
+ status: 'native_accepted',
44
+ delivery_id: row.delivery_id,
45
+ adapter_kind: row.adapter_kind,
46
+ receipt: parseStoredObject(row.receipt_json, 'agent_host_accepts.receipt_json'),
47
+ accepted_at: row.created_at,
48
+ };
49
+ }
50
+ async function requireExactSessionNativeAcceptance(db, sent, dependencies) {
51
+ const existing = readHostAccept(db, sent.delivery_id);
52
+ if (existing)
53
+ return nativeAcceptance(existing);
54
+ const request = {
55
+ version: 1,
56
+ type: 'notify',
57
+ request_id: randomUUID(),
58
+ project: sent.project,
59
+ delivery_id: sent.delivery_id,
60
+ hops: 0,
61
+ };
62
+ try {
63
+ const result = await (dependencies.sendRouterRequest ?? sendAgentRouterRequest)(routerSocketPath(), request, EXACT_SESSION_NATIVE_TIMEOUT_MS);
64
+ if (result.delivered !== true) {
65
+ const accepted = readHostAccept(db, sent.delivery_id);
66
+ if (accepted)
67
+ return nativeAcceptance(accepted);
68
+ if (readLatestDispatchFailureCode(db, sent.delivery_id) === 'native_message_too_large') {
69
+ throw new AgentNativeMessageTooLargeError();
70
+ }
71
+ throw new AgentRecipientUnavailableError();
72
+ }
73
+ }
74
+ catch (error) {
75
+ if (error instanceof AgentRecipientUnavailableError
76
+ || error instanceof AgentNativeMessageTooLargeError)
77
+ throw error;
78
+ throw new AgentRecipientUnavailableError();
79
+ }
80
+ const accepted = readHostAccept(db, sent.delivery_id);
81
+ if (!accepted)
82
+ throw new AgentRecipientUnavailableError();
83
+ return nativeAcceptance(accepted);
84
+ }
85
+ function readLatestDispatchFailureCode(db, deliveryId) {
86
+ const row = db.prepare(`
87
+ SELECT failure_code
88
+ FROM agent_dispatch_attempts
89
+ WHERE delivery_id = ? AND result = 'adapter_rejected' AND failure_code IS NOT NULL
90
+ ORDER BY attempt_number DESC
91
+ LIMIT 1
92
+ `).get(deliveryId);
93
+ return row?.failure_code;
94
+ }
30
95
  function receiptDetail(note, context) {
31
96
  return {
32
97
  transport: context.transport,
@@ -203,11 +268,11 @@ function parseStoredObject(raw, label) {
203
268
  }
204
269
  throw new AgentMessagingError(`Invalid stored JSON object in ${label}.`);
205
270
  }
206
- export async function executeAgentMessageAction(db, rawInput, context) {
271
+ export async function executeAgentMessageAction(db, rawInput, context, dependencies = {}) {
207
272
  const input = MessageSchema.parse(rawInput);
208
273
  switch (input.action) {
209
- case 'send':
210
- return sendAgentMessage(db, {
274
+ case 'send': {
275
+ const sent = sendAgentMessage(db, {
211
276
  project: input.project,
212
277
  sender: input.sender,
213
278
  sender_host: context.sourceHost,
@@ -224,9 +289,16 @@ export async function executeAgentMessageAction(db, rawInput, context) {
224
289
  source_host: context.sourceHost,
225
290
  },
226
291
  }, {
227
- notifier: optionalRouterNotifier(),
292
+ notifier: input.target_kind === 'session' ? undefined : optionalRouterNotifier(),
228
293
  storage_quota_bytes: configuredAgentMessageStorageQuotaBytes(),
229
294
  });
295
+ if (sent.target_kind !== 'session')
296
+ return sent;
297
+ return {
298
+ ...sent,
299
+ native_delivery: await requireExactSessionNativeAcceptance(db, sent, dependencies),
300
+ };
301
+ }
230
302
  case 'poll': {
231
303
  const query = {
232
304
  project: input.project,
@@ -238,6 +310,17 @@ export async function executeAgentMessageAction(db, rawInput, context) {
238
310
  ? waitForAgentEvents(db, { ...query, wait_ms: input.wait_ms }, context.signal)
239
311
  : pollAgentEvents(db, query);
240
312
  }
313
+ case 'discover': {
314
+ const request = {
315
+ version: 1,
316
+ type: 'discover',
317
+ request_id: randomUUID(),
318
+ project: input.project,
319
+ limit: input.limit,
320
+ hops: 0,
321
+ };
322
+ return await (dependencies.sendRouterRequest ?? sendAgentRouterRequest)(routerSocketPath(), request);
323
+ }
241
324
  case 'fetch':
242
325
  return fetchAgentMessage(db, input);
243
326
  case 'intake':
@@ -1 +1 @@
1
- {"version":3,"file":"agent-messaging.js","sourceRoot":"","sources":["../../src/transports/agent-messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-messaging.js","sourceRoot":"","sources":["../../src/transports/agent-messaging.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,9 @@ export declare function feedbackBrowserOpenCommand(platform: NodeJS.Platform, ur
4
4
  command: string;
5
5
  args: [string];
6
6
  };
7
+ export declare function resolveUpgradePluginScript(packageRootPath: string, pluginCacheRoot: string, pluginRegistryPath?: string): {
8
+ script: string;
9
+ newest: string | null;
10
+ } | null;
7
11
  export declare function runCli(argv?: readonly string[]): Promise<void>;
8
12
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/transports/cli/cli.ts"],"names":[],"mappings":";AAkMA,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CASN;AAGD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,GAAG,EAAE,MAAM,GACV;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;CAAE,CAKrC;AAw7FD,wBAAsB,MAAM,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/transports/cli/cli.ts"],"names":[],"mappings":";AAoMA,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CASN;AAGD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,GAAG,EAAE,MAAM,GACV;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;CAAE,CAKrC;AA2lDD,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,EACvB,kBAAkB,CAAC,EAAE,MAAM,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAYlD;AAy3CD,wBAAsB,MAAM,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF"}
@@ -16,9 +16,11 @@ import { inspectHosts, allWired } from '../../core/setup.js';
16
16
  import { installHooks } from '../../core/install-hooks.js';
17
17
  import { getTaskState, setTaskState } from '../../core/task-state-store.js';
18
18
  import { TASK_STATE_FIELDS, taskStateLines } from '../../core/task-state.js';
19
+ import { AGENT_MESSAGE_JSON_MAX_BYTES, AGENT_NATIVE_MESSAGE_MAX_BYTES } from '../../core/agent-messaging.js';
19
20
  import { executeAgentMessageAction } from '../agent-messaging.js';
20
21
  import { getAgentMessageStorageReport, pruneTerminalAgentMessagePayloads, } from '../../core/agent-message-storage.js';
21
22
  import { assertSecureLocalHostRuntimeSupported, ensureRouterTokenFile, } from '../../host-runtime/config.js';
23
+ import { pluginHostConfigRoot, versionedPluginCacheRoots } from '../../core/install-channel.js';
22
24
  async function withDatabase(fn) {
23
25
  try {
24
26
  openDatabase();
@@ -518,7 +520,7 @@ program
518
520
  });
519
521
  const messageCmd = program
520
522
  .command('message')
521
- .description('Send, wait for, fetch, and explicitly receipt durable local agent messages');
523
+ .description('Send, discover, wait for, fetch, and explicitly receipt local agent messages');
522
524
  function parseCliMessagePayload(raw, contentType) {
523
525
  if (contentType !== 'application/json')
524
526
  return raw;
@@ -529,22 +531,33 @@ function parseCliMessagePayload(raw, contentType) {
529
531
  throw new Error('stdin must contain valid JSON when --content-type is application/json.');
530
532
  }
531
533
  }
532
- const MAX_CLI_MESSAGE_STDIN_BYTES = 65_536;
534
+ function boundedCliDeclaration(value, option, maxCharacters) {
535
+ const normalized = value.trim();
536
+ if (normalized.length === 0 || normalized.length > maxCharacters) {
537
+ throw new Error(`${option} must be a non-empty string of at most ${maxCharacters} characters.`);
538
+ }
539
+ return normalized;
540
+ }
533
541
  async function readCliMessagePayloadFromStdin(contentType) {
534
542
  let raw = '';
535
543
  let bytes = 0;
536
544
  for await (const chunk of process.stdin) {
537
545
  const text = typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf8');
538
546
  bytes += Buffer.byteLength(text, 'utf8');
539
- if (bytes > MAX_CLI_MESSAGE_STDIN_BYTES) {
540
- throw new Error(`stdin payload exceeds ${MAX_CLI_MESSAGE_STDIN_BYTES} UTF-8 bytes.`);
547
+ if (bytes > AGENT_MESSAGE_JSON_MAX_BYTES) {
548
+ throw new Error(`stdin payload exceeds ${AGENT_MESSAGE_JSON_MAX_BYTES} UTF-8 bytes.`);
541
549
  }
542
550
  raw += text;
543
551
  }
544
552
  if (bytes === 0) {
545
553
  throw new Error('stdin payload is empty.');
546
554
  }
547
- return parseCliMessagePayload(raw, contentType);
555
+ const payload = parseCliMessagePayload(raw, contentType);
556
+ const encodedBytes = Buffer.byteLength(JSON.stringify(payload), 'utf8');
557
+ if (encodedBytes > AGENT_MESSAGE_JSON_MAX_BYTES) {
558
+ throw new Error(`payload must be at most ${AGENT_MESSAGE_JSON_MAX_BYTES} UTF-8 bytes when encoded as JSON.`);
559
+ }
560
+ return payload;
548
561
  }
549
562
  async function runCliMessage(input) {
550
563
  await withDatabase(async () => {
@@ -567,15 +580,23 @@ function isAgentPollResult(value) {
567
580
  const candidate = value;
568
581
  return Array.isArray(candidate.events) && typeof candidate.next_cursor === 'string';
569
582
  }
583
+ messageCmd
584
+ .command('discover')
585
+ .description('Discover active leased agents in one project without sending or acknowledging messages')
586
+ .requiredOption('--project <name>', 'Project scope')
587
+ .option('--limit <n>', 'Maximum live agents, 1-100', wholeNumber('--limit'), 50)
588
+ .action((opts) => runCliMessage({
589
+ action: 'discover', project: opts.project, limit: opts.limit,
590
+ }));
570
591
  messageCmd
571
592
  .command('send')
572
- .description('Durably send one exact-recipient local message (idempotent)')
593
+ .description(`Durably send one exact-recipient message (payload 64 KiB; complete native envelope 16 KiB; idempotent)`)
573
594
  .requiredOption('--project <name>', 'Project scope')
574
595
  .requiredOption('--sender <id>', 'Stable sender agent/host ID')
575
596
  .requiredOption('--recipient <id>', 'Stable recipient agent/host ID')
576
597
  .option('--target-kind <kind>', 'principal | session', 'principal')
577
598
  .requiredOption('--idempotency-key <key>', 'Stable retry key')
578
- .requiredOption('--payload-stdin', 'Read the complete text or JSON payload from stdin (never argv)')
599
+ .requiredOption('--payload-stdin', `Read untrusted text or JSON from stdin, never argv (stdin read cap ${AGENT_MESSAGE_JSON_MAX_BYTES} UTF-8 bytes; JSON-encoded durable payload cap ${AGENT_MESSAGE_JSON_MAX_BYTES}; exact-session complete native envelope cap ${AGENT_NATIVE_MESSAGE_MAX_BYTES})`)
579
600
  .option('--content-type <type>', 'text/plain | application/json', 'text/plain')
580
601
  .option('--privacy <scope>', 'private | team', 'private')
581
602
  .option('--correlation-id <id>', 'Conversation or task correlation ID')
@@ -783,6 +804,8 @@ agentCmd
783
804
  .requiredOption('--project <name>', 'Project scope used for exact routing')
784
805
  .requiredOption('--principal <id>', 'Stable logical recipient ID')
785
806
  .option('--workspace <path>', 'Managed Codex/Gemini workspace', process.cwd())
807
+ .option('--model <id>', 'Optional declared model identifier')
808
+ .option('--work-summary <text>', 'Optional declared current work summary')
786
809
  .option('--json', 'Output machine-readable setup result')
787
810
  .action((host, opts) => {
788
811
  requireOneOf(host, ['codex-session', 'codex', 'claude', 'gemini'], '<host>');
@@ -803,6 +826,8 @@ agentCmd
803
826
  token_file: routerTokenFile,
804
827
  project: opts.project,
805
828
  principal_id: opts.principal,
829
+ ...(opts.model === undefined ? {} : { model: boundedCliDeclaration(opts.model, '--model', 200) }),
830
+ ...(opts.workSummary === undefined ? {} : { work_summary: boundedCliDeclaration(opts.workSummary, '--work-summary', 200) }),
806
831
  };
807
832
  const config = host === 'codex-session'
808
833
  ? { ...common, workspace: fs.realpathSync(path.resolve(opts.workspace)) }
@@ -845,10 +870,11 @@ program
845
870
  .command('briefing')
846
871
  .description('The assembled work topology for a project — task state, decisions, lessons, knowledge, recent activity')
847
872
  .option('--project <name>', 'Project name (default: the current directory’s project)')
873
+ .option('--recipient <id>', 'Exact recipient; enables recipient-scoped unread message guidance')
848
874
  .option('--json', 'Output as JSON')
849
875
  .action(async (opts) => {
850
876
  await withDatabase(() => {
851
- const result = assembleBriefing(opts.project);
877
+ const result = assembleBriefing(opts.project, opts.recipient);
852
878
  if (opts.json) {
853
879
  console.log(JSON.stringify(result));
854
880
  return;
@@ -1362,29 +1388,38 @@ program
1362
1388
  process.exit(1);
1363
1389
  }
1364
1390
  });
1391
+ export function resolveUpgradePluginScript(packageRootPath, pluginCacheRoot, pluginRegistryPath) {
1392
+ const roots = versionedPluginCacheRoots(pluginCacheRoot);
1393
+ const newestRoot = roots[roots.length - 1];
1394
+ const bundled = path.join(packageRootPath, 'scripts', 'upgrade-plugin.sh');
1395
+ const hasRepairTarget = Boolean(newestRoot || (pluginRegistryPath && fs.existsSync(pluginRegistryPath)));
1396
+ if (fs.existsSync(bundled) && hasRepairTarget) {
1397
+ return { script: bundled, newest: newestRoot ? path.basename(newestRoot) : null };
1398
+ }
1399
+ if (!newestRoot)
1400
+ return null;
1401
+ const newest = path.basename(newestRoot);
1402
+ const script = path.join(newestRoot, 'scripts', 'upgrade-plugin.sh');
1403
+ return { script, newest };
1404
+ }
1365
1405
  program
1366
1406
  .command('upgrade-plugin')
1367
1407
  .description('Upgrade the Claude Code plugin install (finds and runs its bundled upgrade script)')
1368
1408
  .action(async () => {
1369
1409
  const { spawnSync } = await import('child_process');
1370
- const cacheRoot = path.join(homeDir(), '.claude', 'plugins', 'cache', 'pcircle-memesh', 'memesh');
1371
- let versions = [];
1372
- try {
1373
- versions = fs.readdirSync(cacheRoot, { withFileTypes: true })
1374
- .filter((entry) => entry.isDirectory() && /^\d+\.\d+\.\d+/.test(entry.name))
1375
- .map((entry) => entry.name);
1376
- }
1377
- catch { }
1378
- if (versions.length === 0) {
1379
- console.error('No Claude Code plugin install found (looked in ~/.claude/plugins/cache/pcircle-memesh).');
1410
+ const configRoot = pluginHostConfigRoot('claude-code');
1411
+ const cacheRoot = path.join(configRoot, 'plugins', 'cache', 'pcircle-memesh', 'memesh');
1412
+ const registryPath = path.join(configRoot, 'plugins', 'installed_plugins.json');
1413
+ const resolved = resolveUpgradePluginScript(packageRoot, cacheRoot, registryPath);
1414
+ if (!resolved) {
1415
+ console.error(`No Claude Code plugin install found (looked in ${cacheRoot}).`);
1380
1416
  console.error('If you installed via npm, upgrade with: memesh update');
1417
+ console.error('If you installed through Codex, run `memesh doctor` for the Codex refresh command.');
1381
1418
  process.exit(1);
1382
1419
  }
1383
- versions.sort((a, b) => a.localeCompare(b, undefined, { numeric: true }));
1384
- const newest = versions[versions.length - 1];
1385
- const script = path.join(cacheRoot, newest, 'scripts', 'upgrade-plugin.sh');
1420
+ const { script, newest } = resolved;
1386
1421
  if (!fs.existsSync(script)) {
1387
- console.error(`Plugin install found (v${newest}), but it has no scripts/upgrade-plugin.sh — plugin versions before 4.2.5 shipped without it.`);
1422
+ console.error(`Plugin install found${newest ? ` (v${newest})` : ''}, but it has no scripts/upgrade-plugin.sh — plugin versions before 4.2.5 shipped without it.`);
1388
1423
  console.error('Reinstall once from the Claude Code /plugin UI, or run the npm-global copy directly:');
1389
1424
  console.error(' bash "$(npm prefix -g)/lib/node_modules/@pcircle/memesh/scripts/upgrade-plugin.sh"');
1390
1425
  process.exit(1);
@@ -1392,7 +1427,8 @@ program
1392
1427
  const installHints = {
1393
1428
  node: 'node is required by the upgrade script. Install Node.js from https://nodejs.org',
1394
1429
  npm: 'npm is required by the upgrade script. It ships with Node.js — reinstall from https://nodejs.org',
1395
- rsync: 'rsync is required by the upgrade script. macOS: already installed; Debian/Ubuntu: sudo apt install rsync',
1430
+ git: 'git is required by the upgrade script. macOS: xcode-select --install; Debian/Ubuntu: sudo apt install git',
1431
+ tar: 'tar is required by the upgrade script. macOS: already installed; Debian/Ubuntu: sudo apt install tar',
1396
1432
  };
1397
1433
  const missing = Object.keys(installHints).filter((tool) => !isOnPath(tool));
1398
1434
  if (missing.length > 0) {
@@ -1400,7 +1436,10 @@ program
1400
1436
  console.error(installHints[tool]);
1401
1437
  process.exit(1);
1402
1438
  }
1403
- const run = spawnSync('bash', [script], { stdio: 'inherit' });
1439
+ const run = spawnSync('bash', [script], {
1440
+ stdio: 'inherit',
1441
+ env: { ...process.env, CLAUDE_CONFIG_DIR: configRoot },
1442
+ });
1404
1443
  if (run.error) {
1405
1444
  console.error(`Could not run the upgrade script: ${run.error.message}`);
1406
1445
  console.error('bash is required to run it. If bash is available under another name, run it yourself:');
@@ -2118,7 +2157,7 @@ dreamCmd
2118
2157
  });
2119
2158
  program
2120
2159
  .command('install-hooks')
2121
- .description('Wire memesh\'s session hooks into Claude Code (~/.claude/settings.json)')
2160
+ .description('Wire memesh\'s session hooks into Claude Code user settings')
2122
2161
  .option('--scope <scope>', 'user (default) or project — project writes to ./.claude/settings.json', 'user')
2123
2162
  .option('--dry-run', 'Show what would change without modifying any file')
2124
2163
  .option('--force-over-plugin', 'Write user-level hooks even when Claude Code\'s plugin runtime already wires them. Causes double-firing — only use if you genuinely want both surfaces.')
@@ -2139,7 +2178,7 @@ program
2139
2178
  console.log('');
2140
2179
  console.log('Hooks are active. Verify with: memesh doctor');
2141
2180
  console.log('');
2142
- console.log('If you really want a second copy in ~/.claude/settings.json on top of the plugin, re-run with --force-over-plugin. (Not recommended — every session-start / Stop / PreToolUse event will fire memesh\'s hooks twice.)');
2181
+ console.log(`If you really want a second copy in ${result.settingsPath} on top of the plugin, re-run with --force-over-plugin. (Not recommended — every session-start / Stop / PreToolUse event will fire memesh's hooks twice.)`);
2143
2182
  if (result.citationRule.action === 'foreign-file') {
2144
2183
  console.log('');
2145
2184
  console.log(`WARNING: the citation contract was NOT installed — a file memesh did not write already exists at ${result.citationRule.path}.`);