@rubytech/create-maxy 1.0.762 → 1.0.764
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/neo4j/schema.cypher +50 -0
- package/payload/platform/package-lock.json +56 -1
- package/payload/platform/package.json +1 -0
- package/payload/platform/plugins/docs/references/outlook-guide.md +69 -0
- package/payload/platform/plugins/outlook/PLUGIN.md +48 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +94 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js +31 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js +213 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts +2 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js +130 -0
- package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts +65 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +261 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts +61 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js +170 -0
- package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/index.d.ts +18 -0
- package/payload/platform/plugins/outlook/mcp/dist/index.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/index.js +152 -0
- package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +60 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +189 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts +23 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/log.js +53 -0
- package/payload/platform/plugins/outlook/mcp/dist/lib/log.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts +26 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js +50 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts +12 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js +32 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts +59 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js +54 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts +14 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js +45 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts +15 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js +48 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts +8 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js +49 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts +19 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts.map +1 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js +58 -0
- package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js.map +1 -0
- package/payload/platform/plugins/outlook/mcp/package.json +20 -0
- package/payload/platform/plugins/outlook/mcp/scripts/verify-doc-impl.sh +109 -0
- package/payload/platform/plugins/outlook/references/auth.md +118 -0
- package/payload/platform/plugins/outlook/references/graph-surfaces.md +114 -0
- package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +65 -0
- package/payload/platform/templates/specialists/agents/personal-assistant.md +1 -1
- package/payload/server/chunk-EIQT6QDH.js +9562 -0
- package/payload/server/chunk-S3M2NZMA.js +3136 -0
- package/payload/server/chunk-SGBNY4NP.js +9540 -0
- package/payload/server/client-pool-5V5GX3UT.js +28 -0
- package/payload/server/maxy-edge.js +2 -2
- package/payload/server/public/assets/{admin-7vGwd7wu.js → admin-V6NDkEoR.js} +2 -2
- package/payload/server/public/index.html +1 -1
- package/payload/server/server.js +104 -6
|
@@ -5,7 +5,7 @@
|
|
|
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-V6NDkEoR.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DD-I1_y5.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-B4QFltsm.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-qlgyTAkD.js">
|
package/payload/server/server.js
CHANGED
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
vncLog,
|
|
48
48
|
waitForExit,
|
|
49
49
|
writeChromiumWrapper
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-EIQT6QDH.js";
|
|
51
51
|
import {
|
|
52
52
|
ACCOUNTS_DIR,
|
|
53
53
|
GREETING_DIRECTIVE,
|
|
@@ -107,7 +107,7 @@ import {
|
|
|
107
107
|
validateSession,
|
|
108
108
|
verifyAndGetConversationUpdatedAt,
|
|
109
109
|
verifyConversationOwnership
|
|
110
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-S3M2NZMA.js";
|
|
111
111
|
|
|
112
112
|
// ../lib/graph-trash/dist/index.js
|
|
113
113
|
var require_dist = __commonJS({
|
|
@@ -8132,7 +8132,7 @@ var app11 = new Hono();
|
|
|
8132
8132
|
app11.post("/cancel", requireAdminSession, async (c) => {
|
|
8133
8133
|
const session_key = c.var.sessionKey;
|
|
8134
8134
|
try {
|
|
8135
|
-
const { interruptClient: interruptClient2 } = await import("./client-pool-
|
|
8135
|
+
const { interruptClient: interruptClient2 } = await import("./client-pool-5V5GX3UT.js");
|
|
8136
8136
|
await interruptClient2(session_key);
|
|
8137
8137
|
return c.json({ ok: true });
|
|
8138
8138
|
} catch (err) {
|
|
@@ -8843,6 +8843,76 @@ var agents_default = app16;
|
|
|
8843
8843
|
import crypto2 from "crypto";
|
|
8844
8844
|
import { resolve as resolvePath } from "path";
|
|
8845
8845
|
import { appendFileSync as appendFileSync5 } from "fs";
|
|
8846
|
+
var PERSISTENT_COMPONENT_NAMES = /* @__PURE__ */ new Set([
|
|
8847
|
+
"action-list",
|
|
8848
|
+
"document-editor",
|
|
8849
|
+
"rich-content-editor",
|
|
8850
|
+
"grid-editor"
|
|
8851
|
+
]);
|
|
8852
|
+
function reconstructAssistantEvents(content, components, conversationId, messageId, streamLogPath) {
|
|
8853
|
+
if (components.length === 0) {
|
|
8854
|
+
return {
|
|
8855
|
+
events: content.length > 0 ? [{ type: "text", content }] : [],
|
|
8856
|
+
valid: 0,
|
|
8857
|
+
invalid: 0,
|
|
8858
|
+
submittedEventIndices: []
|
|
8859
|
+
};
|
|
8860
|
+
}
|
|
8861
|
+
const sorted = [...components].sort((a, b) => {
|
|
8862
|
+
if (a.textOffset !== b.textOffset) return a.textOffset - b.textOffset;
|
|
8863
|
+
return a.ordinal - b.ordinal;
|
|
8864
|
+
});
|
|
8865
|
+
const events = [];
|
|
8866
|
+
const submittedEventIndices = [];
|
|
8867
|
+
let cursor = 0;
|
|
8868
|
+
let valid = 0;
|
|
8869
|
+
let invalid = 0;
|
|
8870
|
+
for (const c of sorted) {
|
|
8871
|
+
const offset = Math.max(0, Math.min(c.textOffset, content.length));
|
|
8872
|
+
if (offset > cursor) {
|
|
8873
|
+
events.push({ type: "text", content: content.slice(cursor, offset) });
|
|
8874
|
+
cursor = offset;
|
|
8875
|
+
}
|
|
8876
|
+
let parsedData;
|
|
8877
|
+
let invalidReason = null;
|
|
8878
|
+
if (!c.name || c.name.trim() === "") {
|
|
8879
|
+
invalidReason = "missing-name";
|
|
8880
|
+
} else {
|
|
8881
|
+
try {
|
|
8882
|
+
parsedData = JSON.parse(c.data ?? "null");
|
|
8883
|
+
} catch {
|
|
8884
|
+
invalidReason = "json-parse";
|
|
8885
|
+
}
|
|
8886
|
+
if (invalidReason === null) {
|
|
8887
|
+
if (parsedData === null || typeof parsedData !== "object" || Array.isArray(parsedData)) {
|
|
8888
|
+
invalidReason = "not-object";
|
|
8889
|
+
}
|
|
8890
|
+
}
|
|
8891
|
+
}
|
|
8892
|
+
if (invalidReason !== null) {
|
|
8893
|
+
invalid += 1;
|
|
8894
|
+
const notice = `[component-rehydrate-invalid] ${c.name || "<unnamed>"} could not be restored (reason=${invalidReason})`;
|
|
8895
|
+
events.push({ type: "text", content: notice, _invalid: true });
|
|
8896
|
+
const line = `[${(/* @__PURE__ */ new Date()).toISOString()}] [component-rehydrate-invalid] conversationId=${conversationId.slice(0, 8)} messageId=${messageId.slice(0, 8)} name=${c.name || "<unnamed>"} reason=${invalidReason}
|
|
8897
|
+
`;
|
|
8898
|
+
try {
|
|
8899
|
+
appendFileSync5(streamLogPath, line);
|
|
8900
|
+
} catch {
|
|
8901
|
+
}
|
|
8902
|
+
continue;
|
|
8903
|
+
}
|
|
8904
|
+
valid += 1;
|
|
8905
|
+
const eventIndex = events.length;
|
|
8906
|
+
events.push({ type: "component", name: c.name, data: parsedData });
|
|
8907
|
+
if (c.submitted === true && !PERSISTENT_COMPONENT_NAMES.has(c.name)) {
|
|
8908
|
+
submittedEventIndices.push(eventIndex);
|
|
8909
|
+
}
|
|
8910
|
+
}
|
|
8911
|
+
if (cursor < content.length) {
|
|
8912
|
+
events.push({ type: "text", content: content.slice(cursor) });
|
|
8913
|
+
}
|
|
8914
|
+
return { events, valid, invalid, submittedEventIndices };
|
|
8915
|
+
}
|
|
8846
8916
|
var LABEL_MAX_LENGTH = 200;
|
|
8847
8917
|
function formatAge(updatedAtStr) {
|
|
8848
8918
|
try {
|
|
@@ -8961,14 +9031,42 @@ app17.post("/:id/resume", requireAdminSession, async (c) => {
|
|
|
8961
9031
|
}
|
|
8962
9032
|
const streamLogPath = resolvePath(ACCOUNTS_DIR, accountId, "logs", `claude-agent-stream-${conversationId}.log`);
|
|
8963
9033
|
const tag = persistedAgentSessionId ? `agentSessionId=${persistedAgentSessionId.slice(0, 8)}\u2026` : "agentSessionId=missing";
|
|
9034
|
+
let totalValid = 0;
|
|
9035
|
+
let totalInvalid = 0;
|
|
9036
|
+
let totalComponents = 0;
|
|
9037
|
+
const rehydrated = messages.map((m) => {
|
|
9038
|
+
const components = m.components ?? [];
|
|
9039
|
+
if (m.role !== "assistant") {
|
|
9040
|
+
return { messageId: m.messageId, role: m.role, content: m.content, createdAt: m.createdAt };
|
|
9041
|
+
}
|
|
9042
|
+
const { events, valid, invalid, submittedEventIndices } = reconstructAssistantEvents(m.content, components, conversationId, m.messageId, streamLogPath);
|
|
9043
|
+
totalValid += valid;
|
|
9044
|
+
totalInvalid += invalid;
|
|
9045
|
+
totalComponents += components.length;
|
|
9046
|
+
return {
|
|
9047
|
+
messageId: m.messageId,
|
|
9048
|
+
role: m.role,
|
|
9049
|
+
events,
|
|
9050
|
+
createdAt: m.createdAt,
|
|
9051
|
+
// Submitted-event indices for client `submittedComponents` seed —
|
|
9052
|
+
// empty array when no PERSISTENT_COMPONENT was approved live, omitted
|
|
9053
|
+
// from the wire payload to keep the response slim.
|
|
9054
|
+
...submittedEventIndices.length > 0 ? { submittedEventIndices } : {}
|
|
9055
|
+
};
|
|
9056
|
+
});
|
|
9057
|
+
const textRuns = rehydrated.reduce((n, m) => n + (m.events?.filter((e) => e.type === "text").length ?? 0), 0);
|
|
8964
9058
|
try {
|
|
8965
|
-
appendFileSync5(streamLogPath, `[${(/* @__PURE__ */ new Date()).toISOString()}] [admin-resume] sessionKey=${sessionKey.slice(0, 8)} conversationId=${conversationId.slice(0, 8)} ${tag} loadedMessages=${messages.length}
|
|
9059
|
+
appendFileSync5(streamLogPath, `[${(/* @__PURE__ */ new Date()).toISOString()}] [admin-resume] sessionKey=${sessionKey.slice(0, 8)} conversationId=${conversationId.slice(0, 8)} ${tag} loadedMessages=${messages.length} componentCount=${totalComponents}
|
|
9060
|
+
`);
|
|
9061
|
+
if (totalComponents > 0) {
|
|
9062
|
+
appendFileSync5(streamLogPath, `[${(/* @__PURE__ */ new Date()).toISOString()}] [component-rehydrate] conversationId=${conversationId.slice(0, 8)} count=${totalComponents} valid=${totalValid} invalid=${totalInvalid} textRuns=${textRuns}
|
|
8966
9063
|
`);
|
|
9064
|
+
}
|
|
8967
9065
|
} catch {
|
|
8968
9066
|
}
|
|
8969
9067
|
const age = formatAge(updatedAt);
|
|
8970
|
-
console.log(`[admin-resume] ${(/* @__PURE__ */ new Date()).toISOString()} conversationId=${conversationId.slice(0, 8)}\u2026 age=${age} loaded=${messages.length} messages ${tag} sessionKey=${sessionKey.slice(0, 8)}\u2026`);
|
|
8971
|
-
return c.json({ conversationId, messages });
|
|
9068
|
+
console.log(`[admin-resume] ${(/* @__PURE__ */ new Date()).toISOString()} conversationId=${conversationId.slice(0, 8)}\u2026 age=${age} loaded=${messages.length} messages ${tag} components=${totalComponents} sessionKey=${sessionKey.slice(0, 8)}\u2026`);
|
|
9069
|
+
return c.json({ conversationId, messages: rehydrated });
|
|
8972
9070
|
});
|
|
8973
9071
|
app17.post("/:id/label", requireAdminSession, async (c) => {
|
|
8974
9072
|
const conversationId = c.req.param("id");
|