@rubytech/create-maxy-code 0.1.57 → 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 -83
|
@@ -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,18 +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
|
-
console.log(`${TAG18} loopback-spawn-bypass remoteAddr=${remoteAddr}`);
|
|
8112
|
-
return next();
|
|
8113
|
-
}
|
|
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();
|
|
8114
8111
|
}
|
|
8115
8112
|
return requireAdminSession(c, next);
|
|
8116
8113
|
};
|
|
8117
|
-
app14.use("*",
|
|
8114
|
+
app14.use("*", requireAdminSessionOrLoopback);
|
|
8118
8115
|
app14.post("/", async (c) => {
|
|
8119
8116
|
const routeStart = Date.now();
|
|
8120
8117
|
const cacheKey = c.get("cacheKey") ?? "";
|
|
@@ -8125,8 +8122,6 @@ app14.post("/", async (c) => {
|
|
|
8125
8122
|
}
|
|
8126
8123
|
let senderId;
|
|
8127
8124
|
let userId;
|
|
8128
|
-
let specialist;
|
|
8129
|
-
let originatingSessionId;
|
|
8130
8125
|
let authSurface;
|
|
8131
8126
|
if (cacheKey) {
|
|
8132
8127
|
authSurface = "cookie";
|
|
@@ -8136,42 +8131,31 @@ app14.post("/", async (c) => {
|
|
|
8136
8131
|
return c.json({ error: "admin-account-not-resolved" }, 500);
|
|
8137
8132
|
}
|
|
8138
8133
|
userId = getUserIdForSession(cacheKey) ?? void 0;
|
|
8139
|
-
specialist = void 0;
|
|
8140
|
-
originatingSessionId = void 0;
|
|
8141
8134
|
} else {
|
|
8142
8135
|
authSurface = "loopback";
|
|
8143
|
-
if (typeof body.
|
|
8144
|
-
|
|
8145
|
-
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);
|
|
8146
8138
|
}
|
|
8147
|
-
|
|
8139
|
+
const lookupSessionId = body.adminSessionId;
|
|
8148
8140
|
const operatorMeta = await fetch(
|
|
8149
|
-
`${managerBase2()}/${encodeURIComponent(
|
|
8141
|
+
`${managerBase2()}/${encodeURIComponent(lookupSessionId)}/meta`
|
|
8150
8142
|
).then((r) => r.ok ? r.json() : null).catch((err) => {
|
|
8151
8143
|
console.error(`${TAG18} fetch-failed op=operator-meta-lookup message=${err instanceof Error ? err.message : String(err)}`);
|
|
8152
8144
|
return null;
|
|
8153
8145
|
});
|
|
8154
8146
|
const operatorSenderId = operatorMeta && typeof operatorMeta.senderId === "string" && operatorMeta.senderId.length > 0 ? operatorMeta.senderId : null;
|
|
8155
8147
|
if (!operatorSenderId) {
|
|
8156
|
-
|
|
8157
|
-
`[turn-recorder] spawn-failed sessionId=${originatingSessionId} reason=originating-session-not-found`
|
|
8158
|
-
);
|
|
8159
|
-
return c.json({ error: "originating-session-not-found" }, 404);
|
|
8148
|
+
return c.json({ error: "admin-session-not-found" }, 404);
|
|
8160
8149
|
}
|
|
8161
8150
|
senderId = operatorSenderId;
|
|
8162
8151
|
userId = void 0;
|
|
8163
|
-
specialist = typeof body.specialist === "string" && /^[A-Za-z0-9_-]{1,64}$/.test(body.specialist) ? body.specialist : "database-operator";
|
|
8164
8152
|
}
|
|
8165
8153
|
const channel = typeof body.channel === "string" ? body.channel : "browser";
|
|
8166
8154
|
const initialMessage = typeof body.initialMessage === "string" && body.initialMessage.trim() ? body.initialMessage : null;
|
|
8167
|
-
const initialMessageBytes = initialMessage ? Buffer.byteLength(initialMessage, "utf8") : 0;
|
|
8168
8155
|
const permissionMode = typeof body.permissionMode === "string" ? body.permissionMode : void 0;
|
|
8169
|
-
|
|
8170
|
-
|
|
8171
|
-
}
|
|
8172
|
-
console.log(`[turn-recorder] spawn-request sessionId=${originatingSessionId} specialist=${specialist ?? "none"} initialMessageBytes=${initialMessageBytes}`);
|
|
8173
|
-
}
|
|
8174
|
-
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"}`);
|
|
8175
8159
|
const response = await performSpawnWithInitialMessage({
|
|
8176
8160
|
senderId,
|
|
8177
8161
|
userId,
|
|
@@ -8180,41 +8164,10 @@ app14.post("/", async (c) => {
|
|
|
8180
8164
|
permissionMode,
|
|
8181
8165
|
hidden: false,
|
|
8182
8166
|
specialist,
|
|
8183
|
-
|
|
8184
|
-
|
|
8167
|
+
model,
|
|
8168
|
+
initialMessage
|
|
8185
8169
|
});
|
|
8186
|
-
|
|
8187
|
-
const respText = await response.text().catch(() => "");
|
|
8188
|
-
const respStatus = response.status;
|
|
8189
|
-
const replay = new Response(respText, { status: respStatus, headers: response.headers });
|
|
8190
|
-
let parsed = null;
|
|
8191
|
-
try {
|
|
8192
|
-
parsed = JSON.parse(respText);
|
|
8193
|
-
} catch {
|
|
8194
|
-
parsed = null;
|
|
8195
|
-
}
|
|
8196
|
-
if (respStatus >= 200 && respStatus < 300 && parsed && typeof parsed.sessionId === "string") {
|
|
8197
|
-
const recorderSessionId = parsed.sessionId;
|
|
8198
|
-
console.log(
|
|
8199
|
-
`[turn-recorder] spawn-success sessionId=${originatingSessionId} recorderSessionId=${recorderSessionId} pid=${parsed.pid ?? 0} latency-ms=${Date.now() - t0}`
|
|
8200
|
-
);
|
|
8201
|
-
if (initialMessage) {
|
|
8202
|
-
console.log(
|
|
8203
|
-
`[turn-recorder] input-delivered sessionId=${originatingSessionId} recorderSessionId=${recorderSessionId} bytes=${initialMessageBytes} multiline=${initialMessage.includes("\n")}`
|
|
8204
|
-
);
|
|
8205
|
-
}
|
|
8206
|
-
} else {
|
|
8207
|
-
const reasonRaw = parsed && typeof parsed.error === "string" ? parsed.error : "unknown";
|
|
8208
|
-
if (reasonRaw !== "tool-surface-missing" && reasonRaw !== "missing-originating-session-id") {
|
|
8209
|
-
const detail = parsed && typeof parsed.detail === "string" ? parsed.detail.slice(0, 200) : "";
|
|
8210
|
-
console.log(
|
|
8211
|
-
`[turn-recorder] spawn-failed sessionId=${originatingSessionId} reason=manager-spawn http=${respStatus} err=${JSON.stringify(detail || reasonRaw)}`
|
|
8212
|
-
);
|
|
8213
|
-
}
|
|
8214
|
-
}
|
|
8215
|
-
return replay;
|
|
8216
|
-
}
|
|
8217
|
-
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}`);
|
|
8218
8171
|
return response;
|
|
8219
8172
|
});
|
|
8220
8173
|
app14.get("/events", async (c) => {
|
|
@@ -8341,23 +8294,6 @@ app14.get("/:sessionId/meta", async (c) => {
|
|
|
8341
8294
|
if (!upstream) return c.json({ error: "manager-unreachable" }, 503);
|
|
8342
8295
|
return new Response(upstream.body, { status: upstream.status, headers: upstream.headers });
|
|
8343
8296
|
});
|
|
8344
|
-
app14.patch("/:sessionId", async (c) => {
|
|
8345
|
-
const sessionId = c.req.param("sessionId");
|
|
8346
|
-
const body = await c.req.text();
|
|
8347
|
-
const upstream = await fetch(
|
|
8348
|
-
`${managerBase2()}/${encodeURIComponent(sessionId)}`,
|
|
8349
|
-
{
|
|
8350
|
-
method: "PATCH",
|
|
8351
|
-
headers: { "content-type": "application/json" },
|
|
8352
|
-
body
|
|
8353
|
-
}
|
|
8354
|
-
).catch((err) => {
|
|
8355
|
-
console.error(`${TAG18} fetch-failed op=patch message=${err instanceof Error ? err.message : String(err)}`);
|
|
8356
|
-
return null;
|
|
8357
|
-
});
|
|
8358
|
-
if (!upstream) return c.json({ error: "manager-unreachable" }, 503);
|
|
8359
|
-
return new Response(upstream.body, { status: upstream.status, headers: upstream.headers });
|
|
8360
|
-
});
|
|
8361
8297
|
app14.post("/:sessionId/input", async (c) => {
|
|
8362
8298
|
const sessionId = c.req.param("sessionId");
|
|
8363
8299
|
const rawBody = await c.req.text();
|