@rubytech/create-realagent-code 0.1.545 → 0.1.546

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 (69) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/lib/mcp-spawn-tee/dist/index.js +11 -0
  3. package/payload/platform/lib/mcp-spawn-tee/dist/index.js.map +1 -1
  4. package/payload/platform/lib/mcp-spawn-tee/src/__tests__/spawn-tee.test.ts +39 -0
  5. package/payload/platform/lib/mcp-spawn-tee/src/index.ts +12 -0
  6. package/payload/platform/plugins/admin/lib/mcp-spawn-tee/index.js +11 -0
  7. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +4 -0
  8. package/payload/platform/plugins/aeo/lib/mcp-spawn-tee/index.js +11 -0
  9. package/payload/platform/plugins/browser/lib/mcp-spawn-tee/index.js +11 -0
  10. package/payload/platform/plugins/connector/lib/mcp-spawn-tee/index.js +11 -0
  11. package/payload/platform/plugins/contacts/lib/mcp-spawn-tee/index.js +11 -0
  12. package/payload/platform/plugins/email/lib/mcp-spawn-tee/index.js +11 -0
  13. package/payload/platform/plugins/filesystem/lib/mcp-spawn-tee/index.js +11 -0
  14. package/payload/platform/plugins/google/lib/mcp-spawn-tee/index.js +11 -0
  15. package/payload/platform/plugins/graph-viewer/lib/mcp-spawn-tee/index.js +11 -0
  16. package/payload/platform/plugins/ledger/lib/mcp-spawn-tee/index.js +11 -0
  17. package/payload/platform/plugins/memory/lib/mcp-spawn-tee/index.js +11 -0
  18. package/payload/platform/plugins/outlook/lib/mcp-spawn-tee/index.js +11 -0
  19. package/payload/platform/plugins/quickbooks/lib/mcp-spawn-tee/index.js +11 -0
  20. package/payload/platform/plugins/replicate/lib/mcp-spawn-tee/index.js +11 -0
  21. package/payload/platform/plugins/scheduling/lib/mcp-spawn-tee/index.js +11 -0
  22. package/payload/platform/plugins/storage-broker/lib/mcp-spawn-tee/index.js +11 -0
  23. package/payload/platform/plugins/url-get/lib/mcp-spawn-tee/index.js +11 -0
  24. package/payload/platform/plugins/voice-mirror/lib/mcp-spawn-tee/index.js +11 -0
  25. package/payload/platform/plugins/whatsapp/lib/mcp-spawn-tee/index.js +11 -0
  26. package/payload/platform/plugins/work/lib/mcp-spawn-tee/index.js +11 -0
  27. package/payload/platform/plugins/workflows/lib/mcp-spawn-tee/index.js +11 -0
  28. package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts +5 -0
  29. package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts.map +1 -1
  30. package/payload/platform/services/claude-session-manager/dist/channel-mcp.js +16 -2
  31. package/payload/platform/services/claude-session-manager/dist/channel-mcp.js.map +1 -1
  32. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.d.ts +34 -0
  33. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.d.ts.map +1 -0
  34. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.js +41 -0
  35. package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.js.map +1 -0
  36. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  37. package/payload/platform/services/claude-session-manager/dist/http-server.js +26 -1
  38. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  39. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  40. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +11 -0
  41. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  42. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts +5 -0
  43. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts.map +1 -1
  44. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js +16 -2
  45. package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js.map +1 -1
  46. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts +6 -0
  47. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts.map +1 -1
  48. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js +17 -2
  49. package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js.map +1 -1
  50. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts +5 -0
  51. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts.map +1 -1
  52. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js +16 -2
  53. package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js.map +1 -1
  54. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +31 -2
  55. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  56. package/payload/platform/services/whatsapp-channel/dist/notification.js +11 -0
  57. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  58. package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
  59. package/payload/platform/services/whatsapp-channel/dist/server.js +69 -13
  60. package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
  61. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +11 -1
  62. package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
  63. package/payload/platform/services/whatsapp-channel/dist/targets.js +6 -0
  64. package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
  65. package/payload/premium-plugins/real-agent/plugins/buyers/lib/mcp-spawn-tee/index.js +11 -0
  66. package/payload/premium-plugins/real-agent/plugins/estate-sales/lib/mcp-spawn-tee/index.js +11 -0
  67. package/payload/premium-plugins/real-agent/plugins/loop/lib/mcp-spawn-tee/index.js +11 -0
  68. package/payload/premium-plugins/real-agent/plugins/property-data/lib/mcp-spawn-tee/index.js +11 -0
  69. package/payload/server/server.js +26 -0
@@ -180,6 +180,17 @@ process.on("exit", (code) => {
180
180
  `code=${codeField} signal=${exitSignal ?? "—"} lifetimeMs=${lifetimeMs} stderr-tail=${JSON.stringify(tail)}`, level);
181
181
  });
182
182
  emitLifecycle(`op=spawn session=${SESSION_ID8} server=${SERVER_NAME} pid=${process.pid} entry=${ENTRY}`, "info");
183
+ // Task 2356 — present argv as a direct `node <entry>` invocation before the
184
+ // entry loads. The shim is meant to be transparent: an entry that asks the
185
+ // standard "am I the entry module?" question
186
+ // (`import.meta.url === pathToFileURL(realpathSync(process.argv[1])).href`)
187
+ // must get the same answer it gets when Claude Code runs it without the shim.
188
+ // With the shim's own path left in argv[1] the answer is no, so such an entry
189
+ // loads, starts nothing, and exits 0 — measured on the three channel servers,
190
+ // which all gate main() that way. Plugin MCPs connect at module top level and
191
+ // never read argv, so this is inert for them. ENTRY was captured above, before
192
+ // the rewrite. Extra CLI args keep their positions after the entry slot.
193
+ process.argv = [process.argv[0], ENTRY, ...process.argv.slice(3)];
183
194
  // Run the real MCP server in THIS process. Dynamic import() (not top-level
184
195
  // await — this file compiles to CommonJS) loads the ESM entry; a load-time
185
196
  // failure mirrors the old child spawn-error path (op=error, exit 127). The
@@ -28991,6 +28991,22 @@ function createWaChannelRoutes(deps) {
28991
28991
  deps.onReceived?.(accountId, senderId, waMessageId, { provenance, source });
28992
28992
  return c.json({ ok: true });
28993
28993
  });
28994
+ app77.post("/wa-channel/turn-observed", async (c) => {
28995
+ const body = await c.req.json().catch(() => null);
28996
+ const senderId = body?.senderId;
28997
+ const accountId = body?.accountId;
28998
+ const waMessageId = body?.waMessageId;
28999
+ if (typeof senderId !== "string" || typeof waMessageId !== "string") {
29000
+ return c.json({ error: "senderId and waMessageId required" }, 400);
29001
+ }
29002
+ if (typeof accountId !== "string") {
29003
+ console.error(`[whatsapp-native] op=channel-turn-observed-rejected senderId=${senderId} reason=no-account`);
29004
+ return c.json({ error: "accountId required" }, 400);
29005
+ }
29006
+ const observed = typeof body?.observed === "string" ? body.observed : "unset";
29007
+ deps.onTurnObserved?.(accountId, senderId, waMessageId, observed);
29008
+ return c.json({ ok: true });
29009
+ });
28994
29010
  app77.post("/wa-channel/turn-end", async (c) => {
28995
29011
  const body = await c.req.json().catch(() => null);
28996
29012
  const senderId = body?.senderId;
@@ -29200,6 +29216,16 @@ var WaGateway = class {
29200
29216
  `[whatsapp:reframe] op=compose account=${accountId} sender=${senderId} provenance=${prov} source=${meta?.source ?? "unset"}`
29201
29217
  );
29202
29218
  },
29219
+ // Task 2356 — the turn outcome for one inbound, the post-condition the ack
29220
+ // above does not verify. Printed on every value, including observed=yes: a
29221
+ // session that reports success and a session that never reports at all are
29222
+ // otherwise the same silence, which is the hole this closes. The hub is
29223
+ // untouched — the entry left its in-flight set at the ack.
29224
+ onTurnObserved: (accountId, senderId, waMessageId, observed) => {
29225
+ console.error(
29226
+ `[whatsapp-native] op=notification-outcome senderId=${senderId} accountId=${accountId} waMessageId=${waMessageId} observed=${observed}`
29227
+ );
29228
+ },
29203
29229
  onReplyDispatch: (senderId, atMs) => this.noteReplyDispatch(senderId, atMs),
29204
29230
  // Task 2312 — forwarded verbatim; the route holds the checks and this
29205
29231
  // class holds no policy of its own here. All three are optional and an