@rubytech/create-maxy-code 0.1.595 → 0.1.597
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/routine-templates/dist/roster.d.ts +1 -1
- package/payload/platform/lib/routine-templates/dist/roster.d.ts.map +1 -1
- package/payload/platform/lib/routine-templates/dist/roster.js +22 -1
- package/payload/platform/lib/routine-templates/dist/roster.js.map +1 -1
- package/payload/platform/lib/routine-templates/src/__tests__/roster.test.ts +0 -0
- package/payload/platform/lib/routine-templates/src/__tests__/seed.test.ts +16 -0
- package/payload/platform/lib/routine-templates/src/roster.ts +24 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +7 -6
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +11 -0
- package/payload/platform/plugins/docs/references/admin-ui.md +6 -5
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +102 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +0 -11
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +125 -3
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
- package/payload/platform/plugins/scheduling/skills/routine-control/SKILL.md +4 -0
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-store.test.js +61 -3
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-store.test.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js +122 -2
- package/payload/platform/plugins/telegram/mcp/dist/__tests__/card-tool.test.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.d.ts +26 -0
- package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.js +73 -1
- package/payload/platform/plugins/telegram/mcp/dist/lib/card-store.js.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts +5 -0
- package/payload/platform/plugins/telegram/mcp/dist/tools/card.d.ts.map +1 -1
- package/payload/platform/plugins/telegram/mcp/dist/tools/card.js +101 -8
- package/payload/platform/plugins/telegram/mcp/dist/tools/card.js.map +1 -1
- package/payload/server/public/activity.html +6 -6
- package/payload/server/public/agents.html +5 -5
- package/payload/server/public/assets/{AdminLoginScreens-dBZJlMbp.js → AdminLoginScreens-B3W6J6Bl.js} +1 -1
- package/payload/server/public/assets/AdminLoginScreens-B3W6J6Bl.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-B3W6J6Bl.js.gz +0 -0
- package/payload/server/public/assets/{AdminShell-D94sgtsb.js → AdminShell-C3R-vMZ5.js} +1 -1
- package/payload/server/public/assets/AdminShell-C3R-vMZ5.js.br +0 -0
- package/payload/server/public/assets/AdminShell-C3R-vMZ5.js.gz +0 -0
- package/payload/server/public/assets/{activity-D6NEUvT7.js → activity-tzv68iBs.js} +1 -1
- package/payload/server/public/assets/activity-tzv68iBs.js.br +0 -0
- package/payload/server/public/assets/activity-tzv68iBs.js.gz +0 -0
- package/payload/server/public/assets/{admin-BluqXSKn.js → admin-CzW_9jm3.js} +1 -1
- package/payload/server/public/assets/admin-CzW_9jm3.js.br +0 -0
- package/payload/server/public/assets/admin-CzW_9jm3.js.gz +0 -0
- package/payload/server/public/assets/{agents-D_6V66dr.js → agents-DUZfeY3X.js} +1 -1
- package/payload/server/public/assets/agents-DUZfeY3X.js.br +0 -0
- package/payload/server/public/assets/agents-DUZfeY3X.js.gz +0 -0
- package/payload/server/public/assets/{browser-Bz9s6ztS.js → browser-DwLaXqjO.js} +1 -1
- package/payload/server/public/assets/browser-DwLaXqjO.js.br +0 -0
- package/payload/server/public/assets/browser-DwLaXqjO.js.gz +0 -0
- package/payload/server/public/assets/{calendar-D5OCrmwA.js → calendar-Cli8Qjl9.js} +1 -1
- package/payload/server/public/assets/calendar-Cli8Qjl9.js.br +0 -0
- package/payload/server/public/assets/calendar-Cli8Qjl9.js.gz +0 -0
- package/payload/server/public/assets/chat-ByAgBgm1.js +1 -0
- package/payload/server/public/assets/chat-ByAgBgm1.js.br +1 -0
- package/payload/server/public/assets/chat-ByAgBgm1.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-BIYVnwvk.js +1 -0
- package/payload/server/public/assets/chevron-left-BIYVnwvk.js.br +0 -0
- package/payload/server/public/assets/clock-Dzy79hq3.js +1 -0
- package/payload/server/public/assets/clock-Dzy79hq3.js.br +0 -0
- package/payload/server/public/assets/clock-Dzy79hq3.js.gz +0 -0
- package/payload/server/public/assets/{copy-CXBu2lHL.js → copy-yhhwfEbQ.js} +1 -1
- package/payload/server/public/assets/copy-yhhwfEbQ.js.br +0 -0
- package/payload/server/public/assets/copy-yhhwfEbQ.js.gz +0 -0
- package/payload/server/public/assets/data-CsMMki2A.js +1 -0
- package/payload/server/public/assets/data-CsMMki2A.js.br +0 -0
- package/payload/server/public/assets/data-CsMMki2A.js.gz +0 -0
- package/payload/server/public/assets/{field-D4fXu_SP.js → field-jg0YQNDy.js} +1 -1
- package/payload/server/public/assets/field-jg0YQNDy.js.br +0 -0
- package/payload/server/public/assets/field-jg0YQNDy.js.gz +0 -0
- package/payload/server/public/assets/{file-text-BxZ1UMcQ.js → file-text-D0EdW7h4.js} +1 -1
- package/payload/server/public/assets/file-text-D0EdW7h4.js.br +0 -0
- package/payload/server/public/assets/file-text-D0EdW7h4.js.gz +0 -0
- package/payload/server/public/assets/{graph-DMleOCBZ.js → graph--AUr4uBc.js} +1 -1
- package/payload/server/public/assets/graph--AUr4uBc.js.br +0 -0
- package/payload/server/public/assets/graph--AUr4uBc.js.gz +0 -0
- package/payload/server/public/assets/{graph-labels-BHapdrTm.js → graph-labels-DM0CiAX1.js} +1 -1
- package/payload/server/public/assets/graph-labels-DM0CiAX1.js.br +0 -0
- package/payload/server/public/assets/graph-labels-DM0CiAX1.js.gz +0 -0
- package/payload/server/public/assets/{jsx-runtime-gqFnq1MC.css → jsx-runtime-lfcjzaWi.css} +1 -1
- package/payload/server/public/assets/jsx-runtime-lfcjzaWi.css.br +0 -0
- package/payload/server/public/assets/{jsx-runtime-gqFnq1MC.css.gz → jsx-runtime-lfcjzaWi.css.gz} +0 -0
- package/payload/server/public/assets/{operator-BpZTRiga.js → operator-CNYKStFX.js} +1 -1
- package/payload/server/public/assets/operator-CNYKStFX.js.br +0 -0
- package/payload/server/public/assets/operator-CNYKStFX.js.gz +0 -0
- package/payload/server/public/assets/{page-CsHWZZ0U.js → page-DSsEpl8J.js} +2 -2
- package/payload/server/public/assets/page-DSsEpl8J.js.br +0 -0
- package/payload/server/public/assets/page-DSsEpl8J.js.gz +0 -0
- package/payload/server/public/assets/{page-Dczx6CPP.js → page-DjhmwxnY.js} +1 -1
- package/payload/server/public/assets/page-DjhmwxnY.js.br +0 -0
- package/payload/server/public/assets/page-DjhmwxnY.js.gz +0 -0
- package/payload/server/public/assets/play-DhZlml5b.js +1 -0
- package/payload/server/public/assets/play-DhZlml5b.js.br +0 -0
- package/payload/server/public/assets/play-DhZlml5b.js.gz +0 -0
- package/payload/server/public/assets/{public-BzpELWaZ.js → public-7gXDqCog.js} +1 -1
- package/payload/server/public/assets/public-7gXDqCog.js.br +0 -0
- package/payload/server/public/assets/public-7gXDqCog.js.gz +0 -0
- package/payload/server/public/assets/{rotate-ccw-Bkpst1na.js → rotate-ccw-DhqNTPpo.js} +1 -1
- package/payload/server/public/assets/rotate-ccw-DhqNTPpo.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-DhqNTPpo.js.gz +0 -0
- package/payload/server/public/assets/{routines-Cmuf8pPP.js → routines-CWEuQ7Gl.js} +1 -1
- package/payload/server/public/assets/routines-CWEuQ7Gl.js.br +0 -0
- package/payload/server/public/assets/routines-CWEuQ7Gl.js.gz +0 -0
- package/payload/server/public/assets/{skills-Bfq3Pbw-.js → skills-pb_3BdOl.js} +1 -1
- package/payload/server/public/assets/skills-pb_3BdOl.js.br +0 -0
- package/payload/server/public/assets/skills-pb_3BdOl.js.gz +0 -0
- package/payload/server/public/assets/{tasks-nyWLrolq.js → tasks-BQm4boat.js} +1 -1
- package/payload/server/public/assets/tasks-BQm4boat.js.br +0 -0
- package/payload/server/public/assets/tasks-BQm4boat.js.gz +0 -0
- package/payload/server/public/assets/{triangle-alert-DkENIQJ6.js → triangle-alert-d7yjaIqv.js} +1 -1
- package/payload/server/public/assets/triangle-alert-d7yjaIqv.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-d7yjaIqv.js.gz +0 -0
- package/payload/server/public/assets/{useCopyFeedback-DmNjbXe9.js → useCopyFeedback-CZ6Qhfkj.js} +1 -1
- package/payload/server/public/assets/useCopyFeedback-CZ6Qhfkj.js.br +0 -0
- package/payload/server/public/assets/useCopyFeedback-CZ6Qhfkj.js.gz +0 -0
- package/payload/server/public/assets/{useMediaQuery-DL-C1y_F.js → useMediaQuery-R1smYLx4.js} +1 -1
- package/payload/server/public/assets/useMediaQuery-R1smYLx4.js.br +0 -0
- package/payload/server/public/assets/useMediaQuery-R1smYLx4.js.gz +0 -0
- package/payload/server/public/assets/{useVoiceRecorder-DseLVULD.js → useVoiceRecorder-DM1v6sRa.js} +1 -1
- package/payload/server/public/assets/useVoiceRecorder-DM1v6sRa.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-DM1v6sRa.js.gz +0 -0
- package/payload/server/public/assets/{wrench-C7tdp6z9.js → wrench-DL1pbaCs.js} +1 -1
- package/payload/server/public/assets/wrench-DL1pbaCs.js.br +0 -0
- package/payload/server/public/assets/wrench-DL1pbaCs.js.gz +0 -0
- package/payload/server/public/browser.html +5 -5
- package/payload/server/public/calendar.html +8 -8
- package/payload/server/public/chat.html +14 -14
- package/payload/server/public/data.html +12 -12
- package/payload/server/public/field.html +3 -3
- package/payload/server/public/graph.html +10 -10
- package/payload/server/public/index.html +14 -14
- package/payload/server/public/operator.html +16 -16
- package/payload/server/public/public.html +14 -14
- package/payload/server/public/routines.html +8 -8
- package/payload/server/public/skills.html +6 -6
- package/payload/server/public/tasks.html +7 -7
- package/payload/server/server.js +161 -8
- package/payload/server/public/assets/AdminLoginScreens-dBZJlMbp.js.br +0 -0
- package/payload/server/public/assets/AdminLoginScreens-dBZJlMbp.js.gz +0 -0
- package/payload/server/public/assets/AdminShell-D94sgtsb.js.br +0 -0
- package/payload/server/public/assets/AdminShell-D94sgtsb.js.gz +0 -0
- package/payload/server/public/assets/activity-D6NEUvT7.js.br +0 -0
- package/payload/server/public/assets/activity-D6NEUvT7.js.gz +0 -0
- package/payload/server/public/assets/admin-BluqXSKn.js.br +0 -0
- package/payload/server/public/assets/admin-BluqXSKn.js.gz +0 -0
- package/payload/server/public/assets/agents-D_6V66dr.js.br +0 -0
- package/payload/server/public/assets/agents-D_6V66dr.js.gz +0 -0
- package/payload/server/public/assets/browser-Bz9s6ztS.js.br +0 -0
- package/payload/server/public/assets/browser-Bz9s6ztS.js.gz +0 -0
- package/payload/server/public/assets/calendar-D5OCrmwA.js.br +0 -0
- package/payload/server/public/assets/calendar-D5OCrmwA.js.gz +0 -0
- package/payload/server/public/assets/chat-CjlbEzZ-.js +0 -1
- package/payload/server/public/assets/chat-CjlbEzZ-.js.br +0 -1
- package/payload/server/public/assets/chat-CjlbEzZ-.js.gz +0 -0
- package/payload/server/public/assets/chevron-left-b_r2jNvg.js +0 -1
- package/payload/server/public/assets/chevron-left-b_r2jNvg.js.br +0 -0
- package/payload/server/public/assets/clock-D8tMbEZD.js +0 -1
- package/payload/server/public/assets/clock-D8tMbEZD.js.br +0 -0
- package/payload/server/public/assets/clock-D8tMbEZD.js.gz +0 -0
- package/payload/server/public/assets/copy-CXBu2lHL.js.br +0 -0
- package/payload/server/public/assets/copy-CXBu2lHL.js.gz +0 -0
- package/payload/server/public/assets/data-ChHg_Lq9.js +0 -1
- package/payload/server/public/assets/data-ChHg_Lq9.js.br +0 -0
- package/payload/server/public/assets/data-ChHg_Lq9.js.gz +0 -0
- package/payload/server/public/assets/field-D4fXu_SP.js.br +0 -0
- package/payload/server/public/assets/field-D4fXu_SP.js.gz +0 -0
- package/payload/server/public/assets/file-text-BxZ1UMcQ.js.br +0 -0
- package/payload/server/public/assets/file-text-BxZ1UMcQ.js.gz +0 -0
- package/payload/server/public/assets/graph-DMleOCBZ.js.br +0 -0
- package/payload/server/public/assets/graph-DMleOCBZ.js.gz +0 -0
- package/payload/server/public/assets/graph-labels-BHapdrTm.js.br +0 -0
- package/payload/server/public/assets/graph-labels-BHapdrTm.js.gz +0 -0
- package/payload/server/public/assets/jsx-runtime-gqFnq1MC.css.br +0 -0
- package/payload/server/public/assets/operator-BpZTRiga.js.br +0 -0
- package/payload/server/public/assets/operator-BpZTRiga.js.gz +0 -0
- package/payload/server/public/assets/page-CsHWZZ0U.js.br +0 -0
- package/payload/server/public/assets/page-CsHWZZ0U.js.gz +0 -0
- package/payload/server/public/assets/page-Dczx6CPP.js.br +0 -0
- package/payload/server/public/assets/page-Dczx6CPP.js.gz +0 -0
- package/payload/server/public/assets/play-D_xdb6gy.js +0 -1
- package/payload/server/public/assets/play-D_xdb6gy.js.br +0 -0
- package/payload/server/public/assets/play-D_xdb6gy.js.gz +0 -0
- package/payload/server/public/assets/public-BzpELWaZ.js.br +0 -0
- package/payload/server/public/assets/public-BzpELWaZ.js.gz +0 -0
- package/payload/server/public/assets/rotate-ccw-Bkpst1na.js.br +0 -0
- package/payload/server/public/assets/rotate-ccw-Bkpst1na.js.gz +0 -0
- package/payload/server/public/assets/routines-Cmuf8pPP.js.br +0 -0
- package/payload/server/public/assets/routines-Cmuf8pPP.js.gz +0 -0
- package/payload/server/public/assets/skills-Bfq3Pbw-.js.br +0 -0
- package/payload/server/public/assets/skills-Bfq3Pbw-.js.gz +0 -0
- package/payload/server/public/assets/tasks-nyWLrolq.js.br +0 -0
- package/payload/server/public/assets/tasks-nyWLrolq.js.gz +0 -0
- package/payload/server/public/assets/triangle-alert-DkENIQJ6.js.br +0 -0
- package/payload/server/public/assets/triangle-alert-DkENIQJ6.js.gz +0 -0
- package/payload/server/public/assets/useCopyFeedback-DmNjbXe9.js.br +0 -1
- package/payload/server/public/assets/useCopyFeedback-DmNjbXe9.js.gz +0 -0
- package/payload/server/public/assets/useMediaQuery-DL-C1y_F.js.br +0 -0
- package/payload/server/public/assets/useMediaQuery-DL-C1y_F.js.gz +0 -0
- package/payload/server/public/assets/useVoiceRecorder-DseLVULD.js.br +0 -0
- package/payload/server/public/assets/useVoiceRecorder-DseLVULD.js.gz +0 -0
- package/payload/server/public/assets/wrench-C7tdp6z9.js.br +0 -0
- package/payload/server/public/assets/wrench-C7tdp6z9.js.gz +0 -0
- /package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js → jsx-runtime-BtDK2X5t.js} +0 -0
- /package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js.br → jsx-runtime-BtDK2X5t.js.br} +0 -0
- /package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js.gz → jsx-runtime-BtDK2X5t.js.gz} +0 -0
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Skills — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/skills-
|
|
8
|
+
<script type="module" crossorigin src="/assets/skills-pb_3BdOl.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-BycB0eMI.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/useMediaQuery-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/file-text-
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BtDK2X5t.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/useMediaQuery-R1smYLx4.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/AdminShell-C3R-vMZ5.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/file-text-D0EdW7h4.js">
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-lfcjzaWi.css">
|
|
15
15
|
<link rel="stylesheet" crossorigin href="/assets/useMediaQuery-DXAuc8G-.css">
|
|
16
16
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
17
17
|
</head>
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Tasks — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/tasks-
|
|
8
|
+
<script type="module" crossorigin src="/assets/tasks-BQm4boat.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-BycB0eMI.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/useMediaQuery-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/AdminShell-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/play-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/rotate-ccw-
|
|
15
|
-
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BtDK2X5t.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/useMediaQuery-R1smYLx4.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/AdminShell-C3R-vMZ5.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/play-DhZlml5b.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/rotate-ccw-DhqNTPpo.js">
|
|
15
|
+
<link rel="stylesheet" crossorigin href="/assets/jsx-runtime-lfcjzaWi.css">
|
|
16
16
|
<link rel="stylesheet" crossorigin href="/assets/useMediaQuery-DXAuc8G-.css">
|
|
17
17
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
18
18
|
</head>
|
package/payload/server/server.js
CHANGED
|
@@ -4248,6 +4248,26 @@ var CHANNEL_REPLY_DOCUMENT_TOOL = "mcp__channel__reply-document";
|
|
|
4248
4248
|
var WA_SEND_PARTY_TOOL = "mcp__whatsapp-channel__send-to-party";
|
|
4249
4249
|
var CHANNEL_SEND_PARTY_TOOL = "mcp__channel__send-to-party";
|
|
4250
4250
|
var SEND_USER_FILE_TOOL = "SendUserFile";
|
|
4251
|
+
var TELEGRAM_CARD_TOOLS = /* @__PURE__ */ new Set([
|
|
4252
|
+
"mcp__telegram__telegram-card",
|
|
4253
|
+
"mcp__plugin_telegram_telegram__telegram-card"
|
|
4254
|
+
]);
|
|
4255
|
+
function parseCardButtonsFromInput(input) {
|
|
4256
|
+
const rows = input?.buttons;
|
|
4257
|
+
if (!Array.isArray(rows)) return [];
|
|
4258
|
+
const out = [];
|
|
4259
|
+
for (const row of rows) {
|
|
4260
|
+
if (!Array.isArray(row)) continue;
|
|
4261
|
+
for (const b of row) {
|
|
4262
|
+
if (!b || typeof b !== "object") continue;
|
|
4263
|
+
const text = b.text;
|
|
4264
|
+
if (typeof text !== "string") continue;
|
|
4265
|
+
const data = b.callbackData;
|
|
4266
|
+
out.push({ text, data: typeof data === "string" ? data : null });
|
|
4267
|
+
}
|
|
4268
|
+
}
|
|
4269
|
+
return out;
|
|
4270
|
+
}
|
|
4251
4271
|
var CLI_MARKER_PREFIXES = ["<local-command-", "<command-name>", "<command-message>"];
|
|
4252
4272
|
var HARNESS_LIFECYCLE_PREFIXES = ["<task-notification>"];
|
|
4253
4273
|
var CC_IMAGE_VISION_HINT = /^\[Image:[^\]]*Multiply coordinates by [\d.]+ to map to original image\.\]$/;
|
|
@@ -4410,6 +4430,14 @@ function assistantTurns(content, ts, promoteFinal = false, erroredIds = /* @__PU
|
|
|
4410
4430
|
} else {
|
|
4411
4431
|
out.push({ kind: "agent-file", files, caption, ts });
|
|
4412
4432
|
}
|
|
4433
|
+
} else if (b.type === "tool_use" && typeof b.name === "string" && TELEGRAM_CARD_TOOLS.has(b.name)) {
|
|
4434
|
+
const input = b.input ?? {};
|
|
4435
|
+
out.push({
|
|
4436
|
+
kind: "telegram-card",
|
|
4437
|
+
text: typeof input.text === "string" ? input.text : "",
|
|
4438
|
+
buttons: parseCardButtonsFromInput(b.input),
|
|
4439
|
+
ts
|
|
4440
|
+
});
|
|
4413
4441
|
} else if (b.type === "tool_use" && typeof b.name === "string") {
|
|
4414
4442
|
out.push({ kind: "tool-call", name: b.name, input: b.input ?? null, ts });
|
|
4415
4443
|
}
|
|
@@ -7153,6 +7181,20 @@ function transcriptBoundary(sessionKey) {
|
|
|
7153
7181
|
return { transcriptOffset: null, bounded: false };
|
|
7154
7182
|
}
|
|
7155
7183
|
}
|
|
7184
|
+
function composeDeliveredText(prompt, deliveredMessages) {
|
|
7185
|
+
if (!Array.isArray(deliveredMessages) || deliveredMessages.length === 0) return prompt;
|
|
7186
|
+
const lines = deliveredMessages.map((m) => {
|
|
7187
|
+
const r = m ?? {};
|
|
7188
|
+
const who = typeof r.senderName === "string" && r.senderName.trim() !== "" ? r.senderName : String(r.senderId ?? "unknown");
|
|
7189
|
+
const when = typeof r.createdAt === "string" ? r.createdAt : "";
|
|
7190
|
+
const text = typeof r.body === "string" ? r.body : "";
|
|
7191
|
+
return `- ${who} (${when}): ${text}`;
|
|
7192
|
+
});
|
|
7193
|
+
return `${prompt}
|
|
7194
|
+
|
|
7195
|
+
## Messages since the last check
|
|
7196
|
+
${lines.join("\n")}`;
|
|
7197
|
+
}
|
|
7156
7198
|
function createScheduleInjectRoutes(deps) {
|
|
7157
7199
|
const app81 = new Hono();
|
|
7158
7200
|
app81.post("/", async (c) => {
|
|
@@ -7181,6 +7223,7 @@ function createScheduleInjectRoutes(deps) {
|
|
|
7181
7223
|
const eventAccountId = typeof body.accountId === "string" && body.accountId.length > 0 ? body.accountId : null;
|
|
7182
7224
|
const destination = typeof body.destination === "string" ? body.destination : "";
|
|
7183
7225
|
const prompt = typeof body.prompt === "string" ? body.prompt : "";
|
|
7226
|
+
const injectedText = composeDeliveredText(prompt, body.deliveredMessages);
|
|
7184
7227
|
const eventId = typeof body.eventId === "string" ? body.eventId : "";
|
|
7185
7228
|
const scheduleProvenance = parseScheduleProvenance(body.scheduleProvenance);
|
|
7186
7229
|
if (channel !== "whatsapp" && channel !== "telegram" || !destination || !prompt) {
|
|
@@ -7323,7 +7366,7 @@ function createScheduleInjectRoutes(deps) {
|
|
|
7323
7366
|
// Task 2619 — a scheduled dispatch is always role:'admin' (see above),
|
|
7324
7367
|
// so it names no specialist card.
|
|
7325
7368
|
specialist: null,
|
|
7326
|
-
text:
|
|
7369
|
+
text: injectedText,
|
|
7327
7370
|
// Task 2489 — a scheduled inject carries no inbound file by
|
|
7328
7371
|
// construction: there is no message to have attached one.
|
|
7329
7372
|
media: [],
|
|
@@ -15010,6 +15053,7 @@ function foldPatches(rows, uploadsBase) {
|
|
|
15010
15053
|
if (metas.length > 0) patch.attachments = [...patch.attachments ?? [], ...metas];
|
|
15011
15054
|
}
|
|
15012
15055
|
if (row.body !== void 0) patch.text = row.body;
|
|
15056
|
+
if (row.buttons) patch.buttons = row.buttons;
|
|
15013
15057
|
if (row.deleted === true) patch.deleted = true;
|
|
15014
15058
|
out.set(row.targetMessageId, patch);
|
|
15015
15059
|
}
|
|
@@ -15026,6 +15070,9 @@ function toTurn(r, patch) {
|
|
|
15026
15070
|
origin: r.origin,
|
|
15027
15071
|
messageId: r.messageId,
|
|
15028
15072
|
...patch?.attachments ? { attachments: patch.attachments } : {},
|
|
15073
|
+
// Task 2677 — the card's button labels: the edit patch wins, else the row's
|
|
15074
|
+
// own. Spread, so an ordinary message row carries no key.
|
|
15075
|
+
...patch?.buttons ?? r.buttons ? { buttons: patch?.buttons ?? r.buttons } : {},
|
|
15029
15076
|
// Task 2615 — spread, so a turn nobody deleted carries no key at all and
|
|
15030
15077
|
// every pre-2615 frame stays byte-identical. The BODY is kept: Telegram
|
|
15031
15078
|
// sends none on a deletion, so the stored body is the only account anywhere
|
|
@@ -15084,20 +15131,24 @@ app6.get("/gate-probe", (c) => {
|
|
|
15084
15131
|
return resolution === "scope" ? c.json({ error: "that telegram bot belongs to another account", reason: "account-scope" }, 403) : c.json({ error: "no such telegram bot", reason: "unknown-bot" }, 404);
|
|
15085
15132
|
}
|
|
15086
15133
|
}
|
|
15134
|
+
const since = c.req.query("since")?.trim() || null;
|
|
15087
15135
|
const all = [...readConversationSummaries2(accountId).keys()];
|
|
15088
15136
|
const keys = botId === null ? all : all.filter((k) => parseTelegramChannelKey(k)?.botId === botId);
|
|
15089
15137
|
let newestInboundAt = null;
|
|
15138
|
+
const messages = [];
|
|
15090
15139
|
for (const channelKey of keys) {
|
|
15091
15140
|
for (const row of readRows(accountId, channelKey)) {
|
|
15092
15141
|
if (isUpdateRecord(row)) continue;
|
|
15093
15142
|
if (row.origin !== "inbound") continue;
|
|
15094
15143
|
if (newestInboundAt === null || row.createdAt > newestInboundAt) newestInboundAt = row.createdAt;
|
|
15144
|
+
if (since !== null && row.createdAt > since) messages.push(row);
|
|
15095
15145
|
}
|
|
15096
15146
|
}
|
|
15147
|
+
messages.sort((a, b) => a.createdAt < b.createdAt ? -1 : a.createdAt > b.createdAt ? 1 : 0);
|
|
15097
15148
|
console.log(
|
|
15098
15149
|
`${TAG24} op=gate-probe accountId=${accountId.slice(0, 8)} botId=${botId ?? "all"} resolution=${resolution} conversations=${keys.length} ofAccount=${all.length} newestInboundAt=${newestInboundAt ?? "null"}`
|
|
15099
15150
|
);
|
|
15100
|
-
return c.json({ newestInboundAt });
|
|
15151
|
+
return c.json(since === null ? { newestInboundAt } : { newestInboundAt, messages });
|
|
15101
15152
|
});
|
|
15102
15153
|
app6.get("/store-backfill", requireAdminSession, (c) => {
|
|
15103
15154
|
const v = validate(c.req.query("accountId"), c.req.query("channelKey"));
|
|
@@ -40092,7 +40143,11 @@ function startEmitter(opts) {
|
|
|
40092
40143
|
if (pre && Array.isArray(pre.content)) {
|
|
40093
40144
|
for (const block of pre.content) {
|
|
40094
40145
|
if (block?.type === "tool_use" && typeof block.name === "string") {
|
|
40095
|
-
opts.onToolUse(
|
|
40146
|
+
opts.onToolUse({
|
|
40147
|
+
name: block.name,
|
|
40148
|
+
input: block.input,
|
|
40149
|
+
id: typeof block.id === "string" ? block.id : ""
|
|
40150
|
+
});
|
|
40096
40151
|
}
|
|
40097
40152
|
}
|
|
40098
40153
|
}
|
|
@@ -40127,6 +40182,19 @@ function startEmitter(opts) {
|
|
|
40127
40182
|
}
|
|
40128
40183
|
}
|
|
40129
40184
|
}
|
|
40185
|
+
if (opts.onToolResult && !suppressing) {
|
|
40186
|
+
const umsg = event.message;
|
|
40187
|
+
if (umsg && Array.isArray(umsg.content)) {
|
|
40188
|
+
for (const block of umsg.content) {
|
|
40189
|
+
if (block?.type !== "tool_result" || typeof block.tool_use_id !== "string") continue;
|
|
40190
|
+
opts.onToolResult({
|
|
40191
|
+
toolUseId: block.tool_use_id,
|
|
40192
|
+
text: toolResultText(block.content),
|
|
40193
|
+
isError: block.is_error === true
|
|
40194
|
+
});
|
|
40195
|
+
}
|
|
40196
|
+
}
|
|
40197
|
+
}
|
|
40130
40198
|
if (!suppressing) opts.onTurnStart?.(classifyTurnStart(event));
|
|
40131
40199
|
firedFileTools = [];
|
|
40132
40200
|
continue;
|
|
@@ -41648,7 +41716,7 @@ var sessions3 = /* @__PURE__ */ new Map();
|
|
|
41648
41716
|
function entry2(sessionId) {
|
|
41649
41717
|
let e = sessions3.get(sessionId);
|
|
41650
41718
|
if (!e) {
|
|
41651
|
-
e = { armed: 0, suppressed: 0, delivered: 0 };
|
|
41719
|
+
e = { armed: 0, suppressed: 0, delivered: 0, persisted: 0 };
|
|
41652
41720
|
sessions3.set(sessionId, e);
|
|
41653
41721
|
}
|
|
41654
41722
|
return e;
|
|
@@ -41663,23 +41731,50 @@ function noteCardDelivered(sessionId) {
|
|
|
41663
41731
|
const e = sessions3.get(sessionId);
|
|
41664
41732
|
if (e && e.armed > 0) e.delivered += 1;
|
|
41665
41733
|
}
|
|
41734
|
+
function noteCardPersisted(sessionId) {
|
|
41735
|
+
const e = sessions3.get(sessionId);
|
|
41736
|
+
if (e && e.armed > 0) e.persisted += 1;
|
|
41737
|
+
}
|
|
41666
41738
|
function cardCensusLines() {
|
|
41667
41739
|
let armed2 = 0;
|
|
41668
41740
|
let suppressed = 0;
|
|
41669
41741
|
let delivered = 0;
|
|
41742
|
+
let persisted = 0;
|
|
41670
41743
|
for (const e of sessions3.values()) {
|
|
41671
41744
|
armed2 += e.armed;
|
|
41672
41745
|
suppressed += e.suppressed;
|
|
41673
41746
|
delivered += e.delivered;
|
|
41747
|
+
persisted += e.persisted;
|
|
41674
41748
|
}
|
|
41675
41749
|
const silent = Math.max(0, armed2 - suppressed - delivered);
|
|
41676
41750
|
return [
|
|
41677
|
-
`[telegram-card-suppression-census] sessions=${sessions3.size} armed=${armed2} suppressed=${suppressed} silent-turns=${silent}`
|
|
41751
|
+
`[telegram-card-suppression-census] sessions=${sessions3.size} armed=${armed2} suppressed=${suppressed} silent-turns=${silent} persisted=${persisted}`
|
|
41678
41752
|
];
|
|
41679
41753
|
}
|
|
41680
41754
|
|
|
41681
41755
|
// app/lib/telegram/gateway/native-file-follower.ts
|
|
41682
41756
|
var TELEGRAM_CARD_TOOL = "mcp__telegram__telegram-card";
|
|
41757
|
+
var CARD_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
41758
|
+
"mcp__telegram__telegram-card",
|
|
41759
|
+
"mcp__plugin_telegram_telegram__telegram-card"
|
|
41760
|
+
]);
|
|
41761
|
+
var CARD_RESULT_RE = /card-result: outcome=(sent|edited|unchanged|none) messageId=(\d+|none)/;
|
|
41762
|
+
function parseCardButtons(input) {
|
|
41763
|
+
const rows = input?.buttons;
|
|
41764
|
+
if (!Array.isArray(rows)) return [];
|
|
41765
|
+
const out = [];
|
|
41766
|
+
for (const row of rows) {
|
|
41767
|
+
if (!Array.isArray(row)) continue;
|
|
41768
|
+
for (const b of row) {
|
|
41769
|
+
if (!b || typeof b !== "object") continue;
|
|
41770
|
+
const text = b.text;
|
|
41771
|
+
if (typeof text !== "string") continue;
|
|
41772
|
+
const data = b.callbackData;
|
|
41773
|
+
out.push({ text, data: typeof data === "string" ? data : null });
|
|
41774
|
+
}
|
|
41775
|
+
}
|
|
41776
|
+
return out;
|
|
41777
|
+
}
|
|
41683
41778
|
var CHAT_ACTION_REFRESH_MS = 4e3;
|
|
41684
41779
|
function startTelegramNativeFileFollower(input) {
|
|
41685
41780
|
const entry3 = {
|
|
@@ -41700,6 +41795,9 @@ function startTelegramNativeFileFollower(input) {
|
|
|
41700
41795
|
// The chat id the document is addressed to (set per spawn from the inbound).
|
|
41701
41796
|
replyTarget: input.chatId
|
|
41702
41797
|
};
|
|
41798
|
+
const pendingCards = /* @__PURE__ */ new Map();
|
|
41799
|
+
const channelKey = input.senderId;
|
|
41800
|
+
const numericSenderId = parseTelegramChannelKey(channelKey)?.senderId ?? input.chatId;
|
|
41703
41801
|
let lastChatActionAt = Number.NEGATIVE_INFINITY;
|
|
41704
41802
|
let turnOpen = false;
|
|
41705
41803
|
let cardSentThisTurn = false;
|
|
@@ -41778,12 +41876,67 @@ function startTelegramNativeFileFollower(input) {
|
|
|
41778
41876
|
// CARD_SHAPE and card.ts always issues sendMessage or editMessageText
|
|
41779
41877
|
// before it reaches the optional answerCallbackQuery, so there is no card
|
|
41780
41878
|
// call that posts nothing and no bare acknowledgement to keep the text for.
|
|
41781
|
-
onToolUse: (
|
|
41782
|
-
if (name
|
|
41879
|
+
onToolUse: (tool) => {
|
|
41880
|
+
if (CARD_TOOL_NAMES.has(tool.name) && tool.id) {
|
|
41881
|
+
const text = tool.input?.text;
|
|
41882
|
+
pendingCards.set(tool.id, {
|
|
41883
|
+
text: typeof text === "string" ? text : "",
|
|
41884
|
+
buttons: parseCardButtons(tool.input)
|
|
41885
|
+
});
|
|
41886
|
+
}
|
|
41887
|
+
if (tool.name !== TELEGRAM_CARD_TOOL) return;
|
|
41783
41888
|
cardSentThisTurn = true;
|
|
41784
41889
|
noteCardArmed(input.sessionId);
|
|
41785
41890
|
console.error(
|
|
41786
|
-
`[telegram-public] op=card-armed sessionId=${input.sessionId.slice(0, 8)} tool=${name}`
|
|
41891
|
+
`[telegram-public] op=card-armed sessionId=${input.sessionId.slice(0, 8)} tool=${tool.name}`
|
|
41892
|
+
);
|
|
41893
|
+
},
|
|
41894
|
+
// Task 2677 — the card's send outcome and message id arrive here, parsed out
|
|
41895
|
+
// of the result text card.ts encoded them into. On a confirmed send write one
|
|
41896
|
+
// outbound store row keyed by the card message id; on an edit patch that same
|
|
41897
|
+
// row (Telegram reuses the id for an edit); unchanged/none write nothing.
|
|
41898
|
+
onToolResult: ({ toolUseId, text }) => {
|
|
41899
|
+
const pending = pendingCards.get(toolUseId);
|
|
41900
|
+
if (!pending) return;
|
|
41901
|
+
pendingCards.delete(toolUseId);
|
|
41902
|
+
const m = CARD_RESULT_RE.exec(text);
|
|
41903
|
+
if (!m) return;
|
|
41904
|
+
const outcome = m[1];
|
|
41905
|
+
const messageId = m[2];
|
|
41906
|
+
if (outcome !== "sent" && outcome !== "edited" || messageId === "none") return;
|
|
41907
|
+
const at = (/* @__PURE__ */ new Date()).toISOString();
|
|
41908
|
+
const rowId = `telegram:${input.accountId}:${channelKey}:card:${messageId}`;
|
|
41909
|
+
if (outcome === "sent") {
|
|
41910
|
+
appendMessage2(input.accountId, {
|
|
41911
|
+
messageId: rowId,
|
|
41912
|
+
sessionId: input.sessionId,
|
|
41913
|
+
dateSent: at,
|
|
41914
|
+
body: pending.text,
|
|
41915
|
+
fromMe: true,
|
|
41916
|
+
senderId: numericSenderId,
|
|
41917
|
+
senderName: null,
|
|
41918
|
+
chatId: input.chatId,
|
|
41919
|
+
channelKey,
|
|
41920
|
+
// Telegram row scope is not consumed for rendering or routing (only
|
|
41921
|
+
// WhatsApp rows feed the operator-conversations scope counter); 'admin'
|
|
41922
|
+
// matches the operator-surface intent of the card row.
|
|
41923
|
+
scope: "admin",
|
|
41924
|
+
origin: "agent",
|
|
41925
|
+
...pending.buttons.length > 0 ? { buttons: pending.buttons } : {},
|
|
41926
|
+
createdAt: at
|
|
41927
|
+
});
|
|
41928
|
+
} else {
|
|
41929
|
+
appendUpdate(input.accountId, channelKey, {
|
|
41930
|
+
kind: "update",
|
|
41931
|
+
targetMessageId: rowId,
|
|
41932
|
+
body: pending.text,
|
|
41933
|
+
...pending.buttons.length > 0 ? { buttons: pending.buttons } : {},
|
|
41934
|
+
createdAt: at
|
|
41935
|
+
});
|
|
41936
|
+
}
|
|
41937
|
+
noteCardPersisted(input.sessionId);
|
|
41938
|
+
console.error(
|
|
41939
|
+
`[telegram-adaptor] op=card-persisted sessionId=${input.sessionId.slice(0, 8)} messageId=${messageId} outcome=${outcome} buttons=${pending.buttons.length}`
|
|
41787
41940
|
);
|
|
41788
41941
|
},
|
|
41789
41942
|
// Task 2521 — the answer reaches every bound door through the one fan-out.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./jsx-runtime-BcrVQeV-.js";import"./useMediaQuery-DL-C1y_F.js";import"./useVoiceRecorder-DseLVULD.js";import"./AdminShell-D94sgtsb.js";import{n}from"./page-CsHWZZ0U.js";import"./useCopyFeedback-DmNjbXe9.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
=`��i�ez��1����Ʋhۏ�(ɻ8N1��2+f}��x�t��ɝ�|��&| ��������_������T���(D`���Z�_
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Z as e}from"./useMediaQuery-DL-C1y_F.js";var t=e(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]);export{t};
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Z as e}from"./useMediaQuery-DL-C1y_F.js";var t=e(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]);export{t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./jsx-runtime-BcrVQeV-.js";import"./useMediaQuery-DL-C1y_F.js";import"./useVoiceRecorder-DseLVULD.js";import{t as n}from"./page-Dczx6CPP.js";import"./graph-labels-BHapdrTm.js";var r=e(),i=t();(0,r.createRoot)(document.getElementById(`root`)).render((0,i.jsx)(n,{}));
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Z as e}from"./useMediaQuery-DL-C1y_F.js";var t=e(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]);export{t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
`d����
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
/package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js.br → jsx-runtime-BtDK2X5t.js.br}
RENAMED
|
File without changes
|
/package/payload/server/public/assets/{jsx-runtime-BcrVQeV-.js.gz → jsx-runtime-BtDK2X5t.js.gz}
RENAMED
|
File without changes
|