@rubytech/create-maxy-code 0.1.58 → 0.1.59
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/plugins/admin/hooks/__tests__/turn-completed-graph-write.test.sh +30 -19
- package/payload/platform/plugins/admin/hooks/turn-completed-graph-write.sh +35 -90
- package/payload/platform/plugins/docs/references/admin-session.md +17 -16
- package/payload/platform/plugins/docs/references/platform.md +3 -3
- package/payload/platform/plugins/docs/references/plugins-guide.md +1 -1
- package/payload/platform/plugins/preval/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/preval/PLUGIN.md +39 -0
- package/payload/platform/plugins/preval/skills/property-preval/SKILL.md +78 -0
- package/payload/platform/plugins/preval/skills/property-preval/references/render.py +265 -0
- package/payload/platform/plugins/preval/skills/property-preval/references/template-inputs.schema.json +143 -0
- package/payload/platform/plugins/preval/skills/property-preval/references/template.html +253 -0
- package/payload/platform/plugins/property-data/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/property-data/PLUGIN.md +46 -1
- package/payload/platform/plugins/property-data/mcp/dist/index.js +81 -1
- package/payload/platform/plugins/property-data/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts +10 -0
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +1 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js +13 -0
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js.map +1 -1
- package/payload/platform/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +252 -0
- package/payload/platform/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +16 -2
- package/payload/platform/plugins/property-data/mcp/src/index.ts +155 -0
- package/payload/platform/plugins/property-data/mcp/src/tools/endpoints.ts +20 -0
- package/payload/platform/plugins/property-data/skills/property-data/SKILL.md +19 -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 +25 -260
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts +3 -7
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js +6 -32
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +6 -24
- 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 +18 -91
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.js +0 -11
- package/payload/platform/services/claude-session-manager/dist/reaper.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +0 -21
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.js.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
- package/payload/platform/templates/agents/admin/SOUL.md +1 -1
- package/payload/premium-plugins/real-agent/BUNDLE.md +5 -3
- package/payload/premium-plugins/real-agent/agents/negotiator.md +1 -1
- package/payload/premium-plugins/real-agent/agents/valuer.md +1 -1
- package/payload/premium-plugins/real-agent/plugins/.claude-plugin/marketplace.json +5 -0
- package/payload/premium-plugins/real-agent/plugins/preval/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agent/plugins/preval/PLUGIN.md +39 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +78 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +265 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +143 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +253 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/PLUGIN.md +46 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js +81 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js.map +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts +10 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js +13 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js.map +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +252 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +16 -2
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/index.ts +155 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/endpoints.ts +20 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/skills/property-data/SKILL.md +19 -0
- package/payload/server/public/assets/{admin-2ZJmzJ_g.js → admin-nqCBFiSl.js} +1 -1
- package/payload/server/public/assets/{data-DlmoKxmN.js → data-BGUAGVkV.js} +1 -1
- package/payload/server/public/assets/{graph-BVvcFSEQ.js → graph-MvYxZOBF.js} +1 -1
- package/payload/server/public/assets/{graph-labels-cCvgu38Y.js → graph-labels-D865qb3K.js} +1 -1
- package/payload/server/public/assets/{page-BnAxPkmg.js → page--hOVRrgN.js} +1 -1
- package/payload/server/public/assets/{page-BnaN3u86.js → page-C2b1nlOc.js} +1 -1
- package/payload/server/public/data.html +3 -3
- package/payload/server/public/graph.html +3 -3
- package/payload/server/public/index.html +4 -4
- package/payload/server/server.js +19 -85
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Graph — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/graph-
|
|
8
|
+
<script type="module" crossorigin src="/assets/graph-MvYxZOBF.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/brand-BWCtpG7_.js">
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/graph-labels-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/page-
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/graph-labels-D865qb3K.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/page-C2b1nlOc.js">
|
|
13
13
|
<link rel="stylesheet" crossorigin href="/assets/brand-BDASZqMG.css">
|
|
14
14
|
</head>
|
|
15
15
|
<body>
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/admin-
|
|
8
|
+
<script type="module" crossorigin src="/assets/admin-nqCBFiSl.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/brand-BWCtpG7_.js">
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/graph-labels-
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/graph-labels-D865qb3K.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/device-url-actions-CPoz5fqz.js">
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/page
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/page-
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/page--hOVRrgN.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/page-C2b1nlOc.js">
|
|
15
15
|
<link rel="stylesheet" crossorigin href="/assets/brand-BDASZqMG.css">
|
|
16
16
|
<link rel="stylesheet" crossorigin href="/assets/admin-CWMpccrR.css">
|
|
17
17
|
<link rel="stylesheet" href="/brand-defaults.css">
|
package/payload/server/server.js
CHANGED
|
@@ -8064,12 +8064,12 @@ async function performSpawnWithInitialMessage(args) {
|
|
|
8064
8064
|
permissionMode: args.permissionMode,
|
|
8065
8065
|
hidden: args.hidden,
|
|
8066
8066
|
specialist: args.specialist,
|
|
8067
|
+
model: args.model,
|
|
8067
8068
|
aboutOwner,
|
|
8068
8069
|
dormantPlugins,
|
|
8069
8070
|
activePlugins,
|
|
8070
8071
|
specialistDomains,
|
|
8071
|
-
tunnelUrl
|
|
8072
|
-
originatingSessionId: args.originatingSessionId
|
|
8072
|
+
tunnelUrl
|
|
8073
8073
|
});
|
|
8074
8074
|
console.log(`${TAG18} forward-spawn-start managerBase=${managerBase2()} bytes=${upstreamPayload.length} hidden=${args.hidden} specialist=${args.specialist ?? "none"}`);
|
|
8075
8075
|
const forwardStart = Date.now();
|
|
@@ -8103,20 +8103,15 @@ async function performSpawnWithInitialMessage(args) {
|
|
|
8103
8103
|
}
|
|
8104
8104
|
return new Response(upstream.body, { status: upstream.status, headers: upstream.headers });
|
|
8105
8105
|
}
|
|
8106
|
-
var
|
|
8107
|
-
|
|
8108
|
-
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
const xffPresent = typeof xff === "string" && xff.length > 0;
|
|
8112
|
-
if (isLoopback && !xffPresent) {
|
|
8113
|
-
console.log(`${TAG18} loopback-spawn-bypass remoteAddr=${remoteAddr} xff=absent`);
|
|
8114
|
-
return next();
|
|
8115
|
-
}
|
|
8106
|
+
var requireAdminSessionOrLoopback = async (c, next) => {
|
|
8107
|
+
const remoteAddr = c.env?.incoming?.socket?.remoteAddress ?? "";
|
|
8108
|
+
const isLoopback = remoteAddr === "127.0.0.1" || remoteAddr === "::1" || remoteAddr === "::ffff:127.0.0.1";
|
|
8109
|
+
if (isLoopback && c.req.method === "POST" && c.req.path === "/api/admin/claude-sessions") {
|
|
8110
|
+
return next();
|
|
8116
8111
|
}
|
|
8117
8112
|
return requireAdminSession(c, next);
|
|
8118
8113
|
};
|
|
8119
|
-
app14.use("*",
|
|
8114
|
+
app14.use("*", requireAdminSessionOrLoopback);
|
|
8120
8115
|
app14.post("/", async (c) => {
|
|
8121
8116
|
const routeStart = Date.now();
|
|
8122
8117
|
const cacheKey = c.get("cacheKey") ?? "";
|
|
@@ -8127,8 +8122,6 @@ app14.post("/", async (c) => {
|
|
|
8127
8122
|
}
|
|
8128
8123
|
let senderId;
|
|
8129
8124
|
let userId;
|
|
8130
|
-
let specialist;
|
|
8131
|
-
let originatingSessionId;
|
|
8132
8125
|
let authSurface;
|
|
8133
8126
|
if (cacheKey) {
|
|
8134
8127
|
authSurface = "cookie";
|
|
@@ -8138,42 +8131,31 @@ app14.post("/", async (c) => {
|
|
|
8138
8131
|
return c.json({ error: "admin-account-not-resolved" }, 500);
|
|
8139
8132
|
}
|
|
8140
8133
|
userId = getUserIdForSession(cacheKey) ?? void 0;
|
|
8141
|
-
specialist = void 0;
|
|
8142
|
-
originatingSessionId = void 0;
|
|
8143
8134
|
} else {
|
|
8144
8135
|
authSurface = "loopback";
|
|
8145
|
-
if (typeof body.
|
|
8146
|
-
|
|
8147
|
-
return c.json({ error: "originating-session-id-required" }, 400);
|
|
8136
|
+
if (typeof body.adminSessionId !== "string" || !UUID_PATTERN.test(body.adminSessionId)) {
|
|
8137
|
+
return c.json({ error: "admin-session-id-required" }, 400);
|
|
8148
8138
|
}
|
|
8149
|
-
|
|
8139
|
+
const lookupSessionId = body.adminSessionId;
|
|
8150
8140
|
const operatorMeta = await fetch(
|
|
8151
|
-
`${managerBase2()}/${encodeURIComponent(
|
|
8141
|
+
`${managerBase2()}/${encodeURIComponent(lookupSessionId)}/meta`
|
|
8152
8142
|
).then((r) => r.ok ? r.json() : null).catch((err) => {
|
|
8153
8143
|
console.error(`${TAG18} fetch-failed op=operator-meta-lookup message=${err instanceof Error ? err.message : String(err)}`);
|
|
8154
8144
|
return null;
|
|
8155
8145
|
});
|
|
8156
8146
|
const operatorSenderId = operatorMeta && typeof operatorMeta.senderId === "string" && operatorMeta.senderId.length > 0 ? operatorMeta.senderId : null;
|
|
8157
8147
|
if (!operatorSenderId) {
|
|
8158
|
-
|
|
8159
|
-
`[turn-recorder] spawn-failed sessionId=${originatingSessionId} reason=originating-session-not-found`
|
|
8160
|
-
);
|
|
8161
|
-
return c.json({ error: "originating-session-not-found" }, 404);
|
|
8148
|
+
return c.json({ error: "admin-session-not-found" }, 404);
|
|
8162
8149
|
}
|
|
8163
8150
|
senderId = operatorSenderId;
|
|
8164
8151
|
userId = void 0;
|
|
8165
|
-
specialist = typeof body.specialist === "string" && /^[A-Za-z0-9_-]{1,64}$/.test(body.specialist) ? body.specialist : "database-operator";
|
|
8166
8152
|
}
|
|
8167
8153
|
const channel = typeof body.channel === "string" ? body.channel : "browser";
|
|
8168
8154
|
const initialMessage = typeof body.initialMessage === "string" && body.initialMessage.trim() ? body.initialMessage : null;
|
|
8169
|
-
const initialMessageBytes = initialMessage ? Buffer.byteLength(initialMessage, "utf8") : 0;
|
|
8170
8155
|
const permissionMode = typeof body.permissionMode === "string" ? body.permissionMode : void 0;
|
|
8171
|
-
|
|
8172
|
-
|
|
8173
|
-
}
|
|
8174
|
-
console.log(`[turn-recorder] spawn-request sessionId=${originatingSessionId} specialist=${specialist ?? "none"} initialMessageBytes=${initialMessageBytes}`);
|
|
8175
|
-
}
|
|
8176
|
-
const t0 = Date.now();
|
|
8156
|
+
const specialist = typeof body.specialist === "string" && /^[A-Za-z0-9_-]{1,64}$/.test(body.specialist) ? body.specialist : void 0;
|
|
8157
|
+
const model = typeof body.model === "string" && /^[A-Za-z0-9._-]{1,64}$/.test(body.model) ? body.model : void 0;
|
|
8158
|
+
console.log(`${TAG18} spawn-request-in surface=${authSurface} accountId=${senderId.slice(0, 8)} userId=${userId ? userId.slice(0, 8) : "absent"} channel=${channel} permissionMode=${permissionMode ?? "default"} specialist=${specialist ?? "none"} model=${model ?? "default"} initialMessage=${initialMessage ? "yes" : "no"}`);
|
|
8177
8159
|
const response = await performSpawnWithInitialMessage({
|
|
8178
8160
|
senderId,
|
|
8179
8161
|
userId,
|
|
@@ -8182,41 +8164,10 @@ app14.post("/", async (c) => {
|
|
|
8182
8164
|
permissionMode,
|
|
8183
8165
|
hidden: false,
|
|
8184
8166
|
specialist,
|
|
8185
|
-
|
|
8186
|
-
|
|
8167
|
+
model,
|
|
8168
|
+
initialMessage
|
|
8187
8169
|
});
|
|
8188
|
-
|
|
8189
|
-
const respText = await response.text().catch(() => "");
|
|
8190
|
-
const respStatus = response.status;
|
|
8191
|
-
const replay = new Response(respText, { status: respStatus, headers: response.headers });
|
|
8192
|
-
let parsed = null;
|
|
8193
|
-
try {
|
|
8194
|
-
parsed = JSON.parse(respText);
|
|
8195
|
-
} catch {
|
|
8196
|
-
parsed = null;
|
|
8197
|
-
}
|
|
8198
|
-
if (respStatus >= 200 && respStatus < 300 && parsed && typeof parsed.sessionId === "string") {
|
|
8199
|
-
const recorderSessionId = parsed.sessionId;
|
|
8200
|
-
console.log(
|
|
8201
|
-
`[turn-recorder] spawn-success sessionId=${originatingSessionId} recorderSessionId=${recorderSessionId} pid=${parsed.pid ?? 0} latency-ms=${Date.now() - t0}`
|
|
8202
|
-
);
|
|
8203
|
-
if (initialMessage) {
|
|
8204
|
-
console.log(
|
|
8205
|
-
`[turn-recorder] input-delivered sessionId=${originatingSessionId} recorderSessionId=${recorderSessionId} bytes=${initialMessageBytes} multiline=${initialMessage.includes("\n")}`
|
|
8206
|
-
);
|
|
8207
|
-
}
|
|
8208
|
-
} else {
|
|
8209
|
-
const reasonRaw = parsed && typeof parsed.error === "string" ? parsed.error : "unknown";
|
|
8210
|
-
if (reasonRaw !== "tool-surface-missing" && reasonRaw !== "missing-originating-session-id") {
|
|
8211
|
-
const detail = parsed && typeof parsed.detail === "string" ? parsed.detail.slice(0, 200) : "";
|
|
8212
|
-
console.log(
|
|
8213
|
-
`[turn-recorder] spawn-failed sessionId=${originatingSessionId} reason=manager-spawn http=${respStatus} err=${JSON.stringify(detail || reasonRaw)}`
|
|
8214
|
-
);
|
|
8215
|
-
}
|
|
8216
|
-
}
|
|
8217
|
-
return replay;
|
|
8218
|
-
}
|
|
8219
|
-
console.log(`${TAG18} route-done surface=cookie status=${response.status} route-ms=${Date.now() - routeStart}`);
|
|
8170
|
+
console.log(`${TAG18} route-done surface=${authSurface} status=${response.status} route-ms=${Date.now() - routeStart}`);
|
|
8220
8171
|
return response;
|
|
8221
8172
|
});
|
|
8222
8173
|
app14.get("/events", async (c) => {
|
|
@@ -8343,23 +8294,6 @@ app14.get("/:sessionId/meta", async (c) => {
|
|
|
8343
8294
|
if (!upstream) return c.json({ error: "manager-unreachable" }, 503);
|
|
8344
8295
|
return new Response(upstream.body, { status: upstream.status, headers: upstream.headers });
|
|
8345
8296
|
});
|
|
8346
|
-
app14.patch("/:sessionId", async (c) => {
|
|
8347
|
-
const sessionId = c.req.param("sessionId");
|
|
8348
|
-
const body = await c.req.text();
|
|
8349
|
-
const upstream = await fetch(
|
|
8350
|
-
`${managerBase2()}/${encodeURIComponent(sessionId)}`,
|
|
8351
|
-
{
|
|
8352
|
-
method: "PATCH",
|
|
8353
|
-
headers: { "content-type": "application/json" },
|
|
8354
|
-
body
|
|
8355
|
-
}
|
|
8356
|
-
).catch((err) => {
|
|
8357
|
-
console.error(`${TAG18} fetch-failed op=patch message=${err instanceof Error ? err.message : String(err)}`);
|
|
8358
|
-
return null;
|
|
8359
|
-
});
|
|
8360
|
-
if (!upstream) return c.json({ error: "manager-unreachable" }, 503);
|
|
8361
|
-
return new Response(upstream.body, { status: upstream.status, headers: upstream.headers });
|
|
8362
|
-
});
|
|
8363
8297
|
app14.post("/:sessionId/input", async (c) => {
|
|
8364
8298
|
const sessionId = c.req.param("sessionId");
|
|
8365
8299
|
const rawBody = await c.req.text();
|