@rubytech/create-realagent-code 0.1.564 → 0.1.566

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 (144) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/config/brand-registry.json +1 -1
  3. package/payload/platform/plugins/admin/PLUGIN.md +2 -2
  4. package/payload/platform/plugins/admin/hooks/__tests__/askuserquestion-channel-carrier-gate.test.sh +1 -1
  5. package/payload/platform/plugins/admin/hooks/askuserquestion-channel-carrier-gate.sh +4 -3
  6. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +8 -4
  7. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +10 -0
  8. package/payload/platform/plugins/docs/references/outlook-guide.md +7 -3
  9. package/payload/platform/plugins/outlook/PLUGIN.md +2 -2
  10. package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.js +1 -1
  11. package/payload/platform/plugins/outlook/mcp/dist/__tests__/attach.test.js.map +1 -1
  12. package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js +1 -1
  13. package/payload/platform/plugins/outlook/mcp/dist/__tests__/calendar-write.test.js.map +1 -1
  14. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.js +1 -1
  15. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-attachments.test.js.map +1 -1
  16. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.js +1 -1
  17. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-attachments.test.js.map +1 -1
  18. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-removal.test.js +1 -1
  19. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit-removal.test.js.map +1 -1
  20. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js +1 -1
  21. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-edit.test.js.map +1 -1
  22. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-threaded.test.js +51 -1
  23. package/payload/platform/plugins/outlook/mcp/dist/__tests__/draft-threaded.test.js.map +1 -1
  24. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.js +1 -1
  25. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-paged.test.js.map +1 -1
  26. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-prefix-wiring.test.js +1 -0
  27. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-prefix-wiring.test.js.map +1 -1
  28. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js +2 -2
  29. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client-retry.test.js.map +1 -1
  30. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +7 -7
  31. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -1
  32. package/payload/platform/plugins/outlook/mcp/dist/__tests__/has-attachments.test.js +1 -1
  33. package/payload/platform/plugins/outlook/mcp/dist/__tests__/has-attachments.test.js.map +1 -1
  34. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-attachment.test.js +1 -1
  35. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-attachment.test.js.map +1 -1
  36. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-delete.test.js +1 -1
  37. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-delete.test.js.map +1 -1
  38. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-fetch-body.test.js +1 -1
  39. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-fetch-body.test.js.map +1 -1
  40. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.js +1 -1
  41. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-list-paging.test.js.map +1 -1
  42. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-otp-extract.test.js +1 -1
  43. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-otp-extract.test.js.map +1 -1
  44. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-reply.test.js +159 -6
  45. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-reply.test.js.map +1 -1
  46. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.js +1 -1
  47. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-delegated-ids.test.js.map +1 -1
  48. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.js +1 -1
  49. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-search-paging.test.js.map +1 -1
  50. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.js +1 -1
  51. package/payload/platform/plugins/outlook/mcp/dist/__tests__/mail-send-attachments.test.js.map +1 -1
  52. package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mail-only-guard.test.js +1 -0
  53. package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mail-only-guard.test.js.map +1 -1
  54. package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mailbox-add.test.js +1 -1
  55. package/payload/platform/plugins/outlook/mcp/dist/__tests__/shared-mailbox-add.test.js.map +1 -1
  56. package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js +2 -1
  57. package/payload/platform/plugins/outlook/mcp/dist/__tests__/write-tools.test.js.map +1 -1
  58. package/payload/platform/plugins/outlook/mcp/dist/index.js +13 -4
  59. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  60. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +9 -0
  61. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -1
  62. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -1
  63. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts +7 -0
  64. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.d.ts.map +1 -1
  65. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js +16 -5
  66. package/payload/platform/plugins/outlook/mcp/dist/tools/draft.js.map +1 -1
  67. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.d.ts +5 -0
  68. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.d.ts.map +1 -1
  69. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js +81 -2
  70. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-reply.js.map +1 -1
  71. package/payload/platform/plugins/whatsapp/PLUGIN.md +2 -2
  72. package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +2 -2
  73. package/payload/platform/scripts/check-no-esm-require.mjs +10 -0
  74. package/payload/platform/scripts/vnc.sh +10 -1
  75. package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts.map +1 -1
  76. package/payload/platform/services/claude-session-manager/dist/channel-mcp.js +9 -3
  77. package/payload/platform/services/claude-session-manager/dist/channel-mcp.js.map +1 -1
  78. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  79. package/payload/platform/services/claude-session-manager/dist/http-server.js +11 -2
  80. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  81. package/payload/platform/services/claude-session-manager/dist/index.js +0 -1
  82. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  83. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +0 -1
  84. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  85. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +7 -2
  86. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  87. package/payload/platform/services/claude-session-manager/dist/public-allowlist.d.ts +4 -2
  88. package/payload/platform/services/claude-session-manager/dist/public-allowlist.d.ts.map +1 -1
  89. package/payload/platform/services/claude-session-manager/dist/public-allowlist.js +15 -18
  90. package/payload/platform/services/claude-session-manager/dist/public-allowlist.js.map +1 -1
  91. package/payload/platform/services/claude-session-manager/dist/specialist-roster.d.ts +4 -2
  92. package/payload/platform/services/claude-session-manager/dist/specialist-roster.d.ts.map +1 -1
  93. package/payload/platform/services/claude-session-manager/dist/specialist-roster.js +4 -2
  94. package/payload/platform/services/claude-session-manager/dist/specialist-roster.js.map +1 -1
  95. package/payload/platform/services/telegram-channel/dist/instructions.d.ts.map +1 -1
  96. package/payload/platform/services/telegram-channel/dist/instructions.js +31 -16
  97. package/payload/platform/services/telegram-channel/dist/instructions.js.map +1 -1
  98. package/payload/platform/services/telegram-channel/dist/server.d.ts.map +1 -1
  99. package/payload/platform/services/telegram-channel/dist/server.js +21 -38
  100. package/payload/platform/services/telegram-channel/dist/server.js.map +1 -1
  101. package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts +6 -0
  102. package/payload/platform/services/telegram-channel/dist/turn-follow.d.ts.map +1 -1
  103. package/payload/platform/services/telegram-channel/dist/turn-follow.js +16 -1
  104. package/payload/platform/services/telegram-channel/dist/turn-follow.js.map +1 -1
  105. package/payload/platform/services/webchat-channel/dist/instructions.d.ts +0 -2
  106. package/payload/platform/services/webchat-channel/dist/instructions.d.ts.map +1 -1
  107. package/payload/platform/services/webchat-channel/dist/instructions.js +25 -19
  108. package/payload/platform/services/webchat-channel/dist/instructions.js.map +1 -1
  109. package/payload/platform/services/webchat-channel/dist/notification.d.ts +3 -2
  110. package/payload/platform/services/webchat-channel/dist/notification.d.ts.map +1 -1
  111. package/payload/platform/services/webchat-channel/dist/notification.js +14 -4
  112. package/payload/platform/services/webchat-channel/dist/notification.js.map +1 -1
  113. package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
  114. package/payload/platform/services/webchat-channel/dist/server.js +16 -48
  115. package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
  116. package/payload/platform/services/webchat-channel/dist/turn-follow.d.ts +6 -0
  117. package/payload/platform/services/webchat-channel/dist/turn-follow.d.ts.map +1 -1
  118. package/payload/platform/services/webchat-channel/dist/turn-follow.js +16 -1
  119. package/payload/platform/services/webchat-channel/dist/turn-follow.js.map +1 -1
  120. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +5 -2
  121. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  122. package/payload/platform/services/whatsapp-channel/dist/notification.js +31 -14
  123. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  124. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  125. package/payload/platform/services/whatsapp-channel/dist/server.js +64 -161
  126. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  127. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +7 -38
  128. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
  129. package/payload/platform/services/whatsapp-channel/dist/targets.js +7 -51
  130. package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
  131. package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts +6 -0
  132. package/payload/platform/services/whatsapp-channel/dist/turn-follow.d.ts.map +1 -1
  133. package/payload/platform/services/whatsapp-channel/dist/turn-follow.js +21 -1
  134. package/payload/platform/services/whatsapp-channel/dist/turn-follow.js.map +1 -1
  135. package/payload/server/{adminuser-self-heal-ZHFNDKJK.js → adminuser-self-heal-Y4U3UNKF.js} +10 -2
  136. package/payload/server/{chunk-3ABITJWB.js → chunk-637C2FGE.js} +3379 -3273
  137. package/payload/server/{chunk-HYQNUVGO.js → chunk-KVR2FT6O.js} +12 -1
  138. package/payload/server/{chunk-SKYZG6OT.js → chunk-PGGGWUBM.js} +372 -224
  139. package/payload/server/{chunk-JOVREC6E.js → chunk-Y4NH2KLF.js} +3789 -3484
  140. package/payload/server/{manager-N2RVJN7T.js → manager-R3XH3BNM.js} +3 -3
  141. package/payload/server/maxy-edge.js +27 -4
  142. package/payload/server/server.js +14274 -13239
  143. package/payload/server/{src-MM64CYYZ.js → src-IJCLNFYU.js} +1 -1
  144. package/payload/server/{userprofile-reconcile-TL4JKBPG.js → userprofile-reconcile-PUA657YX.js} +8 -1
@@ -109,6 +109,16 @@ const ALLOWLIST = new Set([
109
109
  // block requires node builtins directly.
110
110
  'platform/ui/server/routes/__tests__/public-reader-window.test.ts',
111
111
  'platform/ui/server/routes/__tests__/whatsapp-reader-window.test.ts',
112
+ // Not the vi.hoisted pattern: these two are production sources whose lazy
113
+ // require defers `paths.ts`, which throws at load time on an incomplete
114
+ // brand.json — a static import would make the whole telegram webhook route
115
+ // fail to load on a partial config. Both ship inside the tsup ESM bundle,
116
+ // whose banner defines `require` via createRequire; verified on the built
117
+ // dist/server.js, esbuild resolves all three relative specifiers statically
118
+ // (no require call survives) and keeps them behind lazy `__esm` init
119
+ // wrappers, so the deferral the comments rely on holds.
120
+ 'platform/ui/app/lib/telegram/resolve-admin-userid.ts',
121
+ 'platform/ui/server/routes/telegram.ts',
112
122
  ])
113
123
 
114
124
  const REQUIRE_CALL_RE = /\brequire\s*\(/
@@ -21,12 +21,21 @@
21
21
  # rfbport, websockify port, and CDP port are all brand-scoped so any number
22
22
  # of brands on the same device run their full VNC stacks concurrently
23
23
  # without sharing session cookies, extensions, local storage, or display
24
- # binding. Defaults: Maxy=:99/5900/6080/9222, Real Agent=:100/5901/6081/
24
+ # binding. Defaults: Maxy=:99/5900/6080/9322, Real Agent=:100/5901/6081/
25
25
  # 9223, Maxy-2=:101/5902/6082/9224, Maxy-3=:102/5903/6083/9225,
26
26
  # Maxy-4=:103/5904/6084/9226. Each brand's port set is stamped in
27
27
  # brand.json at install time and re-read at runtime; missing fields are
28
28
  # derived from `vncDisplay` via the ordinal offset rule.
29
29
  #
30
+ # Maxy's CDP port is the one deliberate break from that rule. The ordinal
31
+ # value for display :99 is 9222, which is Chrome's own universal default,
32
+ # so any agent-side browser tool that launches Chromium without being told
33
+ # a port lands on it. On a box where Maxy co-resides with another brand,
34
+ # that brand's account agents kept taking 9222 and the installer's
35
+ # UNRELATED-holder preflight then refused to write Maxy's service files.
36
+ # 9322 sits outside the 922x block, which the offset rule cannot reach
37
+ # until display :199, so no future brand can derive onto it either.
38
+ #
30
39
  # retired the admin-UI terminal surface entirely. This script
31
40
  # no longer spawns GUI terminal emulators of any kind; upgrades and
32
41
  # cloudflare-setup actions run via the detached action runner
@@ -1 +1 @@
1
- {"version":3,"file":"channel-mcp.d.ts","sourceRoot":"","sources":["../src/channel-mcp.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAE5C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,gBAAgB,CAAA;IACzB;;;uCAGmC;IACnC,OAAO,EAAE,MAAM,CAAA;IACf;8CAC0C;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA4BxC;AAED,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE"}
1
+ {"version":3,"file":"channel-mcp.d.ts","sourceRoot":"","sources":["../src/channel-mcp.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAE5C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,gBAAgB,CAAA;IACzB;;;uCAGmC;IACnC,OAAO,EAAE,MAAM,CAAA;IACf;8CAC0C;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA4BxC;AAED,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE"}
@@ -1,8 +1,14 @@
1
1
  // Task 850 — attach builder for the UNIFIED channel server. Registered (in
2
2
  // place of the per-kind wa/webchat servers) only when a session is bound to ≥2
3
- // channel kinds. The agent sees exactly one `reply` tool; the server reads the
4
- // whole target set from `CHANNEL_TARGETS` and fans each reply to every bound
5
- // target's existing gateway reply endpoint. Pure (no fs) like wa-channel-mcp.ts.
3
+ // channel kinds. Pure (no fs) like wa-channel-mcp.ts.
4
+ //
5
+ // Task 2078 the agent sees NO reply tool here, on this server or any other.
6
+ // What this builder does is bind ONE session to several doors, by handing the
7
+ // whole target set to the server through `CHANNEL_TARGETS`; the answer itself is
8
+ // read from the session record at turn end and fanned from there. Keeping a
9
+ // reply tool on this one server would have meant a two-door session delivering
10
+ // by tool call while a one-door session delivered from the record, so
11
+ // `delivered=fallback` would have survived exactly where the fan-out lives.
6
12
  import { join } from 'node:path';
7
13
  import { buildChannelSpawnTee } from './channel-spawn-tee.js';
8
14
  export const CHANNEL_SERVER_NAME = 'channel';
@@ -1 +1 @@
1
- {"version":3,"file":"channel-mcp.js","sourceRoot":"","sources":["../src/channel-mcp.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,iFAAiF;AAEjF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAG7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAA;AAQ5C,MAAM,UAAU,sBAAsB,CAAC,CAatC;IACC,mEAAmE;IACnE,wDAAwD;IACxD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;IACzD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC3E,8EAA8E;IAC9E,uEAAuE;IACvE,qBAAqB;IACrB,MAAM,GAAG,GAAG,oBAAoB,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,mBAAmB;QAC/B,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC,CAAA;IACF,OAAO;QACL,CAAC,mBAAmB,CAAC,EAAE;YACrB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE;gBACH,GAAG,GAAG,CAAC,GAAG;gBACV,kBAAkB,EAAE,CAAC,CAAC,SAAS;gBAC/B,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;aAC3C;SACF;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,yCAAyC,EAAE,UAAU,mBAAmB,EAAE,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,GAAW;IACjE,OAAO,IAAI,CAAC,GAAG,EAAE,gBAAgB,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,aAAqB;IACpD,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAC,CAAA;AACrE,CAAC"}
1
+ {"version":3,"file":"channel-mcp.js","sourceRoot":"","sources":["../src/channel-mcp.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,+EAA+E;AAC/E,sDAAsD;AACtD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,iFAAiF;AACjF,4EAA4E;AAC5E,+EAA+E;AAC/E,sEAAsE;AACtE,4EAA4E;AAE5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAG7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAA;AAQ5C,MAAM,UAAU,sBAAsB,CAAC,CAatC;IACC,mEAAmE;IACnE,wDAAwD;IACxD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;IACzD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC3E,8EAA8E;IAC9E,uEAAuE;IACvE,qBAAqB;IACrB,MAAM,GAAG,GAAG,oBAAoB,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,mBAAmB;QAC/B,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC,CAAA;IACF,OAAO;QACL,CAAC,mBAAmB,CAAC,EAAE;YACrB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE;gBACH,GAAG,GAAG,CAAC,GAAG;gBACV,kBAAkB,EAAE,CAAC,CAAC,SAAS;gBAC/B,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;aAC3C;SACF;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,yCAAyC,EAAE,UAAU,mBAAmB,EAAE,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,GAAW;IACjE,OAAO,IAAI,CAAC,GAAG,EAAE,gBAAgB,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,aAAqB;IACpD,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAC,CAAA;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAoB3B,OAAO,KAAK,EAAU,SAAS,EAAW,MAAM,YAAY,CAAA;AAK5D,OAAO,EAkBL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAqBzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAoBlD,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAA;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAQlE;;;;;;;;;;;mFAWmF;AACnF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAE/C;AAED;;;;;;;;;;2EAU2E;AAC3E,wBAAgB,cAAc,CAC5B,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3C,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAOlD;AAsFD,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAS1D,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAIlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,SAAS,CAAA;IAClB;;oEAEgE;IAChE,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,WAAW,EAAE,kBAAkB,CAAA;IAC/B;;gFAE4E;IAC5E,cAAc,EAAE,cAAc,CAAA;IAC9B;;;6BAGyB;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;sBAEkB;IAClB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;;sCAGkC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;;gFAE4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;4EAGwE;IACxE,YAAY,CAAC,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAA;CAC9C;AAsFD;;;;;;mEAMmE;AACnE,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAiC9D;AAMD;;;;;;iBAMiB;AACjB,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAmCvF;AAID;;;;;;yBAMyB;AACzB,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAiCzD;AAwCD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpG;AAgBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAUD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMvE;AAMD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAER;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5F;AAiGD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CASvG;AAUD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,GACxB,IAAI,CA4BN;AAkED;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AA8CD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CA2nHpD"}
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
@@ -3451,14 +3451,23 @@ export function buildHttpApp(deps) {
3451
3451
  let specialistCount = 0;
3452
3452
  let specialistBytes = 0;
3453
3453
  if (adminBinding && channelBound) {
3454
- const roster = readSpecialistRoster(deps.perAccountSpecialistsDir);
3454
+ // Task 2442 — the SESSION's account, not the manager's boot account. This
3455
+ // used to read `deps.perAccountSpecialistsDir`, fixed at boot to the house
3456
+ // (index.ts), while dispatch resolves `specialists:{name}` from the spawn
3457
+ // cwd, which is this account. A sub-account session was handed the house
3458
+ // roster and named agents it could not dispatch. `effectiveAccountDir` is
3459
+ // what every other per-session read in this handler already uses.
3460
+ const specialistsDir = join(effectiveAccountDir, 'specialists', 'agents');
3461
+ const roster = readSpecialistRoster(specialistsDir);
3455
3462
  const rendered = renderSpecialistDomains(roster);
3456
3463
  if (rendered.body !== null) {
3457
3464
  appendSegments.push(`<specialist-domains>\n${rendered.body}\n</specialist-domains>`);
3458
3465
  specialistCount = roster.length;
3459
3466
  specialistBytes = rendered.bytes;
3460
3467
  }
3461
- deps.logger(`[rc-spawn] op=specialists-injected count=${specialistCount} bytes=${specialistBytes}`);
3468
+ // `dir` and `accountId` are what make a wrong-account read greppable: the
3469
+ // count alone read as healthy for as long as nobody counted the files.
3470
+ deps.logger(`[rc-spawn] op=specialists-injected count=${specialistCount} bytes=${specialistBytes} dir=${specialistsDir} accountId=${effectiveAccountId}`);
3462
3471
  }
3463
3472
  // Task 1573 — the authenticated admin identity, resolved from the body
3464
3473
  // (validated PIN session) or the persisted sidecar. This, not the