@rubytech/create-maxy-code 0.1.186 → 0.1.187

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 (56) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/skills/a4-print-documents/SKILL.md +14 -14
  3. package/payload/platform/plugins/admin/skills/deck-pages/SKILL.md +9 -23
  4. package/payload/platform/plugins/admin/skills/professional-document/SKILL.md +1 -1
  5. package/payload/platform/plugins/admin/skills/skill-builder/SKILL.md +1 -1
  6. package/payload/platform/plugins/admin/skills/skill-builder/references/pdf-generation.md +4 -4
  7. package/payload/platform/plugins/browser/.claude-plugin/plugin.json +1 -1
  8. package/payload/platform/plugins/browser/PLUGIN.md +78 -8
  9. package/payload/platform/plugins/browser/mcp/dist/index.js +111 -7
  10. package/payload/platform/plugins/browser/mcp/dist/index.js.map +1 -1
  11. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.d.ts +98 -0
  12. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.d.ts.map +1 -0
  13. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.js +455 -0
  14. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.js.map +1 -0
  15. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.d.ts +9 -31
  16. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.d.ts.map +1 -1
  17. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.js +6 -165
  18. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.js.map +1 -1
  19. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.d.ts +153 -0
  20. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.d.ts.map +1 -0
  21. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.js +401 -0
  22. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.js.map +1 -0
  23. package/payload/platform/plugins/email/.claude-plugin/plugin.json +1 -1
  24. package/payload/platform/plugins/email/PLUGIN.md +6 -2
  25. package/payload/platform/plugins/email/mcp/dist/index.js +38 -0
  26. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  27. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts +28 -0
  28. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts.map +1 -1
  29. package/payload/platform/plugins/email/mcp/dist/lib/providers.js +106 -0
  30. package/payload/platform/plugins/email/mcp/dist/lib/providers.js.map +1 -1
  31. package/payload/platform/plugins/email/references/email-reference.md +19 -15
  32. package/payload/platform/plugins/memory/mcp/dist/tools/memory-brain-capture-recent.d.ts.map +1 -1
  33. package/payload/platform/plugins/memory/mcp/dist/tools/memory-brain-capture-recent.js +3 -2
  34. package/payload/platform/plugins/memory/mcp/dist/tools/memory-brain-capture-recent.js.map +1 -1
  35. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts.map +1 -1
  36. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js +2 -1
  37. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js.map +1 -1
  38. package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.d.ts.map +1 -1
  39. package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.js +2 -1
  40. package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.js.map +1 -1
  41. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts +1 -1
  42. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts.map +1 -1
  43. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js +3 -2
  44. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js.map +1 -1
  45. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js +1 -1
  46. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js.map +1 -1
  47. package/payload/platform/scripts/check-cypher-int-params.mjs +277 -0
  48. package/payload/platform/templates/specialists/agents/content-producer.md +2 -2
  49. package/payload/platform/templates/specialists/agents/personal-assistant.md +6 -2
  50. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.d.ts.map +1 -1
  51. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js +33 -1
  52. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js.map +1 -1
  53. package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-retrieve-conditioning.ts +5 -2
  54. package/payload/server/{chunk-L2YK2VK3.js → chunk-EFJ2EXZK.js} +3 -1
  55. package/payload/server/maxy-edge.js +1 -1
  56. package/payload/server/server.js +1 -1
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * Render a JS-heavy page in the device's existing Chromium and return its DOM.
3
3
  *
4
- * The brand's VNC Chromium is launched by platform/scripts/vnc.sh with
5
- * `--remote-debugging-port=${CDP_PORT}`, so CDP is already listening on
6
- * 127.0.0.1:<port>. This module attaches to that running browser it never
7
- * launches its own which is why no external browser package ships on device.
8
- *
9
- * Lifecycle (HTTP for target create/close, WebSocket for page control):
4
+ * This is the stateless retrieval path: each call creates its own blank target,
5
+ * navigates, reads the rendered DOM, and closes the target. Interactive
6
+ * automation (which keeps a page alive across calls) lives in cdp-actions.ts on
7
+ * a persistent BrowserSession. Both share the transport primitives in
8
+ * cdp-session.ts.
10
9
  *
11
10
  * PUT /json/new create a blank target, get its WS URL
12
11
  * │
@@ -18,166 +17,8 @@
18
17
  * │
19
18
  * ▼
20
19
  * PUT /json/close/<id> always, even on the error paths above
21
- *
22
- * `fetch` and `WebSocket` are injected so the unit tests drive every branch
23
- * without a real browser; production passes the Node 22 globals.
24
20
  */
25
- const DEFAULT_LOAD_TIMEOUT_MS = 30_000;
26
- const DEFAULT_COMMAND_TIMEOUT_MS = 15_000;
27
- /** Create a blank target via the CDP HTTP surface. Maps every transport
28
- * failure to a structured outcome rather than throwing. */
29
- async function createTarget(deps, timeoutMs) {
30
- const endpoint = `http://${deps.cdpHost}:${deps.cdpPort}/json/new`;
31
- let res;
32
- try {
33
- res = await deps.fetchImpl(endpoint, { method: "PUT", signal: AbortSignal.timeout(timeoutMs) });
34
- }
35
- catch (err) {
36
- const msg = err instanceof Error ? err.message : String(err);
37
- if (msg.includes("ECONNREFUSED") || msg.includes("fetch failed") || msg.includes("ENOTFOUND")) {
38
- return { outcome: "cdp-unreachable", detail: msg };
39
- }
40
- return { outcome: "error", detail: msg };
41
- }
42
- if (!res.ok) {
43
- const body = await res.text().catch(() => "<unreadable>");
44
- return { outcome: "error", detail: `CDP /json/new returned ${res.status}: ${body.slice(0, 200)}` };
45
- }
46
- let parsed;
47
- try {
48
- parsed = (await res.json());
49
- }
50
- catch (err) {
51
- return { outcome: "error", detail: `CDP /json/new response not JSON: ${err instanceof Error ? err.message : String(err)}` };
52
- }
53
- if (!parsed.id || !parsed.webSocketDebuggerUrl) {
54
- return { outcome: "error", detail: `CDP /json/new missing id/webSocketDebuggerUrl: ${JSON.stringify(parsed).slice(0, 200)}` };
55
- }
56
- return { target: { id: parsed.id, webSocketDebuggerUrl: parsed.webSocketDebuggerUrl } };
57
- }
58
- /** Best-effort target close. Failure is logged, never surfaced as the render
59
- * outcome — the DOM was already captured by the time this runs. */
60
- async function closeTarget(deps, targetId) {
61
- const endpoint = `http://${deps.cdpHost}:${deps.cdpPort}/json/close/${encodeURIComponent(targetId)}`;
62
- try {
63
- await deps.fetchImpl(endpoint, { method: "PUT", signal: AbortSignal.timeout(5_000) });
64
- }
65
- catch (err) {
66
- deps.log(`[browser-render] target-close-failed id=${targetId} err=${JSON.stringify(err instanceof Error ? err.message : String(err))}`);
67
- }
68
- }
69
- /** Drives one CDP WebSocket session: correlates command ids to results and
70
- * resolves a named event. Kept inside renderPage's closure scope so the
71
- * socket, pending map, and event waiters share one lifetime. */
72
- class CdpSession {
73
- ws;
74
- nextId = 1;
75
- pending = new Map();
76
- eventWaiters = new Map();
77
- closed = false;
78
- constructor(ws) {
79
- this.ws = ws;
80
- ws.addEventListener("message", (ev) => this.onMessage(ev.data));
81
- ws.addEventListener("close", () => {
82
- this.closed = true;
83
- for (const { reject } of this.pending.values())
84
- reject(new Error("websocket closed"));
85
- this.pending.clear();
86
- });
87
- }
88
- onMessage(data) {
89
- if (typeof data !== "string")
90
- return;
91
- let msg;
92
- try {
93
- msg = JSON.parse(data);
94
- }
95
- catch {
96
- return;
97
- }
98
- if (typeof msg.id === "number") {
99
- const waiter = this.pending.get(msg.id);
100
- if (!waiter)
101
- return;
102
- this.pending.delete(msg.id);
103
- if (msg.error)
104
- waiter.reject(new Error(msg.error.message ?? "CDP command error"));
105
- else
106
- waiter.resolve(msg.result);
107
- return;
108
- }
109
- if (msg.method) {
110
- const waiter = this.eventWaiters.get(msg.method);
111
- if (waiter) {
112
- this.eventWaiters.delete(msg.method);
113
- waiter(msg.params);
114
- }
115
- }
116
- }
117
- command(method, params, timeoutMs) {
118
- if (this.closed)
119
- return Promise.reject(new Error("websocket closed"));
120
- const id = this.nextId++;
121
- return new Promise((resolve, reject) => {
122
- const timer = setTimeout(() => {
123
- this.pending.delete(id);
124
- reject(new Error(`CDP ${method} timed out after ${timeoutMs}ms`));
125
- }, timeoutMs);
126
- this.pending.set(id, {
127
- resolve: (v) => { clearTimeout(timer); resolve(v); },
128
- reject: (e) => { clearTimeout(timer); reject(e); },
129
- });
130
- this.ws.send(JSON.stringify({ id, method, params }));
131
- });
132
- }
133
- waitForEvent(method, timeoutMs) {
134
- return new Promise((resolve, reject) => {
135
- const timer = setTimeout(() => {
136
- this.eventWaiters.delete(method);
137
- reject(new Error(`event ${method} not received within ${timeoutMs}ms`));
138
- }, timeoutMs);
139
- this.eventWaiters.set(method, () => { clearTimeout(timer); resolve(); });
140
- });
141
- }
142
- }
143
- function openSocket(WebSocketImpl, url, timeoutMs) {
144
- return new Promise((resolve) => {
145
- let settled = false;
146
- let ws;
147
- try {
148
- ws = new WebSocketImpl(url);
149
- }
150
- catch (err) {
151
- resolve({ error: err instanceof Error ? err.message : String(err) });
152
- return;
153
- }
154
- const timer = setTimeout(() => {
155
- if (settled)
156
- return;
157
- settled = true;
158
- try {
159
- ws.close();
160
- }
161
- catch { /* ignore */ }
162
- resolve({ error: `websocket open timed out after ${timeoutMs}ms` });
163
- }, timeoutMs);
164
- ws.addEventListener("open", () => {
165
- if (settled)
166
- return;
167
- settled = true;
168
- clearTimeout(timer);
169
- resolve({ ws });
170
- });
171
- ws.addEventListener("error", (ev) => {
172
- if (settled)
173
- return;
174
- settled = true;
175
- clearTimeout(timer);
176
- const detail = ev && typeof ev === "object" && "message" in ev ? String(ev.message) : "websocket error";
177
- resolve({ error: detail });
178
- });
179
- });
180
- }
21
+ import { CdpSession, closeTarget, createTarget, openSocket, DEFAULT_COMMAND_TIMEOUT_MS, DEFAULT_LOAD_TIMEOUT_MS, } from "./cdp-session.js";
181
22
  /** Render `url` in the device Chromium and return its rendered DOM text.
182
23
  * Always returns a structured RenderResult — never throws, never returns a
183
24
  * silent empty page. */
@@ -1 +1 @@
1
- {"version":3,"file":"cdp-render.js","sourceRoot":"","sources":["../../src/lib/cdp-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cdp-render.js","sourceRoot":"","sources":["../../src/lib/cdp-render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Shared Chrome DevTools Protocol primitives for the browser plugin.
3
+ *
4
+ * The brand's VNC Chromium is launched by platform/scripts/vnc.sh with
5
+ * `--remote-debugging-port=${CDP_PORT}`, so CDP listens on 127.0.0.1:<port>.
6
+ * Everything here attaches to that running browser — it never launches its own.
7
+ *
8
+ * Two consumers share these primitives:
9
+ * - cdp-render.ts → stateless one-shot render (create target, read DOM, close).
10
+ * - cdp-actions.ts → interactive automation driven through a persistent
11
+ * BrowserSession that keeps one target + websocket alive
12
+ * across tool calls.
13
+ *
14
+ * `fetch` and `WebSocket` are injected (CdpDeps) so unit tests drive every
15
+ * branch without a real browser; production passes the Node 22 globals.
16
+ */
17
+ /** Minimal structural shape of the browser-style WebSocket this module uses.
18
+ * Both the Node 22 global and the test fake satisfy it. */
19
+ export interface MinimalWebSocket {
20
+ send(data: string): void;
21
+ close(): void;
22
+ addEventListener(type: "open", listener: () => void): void;
23
+ addEventListener(type: "message", listener: (ev: {
24
+ data: unknown;
25
+ }) => void): void;
26
+ addEventListener(type: "error", listener: (ev: unknown) => void): void;
27
+ addEventListener(type: "close", listener: () => void): void;
28
+ }
29
+ export type WebSocketCtor = new (url: string) => MinimalWebSocket;
30
+ export interface CdpDeps {
31
+ fetchImpl: typeof fetch;
32
+ /** The Node 22 global `WebSocket`, or undefined on a runtime that lacks it. */
33
+ WebSocketImpl: WebSocketCtor | undefined;
34
+ cdpHost: string;
35
+ cdpPort: number;
36
+ log: (line: string) => void;
37
+ }
38
+ export declare const DEFAULT_LOAD_TIMEOUT_MS = 30000;
39
+ export declare const DEFAULT_COMMAND_TIMEOUT_MS = 15000;
40
+ /** Transport-level outcomes shared by every CDP operation. The action layer
41
+ * adds its own operation-specific outcomes (selector-not-found, etc.). */
42
+ export type CdpOutcome = "ok" | "cdp-unreachable" | "websocket-unavailable" | "navigate-failed" | "load-timeout" | "evaluate-failed" | "command-timeout" | "session-lost" | "error";
43
+ export interface CdpTarget {
44
+ id: string;
45
+ webSocketDebuggerUrl: string;
46
+ }
47
+ /** Create a blank target via the CDP HTTP surface. Maps every transport
48
+ * failure to a structured outcome rather than throwing. */
49
+ export declare function createTarget(deps: CdpDeps, timeoutMs: number): Promise<{
50
+ target: CdpTarget;
51
+ } | {
52
+ outcome: CdpOutcome;
53
+ detail: string;
54
+ }>;
55
+ /** Best-effort target close. Failure is logged, never surfaced as an outcome. */
56
+ export declare function closeTarget(deps: CdpDeps, targetId: string): Promise<void>;
57
+ /** List the open page targets via the CDP HTTP surface. */
58
+ export declare function listTargets(deps: CdpDeps, timeoutMs: number): Promise<{
59
+ targets: Array<CdpTarget & {
60
+ url?: string;
61
+ title?: string;
62
+ type?: string;
63
+ }>;
64
+ } | {
65
+ outcome: CdpOutcome;
66
+ detail: string;
67
+ }>;
68
+ /**
69
+ * Drives one CDP WebSocket session: correlates command ids to results, resolves
70
+ * one-shot events (waitForEvent), and fans persistent events out to subscribers
71
+ * (subscribe) — the latter is what console buffering and dialog handling need.
72
+ *
73
+ * ws message ──▶ has id? ──yes──▶ resolve/reject pending command
74
+ * │no
75
+ * ▼
76
+ * has method? ──▶ one-shot waiter (consume) + every subscriber
77
+ */
78
+ export declare class CdpSession {
79
+ private readonly ws;
80
+ private nextId;
81
+ private readonly pending;
82
+ private readonly eventWaiters;
83
+ private readonly subscribers;
84
+ private closed;
85
+ constructor(ws: MinimalWebSocket);
86
+ isClosed(): boolean;
87
+ private onMessage;
88
+ command(method: string, params: Record<string, unknown>, timeoutMs: number): Promise<unknown>;
89
+ waitForEvent(method: string, timeoutMs: number): Promise<void>;
90
+ /** Persistent subscription to a CDP event. Returns an unsubscribe function. */
91
+ subscribe(method: string, handler: (params: unknown) => void): () => void;
92
+ }
93
+ export declare function openSocket(WebSocketImpl: WebSocketCtor, url: string, timeoutMs: number): Promise<{
94
+ ws: MinimalWebSocket;
95
+ } | {
96
+ error: string;
97
+ }>;
98
+ /** What the dialog listener should do with the next javascript dialog. */
99
+ export interface DialogPolicy {
100
+ accept: boolean;
101
+ promptText?: string;
102
+ }
103
+ /**
104
+ * A single live page driven across many tool calls.
105
+ *
106
+ * Lifecycle:
107
+ * attach() → create target, open ws, Page.enable + Runtime.enable, wire the
108
+ * console ring buffer and the dialog auto-responder.
109
+ * ensure() → return the live session, or null if the page died (ws closed:
110
+ * operator closed the tab, page crashed, browser restarted).
111
+ * close() → close the target and drop all state.
112
+ *
113
+ * The action layer treats a null ensure() as "session-lost" and tells the agent
114
+ * to navigate again — only navigate() re-attaches, so a dead page is never
115
+ * silently replaced by a blank one mid-action.
116
+ */
117
+ export declare class BrowserSession {
118
+ private readonly deps;
119
+ private target;
120
+ private ws;
121
+ private session;
122
+ private readonly consoleRing;
123
+ private dialogPolicy;
124
+ private lastDialogUnhandled;
125
+ constructor(deps: CdpDeps);
126
+ /** The live session if the page is still alive, else null. */
127
+ ensure(): CdpSession | null;
128
+ /** Drop our handle on the current page (close the websocket) without closing
129
+ * the target itself — used when switching the active page to another tab so
130
+ * the previous tab stays open. */
131
+ private detachWs;
132
+ currentTargetId(): string | null;
133
+ setDialogPolicy(policy: DialogPolicy | null): void;
134
+ /** Drain the console ring buffer (returns and clears). */
135
+ drainConsole(): string[];
136
+ /** True (and resets) if a dialog fired with no policy armed. */
137
+ takeUnhandledDialogFlag(): boolean;
138
+ /**
139
+ * Attach a fresh target and wire console + dialog handling.
140
+ * Pass an existing target (from the tabs tool) to adopt it instead of creating one.
141
+ */
142
+ attach(commandTimeoutMs: number, existing?: CdpTarget): Promise<{
143
+ session: CdpSession;
144
+ } | {
145
+ outcome: CdpOutcome;
146
+ detail: string;
147
+ }>;
148
+ close(commandTimeoutMs: number): Promise<void>;
149
+ private recordConsole;
150
+ private recordException;
151
+ private push;
152
+ }
153
+ //# sourceMappingURL=cdp-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdp-session.d.ts","sourceRoot":"","sources":["../../src/lib/cdp-session.ts"],"names":[],"mappings":"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"}