@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.
- package/package.json +1 -1
- package/payload/platform/lib/mcp-spawn-tee/dist/index.js +11 -0
- package/payload/platform/lib/mcp-spawn-tee/dist/index.js.map +1 -1
- package/payload/platform/lib/mcp-spawn-tee/src/__tests__/spawn-tee.test.ts +39 -0
- package/payload/platform/lib/mcp-spawn-tee/src/index.ts +12 -0
- package/payload/platform/plugins/admin/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +4 -0
- package/payload/platform/plugins/aeo/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/browser/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/connector/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/contacts/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/email/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/filesystem/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/google/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/graph-viewer/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/ledger/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/memory/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/outlook/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/quickbooks/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/replicate/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/scheduling/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/storage-broker/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/url-get/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/voice-mirror/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/whatsapp/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/work/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/plugins/workflows/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts +5 -0
- package/payload/platform/services/claude-session-manager/dist/channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/channel-mcp.js +16 -2
- package/payload/platform/services/claude-session-manager/dist/channel-mcp.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.d.ts +34 -0
- package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.js +41 -0
- package/payload/platform/services/claude-session-manager/dist/channel-spawn-tee.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +26 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +11 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts +5 -0
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js +16 -2
- package/payload/platform/services/claude-session-manager/dist/telegram-channel-mcp.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js +17 -2
- package/payload/platform/services/claude-session-manager/dist/wa-channel-mcp.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts +5 -0
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js +16 -2
- package/payload/platform/services/claude-session-manager/dist/webchat-channel-mcp.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +31 -2
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js +11 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.js +69 -13
- package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/targets.d.ts +11 -1
- package/payload/platform/services/whatsapp-channel/dist/targets.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/targets.js +6 -0
- package/payload/platform/services/whatsapp-channel/dist/targets.js.map +1 -1
- package/payload/premium-plugins/real-agent/plugins/buyers/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/premium-plugins/real-agent/plugins/estate-sales/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/premium-plugins/real-agent/plugins/loop/lib/mcp-spawn-tee/index.js +11 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/lib/mcp-spawn-tee/index.js +11 -0
- 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
|
package/payload/server/server.js
CHANGED
|
@@ -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
|