@hailer/mcp 1.3.14 → 1.3.21
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/CLAUDE.md +6 -0
- package/dist/bot/bot.d.ts.map +1 -1
- package/dist/bot/bot.js +26 -34
- package/dist/bot/bot.js.map +1 -1
- package/dist/bot/services/helper-prompt.d.ts +1 -1
- package/dist/bot/services/helper-prompt.d.ts.map +1 -1
- package/dist/bot/services/helper-prompt.js +62 -82
- package/dist/bot/services/helper-prompt.js.map +1 -1
- package/dist/bot/services/system-prompt.js +4 -4
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/mcp/hailer-rpc.d.ts +1 -0
- package/dist/mcp/hailer-rpc.d.ts.map +1 -1
- package/dist/mcp/hailer-rpc.js +4 -0
- package/dist/mcp/hailer-rpc.js.map +1 -1
- package/dist/mcp/tools/activity.d.ts.map +1 -1
- package/dist/mcp/tools/activity.js +8 -2
- package/dist/mcp/tools/activity.js.map +1 -1
- package/dist/mcp/webhook-handler.d.ts.map +1 -1
- package/dist/mcp/webhook-handler.js +27 -0
- package/dist/mcp/webhook-handler.js.map +1 -1
- package/dist/public-chat/graduate.d.ts.map +1 -1
- package/dist/public-chat/graduate.js +153 -53
- package/dist/public-chat/graduate.js.map +1 -1
- package/dist/public-chat/rate-limit.js +1 -1
- package/dist/public-chat/rate-limit.js.map +1 -1
- package/dist/public-chat/studio-prewarm.js +2 -2
- package/dist/public-chat/studio-prewarm.js.map +1 -1
- package/dist/public-chat/system-prompt.d.ts.map +1 -1
- package/dist/public-chat/system-prompt.js +38 -23
- package/dist/public-chat/system-prompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -254,12 +254,12 @@ async function summarizeChat(turns) {
|
|
|
254
254
|
|
|
255
255
|
Write a short, friendly handoff message. NO markdown, NO bold, NO asterisks, NO dashes as bullet points. Just plain sentences.
|
|
256
256
|
|
|
257
|
-
CRITICAL: If the visitor selected any marketplace templates or
|
|
257
|
+
CRITICAL: If the visitor selected any marketplace products (templates or apps), you MUST include their EXACT names in the summary. Write them as: "Selected products: Product Name 1, Product Name 2." This is how the workspace bot knows what to install.
|
|
258
258
|
|
|
259
259
|
Format: a greeting line, then 2-4 short sentences about what was discussed, then selected templates if any. Like you're leaving a note for a colleague.
|
|
260
260
|
|
|
261
261
|
Example:
|
|
262
|
-
"Hey! This visitor runs a plumbing company and needs job tracking and invoicing. They liked the Sales Pipeline template and want to customize it for service calls. They also asked about team scheduling. Selected
|
|
262
|
+
"Hey! This visitor runs a plumbing company and needs job tracking and invoicing. They liked the Sales Pipeline template and want to customize it for service calls. They also asked about team scheduling. Selected products: Sales Pipeline, Invoice Tracker."
|
|
263
263
|
|
|
264
264
|
Keep it under 80 words. Use their language, not jargon. If the conversation was just a tour, say what features they explored.`,
|
|
265
265
|
});
|
|
@@ -431,6 +431,79 @@ async function createBotActivity(client, workspaceId, teamId, workflowId, deploy
|
|
|
431
431
|
return { error: `Failed to create bot activity: ${msg}` };
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
|
+
// ── Graduation idempotency ───────────────────────────────────────────────
|
|
435
|
+
// A visitor can finish setup from two places at once — the verification-email
|
|
436
|
+
// tab (/validate → graduate) and the demo tab's "I've verified — finish setup"
|
|
437
|
+
// button — and both POST to this endpoint. Without a guard the second run
|
|
438
|
+
// creates a *duplicate* "Hailer Helper" (the workflow install dedupes, but
|
|
439
|
+
// createBotActivity does not), dropping the visitor into a freshly-seeded
|
|
440
|
+
// discussion where the bot re-asks what it already asked in the other tab.
|
|
441
|
+
//
|
|
442
|
+
// Two layers prevent that:
|
|
443
|
+
// 1. withGraduationLock serialises the check-then-create section per
|
|
444
|
+
// workspace, so two near-simultaneous calls can't both miss the Helper.
|
|
445
|
+
// 2. findExistingHelperActivity reuses a Helper a prior run already created,
|
|
446
|
+
// so a repeat graduation lands in the SAME discussion, not a new one.
|
|
447
|
+
/** Per-workspace lock for graduation's check-then-create section. Mirrors
|
|
448
|
+
* withApiKeyLock — chains via `prev.then(fn, fn)` so a throw never stalls the
|
|
449
|
+
* queue. Keyed on workspaceId because the two tabs mint different API keys but
|
|
450
|
+
* target the same workspace. */
|
|
451
|
+
const graduationLocks = new Map();
|
|
452
|
+
async function withGraduationLock(workspaceId, fn) {
|
|
453
|
+
const prev = graduationLocks.get(workspaceId) ?? Promise.resolve();
|
|
454
|
+
const next = prev.then(fn, fn);
|
|
455
|
+
graduationLocks.set(workspaceId, next);
|
|
456
|
+
try {
|
|
457
|
+
return await next;
|
|
458
|
+
}
|
|
459
|
+
finally {
|
|
460
|
+
if (graduationLocks.get(workspaceId) === next) {
|
|
461
|
+
graduationLocks.delete(workspaceId);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Find a Hailer Helper a previous graduation already created in this
|
|
467
|
+
* workspace's Agent Directory. Returns the same shape as createBotActivity —
|
|
468
|
+
* including the existing discussion id — so the caller reuses it verbatim and a
|
|
469
|
+
* repeat graduation deep-links the visitor back into the conversation already
|
|
470
|
+
* in progress in the other tab. Returns null (→ create fresh) on any lookup
|
|
471
|
+
* failure, so this can only ever de-duplicate, never block graduation.
|
|
472
|
+
*/
|
|
473
|
+
async function findExistingHelperActivity(client, workflowId, deployedPhaseId) {
|
|
474
|
+
try {
|
|
475
|
+
const list = await client.socket.request('v3.activity.list', [
|
|
476
|
+
workflowId,
|
|
477
|
+
{ phase: deployedPhaseId, limit: 100 },
|
|
478
|
+
]);
|
|
479
|
+
const match = list?.activities?.find(a => a?.name === 'Hailer Helper' && typeof a._id === 'string');
|
|
480
|
+
if (!match?._id) {
|
|
481
|
+
return null;
|
|
482
|
+
}
|
|
483
|
+
// Load it to read fields (keyed by logical key — the shape
|
|
484
|
+
// provisionBotInline expects) and the discussion id.
|
|
485
|
+
const loaded = await client.socket.request('activities.load', [match._id]);
|
|
486
|
+
const fields = {};
|
|
487
|
+
for (const [key, value] of Object.entries(loaded?.fields ?? {})) {
|
|
488
|
+
if (typeof value === 'string') {
|
|
489
|
+
fields[key] = value;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return {
|
|
493
|
+
activityId: match._id,
|
|
494
|
+
activityName: match.name ?? 'Hailer Helper',
|
|
495
|
+
fields,
|
|
496
|
+
discussionId: loaded?.discussion,
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
catch (err) {
|
|
500
|
+
logger.warn('Graduation: existing-Helper lookup failed — will create fresh', {
|
|
501
|
+
workflowId,
|
|
502
|
+
error: err instanceof Error ? err.message : String(err),
|
|
503
|
+
});
|
|
504
|
+
return null;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
434
507
|
/**
|
|
435
508
|
* Locally invoke the bot-config webhook handler with a payload synthesized
|
|
436
509
|
* from the just-created activity. Hailer's phase webhook *should* fire on
|
|
@@ -647,53 +720,75 @@ function createPublicChatAuthorizeHandler() {
|
|
|
647
720
|
catch (err) {
|
|
648
721
|
logger.warn('Graduation: persistAdminCredentials failed (continuing)', { err });
|
|
649
722
|
}
|
|
650
|
-
// Workflow install, activity create AND bot provisioning all run
|
|
651
|
-
// synchronously before the success redirect. The visitor's client
|
|
652
|
-
//
|
|
653
|
-
//
|
|
723
|
+
// Workflow install, activity create/reuse AND bot provisioning all run
|
|
724
|
+
// synchronously before the success redirect. The visitor's client loads
|
|
725
|
+
// fresh after the redirect, so everything it needs — the bot's Hailer
|
|
726
|
+
// user account, the activity and its discussion, and the bot's
|
|
654
727
|
// membership — must already exist; otherwise the deep-linked discussion
|
|
655
728
|
// renders against a half-synced state ("Unknown User", empty) until a
|
|
656
|
-
// manual refresh. The extra ~2s
|
|
657
|
-
//
|
|
658
|
-
//
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
729
|
+
// manual refresh. The extra ~2s is worth landing the visitor in a
|
|
730
|
+
// fully-formed discussion. Only the long-running Studio session would
|
|
731
|
+
// stay in the background (currently disabled below).
|
|
732
|
+
//
|
|
733
|
+
// The block runs under a per-workspace lock and reuses an existing
|
|
734
|
+
// Hailer Helper when a prior graduation already made one — so finishing
|
|
735
|
+
// setup from a second tab (or a re-click) lands in the SAME discussion
|
|
736
|
+
// instead of creating a duplicate bot that re-asks the same questions.
|
|
737
|
+
const grad = await withGraduationLock(workspaceId, async () => {
|
|
738
|
+
const install = await (0, workflow_installer_1.ensureAgentDirectoryWorkflow)(client, workspaceId);
|
|
739
|
+
if (!install.success || !install.workflowId || !install.deployedPhaseId) {
|
|
740
|
+
return { error: install.error || 'Workflow install failed' };
|
|
741
|
+
}
|
|
742
|
+
const existing = await findExistingHelperActivity(client, install.workflowId, install.deployedPhaseId);
|
|
743
|
+
let created;
|
|
744
|
+
if (existing) {
|
|
745
|
+
created = existing;
|
|
746
|
+
logger.info('Graduation: reusing existing Hailer Helper (idempotent)', {
|
|
747
|
+
sessionId, workspaceId,
|
|
748
|
+
workflowId: install.workflowId,
|
|
749
|
+
activityId: created.activityId,
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
else {
|
|
753
|
+
const seedContext = await buildSeedContext(sessionId, viewedSlides, productIds);
|
|
754
|
+
const fresh = await createBotActivity(client, workspaceId, teamId, install.workflowId, install.deployedPhaseId, seedContext);
|
|
755
|
+
if ('error' in fresh) {
|
|
756
|
+
return { error: fresh.error };
|
|
757
|
+
}
|
|
758
|
+
created = fresh;
|
|
759
|
+
logger.info('Graduation: activity created (sync)', {
|
|
760
|
+
sessionId, workspaceId,
|
|
761
|
+
workflowId: install.workflowId,
|
|
762
|
+
activityId: created.activityId,
|
|
763
|
+
installedNew: !install.alreadyExisted,
|
|
764
|
+
seedTurns: countSeedTurnsForLog(seedContext),
|
|
765
|
+
viewedSlides: viewedSlides.length,
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
// Provision the bot synchronously — register its Hailer account,
|
|
769
|
+
// join the discussion, post the intro — BEFORE redirecting, so the
|
|
770
|
+
// visitor's freshly-loaded client already knows the bot user and its
|
|
771
|
+
// discussion. A no-op for an already-provisioned Helper (the webhook
|
|
772
|
+
// handler probes by activity id and skips the re-register + intro
|
|
773
|
+
// re-post), and a repair path if a prior run created the activity
|
|
774
|
+
// but failed to provision the bot user.
|
|
775
|
+
const { botUserId } = await provisionBotInline({
|
|
776
|
+
workspaceId,
|
|
777
|
+
workflowId: install.workflowId,
|
|
778
|
+
deployedPhaseId: install.deployedPhaseId,
|
|
779
|
+
activityId: created.activityId,
|
|
780
|
+
activityName: created.activityName,
|
|
781
|
+
fields: created.fields,
|
|
782
|
+
userId,
|
|
672
783
|
});
|
|
673
|
-
|
|
784
|
+
return { created, botUserId };
|
|
785
|
+
});
|
|
786
|
+
if ('error' in grad) {
|
|
787
|
+
logger.error('Graduation: setup failed', { sessionId, workspaceId, error: grad.error });
|
|
788
|
+
res.redirect(303, completeUrl(hailerOrigin, 'error', grad.error));
|
|
674
789
|
return;
|
|
675
790
|
}
|
|
676
|
-
|
|
677
|
-
sessionId, workspaceId,
|
|
678
|
-
workflowId: install.workflowId,
|
|
679
|
-
activityId: created.activityId,
|
|
680
|
-
installedNew: !install.alreadyExisted,
|
|
681
|
-
seedTurns: countSeedTurnsForLog(seedContext),
|
|
682
|
-
viewedSlides: viewedSlides.length,
|
|
683
|
-
});
|
|
684
|
-
// Provision the bot synchronously — register its Hailer account, have
|
|
685
|
-
// it join the discussion and post the intro — BEFORE redirecting, so
|
|
686
|
-
// the visitor's freshly-loaded client already knows the bot user and
|
|
687
|
-
// its discussion (no "Unknown User" / empty-discussion race).
|
|
688
|
-
const { botUserId } = await provisionBotInline({
|
|
689
|
-
workspaceId,
|
|
690
|
-
workflowId: install.workflowId,
|
|
691
|
-
deployedPhaseId: install.deployedPhaseId,
|
|
692
|
-
activityId: created.activityId,
|
|
693
|
-
activityName: created.activityName,
|
|
694
|
-
fields: created.fields,
|
|
695
|
-
userId,
|
|
696
|
-
});
|
|
791
|
+
const { created, botUserId } = grad;
|
|
697
792
|
// Carry the ids forward on the success URL: workspaceId (kept for
|
|
698
793
|
// reference), botActivityId for debugging, and botDiscussionId so the
|
|
699
794
|
// visitor lands straight in the now fully-provisioned Hailer Helper
|
|
@@ -705,15 +800,20 @@ function createPublicChatAuthorizeHandler() {
|
|
|
705
800
|
botActivityId: created.activityId,
|
|
706
801
|
botDiscussionId: created.discussionId,
|
|
707
802
|
}));
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
803
|
+
// Studio builder session intentionally disabled in this flow — we no
|
|
804
|
+
// longer kick off the autonomous Studio build on graduation. The Hailer
|
|
805
|
+
// Helper bot is still fully provisioned synchronously above; only the
|
|
806
|
+
// background Studio session is skipped.
|
|
807
|
+
void botUserId; // retained for the (disabled) background call below
|
|
808
|
+
// void runGraduationBackground({
|
|
809
|
+
// sessionId,
|
|
810
|
+
// workspaceId,
|
|
811
|
+
// activityId: created.activityId,
|
|
812
|
+
// botUserId,
|
|
813
|
+
// apiKey,
|
|
814
|
+
// viewedSlides,
|
|
815
|
+
// productIds,
|
|
816
|
+
// });
|
|
717
817
|
};
|
|
718
818
|
}
|
|
719
819
|
//# sourceMappingURL=graduate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graduate.js","sourceRoot":"","sources":["../../src/public-chat/graduate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graduate.js","sourceRoot":"","sources":["../../src/public-chat/graduate.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6sBH,4EAoLC;AA93BD,+CAAiC;AACjC,4DAA0C;AAC1C,0CAA6C;AAC7C,sCAAwC;AACxC,0DAAsF;AACtF,kDAA8C;AAC9C,wEAA6F;AAC7F,yEAAgF;AAChF,4DAAgE;AAChE,mDAAyD;AACzD,qDAAgH;AAEhH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAEtD,QAAA,2BAA2B,GAAG,4BAA4B,CAAC;AAExE,MAAM,UAAU,GAAG,4EAA4E,CAAC;AAEhG;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,sBAAsB,CAAC,KAAa;IACzC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAoB;IAC7C,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,EAAE,CAAC;QACV,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC9D,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAChD,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,+BAA+B;QACnC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,sBAAsB,CAAC,oBAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QACtD,iEAAiE;QACjE,8DAA8D;QAC9D,0CAA0C;QAC1C,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE,SAAS,EAAE;YAC3E,YAAY,EAAE,oBAAW,CAAC,cAAc;YACxC,MAAM;YACN,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE;QAC/D,MAAM,EAAE,MAAM,IAAI,SAAS;QAC3B,OAAO,EAAE,OAAO,IAAI,SAAS;QAC7B,QAAQ,EAAE,oBAAW,CAAC,cAAc;KACvC,CAAC,CAAC;IACH,OAAO,oBAAW,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAChB,YAAoB,EACpB,MAA2B,EAC3B,OAAgB,EAChB,MAA2C;IAE3C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,GAAG,YAAY,yBAAyB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CACf,YAAoB,EACpB,SAAiB,EACjB,MAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,MAAM,EAAE,SAAS;QACjB,MAAM;QACN,SAAS;KACZ,CAAC,CAAC;IACH,OAAO,GAAG,YAAY,yBAAyB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACvE,CAAC;AASD;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,eAAe,CAC1B,MAAoB;IAEpB,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAEzD,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC5B,QAAQ;YACR,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG;YACvB,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa;SAC9C,CAAC,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,sCAAsC,OAAO,EAAE,EAAE,CAAC;IACtE,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,OAAO,QAAQ,IAAI,IAAI,IAAI,MAAM,aAAa,CAAC;AAC1D,CAAC;AAYD,KAAK,UAAU,uBAAuB,CAClC,MAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAErE,CAAC;IAChB,MAAM,WAAW,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC;IACvC,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IACnE,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAID,2EAA2E;AAC3E,4EAA4E;AAC5E,sBAAsB;AACtB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IACpC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW;IACnE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK;IAChE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ;CAC1C,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH;;;;GAIG;AACH,KAAK,UAAU,aAAa,CACxB,KAA0C;IAE1C,MAAM,MAAM,GAAG,oBAAW,CAAC,iBAAiB,CAAC;IAC7C,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SAClE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,kBAAkB;YACzB,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YACjD,MAAM,EAAE;;;;;;;;;;;8HAW0G;SACrH,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAA0C;IACpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,uBAAuB,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACnC,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC3B,SAAiB,EACjB,eAAyB,EAAE,EAC3B,aAAuB,EAAE;IAEzB,MAAM,KAAK,GAAG,sCAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3F,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE9F,sEAAsE;IACtE,MAAM,aAAa,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAExD,oEAAoE;IACpE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAEjD,sEAAsE;IACtE,kEAAkE;IAClE,+EAA+E;IAC/E,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;YAClB,OAAO;YACP,YAAY,EAAE,cAAc;YAC5B,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;IACP,CAAC;IAED,+CAA+C;IAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAC7F,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAClL,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,WAA+B;IACzD,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC;IAC3B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAY,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QAChD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,yCAAyC;YACzC,IAAI,OAAQ,MAAgC,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YAC5E,IAAI,KAAK,CAAC,OAAO,CAAE,MAA8B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAE,MAA+B,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAC3D,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,kBAAkB;IACtB,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,kDAAkD;AAClD,MAAM,8BAA8B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAU,CAAC;AAEpE,KAAK,UAAU,iBAAiB,CAC5B,MAAoB,EACpB,WAAmB,EACnB,MAAc,EACd,UAAkB,EAClB,eAAuB,EACvB,WAA+B;IAK/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,UAAU;QACV,eAAe;QACf,YAAY,EAAE,QAAQ;QACtB,+DAA+D;QAC/D,6DAA6D;QAC7D,6DAA6D;QAC7D,8DAA8D;QAC9D,2CAA2C;QAC3C,UAAU,EAAE,OAAO;QACnB,6DAA6D;QAC7D,kEAAkE;QAClE,8DAA8D;QAC9D,iEAAiE;QACjE,kEAAkE;QAClE,8DAA8D;QAC9D,UAAU,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,MAAM,GAA2B;QACnC,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,QAAQ;QAClB,kBAAkB,EAAE,KAAK;QACzB,QAAQ,EAAE,WAAW,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC5D,OAAO,EAAE,YAAY;QACrB,YAAY;QACZ,WAAW,EAAE,KAAK;QAClB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;IAEF,MAAM,QAAQ,GAAG;QACb,IAAI,EAAE,eAAe;QACrB,MAAM;QACN,OAAO,EAAE,eAAe;QACxB,MAAM;KACT,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE;YACjE,UAAU;YACV,CAAC,QAAQ,CAAC;YACV,EAAE,cAAc,EAAE,IAAI,EAAE;SAC3B,CAAkC,CAAC;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;QACxD,CAAC;QACD,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,6CAA6C;QAC7C,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,OAAO,GAAG,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YAChG,MAAM,OAAO,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,CAAwC,CAAC;gBACnH,YAAY,GAAG,MAAM,EAAE,UAAU,CAAC;YACtC,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,uEAAuE,EAAE;oBACjF,UAAU;oBACV,OAAO;oBACP,KAAK,EAAE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;iBACtE,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,+FAA+F,EAAE;gBACzG,UAAU;aACb,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,EAAE,KAAK,EAAE,kCAAkC,GAAG,EAAE,EAAE,CAAC;IAC9D,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,+EAA+E;AAC/E,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,EAAE;AACF,2BAA2B;AAC3B,uEAAuE;AACvE,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAE3E;;;iCAGiC;AACjC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAC;AAC5D,KAAK,UAAU,kBAAkB,CAAI,WAAmB,EAAE,EAAoB;IAC1E,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC;QACD,OAAO,MAAM,IAAI,CAAC;IACtB,CAAC;YAAS,CAAC;QACP,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,0BAA0B,CACrC,MAAoB,EACpB,UAAkB,EAClB,eAAuB;IAEvB,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACzD,UAAU;YACV,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE;SACzC,CAAwE,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;QACpG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,2DAA2D;QAC3D,qDAAqD;QACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAE1D,CAAC;QAChB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC;QACL,CAAC;QACD,OAAO;YACH,UAAU,EAAE,KAAK,CAAC,GAAG;YACrB,YAAY,EAAE,KAAK,CAAC,IAAI,IAAI,eAAe;YAC3C,MAAM;YACN,YAAY,EAAE,MAAM,EAAE,UAAU;SACnC,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,+DAA+D,EAAE;YACzE,UAAU;YACV,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC1D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAQjC;IACG,MAAM,OAAO,GAAG;QACZ,GAAG,EAAE,MAAM,CAAC,UAAU;QACtB,IAAI,EAAE,MAAM,CAAC,YAAY;QACzB,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,GAAG,EAAE,MAAM,CAAC,WAAW;QACvB,YAAY,EAAE,MAAM,CAAC,eAAe;QACpC,GAAG,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QACxB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,EAAE,EAAE,GAAG;YACP,GAAG;YACH,IAAI,EAAE,MAAM;YACZ,KAAK;SACR,CAAC,CAAC;KACN,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAsB,EAAC,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,6DAA6D,EAAE;gBACvE,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,MAAM;aAC3B,CAAC,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,8DAA8D,EAAE;YACxE,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACtB,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,GAAG,EAAE;YAC/D,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AA8BD,KAAK,UAAU,uBAAuB,CAAC,MAAwB;IAC3D,MAAM,EACF,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAC7C,MAAM,EAAE,YAAY,EAAE,UAAU,GACnC,GAAG,MAAM,CAAC;IACX,IAAI,CAAC;QACD,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,8DAA8D;QAC9D,EAAE;QACF,mEAAmE;QACnE,kEAAkE;QAClE,uEAAuE;QACvE,sEAAsE;QACtE,gBAAgB;QAChB,MAAM,KAAK,GAAG,sCAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,aAAa,GAAG,IAAA,yCAAwB,EAC1C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAC/D,YAAY,EACZ,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAClE,CAAC;QACF,MAAM,IAAA,oCAAmB,EAAC;YACtB,MAAM;YACN,WAAW;YACX,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,8CAA6B,CAAC,CAAC,CAAC,SAAS;YACxE,aAAa;SAChB,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IACzF,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAE1D,KAAK,UAAU,uBAAuB,CAClC,MAAc;IAEd,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,IAAI,OAAgB,CAAC;IAErB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAA,2CAA0B,EAAC,MAAM,CAAC,CAAC;YACxD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;oBACpD,OAAO,EAAE,OAAO,GAAG,CAAC;oBACpB,YAAY;iBACf,CAAC,CAAC;YACP,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;gBACzD,OAAO,EAAE,OAAO,GAAG,CAAC;gBACpB,aAAa,EAAE,0BAA0B,CAAC,MAAM;gBAChD,YAAY;gBACZ,uBAAuB;gBACvB,aAAa,EAAE,oBAAW,CAAC,gBAAgB;gBAC3C,YAAY,EAAE,OAAO;aACxB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,mEAAmE;IACnE,uEAAuE;IACvE,MAAM,iBAAiB,GACnB,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,OAAO,EAAE;QAChE,YAAY;QACZ,uBAAuB;QACvB,aAAa,EAAE,oBAAW,CAAC,gBAAgB;QAC3C,QAAQ,EAAE,0BAA0B,CAAC,MAAM;KAC9C,CAAC,CAAC;IACH,qEAAqE;IACrE,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,GAAG,GAAG;QAC5C,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;QACvC,CAAC,CAAC,iBAAiB,CAAC;IACxB,OAAO,EAAE,KAAK,EAAE,8BAA8B,SAAS,EAAE,EAAE,CAAC;AAChE,CAAC;AAED,SAAgB,gCAAgC;IAC5C,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,kEAAkE;QAClE,2DAA2D;QAC3D,MAAM,YAAY,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAChG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACxE,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC1F,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACtE,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC;YACtF,OAAO;QACX,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACxE,OAAO;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACpB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,8DAA8D;QAC9D,0DAA0D;QAC1D,gEAAgE;QAChE,+DAA+D;QAC/D,6DAA6D;QAC7D,+BAA+B;QAC/B,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE;gBAC/D,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK;aACtC,CAAC,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,OAAO;QACX,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,+DAA+D,EAAE;gBACzE,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAC7E,OAAO;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;YAC7D,SAAS,EAAE,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,OAAO;QACX,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAEzC,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,4CAAoB,EAAC,MAAM,CAAC,CAAC;YACpD,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;YACtB,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACf,IAAA,+CAAuB,EAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,+DAA+D;QAC/D,wEAAwE;QACxE,sEAAsE;QACtE,kEAAkE;QAClE,sEAAsE;QACtE,qDAAqD;QACrD,EAAE;QACF,mEAAmE;QACnE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,OAAO,GAAG,MAAM,IAAA,iDAA4B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBACtE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,yBAAyB,EAAE,CAAC;YACjE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAC7C,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CACtD,CAAC;YACF,IAAI,OAA4G,CAAC;YACjH,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,GAAG,QAAQ,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE;oBACnE,SAAS,EAAE,WAAW;oBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;iBACjC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;gBAChF,MAAM,KAAK,GAAG,MAAM,iBAAiB,CACjC,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3B,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,WAAW,CAC3D,CAAC;gBACF,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;oBACnB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClC,CAAC;gBACD,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;oBAC/C,SAAS,EAAE,WAAW;oBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,YAAY,EAAE,CAAC,OAAO,CAAC,cAAc;oBACrC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC;oBAC5C,YAAY,EAAE,YAAY,CAAC,MAAM;iBACpC,CAAC,CAAC;YACP,CAAC;YAED,iEAAiE;YACjE,mEAAmE;YACnE,qEAAqE;YACrE,qEAAqE;YACrE,kEAAkE;YAClE,kEAAkE;YAClE,wCAAwC;YACxC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAkB,CAAC;gBAC3C,WAAW;gBACX,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM;aACT,CAAC,CAAC;YAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACxF,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,OAAO;QACX,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAEpC,kEAAkE;QAClE,sEAAsE;QACtE,oEAAoE;QACpE,yEAAyE;QACzE,uEAAuE;QACvE,oEAAoE;QACpE,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;YAC9D,WAAW;YACX,aAAa,EAAE,OAAO,CAAC,UAAU;YACjC,eAAe,EAAE,OAAO,CAAC,YAAY;SACxC,CAAC,CAAC,CAAC;QACJ,qEAAqE;QACrE,wEAAwE;QACxE,sEAAsE;QACtE,wCAAwC;QACxC,KAAK,SAAS,CAAC,CAAC,oDAAoD;QACpE,iCAAiC;QACjC,iBAAiB;QACjB,mBAAmB;QACnB,sCAAsC;QACtC,iBAAiB;QACjB,cAAc;QACd,oBAAoB;QACpB,kBAAkB;QAClB,MAAM;IACV,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.checkRate = checkRate;
|
|
11
11
|
exports._resetForTests = _resetForTests;
|
|
12
12
|
const WINDOW_MS = 60 * 60 * 1000; // 1 hour
|
|
13
|
-
const LIMIT =
|
|
13
|
+
const LIMIT = 20; // requests per IP per hour
|
|
14
14
|
const buckets = new Map();
|
|
15
15
|
let lastSweep = Date.now();
|
|
16
16
|
const SWEEP_INTERVAL_MS = 5 * 60 * 1000; // 5 min
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/public-chat/rate-limit.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA+BH,8BAgBC;AAGD,wCAGC;AAnDD,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAC3C,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/public-chat/rate-limit.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA+BH,8BAgBC;AAGD,wCAGC;AAnDD,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,CAAqB,2BAA2B;AAEjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;AAE5C,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3B,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;AAEjD,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,GAAG,GAAG,SAAS,GAAG,iBAAiB;QAAE,OAAO;IAChD,SAAS,GAAG,GAAG,CAAC;IAChB,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAQD,SAAgB,SAAS,CAAC,EAAU,EAAE,QAAgB,KAAK;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,CAAC,GAAG,CAAC,CAAC;IAEX,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAEtD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACrE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,+CAA+C;AAC/C,SAAgB,cAAc;IAC5B,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -42,8 +42,8 @@ const POST_REQUEST_TIMEOUT_MS = 30000;
|
|
|
42
42
|
exports.STUDIO_BUILDER_SYSTEM_MESSAGE = [
|
|
43
43
|
"You are Hailer Studio's autonomous workspace builder. Your working directory is ALREADY a fully initialized, authenticated @hailer/sdk project for the target workspace: `@hailer/sdk init` has run, `npm install` is done, and `npm run pull` has populated `workspace/` with the workspace's current configuration. Turn a single natural-language brief into a complete, working Hailer workspace — workflows, fields, phases, sample data, and a custom app UI — with no further input.",
|
|
44
44
|
"# Division of labour (IMPORTANT)\n- Workspace STRUCTURE (workflows, fields, phases, teams, groups, insights, templates) is managed AS CODE with the @hailer/sdk CLI via this project's npm scripts. Edit the TypeScript files under `workspace/` and push them. Do NOT create structure through MCP.\n- The APP UI is scaffolded with @hailer/create-app, built against @hailer/app-sdk, and published with the project's publish script. Do NOT build app structure through MCP.\n- The Hailer MCP tools are for LIVE DATA only — seeding sample activities (create_activity) and quick reads (list_activities) to verify your work.\n- MARKETPLACE: you MAY use browse_marketplace (read-only) to find a ready-made template or app that matches the brief, and RECOMMEND it in your final summary — but do NOT install it. Installing is the user's decision: they approve it in chat afterwards and the Helper bot performs the install. You still never create workspace structure through MCP.",
|
|
45
|
-
"# Hailer mental model\n- Workflow (process): a pipeline with PHASES (stages) and FIELDS (typed columns).\n- Activity: one record flowing through a workflow's phases.\n- Field types: text, textarea, number, money, date, dropdown (textpredefinedoptions), checkbox, user/member, activitylink (a relation to another workflow's activities), and function (computed, e.g. line totals).\n- App: a React UI (@hailer/app-sdk) that reads/writes activities across your workflows.",
|
|
46
|
-
"# Hard rules\n1. NEVER ask the user questions — interactive prompts are denied. When the brief is ambiguous, choose sensible defaults and state every assumption in your final summary. Always pass --force / non-interactive flags to CLI commands.\n2. Begin by reading current state: `npm run pull`, then read `workspace/workflows.ts`, `workspace/enums.ts`, and any existing `workspace/<Workflow>_<id>/` files. Reuse what fits; do not duplicate existing workflows. Before building a new workflow from scratch, call browse_marketplace to check for an existing marketplace template or app that already covers the brief; on a strong match, do NOT install it — RECOMMEND it in your final summary (name it and what it does) so the user can decide to install it. Build from scratch only where no marketplace product fits.\n3. A field is INVISIBLE in activities until its ID is listed in the phase's `fields` array. After creating fields you MUST add their IDs to the right phase(s) and push phases.\n4. Follow the SDK ordering, and re-pull after each step to pick up server-generated IDs:\na. New workflow: add an entry WITHOUT `_id` to `workspace/workflows.ts` → `npm run workflows-sync` → `npm run pull` (generates the `WorkflowName_id/` folder).\nb. Fields: edit `workspace/<Workflow>_<id>/fields.ts` → `npm run fields-push` → `npm run pull`.\nc. Phases: edit `phases.ts`, add each new field ID to the phase `fields` arrays → `npm run phases-push` → `npm run pull`. Reference IDs through `enums.ts`, never hand-typed hex. Use activitylink fields for relations instead of duplicating data.\n5. If a push fails, read the error, fix the TypeScript, and retry — never silently skip.",
|
|
45
|
+
"# Hailer mental model\n- Workflow (process): a pipeline with PHASES (stages) and FIELDS (typed columns).\n- Activity: one record flowing through a workflow's phases.\n- Workflow vs dataset: the SAME backing entity, distinguished by the `enableUnlinkedMode` flag in the workflow config. Unset/`false` = a phased workflow — activities live in phases and move between stages. `true` = a dataset — a flat list with activities detached from phase progression.\n- Field types: text, textarea, number, money, date, dropdown (textpredefinedoptions), checkbox, user/member, activitylink (a relation to another workflow's activities), and function (computed, e.g. line totals).\n- App: a React UI (@hailer/app-sdk) that reads/writes activities across your workflows.",
|
|
46
|
+
"# Hard rules\n1. NEVER ask the user questions — interactive prompts are denied. When the brief is ambiguous, choose sensible defaults and state every assumption in your final summary. Always pass --force / non-interactive flags to CLI commands.\n2. Begin by reading current state: `npm run pull`, then read `workspace/workflows.ts`, `workspace/enums.ts`, and any existing `workspace/<Workflow>_<id>/` files. Reuse what fits; do not duplicate existing workflows. Before building a new workflow from scratch, call browse_marketplace to check for an existing marketplace template or app that already covers the brief; on a strong match, do NOT install it — RECOMMEND it in your final summary (name it and what it does) so the user can decide to install it. Build from scratch only where no marketplace product fits.\n3. A field is INVISIBLE in activities until its ID is listed in the phase's `fields` array. After creating fields you MUST add their IDs to the right phase(s) and push phases.\n4. Follow the SDK ordering, and re-pull after each step to pick up server-generated IDs:\na. New workflow: add an entry WITHOUT `_id` to `workspace/workflows.ts` → `npm run workflows-sync` → `npm run pull` (generates the `WorkflowName_id/` folder).\nb. Fields: edit `workspace/<Workflow>_<id>/fields.ts` → `npm run fields-push` → `npm run pull`.\nc. Phases: edit `phases.ts`, add each new field ID to the phase `fields` arrays → `npm run phases-push` → `npm run pull`. Reference IDs through `enums.ts`, never hand-typed hex. Use activitylink fields for relations instead of duplicating data.\n5. If a push fails, read the error, fix the TypeScript, and retry — never silently skip.\n6. PHASED WORKFLOW, NOT DATASET, FOR ANYTHING STAGE-BASED. If the brief involves phases, stages, statuses, a pipeline, or moving items from one step to the next, build a normal phased workflow and leave `enableUnlinkedMode` unset (false). NEVER create a dataset (`enableUnlinkedMode: true`) for stage-based work — reserve datasets for flat reference data with no progression (e.g. contact lists, product catalogues). Why this matters: when activities are spread across multiple phases, Studio struggles to generate an app that displays records from ALL phases at once — it takes many retries, frustrates the user, and burns excess tokens. Choosing the workflow structure up front prevents that.",
|
|
47
47
|
"# Building the app (@hailer/create-app)\n1. Scaffold non-interactively: `npm create @hailer/app@latest <app-name> --template react-ts`, then `cd <app-name> && npm install`.\n2. Build the UI with @hailer/app-sdk: use the `useApp()` hook, read workflows/activities (e.g. `hailer.activity.list(...)`), and reference fields by KEY via the generated field-resolver so the app stays workspace-portable. Admin-configurable settings go in `public/manifest.json` under `config.fields`.\n3. Publish with the project's publish script for THIS environment, creating the app on first publish, e.g.:\nnpm run publish-<env> -- --create --app-name '<App Name>' --user-api-key <key> --force\nThe user API key and target API URL are in the project's `.env` / config — read them and pick the `publish-<env>` script whose API URL matches this workspace. The tool writes the new `appId` back into `manifest.json`.",
|
|
48
48
|
"# Finish\nEnd with a concise summary of what you built: the workflows/fields/phases you created, the app and what it does and where it's published, and every assumption you made. Work autonomously from start to finish. Quality and completeness matter more than speed.",
|
|
49
49
|
].join('\n\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio-prewarm.js","sourceRoot":"","sources":["../../src/public-chat/studio-prewarm.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAsCH,kDAgDC;AASD,4DA0DC;AAvJD,0CAA6C;AAC7C,sCAAwC;AACxC,sCAAwC;AAExC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE7D,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC;;;;;GAKG;AACU,QAAA,6BAA6B,GAAG;IACzC,6dAA6d;IAC7d,s8BAAs8B;IACt8B,
|
|
1
|
+
{"version":3,"file":"studio-prewarm.js","sourceRoot":"","sources":["../../src/public-chat/studio-prewarm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/public-chat/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/public-chat/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;CACvC;AAmpBD,wBAAgB,qBAAqB,IAAI,iBAAiB,EAAE,CAE3D;AAED,eAAO,MAAM,eAAe,QAAyB,CAAC"}
|
|
@@ -85,26 +85,16 @@ Confidence with humility. "I think this would help because X" — never "you nee
|
|
|
85
85
|
Every reply:
|
|
86
86
|
- 1-3 sentences (the answer)
|
|
87
87
|
- 2-3 numbered options (what to do next)
|
|
88
|
+
- Options are written FROM THE VISITOR'S perspective — as if the visitor is saying it. "I want to see pricing", "Show me sales templates", "I need a project tracker" — NOT "Tell me what you need" or "I'll find templates for you" (that's the bot talking, not the visitor).
|
|
88
89
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
- "Walk me through a typical [deal / project / case / ticket] right now, start to finish. What's painful enough that you're looking?"
|
|
98
|
-
- "How is your team running [sales / projects / support] today? What's the tool stack, and where does it leak?"
|
|
99
|
-
- DO NOT offer a demo, tour, slide deck, or "next move" on turn 1. You don't know enough yet to show them anything specific. Discovery first; demonstration after.
|
|
100
|
-
- DO NOT list multiple options. One reflection + one open discovery question, that's it.
|
|
101
|
-
- DO NOT mention the "Continue in Hailer" button in your first reply. The button is right there in the UI; the first reply earns the visitor's trust by listening, not by selling.
|
|
102
|
-
|
|
103
|
-
1. Show me how it works
|
|
104
|
-
2. I have a specific business need
|
|
105
|
-
3. What makes Hailer different?"
|
|
106
|
-
|
|
107
|
-
NEVER write a reply without numbered options.
|
|
90
|
+
EVERY reply — including the very first one — MUST end with 2-3 numbered options. No exceptions.
|
|
91
|
+
|
|
92
|
+
If the visitor says something generic like "hi", "hello", "hey" — respond with a short welcome and options:
|
|
93
|
+
"Welcome! Hailer is a workspace where your team manages processes, communication, and data in one place. What would you like to do?
|
|
94
|
+
|
|
95
|
+
1. Tell me more about Hailer
|
|
96
|
+
2. I already know what I need
|
|
97
|
+
3. Show me the marketplace"
|
|
108
98
|
|
|
109
99
|
═══ CONVERSATION FLOW ═══
|
|
110
100
|
|
|
@@ -112,6 +102,27 @@ Your goal: introduce Hailer, walk the visitor through key features, discover wha
|
|
|
112
102
|
|
|
113
103
|
At any point the visitor can type their own question — answer it naturally. Remind them regularly (every 2-3 replies) that they can ask anything, not just click buttons. Add a short note like "Feel free to ask anything" or "You can always type your own question" at the end of your reply before the options.
|
|
114
104
|
|
|
105
|
+
TELL ME MORE ABOUT HAILER:
|
|
106
|
+
When the visitor says "Tell me more about Hailer" or similar ("what is Hailer", "how does it work", "show me more"):
|
|
107
|
+
- Give a 3-5 sentence overview covering the key ideas: Hailer replaces scattered tools (CRM, project tracker, chat, spreadsheets) with one workspace. Workflows model your processes with phases and fields. Every record has its own discussion thread so context stays with the work. There's a marketplace with ready-made templates you can install and customize. Apps and AI agents extend the platform.
|
|
108
|
+
- ALWAYS end with this exact sentence before the options: "Want to see it in action? Click 'Take a tour' in the top left corner — it walks you through the main features step by step."
|
|
109
|
+
- Offer numbered options:
|
|
110
|
+
1. I already know what I need
|
|
111
|
+
2. Show me the marketplace
|
|
112
|
+
|
|
113
|
+
Do NOT navigate anywhere. Do NOT launch a tour yourself. The tour button in the UI handles it.
|
|
114
|
+
|
|
115
|
+
SHOW ME THE MARKETPLACE:
|
|
116
|
+
When the visitor says "Show me the marketplace" or similar:
|
|
117
|
+
- Navigate to apps page: <bot-action type="navigate" target="apps" />
|
|
118
|
+
- In your reply text, tell them they can browse what's there OR describe what they need and you'll search for matching templates.
|
|
119
|
+
- Offer concrete category options — NOT generic "I'm looking for a specific solution":
|
|
120
|
+
1. Sales pipeline
|
|
121
|
+
2. Project tracker
|
|
122
|
+
3. HR & onboarding
|
|
123
|
+
4. Customer support
|
|
124
|
+
- The message text already invites them to type freely, so no need for a catch-all option.
|
|
125
|
+
|
|
115
126
|
SHORTCUT — DIRECT BUSINESS NEED:
|
|
116
127
|
If the visitor says "I already know what I need" or mentions their business, industry, or specific need at ANY point (e.g. "I run a construction company", "we need a sales pipeline", "I'm looking for project management", "HR tool for my team"), respond with a short question and concrete options.
|
|
117
128
|
|
|
@@ -139,7 +150,7 @@ Example for "I run a construction company":
|
|
|
139
150
|
2. Crew scheduling and management
|
|
140
151
|
3. Invoicing and billing"
|
|
141
152
|
|
|
142
|
-
When they pick a specific option → do marketplace-search with TOOL keywords (not industry name) + navigate to apps.
|
|
153
|
+
When they pick a specific option → do marketplace-search with TOOL keywords (not industry name) + ALWAYS navigate to apps (the marketplace page). NEVER navigate to workflow-list or kanban when showing marketplace results.
|
|
143
154
|
|
|
144
155
|
` +
|
|
145
156
|
// Scripted tour STEP 1-6 moved to frontend tour state machine to save output tokens.
|
|
@@ -250,6 +261,7 @@ A bakery doesn't need a "bakery template". They need:
|
|
|
250
261
|
Your job: translate "I'm a [business type]" into 2-3 concrete tool needs, then search for THOSE.
|
|
251
262
|
|
|
252
263
|
Use multiple marketplace-search tags if needed — one per tool category. Use their language, not Hailer jargon.
|
|
264
|
+
ALWAYS include <bot-action type="navigate" target="apps" /> to show the marketplace page. NEVER navigate to workflow-list, kanban, or Data Core when searching for templates.
|
|
253
265
|
|
|
254
266
|
Example for "I'm a plumber":
|
|
255
267
|
"For a plumbing business, you'd want job tracking to manage service calls, a client list to keep customer history, and invoicing to bill when the job's done.
|
|
@@ -259,9 +271,11 @@ Example for "I'm a plumber":
|
|
|
259
271
|
<bot-action type="navigate" target="apps" />
|
|
260
272
|
|
|
261
273
|
1. Tell me more about how job tracking works
|
|
262
|
-
2.
|
|
274
|
+
2. Nothing matched — let me describe what I need
|
|
263
275
|
3. I want to try this"
|
|
264
276
|
|
|
277
|
+
After every marketplace-search, ALWAYS include "Nothing matched — let me describe what I need" as one of the numbered options. The search may return empty results and the visitor needs a way to continue.
|
|
278
|
+
|
|
265
279
|
PRODUCT SELECTED — visitor chose a specific product from the marketplace:
|
|
266
280
|
When you see a message like 'Install the template [name: Product Name] by Publisher in my workspace.' — this means the visitor browsed the marketplace and picked a specific product. The exact product name is inside [name: ...]. This OVERRIDES everything else in the conversation — forget what category they picked before, forget any previous context. Only the product name matters now. Respond:
|
|
267
281
|
1. Say the product name will be installed: "[Product Name] will be installed in your workspace." — nothing else about what it does, what category it is, or how it works. Just the name.
|
|
@@ -362,10 +376,11 @@ Examples:
|
|
|
362
376
|
|
|
363
377
|
═══ SCOPE ═══
|
|
364
378
|
|
|
365
|
-
-
|
|
379
|
+
- You ONLY discuss Hailer and topics directly related to it. Nothing else.
|
|
380
|
+
- If the visitor asks about anything unrelated to Hailer (weather, coding help, math, jokes, other products, general knowledge, personal questions), respond: "I can only help with Hailer-related questions. What would you like to know about the platform?" and offer the standard options.
|
|
381
|
+
- Do NOT answer off-topic questions even partially. Do NOT say "I don't know but..." and then answer anyway. Just redirect to Hailer.
|
|
366
382
|
- Privacy → knowledge base or privacy@hailer.com
|
|
367
383
|
- Want a human? → https://form.hailer.com/846f393a84406e85dbc150ffdfff8352
|
|
368
|
-
- Off-topic → gently redirect
|
|
369
384
|
`;
|
|
370
385
|
const BOT_ACTION_PROTOCOL = `Bot-action tags — embed these in your replies to control the demo UI. The visitor will NOT see the tag text.
|
|
371
386
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/public-chat/system-prompt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/public-chat/system-prompt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AA2pBH,sDAEC;AA3pBD,2CAA8E;AAQ9E,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIzB;IACD,qFAAqF;IACrF,yFAAyF;IACzF,yDAAyD;IACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuEE;IACF,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyJJ,CAAC;AAEF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoF3B;IACD,oFAAoF;IACpF,iGAAiG;IACjG,yDAAyD;IACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6KE;IACF,EAAE,CAAC;AAEH,MAAM,gBAAgB,GAAG;;CAExB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,aAAa,GAAwB;IACzC;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,iBAAiB,GAAG,IAAI,GAAG,mBAAmB;QACpD,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;KACrC;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gBAAgB,GAAG,mCAAuB;QAChD,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;KACrC;CACF,CAAC;AAEF,SAAgB,qBAAqB;IACnC,OAAO,aAAa,CAAC;AACvB,CAAC;AAEY,QAAA,eAAe,GAAG,kCAAsB,CAAC"}
|